單元十 : WT+ UART 指令


WT+ 指令集讓 WF8266R 可以做為網路卡的角色, 週邊裝置只需透過 UART 傳送 WT+ 指令即可處理一些網路服務的動作. 例如:取得網頁資料或上傳資料到雲端服務等等.

這個單元將示範 Arduino 如何透過 UART 傳送 WTPOST+ 指令將8組資料上傳到 ThingSpeak.com.


WF8266R 已設定上網時


WT+ 下載網頁內容和 POST 資料示範

 材料和接線


請完成以下接線

  • WF8266R <--> Arduino
  • VCC -- 5V
  • GND -- GND
  • Rx -- Tx(3)
  • Tx -- Rx(4)

要確定 WF8266R 天線的藍燈有亮起, 表示已經連接網路即可. 接下來我們只需要在 Arduino 下達 WT+ 指定即可.


 程式


在這個範例程式中, 需要填入你 ThingSpeak 的 API KEY 直接執行就可以運作了. 我們示範了 WTPOST+ 指令的用法, 這個指令會依您提供的參數將資料透過 POST 方式上傳到指定主機.

例如 ThingSpeak 收資料的網址是 https://api.thingspeak.com/update.json

POST https://api.thingspeak.com/update.json
     api_key=your key
     field1=73

轉換為 WT+ 指令後

WTPOST+HOST:api.thingspeak.com,PORT:80,URI:update.json,DATA:api_key=your key&field1=&field2=&field3=&field4=&field5=&field6=&field7=&field8=

所以只需要透過 wf8266r.println() 就可以傳送到雲端, 同時回應的訊息也會透過 UART 回傳到 Arduino 你可以再做後續的判斷和處理.

ThingSpeak 程式碼 : ArduinoWT.ino

IFTTT 程式碼 : ArduinoWT-IFTTT.ino


 WTCMD+AT


WT+ AT 指令集提供了讓其他設備透過 UART 命令的方式操作 WF8266R, 相關介紹請看以下影片


 Arduino 動態指定連線的 SSID


程式碼 : ArduinoWT_SetWiFi.ino

當你需要動態指定, 也就是由 Arduino 指定連線的 SSID 和 PASSWORD 時, 請參考以下影片示範 :