本文介紹的是一個基于 Lora 的迷你氣象站,通過 TTN 和 Cayenne LPP 測量溫度、濕度、壓力和風向。
使用此B-L072Z-LRWAN1板與 STM 的 Mems-Sensor Arduino Shield X-NUCLEO-IKS01A1或X-NUCLEO-IKS01A2結合使用,您可以將無線物聯網與溫度、壓力、濕度和磁傳感器等簡單傳感器相結合。該項目使用The Things Network和 Cayenne LPP對演示固件進行了改編,以構建 WindVane 氣象站。
除了 3D 打印機、PCB 演示板和完整的工具集之外,還有一個額外的要求是一些金屬結構硬件,以使其輕松旋轉:一個 28/15 毫米的軸承粘在 20 厘米長的桿(M8 桿)上。
一些顯示 20 公里以上范圍的簡單 Lora 模塊測試:LinkedIn。
1.設置STM工具和固件
訪問 STM 網站并下載LoraWan和STM 開放式開發環境SW4STM32(基于 Eclipse)。
安裝 SW4STM32 (Eclipse) 并可選安裝 LoraWan 軟件 (STM32CubeExpansion_LRWAN_V1.1.0) 到一個新的工作區目錄(不要更改目錄結構的命名)。
從該項目下載新的 End_Node 固件,并在工作空間中添加 LoraWan 項目目錄。(Zip 文件包含完整的項目目錄):
《workspace》\STM32CubeExpansion_LRWAN_VANE1.1.0\Projects\Multi\Applications\LoRa\End_Node\。。.
《workspace》\STM32CubeExpansion_LRWAN_VANE2.1.0\Projects\Multi\Applications\LoRa\End_Node\。。.
啟動.project文件。位置:。。\End_Node\SW4STM32\B-L072Z-LRWAN1\mlm32l07x01\.project。查看 Eclipse 中的代碼
2. 獲取你的 Lora-Board 的設備 EUI
B-L072Z-LRWAN1配備了 Murata 模塊,其中包含 Semtech Lora Radio 和 SMT32L0 MCU。此無線電有一個唯一的設備標識符,稱為 [設備 EUI]。該板出廠時配備了固件,可通過虛擬 Com 端口顯示設備 EUI。因此,通過 USB 連接您的 Loraboard 并打開像 Putty 或 TeraTerminal 這樣的終端(115200 波特率,8 位 1 停止位,noparity,Flowctrl XonXoff)。
如果您沒有找到正確的 COM 端口,請檢查系統上的設備管理器并查找 ST-link Virtual Comport。你會看到這樣的東西:
復制并保存DevEui十六進制代碼,您在 TTN 需要它。AppEui 和 AppKey 也將通過 TTN 獲取。
3. 設置你的 TTN 應用程序和設備
前往TTN并打開或設置您的帳戶。轉到您的控制臺并啟動一個使用OTAA(無線激活)的新應用程序。TTN 將發出一個Application EUI,復制此十六進制代碼。在您的應用程序中創建一個新設備。這需要上一節的 DevEui。TTN 還將生成一個名為Application Key的安全密鑰,因此也復制它。它在您的設備概覽中顯示如下內容:
您可以點擊眼睛圖標使 App Key 可見。同時還可以使用 ‘《》’ 更改十六進制代碼樣式 - 將其復制到 C 代碼中。
4. 定制你的 Lora 應用程序 C 代碼:Comissioning.h
現在要使設備中的固件對 TTN 應用程序唯一,您需要調整 OTAA lora ID 的設置。轉到comissioning.h包含文件,并使用上一節中的 TTN 數據更改LORAWAN_APPLICATION_EUI和LORAWAN_APPLICATION_KEY的十六進制代碼。LORAWAN_DEVICE_EUI由軟件讀取,無需更改。
保存文件并編譯整個項目。進入Debug目錄,將.bin文件復制到臨時驅動器(插入Lora板時ST-link會自動生成外置驅動器,將.bin文件復制到這里)。板上的 ST-link 控制器將刷寫 STM32L0 MCU 并重啟板子。
備注:使用 IKS01A2 版本的 Mems-shield,但這需要一些軟件庫適應,因為它在屏蔽上使用不同的壓力傳感器。從物理上講,它適合相同的外殼/外殼。
5. Lora WindVane 應用程序運行
閃爍后B-L072Z-LRWAN1板復位并開始運行。您可以通過按下黑色重置按鈕來重置電路板手冊。
打開終端連接并觀察控制臺。固件將在開始校準時首先聲明。這是用于磁傳感器計算將操作值轉換為正確方向角所需的最大值-最小值。校準期間,BlueLED 閃爍 10 秒。將電路板放在平坦的位置(XY 平面),然后朝南北方向轉動一下,稍等片刻。10 秒后,它被校準,控制臺顯示 OTAA 活動并給出狀態。
如果您離TTN網關足夠近,則該板將加入,并且您的信息每 10 秒發送一次。這 10 秒用于測試,在實際情況下,您應該將main.c中的APP_TX_DUTYCYCLE更改為 15 分鐘左右的值(值以毫秒為單位設置)。終端監視器會在屏幕上轉儲一些數據的計算值 - 僅用于驗證目的。
如果不想看到這些數據,可以設置定義的編譯器變量:VERBOSE_ENABLED 。
6. TTN 控制臺 - Cayenne LPP 格式
將板子加入 TTN 網絡后,你可以在 TTN 控制臺中看到設備數據(數據部分)。數據以一系列字節的突發形式出現。此信息以Cayenne LPP 格式設置:[channel][type][data]。在 Main.c 中,你可以找到LoraTxData() 實現這一點的函數。
現在你可以在 TTN 中將載荷格式預設為 Cayenne LPP,TTN 會顯示轉換后的數據。它看起來像這樣:
有效載荷被翻譯成可識別的字段。
關于此應用的一些說明: 風向不是常見的 LPP 類型,因此風角通過模擬輸入 5(LPP 通道 5)傳遞。其他信息:
Analog_in_5 是風向角(0 是北,90 東,180 南等)
Analog_in_3 是以 % 為單位的電池狀態
Digital_out_6 是藍色 LED 的狀態(開/關)
gps_4是固定坐標,可以在代碼中修改。
有效載荷字段的其他名稱同名
備注:LPP 信道與 TTN 信道無關,用于與 TTN 網關進行上行和下行通信;可以通過 TTN-Application Channel 2: 01h 或 00h 向 Lora Board 發送下行鏈路信息,以打開或關閉藍色 LED。
7. Cayenne 應用程序和控制臺
要將此信息從 TTN 推送到您的Cayenne 控制臺,必須將 TTN 中的“集成”設置為“Cayenne”,并在您的Cayenne項目中使用設備 EUI :
創建一個項目
選擇“LoRa” -》 The Things Network -》 Cayenne LPP 作為設備:
設置項目后,您可以查看接收到的數據字段,并選擇您希望以何種格式查看控制臺,包括隨時間變化的數據、圖表、儀表等。此外,您應該可以在手機上使用卡宴應用程序。
8. 電池操作
對于電池操作,B-L072Z-LRWAN1板配備了 3xAAA 電池座。為了使電池正常工作,需要關閉板上的 ST-link 控制器并斷開復位連接。通過電池供電不給 ST-link 控制器供電,但復位仍然影響 MCU 復位,因此需要斷開此連接。
這可以通過移除SB37 連接來完成。不過,這不是跳線選項,因此你必須拆下非常小的零歐姆電阻(0603)。SB37 位于電路板的背面。
還需要取下SB18存根,這樣電池就不會被紅色電源 LED 耗盡。
9. 3D 打印外殼
共有三個 3D 打印外殼支持B-L072Z-LRWAN1 + X-NUCLEO-IKS01A1防護罩。
可以在ThingIverse上找到用于打印外殼的 STL 文件。制作了3個版本:
V1 : 前后插針連接的緊殼
V2 : 較大的外殼帶有滑入式邊緣,使其更緊密。
V3 :與V2相同,但進氣口在前,出風口在后。
V3 可以更好地測量濕度和溫度,因為在太陽直射的環境下,外殼會升溫,而在冷卻時,濕氣可能會被鎖在外殼中。
提示:最好使用 ABS 塑料或 Polymaker 的 Pc-Max 等特殊塑料進行打印。為防止連接部件(正面和背面)翹曲,最好的結果是使用筏板和支撐裝置,打印鼻子向下(或底部向下):
評論
查看更多