[实验]Nodemcu软串口通信(读取网络时间并通过串口传输)

参考博客:ESP8266(NODEMCU)Arduino环境下实现多个软串口通信

1|0接线方式:

D5——D8
D6——D7

2|0实验原理与步骤

通过向硬串口发送Show time 字符串激活单片机去更新网络时间,然后通过软串口一发出,然后硬串口会打出串口二接收到的数据。模拟了两个单片机实现串口通信的过程。

3|0代码

#include <NTPClient.h> #include <ESP8266WiFi.h> #include <WiFiUdp.h> #include <SoftwareSerial.h> SoftwareSerial uart1(14,12);//RX=d5,TX=d6 SoftwareSerial uart2(13,15);//RX=d7,TX=d8 //ESP8266 NODEMCU const char *ssid = "your wifi name "; const char *password = "your wifi password"; WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "ntp1.aliyun.com",60*60*8, 30*60*1000); void setup() { Serial.begin(9600); uart1.begin(9600); uart2.begin(9600); uart1.listen(); uart2.listen(); pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output WiFi.begin(ssid, password); while ( WiFi.status() != WL_CONNECTED ) { delay ( 500 ); Serial.print ( "." ); digitalWrite(LED_BUILTIN, HIGH); } timeClient.begin(); } String time1=""; bool dian=false; int h,m,s,d; String uart1string=""; String uart2string=""; void loop() { if(Serial.available()>0){ if(Serial.peek()!='\n'){ uart1string+=(char)Serial.read(); } else{ Serial.read(); if(uart1string=="Show time"){ timeClient.update(); time1=timeClient.getFormattedTime(); uart1.println(time1); } uart1string=""; } } if(uart2.available()>0){ if(uart2.peek()!='\n'){ uart2string+=(char)uart2.read(); } else{ uart2.read(); Serial.print("UART2 DATA:"); Serial.println(uart2string); uart2.println(uart2string); } } /*Serial.println("ok"); timeClient.update(); time1=timeClient.getFormattedTime(); d=timeClient.getDay(); h=timeClient.getHours(); m=timeClient.getMinutes(); s=timeClient.getSeconds(); Serial.print(d);Serial.print(" ");Serial.print(h);Serial.print(":");Serial.print(m);Serial.print(":");Serial.println(s); delay(1000);*/ }

__EOF__

本文作者Mudrobot
本文链接https://www.cnblogs.com/mudrobot/p/15007230.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Mudrobot  阅读(1411)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示