ESP8266 AT

基本的常用指令如上,具體功能手冊有說明。
將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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章