前往
大廳
主題

[IOT] 自動澆水檢測盆栽 + Uno 休眠模式

%%鼠 拒收病婿 | 2023-01-06 00:06:51 | 巴幣 2166 | 人氣 650

前言:

這是通識園藝課發表用的,通識作品僅需隨意混養多種植物即可,但因為好玩,我做了水陸自動盆栽,平常是休眠狀態,當偵測到土壤不夠濕,就會先檢查蓄水池水位是否足夠,避免馬達空轉,則自動抽水上去澆。

雖然最後發現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板休眠

Arduino 官方有Low Power Library的介紹,但那是給MKR板用的。 Uno使用AVR板,需使用的是avr sleep與power函式庫。


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的研究,也感謝各位的相陪。


送禮物贊助創作者 !
0
留言

創作回應

多古尼爾拉布拉布拉格
好佬ㄛ什麼都會
2023-01-06 00:24:11
%%鼠 拒收病婿
並沒有
2023-01-06 21:01:00
吼搭啦
哈 當時因為不會這方面的東西,所以直接用聯通管的方式補水,看來可以試試看版主的做法
2023-01-06 00:24:44
%%鼠 拒收病婿
聯通管也是好方法[e5]
2023-01-06 21:01:29
御安鴨·摸頭害鴨哭
我好想要一個,我常忘記澆水,這樣我的植物就有救了
2023-01-06 02:27:53
%%鼠 拒收病婿
植物殺手+1,機器都比我會照顧

之後也會想做個像minecraft的自動梯田(?
2023-01-06 21:02:21
M•三尾喵·噗噗·Anita
好厲害的設計,之前看我媽媽在田裡都是手動澆水,不知道有沒有能澆一整排的那種設計?
2023-02-03 17:11:05
%%鼠 拒收病婿
盆栽設計成梯形的應該就可以(?
2023-02-16 21:56:14
追蹤 創作集

作者相關創作

更多創作