Arduino WIFI(ESP8266) 初次上手應用

WiFi Serial Transceiver Module.jpg  

 

今天要來討論的是最近很親民的"ESP8266"

 

因為便宜的價位,功能也能應用的非常廣,像是"家電監控"、"遠端遙控"、"點對點溝通"、"雲端資料庫"等等

其實之前自己就已經玩過這塊,不過每當過一段時間要來玩的時候

常常無法與電腦終端機溝通上,不然就是code要重寫,花很多時間,所以這次要來為自己準備"大補帖"!!

 

廢話說完了,這次我們要準備的材料有:

--------------------WIFI模組應用材料----------------------

軟體:

Arduino IDE

Realterm(WIN7用終端機) 

硬體:

WIFI數據機 or 手機熱點分享 

Arduino 板子 (Uno、Nano、Mega、Mini、Yun...都可) *1塊

FT232  *1塊

ESP8266  (鮑率9600)*1塊

--------------------------------------------------------------

FT232 長這樣:

sku_164970_1.jpg  

其實也有很多種版本,也有人稱"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),下載好後安裝,先不要打開

RealTerm.jpg

2. FT232與ESP8266 照此圖接。(VCC請愛用3.3V,5V會冒煙喔~)

 7295fe1f-7a38-951b-3248-9bb1ac7e61ea.png

 

3. 接好後,把FT232插進電腦,確保FT232正常運作,先打開電腦裝置管理員,查看是否運作成功,如果有黃色警告標示則是安裝驅動失敗,需要更新驅動軟件。

 電腦終端機.jpg  

4.現在用管理員身分打開RealTerm,勾選Ascii 旁邊打勾。

RealTerm1.jpg

 

5.書籤點選Port,更改(1)鮑率為"9600",更改(2)Port為FT232的USB Port位置,按(3)設置完成。

RealTerm2.jpg

 

 

6.這邊就是見證成敗與否的時刻,(1)勾選CR,LF,CR,LF,(2)輸入AT,大小寫皆可,(3)按SendASCII,(4)看到OK即可。

如果是一片空白的話也不要氣餒,再找找看哪個細節出問題。

RealTerm3.jpg  

7.完成實驗一,代表已經成功80%了,再接再厲!!

 (如果此階段遇到問題請去留言19樓看看)

二.再用Arduino取代Realterm(終端機)與ESP8266溝通,開內建序列監控室窗進行測試。

1.點擊進入複製 Code

2.Arduino與ESP8266照接此電路圖

ESP+Arduino.jpg  

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 新增)

Arduino-ESP8266-TEST.jpg

 

 

注意:(2015/11/30補充)

ESP8266電源最好外接穩壓晶片,不要用Arduino內建3.3V,電流是不足的,會造成資料傳輸上的Error。

LD1117AL 3.3v穩壓晶片介紹

https://www.sparkfun.com/datasheets/Components/LD1117V33.pdf 

P.3有電路圖參考

 

三.用ThingSpeak當作雲端資料庫,接收Arduino的各項數值。

1.點擊進入複製 Code  Code2(改進版)

2.更改SSID(WIFI使用者名稱)、PASS(WIFI密碼)

3.還有最後1個數據要改(GET) 先不要燒錄,這個數據取得之前要先去申請 ThingSpeak帳戶 (點擊進入教學)

4.教學結束後,到API KEY標籤處 複製 Write API Key :

 ThingSPEAK API.jpg 

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。

 Arduino-thingspeak.jpg

 7.打開ThingSpeak ,看到有數據再跑,右邊的Channel Stats的 Updated有再改變的話就代表成功囉!


 ThingSPEAK.jpg   

8. 實驗方法三完成,實驗大成功!

 

 

 

   一起來分享自己的數據成果吧~

 

 2015/12/4 新增--

 ESP8266 Datasheet等相關資料 載點

 

 

 

相關應用教學: 

*教學*Arduino WIFI(ESP8266) 入門應用<網頁控制LED>

*教學*Arduino WIFI(ESP8266) Time同步設計

*情人節DIY*製作情侶專屬音樂盒

 

 


 

 

 

arrow
arrow

    兩隻小豬 發表在 痞客邦 留言(106) 人氣()