[實驗]Nodemcu軟串口通信(讀取網絡時間並通過串口傳輸)


參考博客:ESP8266(NODEMCU)Arduino環境下實現多個軟串口通信

接線方式:

D5——D8
D6——D7

實驗原理與步驟

通過向硬串口發送Show time 字符串激活單片機去更新網絡時間,然后通過軟串口一發出,然后硬串口會打出串口二接收到的數據。模擬了兩個單片機實現串口通信的過程。

代碼

#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);*/ 
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM