Try   HackMD

新人資訊

技術-開發板 #6-監測後需要動作回饋,加上繼電器和水泵

上一回已經完成土壤的水濕度檢測,並每小時傳回雲端,顯示成 Web 圖表。觀察幾天後發現量測數值很低,從澆水時的 200 左右,兩三天後很快就歸零而量不到數值,但我目測的土壤其實還不太乾,因此有點困擾。後來實驗過程中無意中把 sensor 的供電,從 5 V 的接腳改到 3.3 V 的,突然發現數值變大,這是好事,因為敏感度變好。如下圖從澆水時的 350 經過 5 天也還有超過 100,因此決定以後土壤濕度 sensor 就接 3.3 V。

如果系統只會這樣一直收數據,那就太無聊了!因此在想如何把澆水動作也串進去,實現全自動化的流程。經查需要的零件也很簡單,就是一個繼電器和小小的水泵。繼電器用來控制外部電器 (在此例中就是水泵) 的開關,水泵直接丟入水桶中用來吸水,當然還需要一小段水管。

繼電器其實就是一個由 Arduino 來控制的開關,本身也需要 5 V 的電源;水泵需要 5 V,加上感測器需要另一個 3.3 V,那挑戰來了,這三樣電器能不能全部由 主板供電?因為我實在不想要再多拉一條電源線!經過一些摸索測試後就成功了,已經充分把可用的電源接腳都派上用場了,如下圖。

寫程式叫繼電器接通 5 秒鐘,這超簡單的,只要一行 digitalWrite() 將高電壓寫入數位 pin (此例為 D7),delay 5 秒後改回低電壓,這樣就完成了。

為了測試方便我在 setup() 最後一行執行一次 serveWater(),之後每小時取得 sensor 數值檢查是否 < 100,若是則呼叫一次 serveWater()。以下影片開頭我按了一次 reset 鍵,開機完成後繼電器啟動吸水五秒,效果還不錯呢。這樣完成自動化控制流程,可以永遠不用人工澆水,出差幾天或全家出遊再久都不用擔心家裏的盆栽了!還可雲端監控澆水狀況。

https://youtu.be/vEY2lHk_dOs

只是想到怎樣複製出第二套第三套出來,這樣散落的零件和混亂的接線一定是不行的,該怎樣把它們固定在一個小盒子裡,把電線焊接穩固,這對我這個完全沒有機構設計經驗的人還真難!而在軟體方面,目前是把家中 wifi ssid and pwd 寫死在程式裏,換一個地點就不行了,這問題也得解決。另外若在沒有連網的環境中該如何管理?是否可以把 Arduino 當作基地台架出封閉型網路,本身運行小型的 Web Server 讓手機或電腦透過 wifi 連線使用?經查這些方案都是可行的,就慢慢做下去吧。

By Newman Chen 2022/4/26