注意: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); } }
|