Arduino leonardo+esp8266-01作服務端與APP進行數據通信


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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM