esp8266-01調試
一、硬件設備
1.USB轉TTL
2.esp8266-01
3.杜邦線
4.電腦
二、接線
ESP8266 | TTL-USB |
VCC | VCC(最好選擇3.3V) |
CH_PD | VCC(最好選擇3.3V) |
GND | GND |
URXD | TXD |
UTXD | RXD |
按表格接好線如下
三、調試
把usb轉ttl模塊插入電腦,在 此電腦-管理-設備管理器 中查看該設備端口號
若是出現上圖的黃色箭頭警告,就卸載原usb轉ttl驅動,重新下載ft232r,安裝其中的
驅動下載:https://dl.pconline.com.cn/download/845836-1.html
正常后應該是這樣的
打開串口調試軟件,選擇相應的串口號,esp8266波特率一般都是115200,所以這里設置為115200,勾選上發送新行,最后點擊打開串口
串口調試軟件下載:http://www.ouyaoxiazai.com/soft/yyrj/135/12447.html
測試一條esp8266的重啟指令AT-RST,如果和下圖一樣說明設備工作正常
總結下大概會用到的指令:
詳細指令見:https://www.cnblogs.com/lifan3a/articles/7070028.html
重啟:AT+RST
設置模式:AT+CWMODE = <mode> //此設置需要重啟生效
<mode>:1 Station模式 2 AP模式 3 AP+Station模式
/*AP可以理解為發出熱點信息的路由器,而station則是連接熱點的設備*/
設置是否多連接:AT+CIPMUX=<mode>
1 多連接模式 0 單連接模式
創建服務器:AT+CIPSERVER=<mode>[,port]
mode:0-關閉server模式,1-開啟server模式 ,port:端口號,缺省值為333
查詢IP:AT+CIFSR
在串口調試工具里依次執行
AT+CWMODE=3
AT+RST
AT+CIPMUX=1
AT+CIPSERVER=1,8080
AT+CIFSR
然后手機打開wifi,應該就能搜索到該esp8266發出的熱點信息
esp8266-01與手機APP通信
手機上下載一個名為網絡調試助手的軟件
點擊TCP Clien,然后點擊右上角的+號,最后按照之前設定的端口,和esp8266的ip填寫信息
若是正常,則可以在串口調試工具中看到esp8266反饋的信息
然后在app中的編輯框輸入內容,點擊發送,esp8266就能收到信息並通過串口通信顯示在串口工具中
esp8266-01連接Arduino leonardo
一、硬件設備
1.esp8266
2.arduino leonardo
3.電腦
二、接線
ESP8266 | arduino leonardo |
VCC | 3.3v |
CH_PD | 3.3v |
GND | GND |
URXD | TX |
UTXD | RX |
三、測試
連接電腦, 在Arduino IDE中選擇相應板子型號和端口
上傳以下程序
(這段程序可以讓arduino作為一個串口調試工具與esp8266交互,電腦上通過串口通信向arduino發送指令,arduino再發給esp8266,而反饋的信息也由esp8266發給arduino,再發送到電腦)
1 String string = ""; 2 3 void setup() { 4 Serial.begin(115200);//電腦與arduino間通信 5 Serial1.begin(115200);//arduino與esp8266間通信 6 } 7 8 void loop() { 9 while (Serial1.available() > 0) 10 { 11 char c = Serial1.read(); 12 string += c; 13 if (Serial1.available() == 0) 14 { 15 Serial.print(string);//打印esp8266反饋的信息 16 string = ""; 17 } 18 delay(10); 19 } 20 21 while (Serial.available() > 0) 22 { 23 char c = Serial.read(); 24 string += c; 25 if (Serial.available() == 0) 26 { 27 Serial1.print(string);//向esp8266發送指令 28 string = ""; 29 } 30 delay(10); 31 } 32 33 }
上傳后打開右上角的串口監視器
測試AT指令
效果如圖所示則為正常工作
然后就可以在此發送指令,讓esp8266作服務端,手機APP作客戶端連接實現APP與arduino的通信
APP通過esp8266控制Arduino
省去電腦手動設置指令,arduino通過串口通信直接發送指令到esp8266,上傳以下程序,可實現arduino在上電啟動時就自動設置,然后arduino在收到手機特定數據的時候會做出相應操作
1 String string = ""; 2 3 void setup() { 4 Serial.begin(115200);//電腦與arduino間通信 5 Serial1.begin(115200);//arduino與esp8266間通信 6 7 delay(1000); 8 Serial1.print("AT+CIPMUX=1\r\n"); 9 delay(1000); 10 Serial1.print("AT+CIPSERVER=1,8080\r\n"); 11 } 12 13 void loop() { 14 while (Serial1.available() > 0) 15 { 16 char c = Serial1.read(); 17 string += c; 18 if (Serial1.available() == 0) 19 { 20 21 22 if (string.indexOf("hello") >=0) 23 { 24 Serial.print("do something..."); 25 } 26 27 Serial.print(string);//打印esp8266反饋的信息 28 string = ""; 29 } 30 delay(10); 31 } 32 33 while (Serial.available() > 0) 34 { 35 char c = Serial.read(); 36 string += c; 37 if (Serial.available() == 0) 38 { 39 Serial1.print(string);//向esp8266發送指令 40 string = ""; 41 } 42 delay(10); 43 } 44 45 }
若是之前串口監視器沒關,就能看到以下信息,說明自動設置完成,若是關了,則先打開串口監視器,然后重新拔插arduino,重新上電
接着手機照之前的步驟連接wifi,再作為 TCP Client 連接服務端,然后發送一句 hello 測試
可以看到esp8266顯示已經有客戶連接,而且Arduino接收到了hello並作出了相應的操作(這里只是打印了 do something)