2021年7月22日 星期四

土壤溼度計...話7


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

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

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

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

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

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



沒有留言:

張貼留言