注意:ESP8266是3.3V供电的 arduino的D3、D2分别为软串口的RX与TX。 arduino的D3(RX)连接ESP8266的TX。 arduino的D2(TX)连接ESP8266的RX。 arduino的D4连接ESP8266的CH_PD,启用ESP8266时必须设置高电平。 测试程序对应的代码一: #include <SoftwareSerial.h> SoftwareSerial mySerial(3,2); void setup() { pinMode(4, OUTPUT); Serial.begin(9600); mySerial.begin(9600); } void loop() { digitalWrite(4,HIGH); while (Serial.available() > 0) { mySerial.println(Serial.readString()); delayMicroseconds(100); } while (mySerial.available() > 0) { Serial.println(mySerial.readString()); delayMicroseconds(100); } } 测试程序对应的代码二: #include <SoftwareSerial.h> #define WIFI_TX 2 //ESP8266 RX #define WIFI_RX 3 //ESP8266 TX SoftwareSerial wifi(WIFI_RX, WIFI_TX); //SoftwareSerial(RX, TX) String _comdata_wifi = ""; //for incoming wifi serial data void setup() { Serial.begin(9600); wifi.begin(9600); Serial.println("system is ready!"); } void loop() { getWifiSerialData(); if(Serial.available()){ String order = ""; while (Serial.available()){ char cc = (char)Serial.read(); order += cc; delay(2); } order.trim(); wifi.println(order); } if(_comdata_wifi!=""){ Serial.println(_comdata_wifi); _comdata_wifi = String(""); } }
void getWifiSerialData(){ while (wifi.available() > 0){ _comdata_wifi += char(wifi.read()); //get wifi data delay(4); } }
|