本應(yīng)用筆記以STM32單片機(jī)作為控制和數(shù)據(jù)處理的單元,使用AHT10、BH1750和BMP280傳感器去監(jiān)測周圍的環(huán)境參數(shù),在LCD屏完成傳感器數(shù)據(jù)和相關(guān)信息的顯示。
同時,采用了無線模組與單片機(jī)之間進(jìn)行數(shù)據(jù)交互。當(dāng)無線通訊模組成功連接網(wǎng)絡(luò),并接入機(jī)智云物聯(lián)網(wǎng)云平臺時,用戶可以通過登錄物聯(lián)網(wǎng)云平臺后臺查看傳感器上報的數(shù)據(jù)和進(jìn)行遠(yuǎn)程控制。
目錄預(yù)覽
1. 總體方案設(shè)計(jì)
2. 系統(tǒng)硬件設(shè)計(jì)
3. 系統(tǒng)軟件設(shè)計(jì)
4. 物聯(lián)網(wǎng)平臺設(shè)備接入
5. 軟硬件實(shí)物調(diào)試
01
總體方案設(shè)計(jì)
本環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)選取了控制和數(shù)據(jù)處理能力強(qiáng)的ST32單片機(jī)作為核心部件。使用溫濕度傳感器對周圍環(huán)境中的溫度與濕度監(jiān)測,選取高精度的光強(qiáng)度傳感器完成對周圍環(huán)境的光照強(qiáng)度的測量,對于氣壓數(shù)據(jù)的測量,將選取高精度的氣壓傳感器完成工作。
該系統(tǒng)使用液晶顯示屏幕完成對溫濕度數(shù)值,光照強(qiáng)度數(shù)值,大氣壓強(qiáng)數(shù)值以及設(shè)備的狀態(tài)信息的顯示。當(dāng)無線通訊模組成功連接網(wǎng)絡(luò)之后,接入云平臺。用戶可以通過登錄物聯(lián)網(wǎng)云平臺后臺[4],查看傳感器上報的數(shù)據(jù)信息和進(jìn)行遠(yuǎn)程控制。開發(fā)Android上位機(jī)軟件,使用戶在上位機(jī)程序上實(shí)現(xiàn)對各種環(huán)境質(zhì)量參數(shù)監(jiān)測。整個系統(tǒng)的整體框架圖如下圖所示。
■1.1 控制模塊方案
本環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)使用單片機(jī)作為整個系統(tǒng)的控制中心。需要完成傳感器數(shù)據(jù)的采集,無線通訊模組的數(shù)據(jù)交互,顯示傳感器數(shù)據(jù)的功能[5]。在本次的環(huán)境監(jiān)測系統(tǒng)中,控制模塊采用的是STM32系列單片機(jī)。
例如在芯片選擇上面,有低功耗類型STM32L系列、主流類型F1系列、高性能F7/H7系列、以及異構(gòu)系統(tǒng)架構(gòu)下的 STM32MP157系列。在軟件程序設(shè)計(jì)過程中,官方提供了圖形化配置軟件STM32CubeMX。可以快速生成底層配置代碼,減少重復(fù)性移植。同時該32位芯片的相關(guān)技術(shù)資料和參考設(shè)計(jì)資料較多,因此被運(yùn)用到各種電子系統(tǒng)設(shè)計(jì)之中。本應(yīng)用筆記準(zhǔn)備使用控制性能強(qiáng)勁和數(shù)據(jù)處理能力強(qiáng)的STM32F103ZET6芯片作為核心控制模塊元件。
■1.2 環(huán)境監(jiān)測傳感器方案
環(huán)境監(jiān)測系統(tǒng)主要需要監(jiān)測的數(shù)據(jù)有溫濕度數(shù)據(jù),光照強(qiáng)度數(shù)據(jù)和大氣壓強(qiáng)數(shù)據(jù)等基本環(huán)境質(zhì)量參數(shù)。因此需要選擇相應(yīng)的溫濕度傳感器,光強(qiáng)傳感器,精度較高的氣壓傳感器[6]。
溫濕度數(shù)據(jù)采集傳感器選擇了AHT10。AHT10模塊上面有一個濕度傳感器元件和一個片上溫度傳感元件,該產(chǎn)品具有快速響應(yīng)、抗干擾能力強(qiáng)和高精度等優(yōu)點(diǎn)[7]。
光照強(qiáng)度數(shù)據(jù)采集的傳感器選擇了BH1750。BH1750是標(biāo)準(zhǔn)(I2C)接口的16位數(shù)字輸出類型的環(huán)境光強(qiáng)度傳感器,可以利用BH1750模塊的高分辨率探測較大范圍內(nèi)的光照強(qiáng)度變化情況[8]。
大氣壓強(qiáng)數(shù)據(jù)采集傳感器選擇了BMP280。數(shù)字式氣壓傳感器BMP280,具有高精度的特點(diǎn),而且也具有測量環(huán)境溫度和高度的功能。
綜上所述的傳感器模塊,在選擇時考慮到了其成本,使用的方便性,相關(guān)設(shè)計(jì)資料的豐富性,傳感器模塊實(shí)物圖如下圖所示。
■1.3 無線模塊方案
方案一:對于長距離無線通訊模塊的選擇。查詢資料后,了解了國產(chǎn)LTE無線通訊模組上海合宙公司。該公司研發(fā)的LTE Cat 1無線通信模組提供了豐富的通用外設(shè)接口,并且支持Lua二次開發(fā),合宙官方提供了嵌入式腳本運(yùn)行框架LuatOS。但是模組價格比較貴,而且開發(fā)過程比較復(fù)雜,相關(guān)資料和設(shè)計(jì)參考較少,開發(fā)難度較大。
方案二:esp8266芯片是***公司樂鑫科技所研發(fā)的一款WiFi無線模組芯片。內(nèi)置TCP/IP協(xié)議棧,支持AT本地升級和OTA遠(yuǎn)程升級。該無線模組能夠很好的接入國內(nèi)的開放的物聯(lián)網(wǎng)云平臺,具有易操作化的特點(diǎn),主要是相關(guān)資料和設(shè)計(jì)參考較多,開發(fā)難度較小。
經(jīng)過對上述方案對比,方案二中的ESP8266模塊,擁有豐富的相關(guān)設(shè)計(jì)資料。最終選擇了以ESP8266芯片作為核心的無線模組。作為單片機(jī)與物聯(lián)網(wǎng)云端進(jìn)行數(shù)據(jù)傳輸和交換的單元,無線模塊實(shí)物圖如下圖所示。
02
系統(tǒng)硬件設(shè)計(jì)
環(huán)境監(jiān)測系統(tǒng)選取了STM32F103ZET6芯片作為電路的核心控制和數(shù)據(jù)處理單元。該芯片支持UART、SPI、I2C接口,芯片內(nèi)部集成了512KB閃存和64KB SRAM,可以存儲更多的程序和數(shù)據(jù)。環(huán)境監(jiān)測系統(tǒng)的主控電路設(shè)計(jì)如下圖所示。
STM32芯片正常運(yùn)行所需要的電壓范圍為2.0~3.6V,實(shí)際運(yùn)行時的電流只有幾十毫安,因此芯片功耗非常低。芯片可對系統(tǒng)電路之中的電壓進(jìn)行檢測,可與電源芯片相接一起完成開關(guān)電源調(diào)節(jié)。
芯片正常運(yùn)行時,需要一個外部時鐘觸發(fā)信號,為此將使用頻率范圍在4~16MHz之間的晶體振蕩器。芯片內(nèi)部存在一個自動校準(zhǔn)的RTC振蕩電路,其實(shí)際運(yùn)行的頻率能夠達(dá)到32KHZ。在本次設(shè)計(jì)中,因?yàn)镾TM32系列擁有豐富的串口接口,因此可以實(shí)現(xiàn)與多個通訊模組通信。同時可以添加調(diào)試接口,利用串口軟件實(shí)現(xiàn)調(diào)試功能,打印設(shè)備狀態(tài)信息。
03
系統(tǒng)軟件設(shè)計(jì)
基于STM32的環(huán)境監(jiān)測系統(tǒng)的主程序流程如下。整個系統(tǒng),在提供電源之后,開始進(jìn)行系統(tǒng)模塊的初始化操作。如進(jìn)行傳感器設(shè)備的初始化,LCD模塊的初始化,無線通訊模組的初始化。當(dāng)完成初始化操作之后,LCD屏幕則會顯示初始化信息。
此時,利用路由器或手機(jī)熱點(diǎn)提供WIFI信號,WIFI模塊會進(jìn)行聯(lián)網(wǎng)操作。當(dāng)聯(lián)網(wǎng)成功時,系統(tǒng)開始接收傳感器設(shè)備采集的數(shù)據(jù),APP程序會顯示相關(guān)傳感器數(shù)據(jù)信息,LCD屏幕也會顯示環(huán)境監(jiān)測系統(tǒng)的主要監(jiān)測數(shù)據(jù)。如果聯(lián)網(wǎng)失敗,則會重新嘗試連接網(wǎng)絡(luò)。主程序設(shè)計(jì)流程圖如下圖所示。
04
物聯(lián)網(wǎng)平臺設(shè)備接入
在本次的環(huán)境監(jiān)測系統(tǒng)的設(shè)計(jì)中,利用了無線模塊進(jìn)行基本通信操作。傳統(tǒng)的無線模組與單片機(jī)進(jìn)行數(shù)據(jù)交換,一般的方案是利用無線模組建立局域網(wǎng)實(shí)現(xiàn)通信功能。隨著云計(jì)算等相關(guān)信息技術(shù)的進(jìn)步,現(xiàn)在的無線通訊模組可以實(shí)現(xiàn)與云端連接,實(shí)現(xiàn)數(shù)據(jù)遠(yuǎn)程傳輸?shù)墓δ堋?/span>
在本次設(shè)計(jì)中,使用的無線模組需要連接網(wǎng)絡(luò),并接入云平臺。用戶可以通過登錄機(jī)智云物聯(lián)網(wǎng)云平臺后臺,查看無線通訊模塊上報的傳感器數(shù)據(jù)和進(jìn)行遠(yuǎn)程控制等操作。在物聯(lián)網(wǎng)云平臺的選擇中,選擇了國內(nèi)的機(jī)智云物聯(lián)網(wǎng)平臺。物聯(lián)網(wǎng)設(shè)備接入的方案,如下圖所示。
云平臺提供了兩種版本的GAgent通信協(xié)議的接入方案,主要是獨(dú)立MCU方案和SOC方案兩種。本次環(huán)境監(jiān)測系統(tǒng)的設(shè)計(jì)中,選擇了獨(dú)立MCU方案接入平臺。
在本次設(shè)計(jì)過程中,需要把GAgent協(xié)議移植到WIFI模組上面,從而實(shí)現(xiàn)對接云平臺進(jìn)行數(shù)據(jù)交互的功能。云平臺提供了GAgent固件,GAgent固件的主要作用是完成對數(shù)據(jù)進(jìn)行上報云平臺和平臺遠(yuǎn)程下發(fā)命令的功能[14]。固件下載效果如下圖所示。
4.1 接入機(jī)智云平臺的流程
在本次的環(huán)境監(jiān)測系統(tǒng)是軟件設(shè)計(jì)中,采用了MCU+WIFI通信模組方案,現(xiàn)在介紹接入機(jī)智云平臺的流程。第一步,注冊IoT平臺的開發(fā)者賬號,并登陸選擇產(chǎn)品類型并創(chuàng)建。第二步,填寫產(chǎn)品相關(guān)的基本信息之后,獲取到平臺提供的Product Key和Product Secret等密鑰信息[15],如下圖所示。
第三步,創(chuàng)建相關(guān)數(shù)據(jù)點(diǎn)信息,完成相關(guān)數(shù)據(jù)類型的填寫。在環(huán)境監(jiān)測系統(tǒng)的設(shè)計(jì)中,需要創(chuàng)建溫度數(shù)據(jù)Temperature,濕度Humidity,光照強(qiáng)度Light_Intensity,氣壓Pressure等主要的傳感器數(shù)據(jù)點(diǎn),如下圖所示。
第四步,使用IoT平臺提供SDK文件包,進(jìn)行相關(guān)代碼移植。在SDK包生成的過程中,平臺提供了兩種類型。本次系統(tǒng)設(shè)計(jì)過程中,選擇獨(dú)立MCU方案作為最終方案。
在支持的硬件平臺中,有常見MCU類型。例如有STM32平臺,MSP430平臺等,都提供了相關(guān)的測試SDK包。選擇使用通用的MCU平臺生成的SDK的代碼移植,有利于之后移植到其他的MCU芯片平臺上面去,選擇如圖4-11所示。
機(jī)智云SDK包的代碼移植到STM32系列平臺的流程如下。在整個代碼移植的過程,主要是去移植串口初始化及配置,定時器的初始化及配置[16],傳感器數(shù)據(jù)的采集接收和上報函數(shù)的配置,以及相關(guān)模塊的初始化配置。
4.2 上位機(jī)軟件應(yīng)用開發(fā)


上位機(jī)軟件應(yīng)用開發(fā)。在本次的環(huán)境監(jiān)測系統(tǒng)的設(shè)計(jì)中,采用了Android應(yīng)用程序作為上位機(jī)軟件。一般在APP開發(fā)設(shè)計(jì)過程中,主要是進(jìn)行APP的UI界面設(shè)計(jì),和相關(guān)功能模塊底層邏輯設(shè)計(jì)。在APP的UI界面設(shè)計(jì)的過程中,選擇使用XML進(jìn)行布局,在應(yīng)用程序的底層邏輯設(shè)計(jì)使用的Java語言。應(yīng)用開發(fā)選擇的是安卓平臺,如下圖所示。
本次設(shè)計(jì)中,使用平臺提供生成的SDK文件包進(jìn)行修改。由于平臺的提供的例程只是完成了基本的顯示效果,界面效果一般。所以接下來的主要工作是對官方源碼進(jìn)行修改。打開Android Studio軟件,導(dǎo)入從平臺下載的Demo源碼,通過修改src文件里面的layout的布局文件,進(jìn)行界面UI設(shè)計(jì)和優(yōu)化。
通過對src文件里面的java代碼,進(jìn)行底層邏輯代碼修改[17]。在界面的UI設(shè)計(jì)工過程,主要是傳感器的數(shù)據(jù)和系統(tǒng)狀態(tài)信息顯示,基本顯示效果如圖4-17所示。APP的界面設(shè)計(jì)需要優(yōu)化,后期可以添加相關(guān)傳感器歷史數(shù)據(jù)的查看和實(shí)時動態(tài)曲線的功能[18]。
05
軟硬件實(shí)物調(diào)試
環(huán)境監(jiān)測系統(tǒng)的硬件實(shí)物的初步實(shí)驗(yàn)性調(diào)試工作。在實(shí)驗(yàn)性調(diào)試中,通過USB線接上電腦USB接口,實(shí)現(xiàn)供電。系統(tǒng)供上電之后,會有開機(jī)啟動界面顯示。
開機(jī)結(jié)束之后,界面會停留在系統(tǒng)的功能選擇界面。選擇界面包括了三種功能展示。第一部分是傳感器采集到的數(shù)據(jù)SensorMessage展示, 第二部分是系統(tǒng)的網(wǎng)絡(luò)狀態(tài)信息NetworkMessage展示, 第三部分是系統(tǒng)的基本信息SystemMessage展示。基本功能的選擇界面,如下圖所示。
基于STM32的物聯(lián)網(wǎng)環(huán)境監(jiān)測系統(tǒng)的上位機(jī)軟件調(diào)試。在使用該Android應(yīng)用程序時,APP和無線模組需要一起配合操作。在配網(wǎng)時,需要把手機(jī)和WiFi同時連接到同一個熱點(diǎn)信號下面,進(jìn)行配置。輸入WiFi的賬號SSID和Password,選擇WiFi模組的類型進(jìn)行配置。
配置過程中APP和硬件設(shè)備不要進(jìn)行任何操作,否則會出現(xiàn)配置失敗的情況。如果配置失敗,請按下配網(wǎng)按鍵,重新配置。APP配網(wǎng)流程如下圖所示。
當(dāng)配網(wǎng)成功時,會顯示在物聯(lián)網(wǎng)云平臺上面注冊的設(shè)備名稱。點(diǎn)擊進(jìn)入,則會顯示相關(guān)傳感器數(shù)據(jù)信息,如下圖所示。
登錄物聯(lián)網(wǎng)平臺的后臺,選擇查看設(shè)備日志功能,在設(shè)備的運(yùn)行記錄里面,可以查看到上報的數(shù)據(jù)點(diǎn)信息,并支持動態(tài)曲線顯示,如下圖所示。
06
總結(jié)
基于STM32的物聯(lián)網(wǎng)環(huán)境監(jiān)測系統(tǒng)的整個設(shè)計(jì)過程中,使用了相關(guān)的環(huán)境傳感器設(shè)備去監(jiān)測周圍環(huán)境的基本質(zhì)量參數(shù)。在整個設(shè)計(jì)過程中,利用LCD屏幕顯示數(shù)據(jù)信息,能夠顯示基本傳感器測量的數(shù)據(jù)。
由于顯示效果一般,后期可以添加嵌入式GUI圖形界面,例如LVGL,TouchGFX,emWin。使用無線通信模組與單片機(jī)進(jìn)行數(shù)據(jù)交互,完成了基本的通信功能,但在模組的選擇上需要考慮到其穩(wěn)定性和功耗問題。
在上位機(jī)軟件程序設(shè)計(jì)中,使用了Android應(yīng)用程序去完成遠(yuǎn)程監(jiān)測的功能,但是APP的界面設(shè)計(jì)需要優(yōu)化,后期可以添加相關(guān)傳感器實(shí)時動態(tài)曲線的功能。
APP界面實(shí)操
本應(yīng)用筆記旨在使用STM32的物聯(lián)網(wǎng)環(huán)境監(jiān)測系統(tǒng)的整個設(shè)計(jì)過程中,使用了相關(guān)的環(huán)境傳感器設(shè)備去監(jiān)測周圍環(huán)境的基本質(zhì)量參數(shù)。由于文章篇幅有限僅展示部分,完整內(nèi)容請點(diǎn)擊“閱讀原文”下載原文檔。
▽點(diǎn)擊“閱讀原文”,可下載原文檔
原文標(biāo)題:應(yīng)用筆記|基于STM32的物聯(lián)網(wǎng)環(huán)境監(jiān)測系統(tǒng)
文章出處:【微信公眾號:機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
機(jī)智云
+關(guān)注
關(guān)注
3文章
616瀏覽量
26803
原文標(biāo)題:應(yīng)用筆記|基于STM32的物聯(lián)網(wǎng)環(huán)境監(jiān)測系統(tǒng)
文章出處:【微信號:IoTMaker,微信公眾號:機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何在米爾-STM32MP257開發(fā)板上部署環(huán)境監(jiān)測系統(tǒng)
如何在米爾-STM32MP257開發(fā)板上實(shí)現(xiàn)環(huán)境監(jiān)測系統(tǒng)

儲能電站環(huán)境監(jiān)測物聯(lián)網(wǎng)系統(tǒng)方案
基于STM32設(shè)計(jì)的倉庫環(huán)境監(jiān)測與預(yù)警系統(tǒng)

基于SX1281芯片的醫(yī)療環(huán)境監(jiān)測方案
物聯(lián)網(wǎng)LORAWAN空氣質(zhì)量環(huán)境監(jiān)測方案
倉儲環(huán)境監(jiān)測物聯(lián)網(wǎng)系統(tǒng)方案
如何用LORA模塊進(jìn)行環(huán)境監(jiān)測
農(nóng)田生態(tài)守護(hù)者:智慧農(nóng)業(yè)物聯(lián)網(wǎng)環(huán)境監(jiān)測與數(shù)據(jù)采集系統(tǒng)亮相

城市環(huán)境監(jiān)測物聯(lián)網(wǎng)解決方案

在環(huán)境監(jiān)測系統(tǒng)中一般不常用到的傳感器類型
礦山環(huán)境監(jiān)測物聯(lián)網(wǎng)解決方案
精準(zhǔn)洞察農(nóng)田生態(tài),智慧農(nóng)業(yè)物聯(lián)網(wǎng)環(huán)境監(jiān)測與數(shù)據(jù)采集系統(tǒng)來襲

評論