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