基本的常用指令如上,具體功能手冊有說明。
將ESP8266模塊正確的連接Arduino Uno。
使用Arduino編程,輸入如下:
#define WIFI_TX 9
#define WIFI_RX 8
#define LED 13
SoftwareSerial wifi(WIFI_RX, WIFI_TX); //RX, TX
String _comdata_wifi = "";//for incoming wifi serial data
void setup() {
pinMode(LED,OUTPUT);
digitalWrite(LED,LOW);
Serial.begin(9600);
wifi.begin(115200);
Serial.println("system is ready!");
wifi.println("AT+CWMODE=3\r\n");
delay(500);
wifi.println("AT+CIPMUX=1\r\n");
delay(500);
wifi.println("AT+CIPSERVER=1,5000\r\n");
delay(500);
}
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);
Serial.println("\r\n");
// for(int a=0;a<_comdata_wifi.length();a++)
// {
// Serial.println(a);
// Serial.println(_comdata_wifi[a]);
// }
// MCU接收到的數據爲+IPD時進入判斷控制0\1來使小燈亮與滅
if((_comdata_wifi[2]=='+')&&(_comdata_wifi[3]=='I')&&(_comdata_wifi[4]=='P')) {
if((_comdata_wifi[5]=='D')&&(_comdata_wifi[8]==',')) {
if(_comdata_wifi[11]=='0') {
digitalWrite(LED,LOW);//0 燈滅
Serial.println("燈滅");
wifi.println("燈滅");
//wifi模塊向pc端或手機端 發送"燈滅
} else if (_comdata_wifi[11]=='1') {
digitalWrite(LED,HIGH); //1 燈亮
wifi.println("燈亮");
Serial.println("燈亮"); //wifi模塊向pc端或手機端 發送"燈亮"
}
}
}
_comdata_wifi = String("");
}
}
void getWifiSerialData(){
while (wifi.available() > 0){
_comdata_wifi += char(wifi.read()); //get wifi data
delay(4);
}
}
使用telnet遠程連接,可以實現控制ESP8266。
如果你的ESP8266是Arduino固件,參考https://arduino-esp8266.readthedocs.io/en/latest/