基于STM32的室內(nèi)環(huán)境檢測調(diào)節(jié)系統(tǒng)*
*指導(dǎo)老師:王迷迷
本文引用地址:http://www.ex-cimer.com/article/202110/428815.htm0 引言
隨著科技與經(jīng)濟的發(fā)展,大多數(shù)人對生活環(huán)境質(zhì)量開始有了更高的追求。因此,家庭室內(nèi)環(huán)境的檢測與調(diào)節(jié)技術(shù)成為了一個重要項目。傳統(tǒng)的檢測裝置和調(diào)節(jié)設(shè)備,不僅設(shè)備成本高,而且對家庭環(huán)境的適用性不是很強?,F(xiàn)在物聯(lián)網(wǎng)技術(shù)發(fā)展迅速,但大多數(shù)傳統(tǒng)裝置卻無法實現(xiàn)遠程檢測與調(diào)控。因此,我們通過ESP8266 以及MQTT 協(xié)議實現(xiàn)單片機與云平臺OneNET 的交互,以此來達到人們對環(huán)境參數(shù)的實時檢測與調(diào)節(jié)的功能。在數(shù)據(jù)被OneNET 物聯(lián)網(wǎng)開放平臺所部署的產(chǎn)品(服務(wù)器)成功接收并存儲后,用戶可通過PC 或智能手機登錄在OneNET 物聯(lián)網(wǎng)開放平臺開發(fā)的監(jiān)測界面,實現(xiàn)對室內(nèi)環(huán)境數(shù)據(jù)的實時監(jiān)測。
1 系統(tǒng)設(shè)計
系統(tǒng)方案如圖1 所示,主要以STM32F103 芯片為核心,利用傳感器為外設(shè),圍繞STM32 完成對環(huán)境信息的采集。利用繼電器完成對環(huán)境信息調(diào)節(jié)。利用MQTT協(xié)議,通過ESP8266 模塊,使環(huán)境信息上傳到OneNET 平臺,可以通過設(shè)備云遠程監(jiān)控和調(diào)節(jié)系統(tǒng)所在的室內(nèi)環(huán)境。
圖1 系統(tǒng)方案
2 系統(tǒng)硬件/數(shù)據(jù)采集
本系統(tǒng)采用的是瑞士Sensirion 公司生產(chǎn)的SHT20溫濕度傳感器,其在高溫、高濕環(huán)境下性能更加穩(wěn)定。溫度誤差在0.3 ℃,濕度誤差在3.0%RH,在本系統(tǒng)中已經(jīng)達到使用標準。SHT20 溫濕度傳感器采用的是I2C總線通信,基本命令如表1 所示。
表1 基本命令
有害氣體檢測使用的是MQ-135 模塊,鼠標靠近一個紅色文字,可以直接查看與分句相似的情況,dout輸出都是數(shù)碼信號,ttl 輸出的有效電壓通常是一個小的低電平,aout 輸出的都是模仿信號,模仿輸出的電流會隨著濃度的增加而逐漸減少和增加,濃度也就會變得更高,而且電壓也會隨之變得更高。aout 可以用來當(dāng)做1個模擬信號的輸入和引腳。ttl 輸出的有效信號是一個較低的電平,aout 輸出的是1 個模擬信號,仿真后的輸出就會隨著濃度的改變而逐漸增加,濃度也就越高,那么電壓就會逐漸變得更高。aout 可以作為1 個模擬信號的輸出引腳。aout 引腳直接與STM32 的AD 轉(zhuǎn)換和輸入引腳相連,ADC 將采集后得到的模擬信號轉(zhuǎn)換成1 個數(shù)字信號。在正常環(huán)境(即沒有收到檢測氣體)下,將該傳感器所需的輸入和參考電壓設(shè)置為正常輸入和參考電壓。此時aout 端的檢測電壓大約為1 V,當(dāng)傳感器檢測到被檢測氣體時,檢測電壓額定值增加為0。在正常環(huán)境下,即沒有檢測到氣體的情況下,將該傳感所需的輸入和參考電壓設(shè)置為正常輸入和參考電壓。此時aout 端的模擬濃度電壓約為1 V,當(dāng)單片機傳感器在模擬濃度檢測時得到被用于模擬濃度檢測的氣體時,當(dāng)模擬濃度電壓額定值變化增加0.1 V 時,被用于模擬濃度檢測氣體的實際濃度額定值將會增加2×10-5。根據(jù)該參數(shù),單片機可以把測量出來的模擬濃度電壓額定值自動變成模擬濃度額定值。這個模塊的濃度變換公式定義為:
使用2 路繼電器模塊來控制風(fēng)扇等溫度調(diào)節(jié)設(shè)備和蜂鳴器。在STM32 上定義出2 個輸出口用于判斷溫濕度是否達到給定閾值。第1 個繼電器的常閉觸點接升溫設(shè)備,第2 個繼電器的常開觸點為降溫設(shè)備。當(dāng)溫度低于最低溫度時,2 個輸出口均輸出低電平,2 個繼電器都處在常閉觸點上,第1 個繼電器控制升溫設(shè)備;當(dāng)溫度處于閾值給定的區(qū)間內(nèi),第1 個輸出口為高電平,第1 個繼電器處在常開觸點上,提供電源給第2 個繼電器,第2 個輸出口為低電平,處于常閉觸點,沒有設(shè)備打開;當(dāng)溫度高于最高溫度時,兩個輸出口輸出高電平,繼電器都處在常開觸點上,第1 個繼電器提供第2 個繼電器的電源,使第2 個繼電器可以打開降溫設(shè)備。無線網(wǎng)絡(luò)模塊使用的ESP8266 芯片,運用AT 指令選擇運行模式即可實現(xiàn)無線網(wǎng)絡(luò)和單片機之間的數(shù)據(jù)連接。為了存儲環(huán)境數(shù)據(jù)變送器所采集上傳的室內(nèi)環(huán)境數(shù)據(jù),接入OneNET 流程時,需要對OneNET 物聯(lián)網(wǎng)開放平臺進行相應(yīng)的部署,具體可分為創(chuàng)建產(chǎn)品、添加設(shè)備和數(shù)據(jù)上傳3 個步驟。首先,登錄OneNET 物聯(lián)網(wǎng)開放平臺進入控制臺,在OneNET 產(chǎn)品目錄選擇“多協(xié)議接入”服務(wù),并創(chuàng)建一個用于接收和存儲監(jiān)測數(shù)據(jù)的產(chǎn)品。值得注意的是,一個產(chǎn)品可以擁有多個設(shè)備。產(chǎn)品創(chuàng)建成功后點擊進入該產(chǎn)品,并打開該產(chǎn)品的設(shè)備列表,使用“添加設(shè)備”功能為該產(chǎn)品添加設(shè)備。然后使用AT 指令將ESP8266連接到自己設(shè)定的路由器上,根據(jù)說明文檔,接入AP的AT 指令為:
AT + CWJAP = ssid,pswd;
其中ssid 為路由器名稱,pswd 為路由器密碼。設(shè)備登陸的AT 指令為:
AT + IOTCFG = devide.proiduct,auth_info;
其中devide 為設(shè)備DI,proiduct 為產(chǎn)品ID,auth_info 為鑒權(quán)信息。在燒錄完成后刷新設(shè)備頁面,可以發(fā)現(xiàn)設(shè)備已經(jīng)在線。之后就要上傳數(shù)據(jù),可以在平臺建立一個數(shù)據(jù),數(shù)據(jù)類似程序中的一個變量,用來存數(shù)值,也可以使用固件上報功能,若這個數(shù)據(jù)不存在,會自動新建一個,根據(jù)手冊:
嘗試自己定義一個數(shù)字,輸入指令A(yù)T+IOTSEND=0,test,125;此時可以發(fā)現(xiàn),設(shè)備數(shù)據(jù)流(設(shè)備列表→數(shù)據(jù)流)中新增1 個數(shù)據(jù)125。由此可以實現(xiàn)定周期向云平臺上傳數(shù)據(jù)。
3 系統(tǒng)軟件設(shè)計
本系統(tǒng)采用OneNET 云平臺服務(wù)實現(xiàn)網(wǎng)絡(luò)監(jiān)控室內(nèi)環(huán)境數(shù)據(jù)。云平臺也提供了相應(yīng)的手機APP,幫助實現(xiàn)遠程監(jiān)測的功能。本系統(tǒng)使用MQTT 協(xié)議實現(xiàn)數(shù)據(jù)上傳。需要用到安信可ESP8266 IDE、ESP8266 官方SDK等官方提供的文件,需要注意的是,要在云平臺上創(chuàng)建產(chǎn)品并選擇協(xié)議,得到設(shè)備認證三元組:ProductKey、DeviceName 和DeviceSecret,在官方提供的文件中改變相應(yīng)的部分。進行編譯、燒錄,即可連接到OneNET平臺。關(guān)于ESP8266 傳輸數(shù)據(jù)的格式,MQTT 協(xié)議中給出了與數(shù)據(jù)相關(guān)的基本內(nèi)容,其基本格式分別為:固定報文頭(fixed header)、可變報文頭(variable header)、有效負荷(payload)。其中,有效負荷為實際檢測的數(shù)據(jù)。由于設(shè)備原因,我們采用的是網(wǎng)絡(luò)帶寬占用較低的QoS0。
4 系統(tǒng)實際效果
在打開電源后,可以在PC 端或手機上看到設(shè)備已連接在無線網(wǎng)中。通過手指按壓測溫濕度模塊可以看到OneNET 平臺和移動端的設(shè)備云上監(jiān)測數(shù)據(jù)的變化。但由于MQTT數(shù)據(jù)傳輸質(zhì)量問題,有些數(shù)據(jù)不會實時更新,但總體上可以看出溫度的大致走向,在網(wǎng)絡(luò)較好的地方會體現(xiàn)得更加明顯。
5 結(jié)束語
本文設(shè)計了以STM32F103 為核心的室內(nèi)環(huán)境信息監(jiān)測和調(diào)節(jié)系統(tǒng)。測試結(jié)果表明,系統(tǒng)能夠準確檢測出室內(nèi)的溫度、濕度、一氧化碳等環(huán)境量,可以利用繼電器操控風(fēng)扇和制冷片,制熱片對對環(huán)境量進行調(diào)節(jié)。利用OneNET 物聯(lián)網(wǎng)平臺,通過MQTT 協(xié)議,完成了對環(huán)境量的遠程操控和報警功能。該設(shè)計符合系統(tǒng)設(shè)計的最初目標,給遠程環(huán)境監(jiān)控和調(diào)節(jié)提供了新的思路,有一定實用價值。
參考文獻:
[1] 劉萬元,黃連清,黃方連,等.基于OneNET物聯(lián)網(wǎng)開放平臺的智慧農(nóng)業(yè)監(jiān)測系統(tǒng)設(shè)計[J].農(nóng)業(yè)科技與信息,2021(05):82-85.
[2] 王鵬,王發(fā)言,劉龍龍.基于物聯(lián)網(wǎng)的“OneNET病房”監(jiān)測與信息反饋平臺[J].數(shù)碼世界,2021(1):218-219.
[3] 李麗榮,薄立康.STM32技術(shù)下單片機的通信技術(shù)實驗系統(tǒng)設(shè)計與實現(xiàn)[J].電子測試,2021(7):30-31.
[4] 李威,王宏濤.基于NB-IoT的酒窖環(huán)境遠程監(jiān)測系統(tǒng)[J].應(yīng)用科技,2020,47(4):32-36.
[5] 張晨,王玉槐,韓齊,等.基于OneNET云平臺的智能家居遠程控制系統(tǒng)設(shè)計[J].信息技術(shù)與信息化,2020(10):223-226.
(本文來源于《電子產(chǎn)品世界》雜志2021年9月期)
評論