Toggle navigation
臺南市教育局科技教育網
:::
線上書籍
電子相簿
PM2.5監測
IOT實作
討論區
OpenID登入
登入
登入
帳號
密碼
登入
:::
所有書籍
「ESP8266家電控制物聯網實作」目錄
MarkDown
1-1 ESP8266燒錄說明
1. ESP8266
1-1 ESP8266燒錄說明
1-2 ESP8266 基礎測試(用轉接器)
1-3 ESP8266 基礎測試(用uno板)
1-4 用USB to 8266轉接板燒錄(降版)
1-3 ESP8266 基礎測試(用uno板)
ESP8266家電控制物聯網實作 ================
***一、安裝USB to 8266驅動程式***
請務必先安裝[驅動程式](http://maker.tn.edu.tw/uploads/tad_book3/image/CH341SER.zip),切記不要用windows update來搜尋驅動程式!驅動安裝完再插上轉接器+ESP8266。 ![](http://maker.tn.edu.tw/uploads/tad_book3/image/2016-07-26_181029.png) ***2. 切換一般模式,先看看原本的韌體*** 將USB to 8266後面的開關向左扳,切換到一般模式(若還不清楚請[回上一小節](http://pm25.tn.edu.tw/modules/tad_book3/page.php?tbdsn=17)) ![](http://maker.tn.edu.tw/uploads/tad_book3/image/20160726_150513.jpg)
二、使用SSCOM軟體
下載[SSCOM工具軟體](http://maker.tn.edu.tw/uploads/tad_book3/file/sscom32E.zip),解壓縮執行其中的執行檔 ![](http://maker.tn.edu.tw/uploads/tad_book3/image/2016-07-26_173718.png) 按下快速指令按鈕後,呈現的畫面如下,可知目前內建的韌體為AT v0.40.0.0 ![](http://maker.tn.edu.tw/uploads/tad_book3/image/2016-07-26_174746.png)
三、AT指令種類
資料來源:
每一條指令可以細分四種命令: 1. **測試命令** *AT+指令=?* *=?* 用於查詢設置指令或內部設置的參數,以及其取值範圍;白話一點,就是測試剛剛下的 *AT+指令* 是否成功 2. **查詢命令** *AT+指令?* *?* 返回該指令的當前設定值 3. **設置命令** *AT+指令=...* *=...* 用來設置用戶自定義的參數值 4. **執行命令** *AT+指令* 用來執行模組內部已定義的程序 要注意下面幾點: - 不是每條 AT 指令都具備上面 4 種命令 - 前後若加上雙引號代表字串
四、AT指令
資料來源:
1. AT OK 2. **AT+GMR** : 取得韌體版本 : AT+GMR 0018000902-AI03 OK 可見目前版本是 0902. 3. **AT+RST** : 重新起始 ESP8266 AT+RST OK 7!aS?'??!G?R?? \[Vendor:www.ai-thinker.com Version:0.9.2.4\] ready 4. **AT+CIOBAUD?** : 查詢鮑率 (位元速率) +CIOBAUD:9600 OK 5. **AT+CWMODE?** : 查詢目前工作模式 AT+CWMODE? +CWMODE:2 OK 可見目前是模式 2 (AP 基地台模式), 1=STA 網卡模式, 3=BOTH (AP+STA). 注意, 下完 CWMODE 最好再用 CWRST 重啟, 以確認設定有完成. 6. **AT+CWMODE=1** : 修改工作模式為 1 (STA) 網卡模式 AT+CWMODE=1 OK AT+CWMODE? +CWMODE:1 OK 要修改為雙重模式就在等號後面指定為 3 即可. 注意, STA 與 AP 模式有各自的 IP, 在 STA 模式下未連線前 IP 為預設之 0.0.0.0, 連線後基地台會配發一個 192.168.X.X 的 IP; 改為 AP 或 BOTH 模式後, ESP8266 會自行配發 192.168.4.1 的 AP IP, 故 BOTH 模式下會有兩個 IP. AT+CWMODE=3 OK AT+CIFSR 192.168.4.1 (這是 ESP8266 當 AP 的 IP) 192.168.2.105 (這是 ESP8266 當 STA 的 IP) 7. **AT+CIFSR** : 查詢 IP 位址 AT+CIFSR 192.168.4.1 OK 注意, 作為 STA 時, 若尚未用 CWJAP 連線基地台, 則預設 IP 為 0.0.0.0, 連線後才會被指派一個 192.168.X.X 的 STA 區域 IP. 如果 ESP8266 是在 AP/BOTH 模式, 則下 CIFSR 會看到兩個 IP, 一個是 STA IP, 另為一個是基地台 SoftAP IP. 8. **AT+CWLAP** : 列出附近偵測得到的基地台 注意, 此指令只能在 STA (=1) 與 BOTH (=3) 模式下才會回應, 在 AP 模式下會出現 ERROR. AT+CWLAP +CWLAP:(2,"edimax.setup",-71,"74:da:38:15:16:00",1) +CWLAP:(3,"bryan",-90,"78:54:2e:26:66:28",1) +CWLAP:(3,"TP-LINK\_33C1",-86,"c4:e9:84:66:33:c1",4) +CWLAP:(4,"ching",-84,"54:b8:0a:84:f4:70",5) +CWLAP:(4,"HOME",-70,"04:8d:38:52:ea:f7",6) +CWLAP:(4,"alex",-85,"fc:75:16:01:26:0c",6) +CWLAP:(4,"andy",-85,"fc:75:16:02:61:60",6) +CWLAP:(1,"JANE-WIRELESS",-94,"00:24:01:ad:a0:65",6) +CWLAP:(4,"RFTQAD",-93,"c8:d3:a3:5f:d8:fd",9) +CWLAP:(3,"TP-LINK\_601A04",-73,"e8:de:27:60:1a:04",10) +CWLAP:(4,"**EDIMAX-tony**",**-44**,"90:1f:02:2d:5a:9f",11) 我的基地台 +CWLAP:(3,"CHT5668",-89,"d8:fe:e3:5c:c0:fb",11) +CWLAP:(3,"MOTOROLA-5N6F",-89,"f8:35:dd:74:d2:b6",11) +CWLAP:(3,"45-9",-91,"d8:fe:e3:e6:90:87",11) +CWLAP:(3,"family",-89,"6c:19:8f:b7:9a:79",1) OK 回應訊息的格式為 : +CWLAP:(ecn,ssid,rssi,mac,mode) 第一個參數是加密方式 ecn : 0 OPEN (不加密) 1 WEP 2 WPA\_PSK 3 WPA2\_PSK 4 WPA\_WPA2\_PSK 第二個參數是服務設定識別碼 SSID (即基地台代號), 第三個是接收的射頻信號強度 (dBm), 均為負值, 越負信號越弱, 最大值是 0. 第四參數是實體位址 MAC, 第五參數據 "[More AT Command Information Found](https://hackaday.io/project/2879-esp8266-wifi-module-library/log/9300-more-at-command-information-found)" 說是連接模式, 0 為手動 (manual), 1 為自動 (auto). 但上面測試卻有 0, 1 以外的值. 據 "[ESP8266 WiFi module](http://tomeko.net/other/ESP8266/)" 這篇則說是 channel, 似乎較合理, 因為 CWJAP 指令也無法設定手動或自動啊! 9. **AT+CWJAP="SSID","PWD"** : 連線指定之基地台 (Join AP) AT+CWJAP="EDIMAX-tony","123456789111" OK 連線成功後再下 AT+CIFSR 查詢新指派的 IP, 還沒下 CWJAP 連線前為 0.0.0.0 : AT+CIFSR **192.168.2.105** 這時可在相同網域的電腦 ping 此 IP, 檢查連線是否可傳送資料 : C:\\Users\\petertw89>**ping 192.168.2.105** Ping 192.168.2.105 (使用 32 位元組的資料): 回覆自 192.168.2.105: 位元組=32 時間=110ms TTL=255 回覆自 192.168.2.105: 位元組=32 時間=18ms TTL=255 回覆自 192.168.2.105: 位元組=32 時間=35ms TTL=255 回覆自 192.168.2.105: 位元組=32 時間=55ms TTL=255 192.168.2.105 的 Ping 統計資料: 封包: 已傳送 = 4,已收到 = 4, 已遺失 = 0 (0% 遺失), 大約的來回時間 (毫秒): 最小值 = 18ms,最大值 = 110ms,平均 = 54ms 10. **AT+CWJAP?** : 查詢目前連線到哪一個基地台 AT+CWJAP? +CWJAP:"EDIMAX-tony" OK 11. **AT+CWQAP** : 離開目前連線的基地台 AT+CWQAP OK 這時再下 AT+CWJAP? 查詢連線之基地台時就會回應 ERROR : AT+CWJAP? ERROR 這時下 CWFSR 原來指配的 IP 192.168.2.105 會消失, 回到預設 0.0.0.0 AT+CIFSR 0.0.0.0 OK 12. **AT+CIPSTART** : 建立 TCP/UDP 連線 AT+CIPSTART="TCP","www.google.com",80 OK Linked 這樣就與遠端主機建立 TCP 連線了. AT+CIPSTART="UDP","192.43.244.18",123 OK 這樣就與遠端主機建立 UDP 連線了. 13. **AT+CIPSTATU****S** : 查詢目前 IP 連線狀態 AT+CIPSTATUS STATUS:3 +CIPSTATUS:0,"TCP","74.125.203.101",80,0 OK 回應訊息格式 : +CIPSTATUS:id,type,addr,port,tetype id 為連線通道編號, 最後面的 tetype 為 ESP8266 角色, 0 為 client, 1 為 server. 表示目前與 IP 74.125.203.101 的 80 port 已建立了 TCP 連線 (2 表示已取得 IP 尚未連線, 3 表示 Connected, 4 表示 disconnected). 回應中的 0 為 id. 14. **AT+CIPCLOSE** : 關閉 IP 連線 AT+CIPCLOSE OK Unlink 15. **AT+CWSAP?** : 查詢 SoftAP 的設定 此指令只有當 ESP8266 工作於 AP/BOTH 模式時才有用, 在 STA 模式下此指令會得到 ERROR 回應. AT+CWMODE=3 先改為 BOTH 模式 OK AT+CWSAP? AT+CWSAP:"ESP\_9CBD07","",6,0 預設 ssid, pwd, ch, ecn OK 回應顯示預設未設密碼, 最後一個參數為加密方式, 預設 0=未加密, 見 CWLAP 指令. 而 ssid 是 ESP8266 作為 AP 的網路識別, 後面是其 MAC 號碼. ecn 是加密方式. 16. **AT+CWSAP="ssid","pwd",ch,ecn** : 更改 AP 的設定 (只在 AP/BOTH 模式有效) AT+CWSAP="MYESP","1234567890",6,4 OK 17. **AT+CWLIF** : 查詢有哪些 Client 連線至此 AP (只在 AP/BOTH 模式有效) AT+CWLIF 192.168.4.100,74:e1:b6:0e:f5:67 OK 18. **AT+CIPMUX?** : 詢問目前 TCP/UDP 連線模式 這是設定 ESP8266 與同一 WiFi 網路中其他裝置的連線模式, 預設為單一連線, 如果要讓 ESP8266 當伺服器用, 必須設為 1=多重連線. AT+CIPMUX? +CIPMUX:0 (多重連線關閉, 即單一連線模式) OK 19. **AT+CIPMUX=1** : 設定 TCP/UDP 連線模式為多重連線 如果要讓 ESP8266 當伺服器, 讓網域中的客戶端進行 TCP/UDP 連線, 必須開啟多重連線. AT+CIPMUX=1 OK 如果要取消 ESP8266 的伺服功能, 恢復單一連線功能, 須將 CIPMUX 設為 0 : AT+CIPMUX=1 OK 20. **AT+CIPSERVER=mode\[,port\]** : 設定是否開啟 ESP8266 為伺服器 用 CIPMUX=1 開啟多重連線後, 就可以用 CIPSERVER 設定 ESP8266 的伺服器功能. mode=1 為開啟伺服器, 必須指定 port; mode=0 為關閉伺服器, 不須指定 port. 在單一連線下開啟伺服器, 會得到 ERROR 回應. AT+CIPSERVER=1,8087 OK 這樣 ESP8266 伺服器就會傾聽 8087 埠, 這時就可在同網域的電腦連線 ESP8266 伺服器了. 我下載克里斯寫的 [Connector-Test.air](https://sites.google.com/site/ychrisdepot/zip-files/Connector-Test.air?attredirects=0&d=1) 安裝後選擇當 Client, 連線 ESP8266 的 STA IP, 連線成功且能雙向傳遞訊息. 用書上的 Java Client 網路程式來測試也 OK. 重複開啟伺服器會回應 no change : AT+CIPSERVER=1,8081 no change 關閉伺服器後必須重啟 ESP8266 (AT+RST), 其回應為 : AT+CIPSERVER=0 we must restart 21. **AT+CIPSTO?** : 查詢伺服器逾時計時器設定值 (秒) AT+CIPSTO? +CIPSTO:180 OK 預設是 180 秒 22. **AT+CIPSTO=timeout** : 設定伺服器逾時計時器 (0~7200 秒) AT+CIPSTO=200 OK 其實不管設定為多少秒, 它都回應 OK, 但實際最多只能計時到 7200 秒.
搜尋
search
進階搜尋