熊永昌,李樹(shù)平,徐龍躍,馮駿
摘要:設(shè)計(jì)一種基于LoraWan的農(nóng)田氣象監(jiān)測(cè)系統(tǒng).系統(tǒng)可以大范圍實(shí)現(xiàn)農(nóng)田氣象監(jiān)測(cè),其設(shè)備端由嵌入式微處理器與SX1278實(shí)現(xiàn)LoraWan網(wǎng)絡(luò)搭建,網(wǎng)關(guān)端采用HT-M00雙通道,云端使用LoraWan騰訊云解決方案,進(jìn)一步降低了功耗和低成本,具有一定的理論與實(shí)踐意義.
關(guān)鍵詞:LoraWan技術(shù);嵌入式微處理器;騰訊云;RT-Thread
[中圖分類(lèi)號(hào)]TP23[文獻(xiàn)標(biāo)志碼]A
Research on Farmland Meteorological Monitoring
System Based on LoraWan
XIONG? Yongchang,LI Shuping,XU Longyue,F(xiàn)ENG Jun
(School of Physics and Electronic Engineering,Mudanjiang Normal University,Mudanjiang 157000,China)
Abstract:A farmland weather monitoring system based on LoraWan is proposed.The system can implement a large-scale farmland weather monitoring system.The device end is built by an embedded microprocessor and SX1278 to achieve a LoraWan network.The gateway end uses HT-M00 dual-channel,and the cloud uses LoraWan Tencent cloud solutions to further reduce power consumption and low cost.Has certain theoretical and practical significance.
Key words:LoraWan technology;embedded microprocessor;Tencent Cloud;RT-Thread
物聯(lián)網(wǎng)系統(tǒng)被應(yīng)用于各種領(lǐng)域.LoraWan方案作為一種簡(jiǎn)單、可實(shí)現(xiàn)遠(yuǎn)距離、低功耗的無(wú)線電通信手段應(yīng)用于工業(yè)、科學(xué)、醫(yī)學(xué)等行業(yè).[1]LoraWan無(wú)線通信協(xié)議是相當(dāng)簡(jiǎn)單的星型或星型對(duì)星型拓?fù)浣Y(jié)構(gòu),基于星形拓?fù)涞腖oraWan網(wǎng)絡(luò)避免了多跳帶來(lái)的數(shù)據(jù)冗余和能耗損失,星型拓?fù)浣Y(jié)構(gòu)的網(wǎng)關(guān)將數(shù)據(jù)上報(bào)給服務(wù)器,子節(jié)點(diǎn)將數(shù)據(jù)上報(bào)給多個(gè)網(wǎng)關(guān),在網(wǎng)絡(luò)服務(wù)器上執(zhí)行冗余監(jiān)測(cè)和安全檢查及信息調(diào)度.[2]LoraWan系統(tǒng)的一般網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)分為四個(gè)部分,第一部分是終端設(shè)備節(jié)點(diǎn)部分,一般在物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備節(jié)點(diǎn)安裝有各類(lèi)傳感器等數(shù)據(jù)收集裝置,設(shè)備端運(yùn)行RTC及LoraWan協(xié)議棧進(jìn)行LoraWan通信.第二部分為L(zhǎng)oraWan網(wǎng)關(guān)設(shè)備,工業(yè)領(lǐng)域使用八通道接收一通道下發(fā)的網(wǎng)關(guān)設(shè)備,最大可接納終端設(shè)備可達(dá)萬(wàn)以上.網(wǎng)關(guān)設(shè)備不僅需要運(yùn)行LoraWan協(xié)議棧,還要運(yùn)行TCP/IP協(xié)議棧、MQTT和HTTP協(xié)議.第三部分為云端部分或服務(wù)器部分,主要負(fù)責(zé)接收來(lái)自LoraWan網(wǎng)關(guān)的數(shù)據(jù),同時(shí)下發(fā)數(shù)據(jù).開(kāi)發(fā)者可以在云平臺(tái)上注冊(cè)網(wǎng)關(guān)設(shè)備與終端設(shè)備進(jìn)行數(shù)據(jù)接收與轉(zhuǎn)發(fā).第四部分為用戶端,用戶端不依賴具體平臺(tái),只要訪問(wèn)服務(wù)器即可獲取來(lái)自各個(gè)終端的數(shù)據(jù).本文提出一種基于LoraWan技術(shù)的大范圍農(nóng)田氣象監(jiān)測(cè)系統(tǒng).系統(tǒng)設(shè)備端由嵌入式微處理器與SX1278實(shí)現(xiàn)LoraWan網(wǎng)絡(luò)搭建,系統(tǒng)搭載可裁剪風(fēng)向風(fēng)速傳感器、雨量計(jì)、溫濕度計(jì)、土壤濕度計(jì)等氣象傳感器,網(wǎng)關(guān)端采用HT-M00雙通道低成本網(wǎng)關(guān)解決方案,云端使用LoraWan騰訊云解決方案.[3]
1系統(tǒng)的硬件結(jié)構(gòu)
農(nóng)田氣象監(jiān)測(cè)系統(tǒng)的系統(tǒng)結(jié)構(gòu)可劃分為四個(gè)部分:第一部分為L(zhǎng)ora的終端設(shè)備,負(fù)責(zé)采集環(huán)境的監(jiān)測(cè)數(shù)據(jù),進(jìn)行數(shù)據(jù)的簡(jiǎn)單處理與存儲(chǔ),上報(bào)給LoraWan網(wǎng)關(guān).第二部分為L(zhǎng)oraWan網(wǎng)關(guān),負(fù)責(zé)接收來(lái)自終端數(shù)據(jù)的上行信息,經(jīng)過(guò)處理后上報(bào)給服務(wù)器.第三部分為云端部分或服務(wù)器部分,主要負(fù)責(zé)接收來(lái)自LoraWan網(wǎng)關(guān)的數(shù)據(jù),同時(shí)下發(fā)數(shù)據(jù).第四個(gè)部分為用戶端,通過(guò)訪問(wèn)服務(wù)器獲得終端的數(shù)據(jù)并進(jìn)行下一步處理.
1.1終端設(shè)備
終端設(shè)備包含控制器、傳感器和射頻設(shè)備.設(shè)備采用STM32L4微處理器,使用MAX485芯片,集成MODBUS等工業(yè)傳感器通信協(xié)議總線接口、信息采集傳感器接口,通過(guò)SX1278擴(kuò)頻通信芯片實(shí)現(xiàn)Lora數(shù)據(jù)傳輸.傳感器有風(fēng)速計(jì)、風(fēng)向計(jì)、雨量計(jì)、溫度計(jì)、濕度計(jì)、光強(qiáng)計(jì)等多種可裁剪傳感器.SMT32L4微控制器擁有出色的低功耗解決方案,提供動(dòng)態(tài)電壓調(diào)節(jié)平衡功耗和處理需求,擁有低功耗的LP UART,LP TIMER等眾多外設(shè)和一些高級(jí)低功耗模擬外設(shè).SX1278是一個(gè)半雙工的低中頻無(wú)線數(shù)據(jù)收發(fā)器,當(dāng)SX1278接收射頻信號(hào)時(shí),信號(hào)經(jīng)過(guò)低噪聲放大器LNA將信號(hào)轉(zhuǎn)變?yōu)椴罘中盘?hào),中頻輸出正相交信號(hào),模擬轉(zhuǎn)數(shù)字進(jìn)行下一步處理.SX1278包含兩個(gè)時(shí)鐘基準(zhǔn),一個(gè)為RC振蕩器,另一個(gè)為32 mHz晶振時(shí)鐘,通過(guò)標(biāo)準(zhǔn)的SPI接口與微處理器進(jìn)行數(shù)據(jù)通信.MX485是一種標(biāo)準(zhǔn)RS-485總線協(xié)議芯片,是一種半雙工、低功耗的數(shù)據(jù)收發(fā)器,通常采用+5 V單電源工作,額定電流約300微安,使用RO和IO端進(jìn)行數(shù)據(jù)發(fā)送和接收,RE和DE端分別控制接收使能和發(fā)送使能.當(dāng)RE為邏輯電平低時(shí),RS-485設(shè)備工作在數(shù)據(jù)接收狀態(tài);當(dāng)DE為邏輯電平高時(shí),RS-485設(shè)備工作在數(shù)據(jù)發(fā)送狀態(tài),匹配100歐姆的阻抗.
光碼盤(pán)通過(guò)光電轉(zhuǎn)化把位移量轉(zhuǎn)換為數(shù)字量,用以測(cè)定設(shè)備的轉(zhuǎn)速.風(fēng)向計(jì)八方位的干簧管測(cè)定八種風(fēng)向,當(dāng)風(fēng)向計(jì)轉(zhuǎn)向不同的方向時(shí),導(dǎo)通不同的干簧管測(cè)定風(fēng)向.采用翻斗式雨量計(jì),通過(guò)雙觸點(diǎn)通斷信號(hào)輸出,分辨率為2 mm.溫度計(jì)與濕度計(jì)采用AHT10芯片.AHT10是一個(gè)高精度的溫濕度傳感器,其溫度精度為0.3攝氏度,濕度精度為2%RH,AHT10通過(guò)標(biāo)準(zhǔn)的IIC接口與微處理器進(jìn)行通信.光強(qiáng)計(jì)采用AP3216C芯片,通過(guò)標(biāo)準(zhǔn)的IIC接口與微處理器進(jìn)行數(shù)據(jù)通信.
1.2接收網(wǎng)關(guān)
接收網(wǎng)關(guān)由ESP32驅(qū)動(dòng)兩片SX1278組成,雙通道接收,利用WiFi上報(bào)數(shù)據(jù).網(wǎng)關(guān)部分是一個(gè)非標(biāo)準(zhǔn)的LoraWan網(wǎng)關(guān),本系統(tǒng)采用雙通道進(jìn)行數(shù)據(jù)傳輸.網(wǎng)關(guān)最大可支持30個(gè)Lora終端設(shè)備同時(shí)進(jìn)行數(shù)據(jù)傳輸.ESP32是一款低成本Tensilica LX6雙核32位微處理器,主頻為80~240 mHz,可調(diào)節(jié),集成傳統(tǒng)的藍(lán)牙功能、低功耗藍(lán)牙和WiFi,擁有520KB SRAM,最大支持8 MB片外SPI SRAM,支持最大16 MB的片外SPI FLASH,擁有豐富外設(shè)接口,廣泛應(yīng)用于各種物聯(lián)網(wǎng)領(lǐng)域.
2通信協(xié)議及軟件結(jié)構(gòu)
2.1通信協(xié)議
Lora終端設(shè)備主要采用IIC和SPI協(xié)議.IIC協(xié)議是一種異步、低速率、串行、半雙工通信協(xié)議.有數(shù)據(jù)線SDA、時(shí)鐘線SCL及電源、地線組成.IIC總線在傳輸數(shù)據(jù)的過(guò)程中共有三種類(lèi)型信號(hào):開(kāi)始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào).在實(shí)際使用過(guò)程中,起始信號(hào)是必需的.當(dāng)IIC總線的數(shù)據(jù)線SDA和時(shí)鐘線SCL兩條信號(hào)線同時(shí)處于高電平時(shí),規(guī)定為總線空閑狀態(tài),此時(shí)各個(gè)器件的輸出級(jí)場(chǎng)效應(yīng)管均處在截止?fàn)顟B(tài),即釋放總線,由兩條信號(hào)線各自的上拉電阻把電平拉高.當(dāng)時(shí)鐘線SCL為高期間,數(shù)據(jù)線SDA由高到低跳變規(guī)定為IIC起始信號(hào),起始信號(hào)是一種電平跳變時(shí)序信號(hào).當(dāng)時(shí)鐘線SCL為高期間,數(shù)據(jù)線SDA由低到高的跳變規(guī)定為停止信號(hào),是一種電平跳變時(shí)序信號(hào).IIC的主機(jī)發(fā)送器每發(fā)送一個(gè)字節(jié),就在第九個(gè)時(shí)鐘脈沖期間釋放掉數(shù)據(jù)線,由接收器反饋一個(gè)應(yīng)答信號(hào).當(dāng)應(yīng)答信號(hào)為邏輯電平低時(shí),則判定有應(yīng)答,當(dāng)應(yīng)答信號(hào)為邏輯電平高時(shí),則判定沒(méi)有應(yīng)答.當(dāng)數(shù)據(jù)在IIC總線上進(jìn)行傳輸時(shí),必須保證時(shí)鐘信號(hào)的穩(wěn)定,時(shí)鐘信號(hào)為高電平時(shí),數(shù)據(jù)線上的數(shù)據(jù)必須穩(wěn)定,只有時(shí)鐘信號(hào)為低電平時(shí),才允許數(shù)據(jù)線上存在數(shù)據(jù)的變更.[4]
SPI協(xié)議是一個(gè)同步、全雙工、串行口通信協(xié)議.SPI協(xié)議擁有SCK,NSS,MOSI,MISO四根線,NSS為片選線,SCK為時(shí)鐘線,MOSI為主機(jī)發(fā)送從機(jī)接收數(shù)據(jù)線,MISO為主機(jī)接收從機(jī)發(fā)送數(shù)據(jù)線.在SPI總線上的主機(jī)必須在通信開(kāi)始的時(shí)候配置并規(guī)定好生成相應(yīng)的時(shí)鐘信號(hào),在每個(gè)SPI周期內(nèi)發(fā)生全雙工的數(shù)據(jù)傳輸.SPI配置時(shí)鐘極性,時(shí)鐘極性和相位共同決定讀取數(shù)據(jù)的方式.時(shí)鐘極性反轉(zhuǎn)是描述當(dāng)時(shí)鐘空閑時(shí)IDLE為高電平還是低電平,參考數(shù)據(jù)手冊(cè)配置.時(shí)鐘相位決定了在時(shí)鐘跳變的第幾個(gè)邊沿進(jìn)行數(shù)據(jù)的讀取,參數(shù)為第一個(gè)跳變邊沿和第二個(gè)跳變邊沿.根據(jù)時(shí)鐘極性的不同,共有四種不同的搭配方式.SPI具有高速的數(shù)據(jù)傳輸速率,靈活的數(shù)據(jù)傳輸位,不限于8位,可以是任意字節(jié)的傳輸和簡(jiǎn)單的硬件結(jié)構(gòu).SPI的局限在于僅支持一個(gè)主設(shè)備,無(wú)應(yīng)答信號(hào),引腳多,傳輸距離短,沒(méi)有硬件糾錯(cuò).[5]
2.2系統(tǒng)軟件結(jié)構(gòu)
軟件可分為兩個(gè)部分:LoraWan部分和NETWORK部分.設(shè)備端使用RT-Thread實(shí)時(shí)操作系統(tǒng),LoraWan-EN-STACK協(xié)議棧.RT-Thread是一個(gè)嵌入式實(shí)時(shí)多線程操作系統(tǒng),支持多任務(wù)、允許多個(gè)任務(wù)調(diào)度運(yùn)行.RT-Thread是國(guó)產(chǎn)、純C語(yǔ)言編寫(xiě)、淺顯易懂、方便移植的嵌入式實(shí)時(shí)操作系統(tǒng).LoraWan-EN-STACK是應(yīng)用于LoraWan設(shè)備終端的LoraWan協(xié)議棧,可實(shí)現(xiàn)Lora終端設(shè)備的Class A與Class C工作模式.
LoraWan網(wǎng)關(guān)部分需要運(yùn)行NETWORK部分,主要有LoraWan協(xié)議棧,HTTP,MQTT,NTP等協(xié)議.設(shè)備端軟件見(jiàn)圖2.系統(tǒng)通過(guò)SPI總線初始化SX1278 Lora芯片,與SX1278建立通信連接,RTC實(shí)時(shí)時(shí)鐘為L(zhǎng)oraWan協(xié)議通信提供毫秒級(jí)延時(shí),設(shè)備獲取傳感器數(shù)據(jù),RT-Thread通過(guò)實(shí)時(shí)定時(shí)調(diào)度將獲取的傳感器數(shù)據(jù)存入LoraWan協(xié)議棧的緩存區(qū),定時(shí)啟動(dòng)發(fā)送.
微處理器通過(guò)編碼器獲取風(fēng)速計(jì)的數(shù)據(jù),采用M法測(cè)速,通過(guò)測(cè)量單位時(shí)間內(nèi)A相輸出的脈沖數(shù)量來(lái)得到速度信息.STM32自帶編碼盤(pán)接口,使用硬件技術(shù)即可讀取編碼盤(pán)的轉(zhuǎn)速.在STM32中,編碼器接口模式相當(dāng)于使用了一個(gè)帶有方向選擇的外部時(shí)鐘,兩個(gè)輸入TI1和TI2為編碼器的接口,TI1FP1與TI2FP2是TI1,TI2經(jīng)過(guò)濾波和極性控制的信號(hào),計(jì)數(shù)器通過(guò)讀取TI1FP1與TI2FP2的有效變動(dòng),根據(jù)跳變的順序,產(chǎn)生計(jì)數(shù)脈沖和方向脈沖.通過(guò)修改TIMx_CR1寄存器的DIR位來(lái)修改計(jì)數(shù)器的計(jì)數(shù)方向.微處理器通過(guò)讀取經(jīng)過(guò)三八譯碼器的干簧管信號(hào)來(lái)計(jì)算風(fēng)向.八個(gè)干簧管分別對(duì)應(yīng)東、西、南、北、東北、西北、東南、西南八個(gè)方位.微處理器通過(guò)一個(gè)干簧管的通斷來(lái)計(jì)算雨量計(jì)翻斗的翻動(dòng)次數(shù)計(jì)算雨量.微處理器通過(guò)IIC協(xié)議讀取溫濕度、光照傳感器的數(shù)據(jù).圖3為網(wǎng)關(guān)端軟件結(jié)構(gòu),網(wǎng)關(guān)端通過(guò)ESP-IDF搭建,上層調(diào)用WiFi協(xié)議棧、MQTT協(xié)議與LoraWan云平臺(tái)通信.ESP32移植了LoraWan協(xié)議棧,通過(guò)使用SPI總線與兩路SX1278進(jìn)行通信,實(shí)現(xiàn)470~510 mHz兩個(gè)頻點(diǎn)的LoraWan通信.
本文提出了基于LoraWan的農(nóng)田氣象監(jiān)測(cè)系統(tǒng)方案,節(jié)點(diǎn)設(shè)備端使用國(guó)產(chǎn)的實(shí)時(shí)操作系統(tǒng),網(wǎng)關(guān)端以減少通道的方式降低了整體系統(tǒng)的搭建難度,降低了整體系統(tǒng)功耗和開(kāi)發(fā)成本,具有一定的理論與實(shí)踐意義.
參考文獻(xiàn)
[1]林甄,謝金冶,田碩,等.基于農(nóng)業(yè)物聯(lián)網(wǎng)的無(wú)線通信技術(shù)實(shí)驗(yàn)研究[J].農(nóng)機(jī)化研究.2022,44(6):188-193.
[2]陳志宏,王興安.LoRa在電力行業(yè)典型應(yīng)用與問(wèn)題探討[J].長(zhǎng)江信息通.2021,34(5):87-91.
[3]王鵬,劉志杰,鄭欣.LoRa無(wú)線網(wǎng)絡(luò)技術(shù)與應(yīng)用現(xiàn)狀研究[J].信息通信技術(shù).2017,11(5):65-70.
[4]周飛,李錚,高萬(wàn)明.嵌入式防疫識(shí)別系統(tǒng)設(shè)計(jì)[J].牡丹江師范學(xué)院學(xué)報(bào):自然科學(xué)版.2021(2):30-33.
[5]陳木生,盧文杰,曾永西,等.防堵塞雨量實(shí)時(shí)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].牡丹江師范學(xué)院學(xué)報(bào):自然科學(xué)版,2021,(2):34-36.
編輯:琳莉