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