摘 要:STM32作為微控制器,具有高性能、低功耗、強(qiáng)可靠性等特點(diǎn)。STM32系列單片機(jī)在通信領(lǐng)域有著廣泛的應(yīng)用,如在無線通信模塊、藍(lán)牙模塊、GPS模塊等方面的應(yīng)用。隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,STM32與NB-IoT、Wi-Fi等技術(shù)相融合,廣泛應(yīng)用于智能家居、智慧農(nóng)業(yè)等領(lǐng)域。文章以智慧農(nóng)業(yè)監(jiān)測系統(tǒng)的設(shè)計(jì)為例,詳細(xì)介紹了STM32微處理器,NB-Iot及Wi-Fi技術(shù)在物聯(lián)網(wǎng)開發(fā)平臺(tái)中的應(yīng)用。系統(tǒng)的設(shè)計(jì)方式從簡到難,依托目前流行的騰訊云平臺(tái),結(jié)合STM32分別展示了三種不同的設(shè)計(jì)方式,為物聯(lián)網(wǎng)平臺(tái)的開發(fā)提供良好的設(shè)計(jì)思路。
關(guān)鍵詞:物聯(lián)網(wǎng);監(jiān)測系統(tǒng);云平臺(tái)
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2024)16-0146-05
Design of Smart Agriculture Monitoring System Based on STM32
Abstract: As a microcontroller, STM32 has the characteristics of high performance, low power consumption, and strong reliability. The STM32 series single-chip microcomputer has a wide range of application in the field of communication, such as application in wireless communication modules, bluetooth modules, GPS modules, etc. With the rapid development of IoT technology, STM32 is widely used in fields of smart homes and smart agriculture by integrating with NB-IoT, Wi-Fi, and other technologies. The paper takes the design of a smart agriculture monitoring system as an example and provides a detailed introduction to the application of STM32 microprocessor, NB-IoT, and Wi-Fi technology in IoT development platforms. The design approach of the system ranges from simple to difficult, and it relies on the popular Tencent cloud platform and combines with STM32 to showcase three different design methods respectively, which provides good design ideas for the development of IoT platforms.
Keywords: Internet of Things; monitoring system; cloud platform
0 引 言
智慧農(nóng)業(yè)監(jiān)測系統(tǒng)可以提供農(nóng)作物生長環(huán)境、作物狀況等方面的數(shù)據(jù),可以指導(dǎo)調(diào)整農(nóng)作物生長發(fā)育的環(huán)境,使之更好地適應(yīng)于作物生長發(fā)育需求。系統(tǒng)以STM32單片機(jī)為核心,由各種終端設(shè)備、傳感器和網(wǎng)絡(luò)通信終端組成,設(shè)計(jì)了設(shè)備端、PC端以及服務(wù)器端三個(gè)端點(diǎn)的通信,可以完成對周圍環(huán)境的感知,完成遠(yuǎn)程控制和監(jiān)測等。
為了更好地融合最新的流行技術(shù),系統(tǒng)根據(jù)不同情況從三個(gè)方面進(jìn)行開發(fā),結(jié)合STM32模塊、NB-Iot技術(shù)對溫濕度、土壤濕度、pH酸堿度等信息進(jìn)行監(jiān)測,實(shí)現(xiàn)STM32與mqtt、Wi-Fi模塊的配合使用,實(shí)現(xiàn)物聯(lián)網(wǎng)技術(shù)在農(nóng)業(yè)領(lǐng)域的應(yīng)用。
1 “騰訊連連”小程序?qū)崿F(xiàn)
利用騰訊云服務(wù)提供的物聯(lián)網(wǎng)開發(fā)平臺(tái),結(jié)合廣泛應(yīng)用的NB-IoT最新技術(shù)[1],通過STM32、NB-Iot卡開發(fā)平臺(tái)并設(shè)置相應(yīng)的參數(shù)和控制指令,即可在“騰訊連連”微信小程序平臺(tái)上完成物聯(lián)網(wǎng)連接。以測試土壤傳感器為例,整個(gè)小程序的實(shí)現(xiàn)過程如下:
1)將設(shè)備連接到STM32微處理器,登錄騰訊云服務(wù)器,進(jìn)入物聯(lián)網(wǎng)開發(fā)平臺(tái),在實(shí)例中創(chuàng)建項(xiàng)目。
2)結(jié)合開發(fā)文檔在開發(fā)平臺(tái)中添加相應(yīng)的傳感器設(shè)備。
首先根據(jù)開發(fā)文檔說明在平臺(tái)中定義相應(yīng)的設(shè)備。根據(jù)產(chǎn)品展示配置、面板配置、入口配置以及智能聯(lián)動(dòng)配置等信息進(jìn)行配置。
配置完成后獲取設(shè)備所對應(yīng)的信息(如設(shè)備的ID信息等),在“設(shè)備調(diào)試”環(huán)節(jié)獲取設(shè)備的相應(yīng)參數(shù),查看MQTT服務(wù)器地址、端口號等參數(shù),并指定相應(yīng)的Topic主題,確保設(shè)備與云服務(wù)器的正常連接和通信,如圖1所示。
3)利用Keil工具連接STM32微處理器[2],編寫程序,將物聯(lián)網(wǎng)開發(fā)平臺(tái)上的設(shè)備參數(shù)信息寫入程序,保持產(chǎn)品ID、MQTT服務(wù)器地址及端口信息與平臺(tái)一致。
程序?qū)懭氪a如圖2所示。
4)打開手機(jī)的“騰訊連連”小程序,選擇“添加設(shè)備”按鈕,通過“掃一掃”按鈕,掃描剛剛在物聯(lián)網(wǎng)開發(fā)平臺(tái)中創(chuàng)建的設(shè)備二維碼信息,完成微信小程序中的設(shè)備展示,如圖3所示。
通過測試,發(fā)現(xiàn)已完成STM32連接的設(shè)備與物聯(lián)網(wǎng)平臺(tái)的連接,接下來就可以對設(shè)備進(jìn)行監(jiān)測和控制操作。
2 自建服務(wù)平臺(tái)實(shí)現(xiàn)設(shè)備與服務(wù)器的連接
申請騰訊云服務(wù)器,搭建MQTT服務(wù),通過MQTT服務(wù)實(shí)現(xiàn)手機(jī)端與設(shè)備端的網(wǎng)絡(luò)連接與通信。
在這種模式下,需要了解不同平臺(tái)(騰訊云)服務(wù)器的申請過程,并在申請完成的服務(wù)器中搭建MQTT服務(wù),明確了不同操作系統(tǒng)對MQTT服務(wù)[3]的搭建要求。在搭建完成的MQTT服務(wù)中,只要確定完申請的網(wǎng)絡(luò)空間地址或域名,就可以在手機(jī)端進(jìn)行程序開發(fā)了。將MQTT搭建在騰訊云服務(wù)器中,通過相同的主題將二者連接并進(jìn)行通信。例如以空氣溫濕度查看為例,要將設(shè)備端的數(shù)據(jù)傳送到手機(jī)端,手機(jī)端顯示連接成功[4],并顯示設(shè)備運(yùn)行的數(shù)據(jù),這意味著溫度與濕度測試成功。設(shè)備端采用NB-Iot卡實(shí)現(xiàn)網(wǎng)絡(luò)連接,效果如圖4所示。
移動(dòng)端采用Android Studio工具進(jìn)行開發(fā),實(shí)現(xiàn)部分的手機(jī)端程序展示。
2.1 MQTT相關(guān)參數(shù)設(shè)置
2.3 設(shè)置信息在移動(dòng)端顯示
要獲取STM32開發(fā)板所傳遞的信息[5],首先需要將板子傳遞的Json數(shù)據(jù)進(jìn)行解析:
2.4 調(diào)用parseJsondata()方法
使開發(fā)板的溫濕度數(shù)據(jù)展示在移動(dòng)端的界面中。結(jié)合MQTT服務(wù)和移動(dòng)端開發(fā)技術(shù),實(shí)現(xiàn)了移動(dòng)端和設(shè)備端的連接。
3 STM32與Wi-Fi模塊的三端點(diǎn)源程序開發(fā)
從底層開發(fā),利用通用的Wi-Fi模塊實(shí)現(xiàn)移動(dòng)端、設(shè)備端與服務(wù)器端的連接,保證了3個(gè)端點(diǎn)的源程序開發(fā),從而實(shí)現(xiàn)了物聯(lián)網(wǎng)技術(shù)在農(nóng)業(yè)中的應(yīng)用[6]。三端點(diǎn)通過TCP/IP方式連接到服務(wù)器,可以實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)流程:
1)申請?jiān)瓶臻g。
2)服務(wù)器端程序開發(fā)。服務(wù)器端采用SSM框架完成程序設(shè)計(jì),采用MySQL作為存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫,對設(shè)備進(jìn)行遠(yuǎn)程控制和監(jiān)測。一般先將服務(wù)器端的界面及相應(yīng)的接口定義完畢,等待設(shè)備端或移動(dòng)端進(jìn)行連接,并對連接成功或連接失敗做出一定的處理,對不同的設(shè)備端添加不同的接口,如對接溫濕度設(shè)備端時(shí),要實(shí)時(shí)獲取對應(yīng)設(shè)備端的數(shù)據(jù)并展示在后臺(tái)[7],利用數(shù)據(jù)庫即時(shí)存儲(chǔ)數(shù)據(jù)。服務(wù)器端程序發(fā)布到所申請的云服務(wù)平臺(tái),保證外網(wǎng)Internet可以連接,直接通過網(wǎng)址進(jìn)行訪問。圖5展示了服務(wù)器端程序中加入的設(shè)備列表,當(dāng)設(shè)備連接時(shí)將在“連接狀態(tài)”位置顯示“已連接”;其他設(shè)備不連接的情況下,顯示“未連接”。
3)設(shè)備端程序開發(fā)。設(shè)備端需要連接Wi-Fi模塊,利用路由器(保證與內(nèi)網(wǎng)的服務(wù)器在同一個(gè)網(wǎng)段內(nèi))或移動(dòng)網(wǎng)絡(luò)共享熱點(diǎn)連接到網(wǎng)絡(luò)服務(wù)器,并將最終的服務(wù)器端程序發(fā)布到云服務(wù)上,保證外網(wǎng)Internet可以連接[8]。
在開發(fā)設(shè)備端程序時(shí),需要同時(shí)配置Wi-Fi模塊的相關(guān)參數(shù):
移動(dòng)端程序采用Android開發(fā)工具完成手機(jī)端程序的開發(fā),通過手機(jī)真機(jī)或模擬器進(jìn)行測試,與設(shè)備的連接狀態(tài)展示如圖6所示。
4 結(jié) 論
物聯(lián)網(wǎng)技術(shù)目前已廣泛應(yīng)用于智能家居、智慧農(nóng)業(yè)及智能控制等領(lǐng)域,給使用者帶來極大的便利和安全,有利于提高工作效率。本文結(jié)合物聯(lián)網(wǎng)應(yīng)用技術(shù)進(jìn)行設(shè)計(jì)開發(fā),以STM32開發(fā)板為基礎(chǔ),分別結(jié)合NB-IoT技術(shù)、Wi-Fi技術(shù)及無線傳感技術(shù),實(shí)現(xiàn)與服務(wù)器端的連接,模擬監(jiān)測系統(tǒng)的運(yùn)行,闡述了物聯(lián)網(wǎng)運(yùn)行的基本機(jī)制,為物聯(lián)網(wǎng)學(xué)習(xí)者提供了翔實(shí)的理論支撐。
參考文獻(xiàn):
[1] 張士剛.計(jì)算機(jī)物聯(lián)網(wǎng)關(guān)鍵技術(shù)的開發(fā)現(xiàn)狀及應(yīng)用前景 [J].中阿科技論壇:中英文,2021(11):118-120.
[2] 車軼涵,胡立夫,王首起,等.基于STM32的夜間心率呼吸監(jiān)測床墊設(shè)計(jì) [J].中國科技信息,2021(5):63-64.
[3] 李開旭.基于阿里云的智慧溫室大棚系統(tǒng)設(shè)計(jì) [J].物聯(lián)網(wǎng)技術(shù),2023,13(6):131-132+137.
[4] 郭穎.基于STM32F103的智慧大棚無線溫度傳感器節(jié)點(diǎn)設(shè)計(jì) [J].物聯(lián)網(wǎng)技術(shù),2023,13(2):30-32.
[5] 楊一凡.智慧農(nóng)業(yè)大棚監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)研究 [J].南方農(nóng)機(jī),2023,54(2):171-173.
[6] 張偉,塞爾瑪·帕勞格,王晨.基于STM32指紋識別門禁系統(tǒng)的設(shè)計(jì) [J].電子設(shè)計(jì)工程,2023,31(9):151-155+160.
[7] 羅一,石艷,廖映華,等.基于NB-IOT的窖池環(huán)境監(jiān)控系統(tǒng) [J].制造業(yè)自動(dòng)化,2023,45(8):22-27.
[8] 賈青青,賈紋紋,張秦,等.基于NB-IoT的典型氣體污染物實(shí)時(shí)監(jiān)測系統(tǒng)設(shè)計(jì) [J].傳感器與微系統(tǒng),2022,41(9):102-104+108.
[9] 嚴(yán)桂林,黃湘寧,謝海武.一種NB-IoT無線傳感物聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì) [J].現(xiàn)代電子技術(shù),2021,44(18):38-42.
[10] 孫志剛,高萌萌,張敏,等.基于NB-IoT的農(nóng)業(yè)灌溉水渠遠(yuǎn)程監(jiān)測系統(tǒng)設(shè)計(jì) [J].計(jì)算機(jī)測量與控制,2022,30(7):70-77.