該存儲庫包含用於TFA 30.3161雨量計的替代電路板上運行的固件(有關更多信息,請參見頁面底部的鏈接),該固件將設備轉換為868MHz Lorawan Technology。
測量數據將在設備範圍內傳輸到洛萬門口(即使在城市地區,也可以覆蓋1公里而不會出現任何問題),而功耗確實很低,因此電池可以持續多年。
提供了使用Thethingsnetwork V3和Chirpstack V4測試的JavaScript有效解碼器。

除了組裝的洛拉雨量計板外,還需要以下工具:
主電路板上的處理器是Arduino兼容ATMEL ATMEGA328P。因此,該項目利用了洛拉(Lora)的流行麥基(McCi Arduino LMIC)圖書館。為了簡化彙編和部署,使用了平台工具鏈。
Lorawan實施支持OTAA和ABP。會話數據(例如會話鍵,框架計數器)和降雨計數器值將不時存儲在SPI Fram芯片中。加入網絡後以及發送每個第三個數據包後立即完成。幀比閃存的優點是寫週期的數量要高得多,但是限制它們仍然是一個好主意。
啟動後,設備首先進入睡眠模式。它在定義的時間間隔或按下按鈕後醒來(每分鐘可能一次)。如果沒有有效的會話,它將嘗試先加入。發送數據包時,微控制器會切換回深度睡眠,其中功耗降至僅14μA。通過使用看門狗計時器每秒從電源下降模式喚醒微控制器,可以實現深度睡眠模式的時間安排,從而減小一個計數器變量,該變量包含時間段直到下一個傳輸。
小費桶雨量表產生的脈衝被端口變化中斷捕獲。這是必要的,因為由於深度睡眠模式,微控制器外圍設備的大多數組件(包括計時器/計數器)都是不活動的。中斷會在短時間內喚醒控制器,以增加雨水櫃檯。之後,它將繼續下一個深度睡眠週期。
如果連接了BMP280傳感器,則在變速箱中還包括溫度和氣壓數據。
可以通過下行鏈路消息更新睡眠間隔和降雨計數器。只需將FPORT 1用於間隔,而FPORT 2作為計數器值,兩者都以未簽名的16位整數(MSB First)發送。
該固件使用平台構建系統,該系統將自動處理所有相關的工具鍊和依賴關係。請在Platform.org上關注指南,以安裝Platformio Core(用於控制台操作)或VS Code&Platformio(IDE)。然後克隆此存儲庫,然後更改為正確的目錄。
只需將您的USBASP連接到板上的6針ISP連接器即可。請確保程序員設置為3.3V電壓,因為RFM95W不容忍!之後,只需執行pio run -t bootloader -e m328p_isp (或用於ATMEGA328PB的-e m328pb_isp )即可編程Bootloader和Fusebits。之後,可以通過串行連接輕鬆編程設備。
將文件src/config.h.example複製到src/config.h。然後,請輸入use_otaa或use_abp,在Lorawan服務器上創建一個新設備,並如其中所述填寫config.h中的初始會話數據。您可以在文檔/有效載荷decoder.js中找到所需的有效負載解碼器。
配置所有內容後,將USB串行適配器連接到適當的引腳標頭。然後執行pio run -t upload (為Atmega328pb的添加-e m328pb )來編程固件。
您可能需要使用命令pio device monitor檢查串行控制台是否為日誌消息。電源後將立即加入該網絡。測量值將每15分鐘傳輸一次。
一旦Lorawan激活完成,會話數據將存儲在Fram中並在啟動時恢復。包括config.h的哈希值,以檢測配置更改並使當前會話無效,從而迫使設備重新激活。在插入電池時,也可以通過按下電池艙中的按鈕幾秒鐘來強迫重新激活。
如果發送包裝包,電路板上的LED將點亮。如果OTAA激活失敗,它將眨眼。
https://www.maltepoeggel.de/?site=lora-raingauge
該固件根據MIT許可證的條款發布,有關詳細信息,請參見許可證文件。