前言
本篇將延續上一篇[Blynk IoT 物聯網服務結合 Wio Terminal 開發板:建立裝置、設定儀表板、測試連線],進一步說明如何使用Blynk IoT 物聯網服務控制 Wio Terminal 沉水馬達,這相當於透過雲服務來達到跨網段控制裝置的效果。
材料清單
智慧植栽套件材料清單如下,其中 5 6 項會在下一篇範例登場,本篇先用不到,在此先列出。智慧植栽嘛,一定要有相關感測器,當然也希望能透過雲服務來監控植栽的狀況囉!
- Wio Terminal 開發板
- 繼電器或MOSFET模組
- 被實驗的盆裁跟水源
- 抽水馬達及對應的電源
- 土壤濕度感測器(建議買防水的,如果你只打算用一次,就準備便宜的就好)
- 溫溼度感測器(DHT11、20、22)都可以,本範例使用DHT20
示意圖如下,請注意土壤溼度感測器因為拍照關係所以拉比較高,實際使用時請插入到上下箭頭區間之間的位置。
情境說明
本文包含兩個範例
- 土壤溼度感測器控制沉水馬達
- Blynk 雲服務控制沉水馬達
使用設備如下,您可以依照方便選用相容的裝置,但如果不想修改程式的話,開發板還是選 Wio terminal 最快囉。
Wio Terminal
請參考本文完成 Wio Terminal 的相關設定,您需要下載 Arduino 1.8 並安裝 Wio Terminal 完成,也歡迎參考阿吉老師(就是我)所錄製的 Wio terminal tinyML 影片,使用光感測器搭配 Edge Impulse 網站來完成手勢辨識專案,很好玩。
Dfrobot 土壤溼度感測器
Gravity: 類比式防水電容式土壤濕度感測器,使用時請將金屬片插入土壤到上下箭頭區間內。
根據產品頁面說明,土壤乾燥的數值: (570, 380) / 濕潤: (380, 190)/ 非常濕: (190, 0)。唯實際數值可能根據現實狀況(土質、馬達種類與您使用的植栽)而有不同。
Seeed MOSFET 控制模組與沉水馬達
以本範例來說,MOSEFET 模組的 Vin 不需要外接電源也可以順利驅動沉水馬達,請把馬達的紅黑線分別接到 MOSFET 模組的正負螺絲端子即可,請務必做好防水,操作上還蠻容易有水噴濺出來的。沉水馬達顧名思義,使用時須放在水中,否則空轉很容易燒毀。產品wiki請參考
Blynk web dashboard 設定
請根據以下資訊來完成 Blynk dashbaord 與相關 widget 設定,我們也整理出了彼此之間的關係,熟悉之後您可以自行改用。當然也可以課金解鎖(標註有 UPGRADE 的 wdiget 就須付費)更多功能啦!
Datastream – 虛擬腳位 – 實體裝置(Wio terminal 腳位) – dashboard widget 的關係說明如下:
指定虛擬腳位時請注意,虛擬腳位編號不重要也不需要與實體腳位編號對應,但須注意不可重複。由下圖可知即便溫度濕度來自同一個感測器,但還是要分別為溫度與濕度各自指定一個虛擬腳位,後續才能分別對應到獨立的 widget。
- switch – V2 – MOSFET (右側 Grove port) – Switch
- soil_moisture – V5 – 土壤溼度感測器(A2 類比輸入腳位) – Gauge 與 Label (多個 widget 取得同一筆資料來源是可以的)
- temperture – V6 – DHT20感測器的溫度(左側 Grove port) – Gauge
- humidity – V7 – DHT20感測器的溼度(左側 Grove port) – Gauge
有一個 slider 新增了但是沒用到,忽略即可。
範例1 土壤溼度感測器控制沉水馬達
執行時請確認土壤溼度感測器往下插到正確的位置(上下箭頭之間)、相關電路防水都做好了,水管不會亂噴等等,再上傳程式。這個程式很簡單,就是根據土壤濕度(類比讀取)來控制 MOSFET模組,進而做到控制沉水馬達。請根據實際狀況(土質、馬達種類與您使用的植栽)來調整相關數值。
注意,不要為了測試就瘋狂澆水,植物會受不了的喔!
程式碼如下
範例2 Blynk 雲服務控制沉水馬達
相關注意事項如上,執行之後,您可以看到 Blynk dashboard 顯示您的裝置為 [online],這時候就可以按下 switch 控制馬達來澆水了,很酷吧!
程式碼如下