錢平 齊賽賽 孫遜
摘要:文章設(shè)計(jì)了以STM32單片機(jī)與ESP8266無(wú)線模塊為基礎(chǔ)的硬件終端,該終端以STM32的最小系統(tǒng)為基礎(chǔ),接入光照度傳感器、溫濕度傳感器、煙霧傳感器進(jìn)行室內(nèi)環(huán)境數(shù)據(jù)的獲取。所獲得的環(huán)境數(shù)據(jù)通過無(wú)線模塊上傳至阿里云服務(wù)器,在微信小程序端可以實(shí)時(shí)遠(yuǎn)程監(jiān)測(cè)室內(nèi)環(huán)境。此外,在微信小程序端還接入“和風(fēng)天氣”API接口達(dá)到獲取天氣信息的目的,硬件終端可以通過通信協(xié)議與云平臺(tái)和微信小程序進(jìn)行數(shù)據(jù)的交互,實(shí)現(xiàn)室內(nèi)監(jiān)測(cè)與控制,應(yīng)用前景廣泛。
關(guān)鍵詞:STM32;ESP8266;環(huán)境監(jiān)測(cè)
中圖分類號(hào):TP368.1
文獻(xiàn)標(biāo)志碼:A
0 引言
隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,其在室內(nèi)環(huán)境監(jiān)測(cè)應(yīng)用領(lǐng)域也得到了很好的應(yīng)用。在線環(huán)境監(jiān)測(cè)的方法也很多,如利用ZigBee協(xié)議等傳統(tǒng)的方式,但存在價(jià)格相對(duì)較高、組網(wǎng)困難、協(xié)議占帶寬的開銷量較大等缺點(diǎn)。采用硬件智能終端采集室內(nèi)相關(guān)環(huán)境數(shù)據(jù),并通過無(wú)線網(wǎng)絡(luò)模塊傳送至云端的方式已成為一種發(fā)展趨勢(shì),可以通過微信小程序或手機(jī)App端進(jìn)行實(shí)時(shí)數(shù)據(jù)交互,包括環(huán)境數(shù)據(jù)查詢及進(jìn)行相應(yīng)的室內(nèi)家居的控制使其達(dá)到更智能化、方便化和信息化的目的 [1]。本文所涉及的系統(tǒng)就是利用STM32單片機(jī)與ESP8266無(wú)線模塊組成的本地硬件終端,通過數(shù)據(jù)的采集、傳輸、存儲(chǔ)到云端,通過微信小程序?qū)崿F(xiàn)數(shù)據(jù)的交互,實(shí)現(xiàn)室內(nèi)環(huán)境數(shù)據(jù)的實(shí)時(shí)查看、預(yù)警以及后期可添加控制單元實(shí)現(xiàn)家居自動(dòng)化等功能,同時(shí)接入“和風(fēng)天氣”API接口將實(shí)時(shí)天氣情況和穿衣建議顯示在屏幕和微信小程序端。
1 智能家居系統(tǒng)總體設(shè)計(jì)
系統(tǒng)的總體框圖如圖1所示,其中,左邊部分為本地的硬件終端包括主控芯片STM32F103C8T6單片機(jī)、 BH1750光照度傳感器模塊、DHT11溫濕度傳感器模塊和MQ-2煙霧傳感器模塊。傳感器采集到的數(shù)據(jù)傳輸?shù)街骺匦酒M(jìn)行數(shù)據(jù)的處理并顯示在終端OLED顯示屏上[2]。ESP8266-01模塊將采集到的數(shù)據(jù)以JSON數(shù)據(jù)的形式通過阿里云ECS搭建的MQTT服務(wù)器發(fā)送到基于VUE框架的微信小程序中。該小程序調(diào)用“和風(fēng)天氣”API顯示實(shí)時(shí)天氣情況,空氣指數(shù),空氣質(zhì)量和運(yùn)動(dòng)建議。若采集到的數(shù)據(jù)超過設(shè)定閾值范圍終端會(huì)進(jìn)行蜂鳴器報(bào)警并通過遠(yuǎn)程手機(jī)小程序端的報(bào)警提醒用戶。整個(gè)物聯(lián)網(wǎng)體系結(jié)構(gòu)中,硬件及“和風(fēng)天氣”API部分為感知層,阿里云服務(wù)器為網(wǎng)絡(luò)層,智能家居系統(tǒng)小程序?yàn)閼?yīng)用層。
2 智能家居系統(tǒng)的硬件設(shè)計(jì)
2.1 主控模塊
STM32F103C8T6是一款由意法半導(dǎo)體公司推出一款常用32位主控芯片,該主控芯片是基于Cortex-M3內(nèi)核的控制器,外部時(shí)鐘最高可倍頻到72 MHz,程序存儲(chǔ)器容量為64 KB,需工作電壓為2~3.6 V,工作溫度為-40~85 ℃。該為控制器具有豐富的外圍設(shè)備,包括37個(gè)GPIO、7個(gè)定時(shí)器、2個(gè)I2C接口、3個(gè)USART接口、2個(gè)SPI接口、1個(gè)CAN接口等外設(shè)。該主控模塊價(jià)格與家族其他芯片相比較低,其比8位單片機(jī)更優(yōu),非常適合此系統(tǒng)。主控板與各其他硬件模塊連接的電路原理如圖2所示,其中,蜂鳴器與引腳PA1相連接,OLED顯示屏與引腳PA5,PA7相連接。電源模塊會(huì)根據(jù)不同芯片的工作電壓進(jìn)行不同的變壓。
2.2 無(wú)線物聯(lián)網(wǎng)模塊
本系統(tǒng)采用的無(wú)線傳輸模塊為ESP8266,該模塊的主要特點(diǎn)是低功耗、集成度高、性能穩(wěn)定等,有集成完整的TCP/IP協(xié)議棧和MCU,可作為獨(dú)立MCU使用或作為通信模塊搭載于其他主控芯片上[3]。本系統(tǒng)是通過STM32的串口2與模塊連接,同時(shí)配置成STA工作模式,通過路由器連接至網(wǎng)絡(luò)。
2.3 光照度傳感器模塊
本系統(tǒng)采用的是BH1750傳感器,該傳感器是具有接近視覺靈敏度的光譜靈敏度特性,它支持IICBUS接口,是一種用于兩線式串行總線接口的數(shù)字型光強(qiáng)度傳感器集成電路。其主要特點(diǎn)是高分辨率、光強(qiáng)探測(cè)范圍廣、受紅外線影響小等。本系統(tǒng)主控模塊STM32與光照度傳感器模塊采用的連接方式為IIC模式,采用PB6、PB7引腳模擬IIC協(xié)議讀取BH1750傳感器數(shù)據(jù),原理如圖2所示。
2.4 溫濕度傳感器模塊
本系統(tǒng)采用的是DHT11傳感器,該傳感器具有已校準(zhǔn)數(shù)字信號(hào)輸出、單總線模式、連接簡(jiǎn)單、精度準(zhǔn)確、抗干擾能力強(qiáng)、響應(yīng)速度快、性價(jià)比高等優(yōu)點(diǎn)。溫度量程在-20~60 ℃,濕度量程范圍在5~95%RH。本系統(tǒng)主控模塊STM32與溫濕度傳感器模塊采用的便是單總線數(shù)據(jù)格式,數(shù)據(jù)線與PA8引腳相連接,原理如圖2所示。
2.5 MQ-2煙霧傳感器模塊
本系統(tǒng)采用的是MQ-2氣體傳感器,該傳感器具有響應(yīng)快、穩(wěn)定性能好、驅(qū)動(dòng)電路簡(jiǎn)單、靈敏度較高等優(yōu)點(diǎn)。該傳感器內(nèi)含二氧化錫半導(dǎo)體氣敏材料,煙霧濃度越大,輸出的電阻越小,輸出的模擬信號(hào)就越大。該傳感器處理信號(hào)也比較簡(jiǎn)單,主控板檢測(cè)到的數(shù)值超過閾值時(shí),信號(hào)為高電平,反之為低電平,可通過與閾值的比較聯(lián)動(dòng)蜂鳴器的鳴叫和小程序端的警報(bào)。這種傳感器可檢測(cè)多種可燃性氣體,是一款適合多種應(yīng)用的低成本傳感器。本系統(tǒng)主控模塊STM32與煙霧報(bào)警傳感器模塊連接方式與引腳PA1相連接,如圖2所示。
3 智能家居系統(tǒng)的軟件設(shè)計(jì)
3.1 主程序流程
根據(jù)以上的硬件電路的設(shè)計(jì)方式,針對(duì)每一模塊進(jìn)行軟件編程,主要軟件流程如圖3所示。首先,初始化傳感器、STM32單片機(jī)和無(wú)線傳輸模塊ESP8266,傳感器讀取數(shù)據(jù)傳至STM32單片機(jī)進(jìn)行數(shù)據(jù)處理,并顯示在OLED顯示屏上。同時(shí),將數(shù)據(jù)通過無(wú)線模塊連接路由器接入因特網(wǎng)傳送至基于EMQX在阿里云ECS搭建的個(gè)人服務(wù)器[4]。
下面具體介紹一下各個(gè)模塊的程序設(shè)計(jì)的原理及注意事項(xiàng)。光照度傳感器模塊先通過PB6,PB7引腳發(fā)送IIC起始信號(hào),STM32單片機(jī)開始讀取IIC數(shù)據(jù)。溫濕度傳感器模塊,采用兩個(gè)循環(huán)用于等待每個(gè)周期的電平變化,防止STM32單片機(jī)收不到溫濕度傳感器電平信號(hào)而死機(jī),一次完整的數(shù)據(jù)傳輸為40 bit,高位先出,分別是高16位表示濕度的整數(shù)和小數(shù)數(shù)據(jù),低16位表示溫度的整數(shù)和小數(shù)數(shù)據(jù)。煙霧傳感器模塊通過Get_Adc函數(shù)實(shí)時(shí)獲取MQ-2傳感器的煙霧值。
3.2 微信小程序開發(fā)應(yīng)用流程
無(wú)線模塊ESP8266獲取的數(shù)據(jù)通過互聯(lián)網(wǎng)傳送至云端。本系統(tǒng)云服務(wù)器采用的是EMQX平臺(tái),EMQX向用戶開放足夠的API,便于第三方應(yīng)用的接入。微信小程序開發(fā)先獲取用戶ID,再向遠(yuǎn)程服務(wù)器中發(fā)送請(qǐng)求[5],并等待JSON格式從數(shù)據(jù)庫(kù)中獲取信息。具體數(shù)據(jù)訪問界面流程,如圖4所示。
小程序訂閱的/ mysmarthome /pub主題接收到“和風(fēng)天氣”API和物聯(lián)網(wǎng)模塊發(fā)送的報(bào)文會(huì)實(shí)時(shí)更新小程序的界面內(nèi)容。同時(shí),也可以向/mysmarthome/sub主題發(fā)送相應(yīng)的控制信息報(bào)文。在基于mpvue-quickstart創(chuàng)建的模板項(xiàng)目中,安裝sass和mqtt的npm依賴。用HTML搭建界面結(jié)構(gòu)iconfont找到合適的矢量圖標(biāo),CSS搭建界面樣式,JavaScript實(shí)現(xiàn)接收和訂閱消息,小程序和MQTT服務(wù)器連接,接收消息和開關(guān)組件綁定。
4 系統(tǒng)實(shí)際測(cè)試
系統(tǒng)上電復(fù)位后各元器件初始化正常,檢測(cè)到的實(shí)時(shí)溫濕度值,光照度值以及煙霧值正常顯示在OLED屏幕上,并且成功上傳至微信小程序端,“和風(fēng)天氣” API接口成功調(diào)用,小程序正確顯示空氣質(zhì)量、溫度、地區(qū)、穿衣建議,如圖5—6所示。當(dāng)收集到的數(shù)據(jù)超過閾值時(shí),硬件終端蜂鳴器和小程序端都會(huì)成功報(bào)警。
5 結(jié)語(yǔ)
本文設(shè)計(jì)實(shí)現(xiàn)了一種基于STM32單片機(jī)與ESP8266無(wú)線模塊為硬件終端的室內(nèi)環(huán)境監(jiān)測(cè)系統(tǒng),該系統(tǒng)實(shí)現(xiàn)了本地和遠(yuǎn)程監(jiān)測(cè)室內(nèi)家居環(huán)境的功能。本文簡(jiǎn)單介紹了硬件和軟件的設(shè)計(jì),并在測(cè)試中能夠在硬件終端的OLED屏幕上和微信小程序端都正常顯示數(shù)據(jù)。該系統(tǒng)后期還可以增加窗簾電機(jī)等智能控制系統(tǒng),為實(shí)現(xiàn)更好的智能家居打下基礎(chǔ),也致力于提高改善人們的智能家居生活。
參考文獻(xiàn)
[1]朱兆豐,劉靜琦,周振虎,等.基于STM32的室內(nèi)環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù),2021(6):6-9.
[2]陳紅,印春曉,韋金言,等.基于STM32的室內(nèi)環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與開發(fā)[J].電子技術(shù)與軟件工程,2019(9):56-57.
[4]嚴(yán)涵婷,杜選,孫添程,等.基于ESP8266的智能家居系統(tǒng)開發(fā)[J].電腦知識(shí)與技術(shù)(學(xué)術(shù)版),2021(27):136-138.
[5]荀艷麗,焦庫(kù),張秦菲.基于物聯(lián)網(wǎng)技術(shù)的智能家居系統(tǒng)安全加固策略[J].工業(yè)儀表與自動(dòng)化裝置,2019(5):76-78.
[5]劉晉,張帆,馮佳玉,等.基于云平臺(tái)技術(shù)的智能家居系統(tǒng)設(shè)計(jì)[J].自動(dòng)化儀表,2019(1):31-35.
(編輯 姚 鑫)
Design of indoor environment monitoring system based on STM32 and ESP8266
Qian Ping, Qi Saisai, Sun Xun
(Suzhou Vocational University, Suzhou 215104,China)
Abstract: In this paper,a hardware terminal based on STM32 microcontroller and ESP8266 wireless module is designed. Based on the minimum system of STM32,the terminal is connected to light sensor,temperature and humidity sensor,smoke sensor for indoor environment data acquisition. The environmental data obtained can be uploaded to the Ali Cloud server through the wireless module,and the indoor environment can be monitored remotely in real time on the wechat applet. In addition,the weather API interface is also connected to the wechat applet to obtain weather information. The hardware terminal can interact with the cloud platform and wechat mini program through communication protocols to realize indoor monitoring and control,which has a wide application prospect.
Key words: STM32; ESP8266; environmental monitoring