Arduino WIFI(ESP8266) 初次上手應用
今天要來討論的是最近很親民的"ESP8266"
因為便宜的價位,功能也能應用的非常廣,像是"家電監控"、"遠端遙控"、"點對點溝通"、"雲端資料庫"等等
其實之前自己就已經玩過這塊,不過每當過一段時間要來玩的時候
常常無法與電腦終端機溝通上,不然就是code要重寫,花很多時間,所以這次要來為自己準備"大補帖"!!
廢話說完了,這次我們要準備的材料有:
--------------------WIFI模組應用材料----------------------
軟體:
Arduino IDE
Realterm(WIN7用終端機)
硬體:
WIFI數據機 or 手機熱點分享
Arduino 板子 (Uno、Nano、Mega、Mini、Yun...都可) *1塊
FT232 *1塊
ESP8266 (鮑率9600)*1塊
--------------------------------------------------------------
FT232 長這樣:
其實也有很多種版本,也有人稱"USB轉TTL"...等等
但我用的是長的跟上圖一樣,網拍一個賣25元。
它有兩大功用:
1.是用來燒錄ESP8266內建韌體用的,就是修改鮑率。
2.可以隨時用簡單的Realterm(終端機)來測試ESP8266是否正常。(這非常重要,因為常常有人遇到問題就認為ESP826燒壞了!)
FT232在本實驗是一大功臣,我當初玩ESP8266時沒有順便買FT232,就玩不起來,因為不知道原廠的鮑率,ESP8266就不會回話,然後也不知道怎下手,弄得自己吃不到魚,卻惹得一身腥。
FT232就先介紹到這。馬上來進入正題。
實驗方法
1.先用Realterm(終端機)測試ESP8266是否正常。(如果正常本次實驗就成功80%了~!)
2.再用Arduino取代Realterm(終端機)與ESP8266溝通,開內建序列監控室窗進行測試。
3.用ThingSpeak當作雲端資料庫,接收Arduino的各項數值。
4.完成
實驗開始
一. 先用Realterm(終端機)測試ESP8266是否正常:
1.下載Realterm (點進去按Download),下載好後安裝,先不要打開。
2. FT232與ESP8266 照此圖接。(VCC請愛用3.3V,5V會冒煙喔~)
3. 接好後,把FT232插進電腦,確保FT232正常運作,先打開電腦裝置管理員,查看是否運作成功,如果有黃色警告標示則是安裝驅動失敗,需要更新驅動軟件。
4.現在用管理員身分打開RealTerm,勾選Ascii 旁邊打勾。
5.書籤點選Port,更改(1)鮑率為"9600",更改(2)Port為FT232的USB Port位置,按(3)設置完成。
6.這邊就是見證成敗與否的時刻,(1)勾選CR,LF,CR,LF,(2)輸入AT,大小寫皆可,(3)按SendASCII,(4)看到OK即可。
如果是一片空白的話也不要氣餒,再找找看哪個細節出問題。
7.完成實驗一,代表已經成功80%了,再接再厲!!
(如果此階段遇到問題請去留言19樓看看)
二.再用Arduino取代Realterm(終端機)與ESP8266溝通,開內建序列監控室窗進行測試。
2.Arduino與ESP8266照接此電路圖
3. Code第二行是設定ESP8266的TX,RX腳位,預設是RX->4 ; TX->5 ,使用者自行更改。
SoftwareSerial mySerial(4, 5); // RX, TX 直接接ESP8266
4.開始燒錄(建議把TX,RX拔掉再燒錄,否則會燒錄失敗),燒好看TX,RX是否插好並打開內建序列監控室窗。
5.輸入AT(小寫at也可),看到"OK"如下圖,則實驗方法二完成。
(底下記得選擇NL&CR,AT才會有回應喔! 謝謝網友陳建男的補充及建議 2017/06/02 新增)
注意:(2015/11/30補充)
ESP8266電源最好外接穩壓晶片,不要用Arduino內建3.3V,電流是不足的,會造成資料傳輸上的Error。
LD1117AL 3.3v穩壓晶片介紹
https://www.sparkfun.com/datasheets/Components/LD1117V33.pdf
P.3有電路圖參考
三.用ThingSpeak當作雲端資料庫,接收Arduino的各項數值。
2.更改SSID(WIFI使用者名稱)、PASS(WIFI密碼)
3.還有最後1個數據要改(GET) 先不要燒錄,這個數據取得之前要先去申請 ThingSpeak帳戶 (點擊進入教學) 。
4.教學結束後,到API KEY標籤處 複製 Write API Key :
5. Code第12行
String GET = "GET /update?key=MIN085MR4XATH8VD";
請把"MIN085MR4XATH8VD"改成自己的 Write API。
6.改好拔掉ESP8266的TX,RX再進行燒錄。燒好"馬上"插上TX,RX並打開序列監控室窗進行測試,看到以下畫面就成功了。(如果第一行不是SEND: AT 請用力的按下Arduino上的 RST )
講解一下:
第一行:傳AT給ESP8266看它是不是活的。
第二行:接收到ESP8266傳OK,代表它是正常的可以工作。
第三行:無意義,單純代表可以開始傳資料給ESP8266。
第四行:傳送 WIFI使用者名稱(手機使用者名稱)、WIFI密碼給ESP8266。
第五行:接收到ESP8266傳OK,代表成功連接WIFI基地台(或手機)。
第六行:傳送 連接ThingSpeak網頁IP 的指令給ESP8266
第七行:傳送 API+數據1+數據2 給ESP8266
"數據1與數據2從何而來?" Code 第30行,可以知道我們傳的數據1是5 ; 數據2是9
SentOnCloud( String(5), String(9) );
如果要傳更多種類的數據只要去 Code 第44行 ,依樣畫葫蘆 + "&field=3" + X + "&field=4" + Y + "&field=5" + Z +.... 即可
第八行:接收到ESP8266傳OK,代表傳送成功!
接著會開始無線迴圈傳送API+數據1+數據2 給ESP8266。
7.打開ThingSpeak ,看到有數據再跑,右邊的Channel Stats的 Updated有再改變的話就代表成功囉!
8. 實驗方法三完成,實驗大成功!
一起來分享自己的數據成果吧~
2015/12/4 新增--
ESP8266 Datasheet等相關資料 載點
相關應用教學:
*教學*Arduino WIFI(ESP8266) 入門應用<網頁控制LED>
*教學*Arduino WIFI(ESP8266) Time同步設計
*情人節DIY*製作情侶專屬音樂盒
留言列表