国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32的室內(nèi)環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)

2021-07-01 05:21朱兆豐劉靜琦周振虎劉靜波余澤滔
物聯(lián)網(wǎng)技術(shù) 2021年6期
關(guān)鍵詞:溫濕度串口指令

朱兆豐,劉靜琦,周振虎,劉靜波,余澤滔,時(shí) 飛

(南京工程學(xué)院 信息與通信工程學(xué)院,江蘇 南京 211167)

0 引 言

室內(nèi)空氣質(zhì)量對于人體健康具有直接的影響。隨著生活水平的提高,人們越來越重視室內(nèi)環(huán)境的空氣質(zhì)量、環(huán)境參數(shù)等,特別是各種有害氣體,嚴(yán)重危害了人體健康[1]。人們采取相關(guān)監(jiān)測方法獲取室內(nèi)溫濕度、VOC、PM2.5等環(huán)境參數(shù),監(jiān)測方法大致經(jīng)歷了幾個(gè)階段:人工現(xiàn)場監(jiān)測、在線監(jiān)測、基于ZigBee和GPRS方式監(jiān)測等[2-3]。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展以及智能手機(jī)的普及,多采用智能硬件終端監(jiān)測環(huán)境參數(shù)、采集數(shù)據(jù),并通過WiFi模塊傳輸至云平臺,同時(shí)采用微信小程序?qū)崟r(shí)查詢數(shù)據(jù),發(fā)出控制指令控制硬件終端已成為一種趨勢。采用不同的主控芯片與云平臺構(gòu)建的遠(yuǎn)程監(jiān)測系統(tǒng)具有不同的應(yīng)用特點(diǎn)[4],本文設(shè)計(jì)的室內(nèi)環(huán)境參數(shù)監(jiān)測系統(tǒng)采用STM32主控芯片,通過WiFi模塊上傳數(shù)據(jù)至貝殼物聯(lián)云平臺,完成數(shù)據(jù)采集、存儲(chǔ)、上傳和微信小程序?qū)崟r(shí)查詢數(shù)據(jù)、發(fā)出控制指令等應(yīng)用。

1 系統(tǒng)總體組成

系統(tǒng)總體組成如圖1所示,其中虛線部分為硬件終端。主控芯片采用STM32F103RCT6,這是以32位Cortex-M3為核心的高性能處理器,主頻為72 MHz,集成了多種外設(shè),片上資源豐富[5]。采用高精度、低功耗的溫濕度傳感器HDC1080采集溫濕度數(shù)據(jù),采用ZPH01型傳感器檢測VOC和PM2.5數(shù)據(jù)信息。ZPH01型傳感器可以配置成2種數(shù)據(jù)輸出模式,一種是串口方式,另一種以PWM波形中低電平占空比的表示輸出數(shù)據(jù),使用靈活。WiFi模塊選用ESP8266,ESP8266可配置成多種模式,與STM32單片機(jī)通過串口連接。硬件終端采集數(shù)據(jù),定時(shí)發(fā)送至貝殼物聯(lián)云平臺。在貝殼物聯(lián)注冊的同一個(gè)用戶ID下,電腦端和微信小程序同步接收并更新數(shù)據(jù)。微信小程序可以查詢數(shù)據(jù)信息,也可以發(fā)送指令,進(jìn)而控制硬件終端數(shù)據(jù)存儲(chǔ)與報(bào)警閾值的設(shè)定等。系統(tǒng)中接有時(shí)鐘芯片DS3231,這是一款帶有溫度補(bǔ)償?shù)母呔葧r(shí)鐘芯片[6],用以提供系統(tǒng)運(yùn)行的時(shí)間信息、定時(shí)時(shí)間間隔的控制設(shè)定等。

圖1 系統(tǒng)總體組成

2 系統(tǒng)硬件設(shè)計(jì)

2.1 硬件終端組成與接口電路

硬件終端包括主控芯片STM32F103RCT6。主控芯片的PC11和PC12作為I2C總線掛載了3個(gè)功能模塊,分別是溫濕度傳感器HDC1080、時(shí)鐘芯片DS3231和E2PROM存儲(chǔ)芯片AT24C02,STM32主控芯片通過訪問不同的器件地址[7],可以對芯片進(jìn)行配置與讀寫。空氣質(zhì)量傳感器ZPH01連接到串口1的PA9和PA10上;WiFi模塊ESP8266連接到串口2的PA2和PA3上。系統(tǒng)配置了一塊320×240分辨率的TFT彩屏,其16位數(shù)據(jù)口連接到STM32的PB端口,GT32L32字庫芯片掛載到STM32的SPI1總線上,方便顯示中英文信息。

圖2所示為硬件終端組成與接口連接示意圖,其中I2C總線上PC11為SDA數(shù)據(jù)線,PC12為SCL時(shí)鐘線。ESP8266的復(fù)位引腳由STM32的PA12控制。DS3231的INT引腳可以軟件配置為輸出1 Hz的信號,連接于STM32的PC6引腳上作外部中斷信號,由此進(jìn)入外部中斷服務(wù)程序??諝赓|(zhì)量傳感器的MOD模式控制端接口處于串口模式時(shí)讀取數(shù)據(jù),ZPH01與單片機(jī)之間的數(shù)據(jù)讀取以串口1方式進(jìn)行。

圖2 硬件終端組成與接口電路

2.2 WiFi接口模塊ESP8266

ESP8266是一款高集成度的WiFi模塊,它是一個(gè)32位的MCU系統(tǒng),可獨(dú)立運(yùn)行訪問網(wǎng)絡(luò),或者作為通信模塊搭載于其他主控芯片上,幫助其他主控芯片接入互聯(lián)網(wǎng)[8]。ESP8266模塊符合IEEE802.11b/g/n標(biāo)準(zhǔn),支持TTL電平,板載PCB天線[9],與STM32通過串口2連接,ESP8266模塊可配置成AP,STA或AP+STA模式。

(1)AP模式是指把ESP8266作為熱點(diǎn),允許其他外設(shè)接入ESP8266模塊;

(2)STA模式是將ESP8266作為客戶端,用于將ESP8266接入其他熱點(diǎn),例如無線路由器等;

(3)AP+STA模式是前兩種模式的整合,兼具熱點(diǎn)功能,為其他設(shè)備提供接入服務(wù),同時(shí)也可以接入其他WiFi網(wǎng)絡(luò)。

本設(shè)計(jì)把ESP8266配置為STA工作模式,通過路由器連接網(wǎng)絡(luò)。

2.3 傳感器模塊

TI公司出品的HDC1080溫濕度傳感器具有高精度、低功耗的特點(diǎn),可進(jìn)行溫度與濕度監(jiān)測,分辨率較高。相對濕度精度典型值為±2%RH,溫度精度典型值為±0.2 ℃,供電電壓為2.7~5.5 V。借助數(shù)字總線I2C接口與單片機(jī)進(jìn)行數(shù)據(jù)讀寫:HDC1080讀寫遵守I2C協(xié)議,設(shè)備地址0x80(寫),0x81(讀)。測量溫度數(shù)據(jù)計(jì)算式見(1):

式中,TEMP[15:00]為溫度寄存器的十進(jìn)制數(shù)。

測量濕度數(shù)據(jù)計(jì)算見式(2):

式中,HUMI[15:00]為濕度寄存器的十進(jìn)制數(shù)。

ZPH01空氣質(zhì)量傳感器可以同時(shí)提供VOC檢測和PM2.5檢測。VOC檢測單元對甲醛、苯等有機(jī)揮發(fā)氣體具有極高的靈敏度。ZPH01出廠經(jīng)過標(biāo)定校準(zhǔn),數(shù)據(jù)的傳輸方式由MOD引腳配置。當(dāng)MOD引腳接地時(shí),數(shù)據(jù)以串口方式輸出;當(dāng)MOD懸空時(shí),數(shù)據(jù)以PWM方式輸出,其中,以PWM波形低電平的占空比表示數(shù)據(jù)大小。ZPH01模塊通過串口1方式與STM32進(jìn)行數(shù)據(jù)交互。該傳感器發(fā)送一次檢測數(shù)據(jù)的周期為1 s,包含VOC等級以及PM2.5等空氣質(zhì)量數(shù)據(jù)。程序接收數(shù)據(jù)并通過校驗(yàn)后得到PM2.5和VOC等級有效數(shù)據(jù)。

3 軟件設(shè)計(jì)

3.1 主程序流程

通過串口配置工具發(fā)送AT指令,配置ESP8266連接路由器,并確定是否連接成功。STM32單片機(jī)通過傳感器讀取室內(nèi)環(huán)境參數(shù),以固定的時(shí)長間隔存儲(chǔ)數(shù)據(jù)至E2PROM,同時(shí)通過ESP8266定時(shí)發(fā)送數(shù)據(jù)至貝殼物聯(lián)云平臺。貝殼物聯(lián)云平臺電腦端和微信小程序均可發(fā)送指令,硬件終端根據(jù)不同的指令解析指令含義,作出響應(yīng),系統(tǒng)主程序流程如圖3所示。程序?qū)r(shí)間讀取、測量溫濕度、顯示溫濕度和存儲(chǔ)數(shù)據(jù)等放置在外中斷服務(wù)程序中,利用DS3231輸出的1 Hz信號連接STM32的PC6,提高主程序的效率。I2C總線下的溫濕度傳感器HDC1080、時(shí)鐘芯片DS3231和E2PROM存儲(chǔ)器AT24C02均按照應(yīng)用手冊寫入控制字,先配置內(nèi)部控制寄存器,之后讀出數(shù)據(jù)。在串口2中斷接收并解析收到的控制指令,串口2中斷接收到指令后給主程序一個(gè)標(biāo)志位,之后進(jìn)行判斷,并根據(jù)不同的指令完成相應(yīng)的操作??梢酝ㄟ^電腦端或手機(jī)微信小程序下達(dá)指令進(jìn)行遠(yuǎn)程控制,控制數(shù)據(jù)上傳的時(shí)間間隔和輸出報(bào)警的閾值等。

圖3 主程序流程

3.2 硬件終端與貝殼物聯(lián)云平臺通信

貝殼物聯(lián)云平臺采用以TCP協(xié)議為主,UDP協(xié)議為輔的形式通信,兩種協(xié)議間信息可互通。TCP協(xié)議為遠(yuǎn)程網(wǎng)絡(luò)控制系統(tǒng)提供可靠且面向多元化連接的傳輸控制協(xié)議[10],在TCP協(xié)議的基礎(chǔ)上,可以直接使用TCP建立長連接,定時(shí)發(fā)送心跳數(shù)據(jù),保持用戶、設(shè)備在線期間與服務(wù)器可進(jìn)行JSON字符串格式數(shù)據(jù)通信,也可采用HTTP(s)通信協(xié)議獲取用戶資源,向設(shè)備發(fā)送指令。

ESP8266具有硬件終端與貝殼物聯(lián)云平臺之間數(shù)據(jù)傳輸?shù)墓δ?,把STM32采集的數(shù)據(jù)按照平臺通信協(xié)議格式發(fā)送至云平臺,同時(shí)接收云平臺發(fā)送的JSON格式的指令,解析后執(zhí)行不同的任務(wù)。ESP8266與平臺之間保持通信,定時(shí)發(fā)送心跳信號、檢查當(dāng)前登錄狀態(tài)。當(dāng)串口2中斷標(biāo)志產(chǎn)生,意味著云平臺發(fā)出指令,這時(shí)STM32調(diào)用JSON解析函數(shù)解析接收的JSON字符串,得到有效指令。硬件終端根據(jù)上傳數(shù)據(jù)的最低時(shí)間間隔,按照通信協(xié)議上傳數(shù)據(jù)至云平臺,上傳數(shù)據(jù)的時(shí)間間隔可以根據(jù)不同指令增加或減小。

ESP8266配置為STA客戶端模式加透傳模式,其配置方式可以用串口2發(fā)送命令函數(shù)或用串口配置工具進(jìn)行配置。輸入的指令“AT+SAVETRANSLINK”用于配置ESP8266上電后自主連接貝殼物聯(lián)云平臺。待AT指令發(fā)送成功后,ESP8266返回“OK”。

官方給出的上傳數(shù)據(jù)的協(xié)議格式為{"M":"update", "ID":"xx1","V":{"id1":"value1",...}} ,“xx1”表示注冊用戶的設(shè)備ID,“id1”和“value1”是掛在當(dāng)前設(shè)備ID下的數(shù)據(jù)接口1和上傳數(shù)據(jù)1,“…”是該設(shè)備下的多個(gè)數(shù)據(jù)接口與數(shù)據(jù)。對照此格式,上傳數(shù)據(jù)的函數(shù)如下:

變量“did”表示注冊用戶的設(shè)備ID,“inpitid”是所屬設(shè)備ID下的數(shù)據(jù)接口ID,如果上傳多個(gè)數(shù)據(jù),可以按照協(xié)議格式添加數(shù)據(jù)接口,由平臺給出數(shù)據(jù)接口ID,掛在當(dāng)前所屬設(shè)備ID的其他數(shù)據(jù)接口?!癡alue”是上傳的數(shù)據(jù),如溫濕度和PM2.5等。

貝殼物聯(lián)云平臺提供預(yù)先設(shè)定的按鈕,可以在電腦端和微信小程序里發(fā)送指令,指令封裝為JSON數(shù)據(jù)格式,例如用戶硬件終端接收到電腦端發(fā)出的“play”按鍵的數(shù)據(jù)格式是{"M":"say", "ID":"U*****", "NAME":"*****(web)", "C":"play","T":"1601725434"},其中“U*****”是用戶ID,NAME后的“*****”是用戶名,C后的“play”是解析的關(guān)鍵字,不同的按鍵指令含義即為C后的字符,包括stop、up、down等。T后的數(shù)字是服務(wù)器發(fā)送信息時(shí)的時(shí)間戳,為格林威治時(shí)間1970年01月01日00:00:00到當(dāng)前時(shí)間的秒數(shù)。程序解析按鍵解析出不同的關(guān)鍵字,從而實(shí)現(xiàn)不同的功能選項(xiàng)。

3.3 ZHP01數(shù)據(jù)讀取

ZPH01可以配置為串口方式,發(fā)送數(shù)據(jù)至STM32串口1,每秒發(fā)送一幀數(shù)據(jù),一幀數(shù)據(jù)共有9個(gè)字節(jié),其中字節(jié)00為起始位,字節(jié)03和04是PM2.5顆粒物低脈沖率的整數(shù)和小數(shù)部分,最后乘以系數(shù)得到顆粒物濃度。07字節(jié)是VOC等級,08字節(jié)是01~07字節(jié)的校驗(yàn)和,含義是01~07字節(jié)的和取反加1。串口1的中斷處理程序中,數(shù)據(jù)存放于數(shù)組aRxBuffer[RxCounter],當(dāng)一幀數(shù)據(jù)結(jié)束后產(chǎn)生空閑總線中斷,給出中斷標(biāo)志位ReceiveState,主程序根據(jù)中斷標(biāo)志位ReceiveState讀取并組合字節(jié)03和字節(jié)04的數(shù)據(jù),得到PM2.5濃度。程序代碼如下:

4 實(shí)際測試

通過對硬件終端采集、上傳數(shù)據(jù)進(jìn)行測試,可以看到電腦端的貝殼物聯(lián)網(wǎng)平臺與手機(jī)微信小程序同步接收、顯示數(shù)據(jù)。測試過程中,通過平臺發(fā)布指令,調(diào)整數(shù)據(jù)上傳的時(shí)間間隔等。圖4所示為硬件終端顯示數(shù)據(jù)界面,圖5所示為微信小程序接收數(shù)據(jù)界面,圖6所示為電腦端溫度實(shí)時(shí)接收數(shù)據(jù)界面。

圖4 硬件終端顯示數(shù)據(jù)界面

圖5 微信小程序接收數(shù)據(jù)界面

圖6 溫度實(shí)時(shí)接收數(shù)據(jù)界面

5 結(jié) 語

本系統(tǒng)經(jīng)過系統(tǒng)硬件設(shè)計(jì)、軟件編程配置和實(shí)際測試,實(shí)現(xiàn)了溫濕度、PM2.5和VOC數(shù)據(jù)的采集,并能將數(shù)據(jù)上傳貝殼物聯(lián)云平臺和手機(jī)微信小程序,從而實(shí)現(xiàn)同步遠(yuǎn)程監(jiān)測、發(fā)布指令的目的。測試表明,系統(tǒng)符合室內(nèi)環(huán)境參數(shù)監(jiān)測的要求,通過接入貝殼物聯(lián)云平臺實(shí)現(xiàn)了遠(yuǎn)程監(jiān)測,兼顧了成本、效率和實(shí)時(shí)性,滿足了實(shí)際應(yīng)用需求。STM32豐富的接口和外設(shè)可以作為測量其他參數(shù)的監(jiān)測接口,增加貝殼物聯(lián)云平臺的數(shù)據(jù)接口,上傳需要的數(shù)據(jù),開啟平臺保存歷史數(shù)據(jù)、發(fā)送指令等功能,為系統(tǒng)進(jìn)一步的拓展應(yīng)用夯實(shí)了基礎(chǔ)。

猜你喜歡
溫濕度串口指令
溫濕度控制器在回收砂冷卻系統(tǒng)中的應(yīng)用
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
基于DSP的多路溫濕度監(jiān)測系統(tǒng)
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
基于溫濕度控制的天氣預(yù)測裝置
蒸發(fā)冷卻溫濕度獨(dú)立控制空調(diào)系統(tǒng)的應(yīng)用
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無線通信
基于并行控制的FPGA多串口拓展實(shí)現(xiàn)