設為首頁收藏本站

艾歐踢論壇

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

搜索
熱搜: 活動 交友 discuz
查看: 1029|回復: 0
打印 上一主題 下一主題

*教學*Arduino WIFI(ESP8266) 初次上手應用

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2017-1-13 06:49:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
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 照此圖接。


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溝通,開內建序列監控室窗進行測試。
1.點擊進入複製 Code
2.Arduino與ESP8266照接此電路圖
  
3. Code第二行是設定ESP8266的TX,RX腳位,預設是RX->4 ; TX->5 ,使用者自行更改。
SoftwareSerial mySerial(4, 5); // RX, TX 直接接ESP82664.開始燒錄(建議把TX,RX拔掉再燒錄,否則會燒錄失敗),燒好看TX,RX是否插好並打開內建序列監控室窗。
5.輸入AT(小寫at也可),看到"OK"如下圖,則實驗方法二完成。



注意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 :

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等相關資料 載點
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 轉播轉播 分享分享 分享淘帖
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

小黑屋|Archiver|手機版|艾歐踢創新工坊    

GMT+8, 2024-5-15 18:30 , Processed in 0.266649 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表