写出Arduino作为TCP客户端与上位机通信的代码
时间: 2023-06-17 16:08:53 浏览: 66
下面是一个简单的Arduino作为TCP客户端与上位机通信的代码示例:
```cpp
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC地址
IPAddress serverIP(192, 168, 1, 100); // 服务器IP地址
EthernetClient client; // 客户端
void setup() {
Serial.begin(9600);
Ethernet.begin(mac);
delay(1000);
Serial.println("Connecting to server...");
if (client.connect(serverIP, 80)) {
Serial.println("Connected to server");
} else {
Serial.println("Connection failed");
}
}
void loop() {
if (client.connected()) {
client.println("Hello server"); // 发送数据
while (client.available()) {
char c = client.read(); // 读取数据
Serial.print(c);
}
} else {
Serial.println("Disconnected from server");
client.connect(serverIP, 80); // 重新连接
}
delay(1000);
}
```
在上面的代码中,首先定义了MAC地址和服务器IP地址,然后创建了一个EthernetClient对象。在setup()函数中,Arduino连接到以太网并尝试连接到服务器。在loop()函数中,Arduino检查连接状态并发送和接收数据。如果连接断开,则重新连接。这个示例代码中,每秒发送一次“Hello server”并读取服务器的响应。