接下來要介紹Arduino+ESP8266的一個應用範例,
從Arduino 讀取土壤濕度感測器的濕度以及POWER及ESP8266的電壓
透過ESP8266 wifi連線,把資料送上//http://api.thingspeak.com
Thingspeak 是一個可以免費註冊的網站,我們只要把資料送到該網站
即可在該網站監控我們所作的土壤濕度感測器的濕度及電壓.
Arduino 範例程式下載:
https://www.dropbox.com/s/ah21knzmc08ip5h/esp8266_soil.ino?dl=0
請先參閱之前的ESP8266介紹完成基本接線及測試,
ESP8266 Wifi (1)---Connected with PC.
http://arbu00.blogspot.tw/2015/12/esp8266-wifi-1-connected-with-pc.htmlESP8266 WIFI(2) -update firmware and modify baud rate.
http://arbu00.blogspot.tw/2015/12/esp8266-wifi2-update-firmware-and.htmlESP8266 WIFI(3) -Connected with Arduino
http://arbu00.blogspot.tw/2015/12/esp8266-wifi3-connected-with-arduino.html首先接線方面新增加
從Arduino A0 pin接上土壤濕度感測器的A0 pin
土壤濕度感測器的GND 接到Arduino GND
土壤濕度感測器的VCC接到Arduino +5V
把供應系統的電源5V的電源也接到Arduino nano A7 pin
(這個不是很確定能不能這樣接?有時候好像會有不能連到PC 端USB的問題?)
另外把ESP8266 3.3V的電源也接到Arduino nano A1 pin
順便監控電壓
1.一開始我是用2S 18650 供電,過了一夜沒電之後資料無法再送出了
2.ESP9266電壓掉下去 就Error了.
3.所以我現在找了一個沒在用的手機USB充電器接上家用電源插座,幸運的是
這個是可以輸出最大2A電流的,應該夠用了.
首先將輸出的usb 接頭剪掉留下正極負極兩線,用線接到DC 降壓模組的來源,實際用電表量充
電器輸出的DC 電壓約5.24V,所以也可以直接供給Arduino nano吃電,而ESP8266則是仍然由
LM2596S DC-DC 降壓電源模塊輸出的3.3V供電.這樣就不用擔心沒電了.
5.API KEY是重點,我們必須記下這組key寫到我們的程式裡,這樣ESP8266透過網路才知道要把
data送到thingspeak哪一個頻道,所以這個[Write API Key] 在程式裡必須換成自己申請的.
6.底下綠色框框那行是我們欲送資料給thingspeak頻道的格式
請將XXXXXXXXXXX換成你自己的API KEY
7.因為thingspeak是server端,所以我們將ESP8266設成Client端即可,
底下綠色框框則是送data的指令格式
. 經過我自己的實驗每次送data時都需事先作AT+CIPSTART 的command
也就是藍色框框的code將ESP8266設成Client端.否則會error.
8. build 程式下載後實際執行畫面一開始我們也可以一邊用Arduino 的序列終端機去監控
指令執行得狀態.左邊的圖即是thingspeak的即時資料呈現.
9.從下圖綠色框框可以看出實際送給thingspeak的字串
10.底下在code裡的這一行&field1,&field2,&field3 ,即是對應到我們在thingspeak頻裡口選的三個data欄位 ,而 DATA_BAT0,DATA_0A,DATA_0B 則是我們從Arduino感測到值.
如果要增加資料欄位只要仿照下列格式增加即可.
cmd = GET + "&field1=" + DATA_BAT0 + "&field2=" +DATA_0A+ "&field3=" +DATA_0B +"\r\n";
11.本範例實際在thingspeak的實際running狀況:
http://184.106.153.149/channels/74502
加入阿布拉機的3D列印與機器人的FB粉絲團
https://www.facebook.com/arbu00/
Scan QRcode to join FB Fans.