1. 程式人生 > >漏水節點中LoRa低功耗的設計

漏水節點中LoRa低功耗的設計

       通常我們提到低功耗的話都會想到什麼什麼耗電比較少,省電什麼的。事實確實是這樣的,不過低功耗的設計思想在不同的專案中其用法也不一樣。

       最近我有在做一個漏水檢測的專案,這是一個大專案中的子專案,顧名思義,就是用來檢測是否漏水的。那既然用來檢測是否漏水就要把該檢測節點放在水管最容易發生漏水的地方。在這種環境下,裝置節點首要條件就是防水,當然,這不是重點。重點是這種節點需要做的小巧,在硬體電路縮小的基礎上,電池的大小也是一個重要的問題。大家都知道,電池電量的大小一般是與電池的體積成正比的。那麼裝置節點要做的儘可能小,電池自然而然也要變小。這就要求裝置節點要用小電池長時間供電,怎麼說也得能工作一年以上吧。所以就有了低功耗的設計。

        我有大致看過LoRa低功耗的設計,因為專案的需要,我只用到了最簡單的部分。首先說一下微控制器那邊的配置。微控制器在進入休眠之前保留LoRa模組用到的幾個管腳,除此之外會把所有的管腳配置成模擬態,不帶上下拉,以減少耗電。另外,沒有用到的外設也全部關掉,只保留RTC用來做定時喚醒。最後還要有一個管腳配置成外部中斷,用來主動喚醒。LoRa模組跟微控制器是一樣的,對它進行休眠處理時也是關掉所有不相關的功能,在只有判定確實漏水的情況下再去初始化射頻模組來上報漏水資訊,資訊一旦上報完畢,立馬進入射頻休眠模式,之後進入整體休眠。

        文字表達不清楚的話,那我就直接上流程吧。懂的人直接看流程圖就可以了,不懂的再好好想想,我覺得結合例程看更容易理解,前提是你有例程。

還有,圖中射頻休眠應該要放在上報集中器之後的,也就是說我判斷到漏水的話,初始化射頻,就是為了上報資訊,那我上報完畢之後應該時立馬進入休眠的。這樣才更符合設計思想,我只是懶得修改而已。