前言:
這是通識園藝課發表用的,通識作品僅需隨意混養多種植物即可,但因為好玩,我做了水陸自動盆栽,平常是休眠狀態,當偵測到土壤不夠濕,就會先檢查蓄水池水位是否足夠,避免馬達空轉,則自動抽水上去澆。
雖然最後發現Uno在最省電的模式(SLEEP_MODE_PWR_DOWN)下,只省了一半的電(47ma->24ma),9v電池大概只能多用3天。 = =
因為手邊剛好剩uno版就拿來用了,現在想想,好想自己組一臺處理器。
成品:
同樣附上
個人網站
Arduino UNO (R3)
最適合新手,搭配可拆式微處理器ATmega328P,燒壞便能簡單更換。
針腳如下:
我是因為代課老師送我整盒Arduino套裝,學期末乾脆把裡面的材料用一用。
材料
若不是新手,Uno板建議換成其他的,因為根據
這篇的試驗,Uno板即使在Power_Down的省電模式下還是會消耗可觀的電量,一說法是電池輸入的電經過USB模組被部分消耗掉,可解焊掉它的USB模組去避免。
水位偵測器 Water Sensor
Pin腳分別為
- S : 水位訊號,範圍0~1023
- VCC
- GND
因為擔心水位淹到它的晶片時會不會漏電到水裡,或導致短路等等,我這邊多用一個pin腳去控制它的電位(vcc接Digital pin),淹過一定高度就停止供電。
YL-69 土壤濕度檢測器
YL-69土壤濕度感應器由感應板與傳感器組成,傳感器上有電位器調整閥值,由數位針腳輸出0或1。也可以使用類比接口輸出0~1023。
圖源:
YL-69 Soil Moisture Detection Sensor Module - ElectroPeak
AVR板休眠
Sleep模式依照深淺可分為:
- SLEEP_MODE_IDLE
- SLEEP_MODE_ADC
- SLEEP_MODE_PWR_SAVE
- SLEEP_MODE_STANDBY
- SLEEP_MODE_PWR_DOWN
在PWR_DOWN模式下僅能由少數功能喚醒,如watchDog或特定針腳輸入。
首先定義喚醒後的callback,在此禁止寫計算量大的程式,建議四行內結束,否則會打亂watchdog時脈。
呼叫Sleep程式:
sleep_mode執行完後休眠,再次甦醒時先執行callback,再接著從sleep_mode之後執行。
將pin2設定為觸發點,模式有HIGH, LOW, CHANGE三種。
注意CHANGE在短時間內重複觸發可能就會卡死(不會再被觸發),後來我在sleep_mode睡眠與甦醒間插cli與sei去控制是否允許被中斷就改善許多。
實際操作
把土壤感測器拔出土模擬乾燥時,UNO就會甦醒並執行抽水。
排線
電路圖
後記:這大概是我近期內最後(或倒數第二)篇IOT的文章了。
沒有學分壓力後,就嘗試加選了硬體的課,沒想到一玩玩上癮,不過現在才開始學也難免少了技術深度,之後就會回歸AI與Unity的研究,也感謝各位的相陪。