使用低功耗物聯(lián)網(wǎng)傳感器實(shí)時(shí)監(jiān)測(cè)環(huán)境條件和紫外線輻射,并通過LoRaWAN向Th傳輸數(shù)據(jù)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
目的:
?實(shí)時(shí)監(jiān)測(cè)關(guān)鍵環(huán)境參數(shù),如溫度、濕度、大氣壓、VOC氣體、空氣顆粒物(PM2.5、PM10)、紫外線強(qiáng)度、降雨檢測(cè)等。
?使用LoRaWAN技術(shù),通過物聯(lián)網(wǎng)(TTN)進(jìn)行管理,遠(yuǎn)距離無線傳輸數(shù)據(jù)。
?在OLED屏幕上顯示本地?cái)?shù)據(jù),以便快速讀取。
?將數(shù)據(jù)發(fā)送到云平臺(tái)(與TTN集成)進(jìn)行存儲(chǔ)、歷史分析和遠(yuǎn)程可視化。
?了解與TTN集成多個(gè)傳感器和端到端LoRaWAN通信。
所需材料和軟件:
硬件:
?WISBLOCK基地:RAK1907基地板輪緣Gen
?WISBLOCK核心:RAK4631北歐NRF52840(集成LoRaWAN
?WISBLOCK傳感器:
?RAK12030雨水傳感器
?RAK12019 LTR-390UV-01紫外光傳感器。
?WISBLOCK雜項(xiàng):
?RAK1921 OLED顯示屏
?其他組件/配件:
?RAK7268V2 WisGate Edge Lite 2 (LoRaWAN網(wǎng)關(guān))
?電池連接器電纜
?太陽能電池板連接器
?太陽能電池板
?螺絲刀
?防水外殼(可選,但強(qiáng)烈建議戶外部署)
軟件:
?Arduino IDE或PlatformIO
?用于RAK模塊的Arduino庫(例如RAKwireless_RAK4631_BSP)和特定傳感器庫(例如Adafruit_BME680, SparkFun_PMSA003I_Arduino_Library, Adafruit_SSD1306, Adafruit_GFX)。
?RAK7268V2網(wǎng)關(guān)固件和配置軟件(web界面)。
?TTN (The Things Network)帳戶。
?云物聯(lián)網(wǎng)平臺(tái)(例如,Ubidots, Grafana cloud)上的帳戶,用于與TTN集成。
?預(yù)計(jì)耗時(shí):8-12小時(shí)(包括裝配、編程、搭建LoRaWAN網(wǎng)絡(luò)、配置云平臺(tái))。
學(xué)習(xí)成果:
?能夠組裝和配置模塊化WISBLOCK組件。
?能夠編程微控制器,用于讀取和處理來自多個(gè)傳感器的數(shù)據(jù)。
?深入了解LoRaWAN通信,包括設(shè)備激活(OTAA/ABP)和物聯(lián)網(wǎng)的有效載荷格式。
?具有在TTN中配置和管理LoRaWAN網(wǎng)關(guān)的經(jīng)驗(yàn)。
?了解將來自TTN的物聯(lián)網(wǎng)數(shù)據(jù)與云平臺(tái)集成以實(shí)現(xiàn)可視化、分析和警報(bào)設(shè)置。
?開發(fā)功能完備的自主環(huán)境監(jiān)測(cè)系統(tǒng)。
設(shè)置和實(shí)現(xiàn)步驟:
?硬件組裝:將RAK4631 (Core)模塊連接到RAK1907 (Base)模塊。將傳感器(BME680, UV, Rain, particle)和OLED顯示器連接到RAK1907的相應(yīng)I2C/模擬/數(shù)字端口。連接電池電纜和太陽能電池板供電。
?開發(fā)環(huán)境設(shè)置:安裝Arduino IDE或PlatformIO,并添加對(duì)RAK4631板的支持。為每個(gè)傳感器和OLED安裝必要的庫。
?TTN中的網(wǎng)關(guān)配置(RAK7268V2):將網(wǎng)關(guān)連接到網(wǎng)絡(luò)(以太網(wǎng)或Wi-Fi)。訪問其web界面并配置為使用Semtech數(shù)據(jù)包轉(zhuǎn)發(fā)器或基本站協(xié)議連接到物聯(lián)網(wǎng)。在您的TTN帳戶中注冊(cè)網(wǎng)關(guān)。
?設(shè)備(RAK4631節(jié)點(diǎn))在TTN中的配置:在您的The Things Network帳戶中創(chuàng)建應(yīng)用程序并注冊(cè)新設(shè)備。選擇OTAA (Over-the-Air Activation)作為激活類型。請(qǐng)記下TTN提供的DevEUI、AppEUI(或JoinEUI)和AppKey。這些將在節(jié)點(diǎn)的Arduino代碼中需要。
節(jié)點(diǎn)編程(RAK4631):
?編寫代碼初始化每個(gè)傳感器并讀取其數(shù)據(jù)。
?實(shí)現(xiàn)在OLED顯示器上顯示關(guān)鍵數(shù)據(jù)的邏輯。
?使用TTN憑證將RAK4631配置為L(zhǎng)oRaWAN節(jié)點(diǎn)。
?將傳感器數(shù)據(jù)封裝為L(zhǎng)oRaWAN的有效格式(建議使用Cayenne LPP,因?yàn)樗子谑褂?,并且可以在TTN中自動(dòng)解碼,或者使用自定義二進(jìn)制格式以進(jìn)行更多控制)。
?實(shí)現(xiàn)周期性數(shù)據(jù)傳輸周期和低功耗模式(深度睡眠),以優(yōu)化電池壽命。
?TTN中的有效載荷解碼器配置:如果您使用卡宴LPP, TTN將自動(dòng)解碼。如果使用自定義二進(jìn)制格式,則需要在TTN控制臺(tái)中用JavaScript編寫有效負(fù)載格式化程序(解碼器),以將接收到的字節(jié)轉(zhuǎn)換為可讀值。
?TTN與云物聯(lián)網(wǎng)平臺(tái)集成:在TTN控制臺(tái)中,配置集成(例如,webhook或MQTT)將解碼的數(shù)據(jù)發(fā)送到云物聯(lián)網(wǎng)平臺(tái)(例如,Ubidots, Grafana Cloud)。
?云物聯(lián)網(wǎng)平臺(tái)配置(Ubidots/Grafana):創(chuàng)建儀表板,使用圖表、儀表和表格實(shí)時(shí)可視化傳感器數(shù)據(jù)。設(shè)置基于閾值的警報(bào)規(guī)則(例如,高顆粒物水平,大雨,極端溫度)。
?測(cè)試和校準(zhǔn):執(zhí)行現(xiàn)場(chǎng)測(cè)試以驗(yàn)證數(shù)據(jù)傳輸,LoRaWAN范圍和傳感器讀取精度。根據(jù)需要調(diào)整警報(bào)閾值。
挑戰(zhàn)和故障排除提示:
?LoRaWAN連接問題:確保網(wǎng)關(guān)在節(jié)點(diǎn)的范圍內(nèi),并且LoRaWAN憑據(jù)(DevEUI, AppEUI, AppKey)在節(jié)點(diǎn)和the Things Network控制臺(tái)上都是正確和匹配的。驗(yàn)證頻率和信道計(jì)劃(例如,EU868)。確保網(wǎng)關(guān)在TTN中已連接并處于活動(dòng)狀態(tài)。
?功耗:頻繁的傳感器讀數(shù)和OLED使用會(huì)增加功耗。優(yōu)化低功耗代碼(讀取/傳輸之間的微控制器睡眠模式),以最大限度地延長(zhǎng)電池壽命,特別是與太陽能電池板??紤]在不需要時(shí)禁用OLED。
?TTN中的有效載荷解碼:確保the Things Network中的有效載荷格式化程序正確解碼節(jié)點(diǎn)發(fā)送的二進(jìn)制數(shù)據(jù)。使用TTN控制臺(tái)中“實(shí)時(shí)數(shù)據(jù)”工具查看原始有效負(fù)載,并將其與預(yù)期格式進(jìn)行比較。
?傳感器精度:一些傳感器可能需要校準(zhǔn)或補(bǔ)償環(huán)境因素(例如,用于VOCs的BME680)??紤]傳感器的位置,以避免偏差讀數(shù)(例如,雨傳感器在懸垂)。
?干擾:網(wǎng)關(guān)和節(jié)點(diǎn)應(yīng)遠(yuǎn)離可能影響LoRaWAN通信的電磁干擾源。
本文編譯自hackster.io