
該示例顯示瞭如何使用AVR64DD32來創建一個洛萬末端節點,該節點可以監視溫度,濕度,氣壓壓力以及土壤水分以及通過事物網絡(TTN)向應用程序進行每三分鐘數據進行數據傳輸。該節點可以放置在城市環境中洛萬門口十米至五公里之間的任何位置,但該範圍對於郊區的位置較寬。該設計表明,即使在遠距離的端節點也可以配置為消耗非常低的電池/電池壽命,同時可以安全地移動有價值的數據。可以輕鬆縮放此設計,以通過在農業地塊中放置其他節點來捕獲土壤變異性數據,而無需添加其他網關或基礎設施。
該演示使用RN2903A模塊,該模塊可在915 MHz頻帶上運行,適合我們和澳大利亞的項目,但是通過選擇您所在地區的備用點擊板™和網關,該項目很容易適應其他區域的工作。
將組件添加到納米適配器板中。
將LR2單擊在Mikrobus™2上,然後在Mikrobus 1上單擊天氣。
如圖1所示,連接水分傳感器導線。
最後,在(PA1)和PD1之間添加跳線,以重置LR2單擊。 (PA1)默認情況下不連接(因為它已經連接到外部時鐘),因此,此項目使PD1 PIN可以驅動重置信號。
| 跳線 | 別針 |
|---|---|
| VCC-水分傳感器的紅線 | VCC |
| GND-水分傳感器的黑線 | gnd |
| AOUT-水分傳感器的黃線 | PD2 |
| (PA1) - 在之間放置跳線 | PD1 |

圖1。硬件設置

圖2。在Mplab x中打開項目
項目打開後,首先要校準傳感器。
要校準水分傳感器,請打開application.c文件,然後將初始狀態更改為TEST_MOISTURE 。

圖3。將初始狀態設置為test_moisture
後來,這些設置可以針對您的土壤和植物需求進行特定,但是從乾燥空氣中和一杯水中測試,從上和下界開始,以進行測量。
將傳感器放置在乾燥空氣中。

圖4。位於乾空氣中的傳感器
通過以下設置啟動數據可視化器:
波特率:9600
字符長度:8位
奇偶校驗:無
停車位:1
單擊“發送到終端”,然後對設備進行製作和編程。

圖5。數據可視化器發送到終端

圖6。製作和編程設備
程序啟動後,將提示您按下按鈕以生成模數轉換器(ADC)讀取。用傳感器在乾燥空氣中按下幾次按鈕,然後將傳感器放置一杯水,然後按下幾次按鈕。
圖7顯示了兩個讀數。收集乾燥空氣樣品時,ADC讀數接近3000。在收集水樣品時,讀數接近1400。

圖7。幹空氣中的ADC值和一杯水
注意您的結果並打開application.h文件。使用您的結果替換IN_MAX和IN_MIN的定義,然後使用這些值使用顯示的公式來計算轉換CONVERSION_PERCENT 。

圖8。土壤水分定義
只需要一個小的更改才能校準天氣點擊;其餘的在軟件中得到照顧。為了有準確的壓力讀數,該設備需要使用當前海拔以上的海拔高度。在bme.h文件的第24行中輸入此值。

圖9。天氣點擊的高程
接下來,設置項目的TTN側。
如果您還沒有這樣做,請與TTN設置一個帳戶;社區版是免費的。該帳戶設置的開始是從選擇區域群集開始,請單擊此處以開始。
設置帳戶後,導航到您的控制台,然後單擊“到應用程序” 。

圖10。應用程序設置
單擊創建應用程序按鈕,然後按照說明創建應用程序。

圖11。創建應用程序
單擊有效載荷格式器,然後在上行鏈路上。

圖12。應用上行鏈路有效載荷格式格式
在設置格式化類型*下,選擇自定義JavaScript格式化。

圖13。選擇自定義JavaScript格式化
用以下片段替換默認decodeUplink函數:
function decodeUplink ( input ) {
var data = { } ;
data . temp = input . bytes [ 0 ] ;
data . humidity = input . bytes [ 1 ] ;
data . moisture = input . bytes [ 2 ] ;
data . pressure = ( input . bytes [ 3 ] + 900 ) ;
return {
data : data
} ;
}圖14。解碼上行鏈路代碼段
單擊保存並返回概述頁面。
在“應用程序概述”頁面中,單擊“註冊結束設備”按鈕。

圖15。註冊OTAA的終端設備
要註冊設備,需要一些來自模塊的詳細信息。再次打開application.c文件,然後更改要註冊的狀態。

圖16。更改要註冊的狀態
啟動數據可視化器,然後再次構建和編程設備。程序運行後,複製HWEUI並註意Lorawan規格。

圖17。數據可視化器中的最終設備詳細信息
返回TTN上的“寄存器最終設備”窗口,然後手動選擇Enter Enter設備詳細信息。根據您的位置選擇您的頻率計劃,然後選擇Lorawan規範。在“供應信息”部分中,輸入joineui字段的所有零,然後單擊確認。

圖18。註冊新設備
粘貼您先前複製到DEVEUI字段的HWEUI,然後單擊生成以生成新的AppKey。

圖19。生成一個新的應用程序
現在創建了最終設備,需要具有有效負載格式化器。
設置格式化器的最快方法是使用粘貼應用程序格式化按鈕。單擊“有效載荷格式化”按鈕,然後選擇“自定義JavaScript格式化”選項,然後按粘貼應用程序格式。

圖20。粘貼申請格式
在TTN上,打開End設備概述頁面,有兩個字段要復制並粘貼到該項目的RN2XX3標頭文件中。單擊DEVEUI並將其粘貼到RN2xx3.h定義中的HWEUI字段中。複製AppKey字段並將其粘貼到AppKey定義中。

圖21。將DEVEUI和APPKEY複製到剪貼板

圖22。更新HWEUI和APPKEY定義
此示例假設您在您附近有公共TTN網關,或者您自己設置了一個網關。如果遇到問題,擁有自己的網關對於故障排除非常有幫助。如果您想設置自己的網關,可以在:Hackster Project和Rak Developer Gateway上找到兩個有用的指南。
一旦您可以訪問網關,請再次打開application.c文件。

圖23。更改回初始化
再次啟動數據可視化器,然後重新編程設備。

圖24。開始數據可視化器
當應用程序啟動時,將初始化模塊。按按鈕開始加入TTN過程。
設置通道頻率計劃將需要大約十秒鐘才能完成。之後,如果接受加入請求,則該設備將發送其第一個有效載荷。如果設備不連接,將提供一些建議。常見的問題太接近門戶,不正確的鍵,或者門戶可能暫時斷開連接。通常,您應該看到圖25中的輸出。

圖25。接受加入請求時輸出
對於此項目,節點每三分鐘發送新數據。每天一次,它將數據作為確認的有效載荷發送,就像第一次傳輸中一樣。已確認的消息需要網絡的確認,但也需要在網關上消耗通話時間,並為節點延長電池壽命。因此,接下來的479條消息每天以未經證實的消息發送。
該項目在端口10上發送了所有已確認的消息,並在端口11上發送未確認的消息。您可以在下面的圖26中看到應用程序實時數據窗口,即加入並發送了初始確認的消息後,該節點隨後每三分鐘將未確認的消息發送到應用程序。

圖26。端口10上的已確認消息和端口11上未經證實的消息
此示例顯示瞭如何使用Mikroe LR2 Click,Mikroe Weather Click和一個土壤水分傳感器使用AVR64DD32建立Lorawan端節點,以使用低功率在遠距離的土壤條件下共享土壤條件。