esp8266-nodemcu开发板与arduino uno连接传输数据代码
时间: 2023-12-11 10:04:02 浏览: 175
如何通过Arduino UNO与ESP8266通讯-项目开发
5星 · 资源好评率100%
以下是将ESP8266 NodeMCU开发板连接到Arduino Uno板并传输数据的示例代码:
在NodeMCU上运行的代码:
```
#include <ESP8266WiFi.h>
const char* ssid = "your_SSID"; // 你的WiFi名称
const char* password = "your_PASSWORD"; // 你的WiFi密码
WiFiServer server(80); // 设置一个本地服务器
void setup() {
Serial.begin(9600); // 与串口通信
delay(10);
// 连接到WiFi网络
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// 开启服务器
server.begin();
Serial.println("Server started");
}
void loop() {
// 等待客户端连接
WiFiClient client = server.available();
if (!client) {
return;
}
// 读取客户端发送的数据
Serial.println("new client");
while(!client.available()){
delay(1);
}
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// 发送数据到Arduino Uno
Serial.println("Sending data to Arduino...");
Serial1.println(request);
delay(100);
// 发送响应到客户端
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // 空行必须添加
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<body>");
client.println("<h1>ESP8266 NodeMCU</h1>");
client.println("<p>Data sent to Arduino Uno: " + request + "</p>");
client.println("</body>");
client.println("</html>");
delay(1);
Serial.println("Client disconnected");
Serial.println("");
}
```
在Arduino Uno上运行的代码:
```
void setup() {
Serial.begin(9600); // 与串口通信
Serial1.begin(9600); // 与NodeMCU通信
}
void loop() {
// 读取NodeMCU发送的数据
if (Serial1.available()) {
String data = Serial1.readStringUntil('\r');
Serial.println("Data received: " + data);
}
}
```
这个例子中,NodeMCU运行一个本地服务器,等待客户端连接并发送数据。当有客户端连接时,NodeMCU会读取客户端发送的数据并将其发送到Arduino Uno。然后,NodeMCU会向客户端发送一个HTML响应,其中包含已发送到Arduino Uno的数据。Arduino Uno只是读取NodeMCU发送的数据并将其打印到串口监视器中。
注意:确保将NodeMCU与Arduino Uno正确连接。将NodeMCU的TX引脚连接到Arduino Uno的RX引脚,将NodeMCU的RX引脚连接到Arduino Uno的TX引脚。如果您使用的是NodeMCU V1.0板,您需要将板上的开关设置为“UART”模式。
阅读全文