2021年7月24日 星期六

土壤溼度計...話8

計畫了一段時間的設計,看了makerPro的直播之後,才知道原來市面上已經有類似的設計,而且很便宜,之前事前調查的時候怎麼沒發現呢,只調查道都是零件、模組,沒見到有完成品可賣,現在看到了,link如下

花花草草 

簡單來說就是可以偵測資訊,然後有藍芽傳送,用一個水銀電池就能撐很久的時間,我還用18650電池可能幾個月就算不錯了,人家用水銀電池號稱用一年也真的很厲害,BLE 再厲害也未必能辦到

做東西的初期規劃,除了事前調查有現成品當然比較一下自己做還是買現成的好,做到一半也可以抬頭看看別人做了甚麼,可能人家已經做得很成功了,接下來我們該想想繼續騎虎前進? 還是下車買現成的? 評估常常要比較錢和時間,這樣兩個是最需要考量的,如果花小錢能解決當然最好,如果要畫花大錢,那才評估能省下的時間是否值得,並且,省下的時間真的有它的價值嗎? 例如省下時間之後還會有下一個卡關的事情,那實際上沒省時間,卻花了大錢。

至少,這次看起來可以花小錢就能解決,那就值得啦

2021年7月22日 星期四

土壤溼度計...話7


MCU1的設計是主要的控制,裡面有藍芽所以耗電主力也在這裡,畢竟濕度不用太常更新,前一秒與後一秒的數據不會差太多,所以預設10分鐘讀取一次,讀完順便等待藍芽「被連線」

藍芽在發出連線訊息的時候最耗電,被連線的時候就是廣播模式,只要第一次連線之後,廣播也可以關閉,這樣最省電,直到有APP在旁邊嘗試連線的時候 ,也是十分鐘做預設的溝通單位,靈感來自跨星球的通訊,不是隨時都能通訊,所以要設定好可通訊的時間,然後開啟等待,另一端發送訊號的也在同時間發出,雙方測試在這裡暫定10秒,都連不到就下個十分鐘再嘗試連線,想必時間久了會有不同步的問題,所以每次成功連線都要校正時間一次,避免雙方對於秒數的誤差越來越大。

藍芽連線分兩種情況 ,假設這次開放連線十秒,等時間到都沒連上,那就放棄連線,進入睡眠模式等待下次喚醒事件,用RTC就可以進入最省電的情況,這樣可以讓電池使用時間延長許多

藍芽連線這次有成功,把蒐集到的資料上傳,內部也設定已上傳 ,更新雙方時間、對時,上船目前電量,低電量的時候可以讓APP跳出提示該換電池,然後一樣關閉連線等待下次

每次蒐集資料都會先寫入flash,至少換電池時候還可以保留資料,檢查電池電量要是低電量的時候可以用自身的LED顯示,判斷現在是晚上就可以用LED,白天LED大概是沒甚麼用。雖然LED用來提示低電量是期望有人經過會看到,要是無人經過呢? 那就是增加耗電而已,讓原本低電量變得更快耗光電池。

使用多工作業系統的流程圖如下,實際上還有些細節就不寫了,例如設定的使用、電源的監控...等。



2021年7月14日 星期三

土壤溼度計...話6

 硬體線路設計對於電源控制如圖


 
 

這個應用在室外,不只是風吹雨打,日曬雨淋,重要的是一個吃電池的設計,省電是一件很重要的事情,而且物理現象來說,幾秒的差別,濕度不會有太大的變化,如果有,那就是在拍電影了(好像會有人因此結凍)

省電措施之下,暫定三秒更新一次濕度就夠用了 ,而且這還是在ADC的模組獨自運作下才設計這樣的時間,這是因為有個很重要的前提。

實際上,MCU1平時會關閉MCU2的電源,依照設定值的更新速率,暫定應該會在30分鐘,開啟MCU2電源,透過SPI,取得ADC資料之後就關閉電源。

美好的來說,取得資料,關閉電源,ADC這個模組耗電頂多一秒就結束了,模組不至於運作三秒以上,不正常的情況發生時,取不到資料,才會維持模組電源,模組也只會三秒運作更新一下,等待取走即時資料。這樣設計就是安全的,哪裡發生問題,頂多耗電而已,看到特別耗電時也知道哪裡出了問題。

ADC模組的流程圖如下,簡單的說就是兩件事情,定時蒐集資料、有主人的通知來要馬上回應。其實還有第三個工程模式,可以吐出LOG到USB,方便開發階段看到數值變化。


2021年7月4日 星期日

土壤溼度計..話5

功能大致定義出來之後,就要畫出基本方塊圖,可以知道在細節一點的設計少了那些,或多了甚麼。



 

外觀:
1. 海上鑽油平台當造型: 放在花圃旁邊想是一個固定的東西,後來覺得這個不會動,卻設計一個會隨時在鑽油的造型也不好,預期他能像海上運作一樣,抵擋風吹日曬雨淋,實際上光是期望沒有用,要真的付出設計很多細節,才能真的抵擋現實的殘酷。
2. 石獅子: 做個固定鎮宅的還比較適合,放在花圃還有點嚇阻小昆蟲的功能,大概吧

所以結論應該選類似石獅子的造型,還未定哪種動物

機構:
1. 要做到防水,下雨天不會進水,又不需要做到泡水程度,可能會以屋簷的方式別讓水流進去吧
2. 要做到防紫外線,避免電路或電池過熱,所以會需要透氣,就無法承受泡水的來襲
3. 3D列印是個好幫手,手上就只有PLA,曬太陽不至於會讓PLA融化吧,試試看就知道
4. 不打算在室外充電,所以要做好換電池的方法,可能有電池蓋,或是電池在底座,墊高腳就很方便

電路:
1. 主板會外接三個ADC接到溼度計,回傳的電阻值轉換成數值
2. 三個ADC旋鈕設定提醒的目標,原本考慮這可以用軟體設定好,也不是常常在調整的東西,放個選紐第一次轉完之後就很少會去轉了,但是想到剛開始要常常調整到適合的設定,就會常常要改數值,那用軟體就要常常接線去改,或是用軟體改,還不如實際的觸感,用轉的更有感覺的去調整該提醒的界線在哪裡。而且商品化給其他人調整也是方便
3. 原本一個主板就可以搞定ADC,因為拿到現成的板子無法牽線出來ADC的部分,只好放棄硬體施工,再加一組好施工的做ADC,有藍芽無ADC,有ADC無藍芽,組合兩個優點就是好東西,只是第一版功能試作,要是能進入商品,當然要做成一個就好,那天到來的時候小改一下就行了
4.ADC變成外掛模組之後,電源控制就要有點不同,需要更新ADC的時候才會開電源收集資料,收完之後大部分時間還是關閉模組電源,藉此省電,延長換電池時機,不然在戶外充電很容易充到忘記

韌體:
1.ADC模組化之後,變成多一個溝通介面要做交換資料,所以模組自己要做SPI slave mode,等待主板收集資料,完成之後等繼續更新ADC,等下次通知
2.正常應該主板多數時間會切斷電源,所以更新資料再有電的時候盡量做,SPI 要來更新資料一定要跟上交換資訊正確性,然後就等著被斷電,這個模組的省電機制就不用想太多,及時行樂
3.主板依照設定時間大概30分鐘更新一次ADC數值,等待藍芽連線幾秒,有APP來溝通就回傳資料,沒溝通就將剛才的資料寫入flash,然後睡覺,直到RTC下次叫醒的時間到來
4.與APP的溝通要附上電池電量資訊,USER可以知道電池何時需要充電,可以提前準備換電池,不一定要等到提示燈亮起的時候才去換。也可以知道電池每次用量大概會多久,理論上應該能一個月以上換一次才對。

圖片來源

2021年7月1日 星期四

土壤溼度計..話4

  規格列出來之後,發現接收提醒的方式,如果再做一個接收器,變成多一個裝置要做,也帶鰾要多一個電池充電,少一個沒電就沒收到提醒,然後土壤又乾燥了,這樣子不好。

用現代人最常用的手機當作接收器吧,手機萬能,裡面甚麼硬體都有,軟體也傳遍遍,只要做APP就能成為提醒氣之一,現在甚麼都要軟體化,網路可以軟體定義、接收器也來軟體定義。

那接著就可以定義接收器用手機APP的藍芽功能,又不想太耗電,可以半小時左右發一次訊號連線,更新一下目前狀態就沒事了,這樣在外面的偵測器要是沒電也可以提醒一下,通知主人記得換電池,主人不再家通知也沒用,在家了手機發現失聯了也可以通知主人查看一下,這樣植物照顧比那些賣便宜棒棒的聰明多了吧

這個可以叫做,好棒棒~