ESP8266-Arduino网络编程实例-远程串口(模拟 Web Serial) 远程串口(模拟 Web Serial) 本文将演示如何实现一个简单的Web Serial远程串口。Web Serial在没有硬件串口的情况时,使设备调试变得非常方便。ESP8266 托管一个 Web 服务器,该服务器提供一个页面以可视化消息,就像使用常规串行监视器一样。 Web Serial 网页还允许将数据从网页发送到ESP8266设备。
Web Serial有如下特性:
适用于 WebSocket;
实时记录;
可以在浏览器上打开任意数量的串口监视器;
1、硬件准备
ESP8266 NodeMCU开发板一块
数据线一条
2、软件准备
Arduino IDE或VSCode + PlatformIO
在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:
ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:
3、代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 #include <Arduino.h> #include <ESP8266WiFi.h> #include <ESPAsyncTCP.h> #include <ESPAsyncWebServer.h> #include <WebSerial.h> #define LED 2 AsyncWebServer server(80); const char\* ssid = "\*\*\*\*"; const char\* ssid_pwd = "\*\*\*\*"; void recvMsg(uint8\_t \*data, size\_t len){ WebSerial.println("Received Data..."); String d = ""; for(int i=0; i < len; i++){ d += char(data[i]); } WebSerial.println(d); if (d == "ON"){ digitalWrite(LED, LOW); } if (d=="OFF"){ digitalWrite(LED, HIGH); } } void setup() { Serial.begin(115200); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); WiFi.mode(WIFI_STA); WiFi.begin(ssid, ssid_pwd); if (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.printf("WiFi Failed!\n"); return; } Serial.println("IP Address: "); Serial.println(WiFi.localIP()); WebSerial.begin(&server); WebSerial.msgCallback(recvMsg); server.begin(); } void loop() { WebSerial.println("Hello!"); delay(2000); }
WebSerial库常用的两个函数:
print:打印数据
println:打印数据及新行
在WebSerial启动后,在浏览器地址栏中输入:
ESP8266的IP地址/webserial
比如,ESP8266的地址为:192.168.0.120,则可以通过http://192.168.0.120/webserial 来访问Web Serial服务。运行结果如下:
文章来源: https://iotsmart.blog.csdn.net/article/details/127405921
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!