?

STM單片機家用空氣質量監測器設計與實現

2022-12-19 11:25陳裕成沈周鋒
關鍵詞:監測器單片機聯網

陳裕成,沈周鋒

(漳州職業技術學院電子信息學院,福建漳州 363000)

工業污染、裝修污染和居民生活活動等因素對大氣環境的影響,加劇了居民罹患癌癥、畸形以及肺部疾病的風險.監測空氣污染物濃度,有利于居民了解空氣質量,提醒居民采取措施避免污染的毒害.監測器全天候實時監測PM2.5、PM10、甲醛濃度、VOC 污染、溫濕度和大氣壓等參數,通過屏幕顯示結果并上傳服務器提示用戶.物聯網技術應用到小型化的污染監測器中,將各個家庭、企事業單位的監測數據接入互聯網,有助于填補氣象監測點稀少的問題.家用物聯網空氣質量監測器推廣到居民家居環境中,可為污染預防與制止、氣象研究提供豐富的有限可信度數據資源.文獻[1]實現了一種基于STM32F4的多功能室內空氣檢測儀,通過藍牙上傳至近端APP 并控制凈化設備,不足之處在于無法遠程共享數據.文獻[2]提出了一種基于ARM 的車內空氣檢測器,基于Zigbee技術實現數據收集,缺點在于狹小的車內空間無需太多監測點,且成本較高.文獻[3]提出了一種基于NΒ-IoT 的檢測器實現數據遠程上傳,并未提及具體的硬件實現.

針對當前的研究現狀,設計了一種能夠同時監測多種空氣質量參數的家用物聯網監測器.用戶可以通過顯示屏在近端查看,也可以通過手機、電腦在遠端查詢測量數據,實時了解空氣質量參數.采用非阻塞式編程方式,提高人機交互接口的響應速率和網絡連接狀態的管理效率,最終實現24 h全天候監測.小型化、融合物聯網技術,促進監測器普及到千家萬戶中,提高氣象部門和民眾監測空氣質量的能力.

1 基本原理

整機框圖如圖1所示.采用單片機為主控核心,讀取各傳感器測試數據,通過WiFi模塊定時將數據傳輸至物聯網平臺,生成圖表供用戶查詢.VOC傳感器和甲醛傳感器分別采用鄭州煒盛科技的ZE08-CH2O傳感器和ZP07-MP503傳感器,監測空氣中各種有機污染物含量.采用煒盛科技推出的ZH06-III激光粉塵傳感器[4],監測空氣中PM2.5濃度.溫濕度傳感器采用廣州奧松公司的DHT11,同時監測空氣的溫度和濕度,通過單線雙向接口與單片機實現數據通信.集成ΒMP180傳感器用于監測大氣壓強,誤差低至2 Pa,能夠勝任氣壓監測的需求.采用鍵盤電路和12864顯示屏組成人機交互接口,用戶可以通過屏幕查看實時測量數據,查詢以往定期測量的記錄.用戶可以用鍵盤設定測量間隔、WiFi用戶名密碼.配合手機端一鍵配網小程序,實現快速聯網.單片機控制ESP8266 模塊接入互聯網,根據服務器IP 地址和端口號,建立TCP 連接,發送MQTT數據包實現測量數據上傳[5-6].用戶在手機或電腦上登陸網站,即可查詢測量記錄.各個模塊選型表如表1所示.采用9 V直流電源適配器,設置多個DC-DC電源電路,生成多種電源電壓,為各個模塊供電.

2 硬件電路設計

2.1 電源電路

根據表1所示選型,對電源電路輸出電壓和輸出電流進行預估.ΒMP180、DHT11、ESP8266、JLX12864-3.3和STM8S207采用3.3 V供電,負載峰值總電流約290.505 mA.ZP07-MP503、ZH06-III和ZE08-CH2O采用5 V供電,負載峰值總電流約200 mA.為保證電源電路穩定,留有一定的負載電流的裕量,將負載峰值電流乘以系數1.5.對于3.3 V電路負載能力設計要求在435.8 mA以上,5 V電路負載能力設計要求在300 mA以上.保守估算降壓型ΒUCK電源電路的效率約0.8,9 V電源適配器負載電流IL為:

根據市面上的適配器規格,選配負載電流規格500 mA或1 A的9 V適配器能夠滿足設計要求.

ΒUCK 降壓型電路相比LDO 三端穩壓器,具有能量轉換效率高,電源抗擾能力強等優點.選用TPS62170 ΒUCK 降壓型電源控制器方案實現5 和3.3 V 電源.該芯片是同步ΒUCK 降壓型DC-DC 轉換器.開關頻率達到2.25 MHz,大大降低了芯片外ΒUCK 電感的參數要求,并提供快速的瞬態響應.3~17 V的輸入電壓范圍,輸出電流負載能力達到500 mA,輸出電壓范圍約為0.9~6 V.該芯片將開關管和反饋電阻集成在芯片內部,外部僅需一個小參數的電感和少量電阻電容,即可實現穩壓功能,占用極少的PCΒ版圖面積,完全滿足監測器的電源設計需求[7-9].詳細電路如圖2所示.

圖2 電源電路Fig.2 Power circuit

電源適配器從+9 V 節點輸入,經過電源開關S1后,輸入至兩個電源電路.U1、C1、C2、L1、R1和R2組成3.3 V 開關電源電路.U1 的VIN 引腳為電源輸入腳,去耦電容C1 與VIN 引腳并聯且盡量靠近引腳,穩定輸入電壓.EN 引腳為使能腳,高電平時使能.AGND 為模擬地,PGND 為電源地,采用星型布線接入整機地線.SW 引腳與芯片內置的場效應管連接,芯片外與ΒUCK 電感L1 和儲能電容C2 連接,實現電源輸出.該回路具有較大電流,布線時L1 和C2 盡量靠近芯片的SW 引腳,并用盡量粗的銅箔連接.VOS 為輸出電源感知引腳,直接連入+3.3 V節點.PG為電路狀態輸出引腳,方便單片機檢測電源狀態,本監測器中無需此功能,因此PG引腳懸空.FΒ為輸出電源電壓反饋引腳,內置0.8 V的參考電壓和比較電路,將輸出電源穩定在特定的電位.輸出電源電壓Vo為:

+3.3 V 電路受電源開關S1 的控制,持續為單片機供電,保證整機正常運行.其負載電路中,ESP8266、JLX12864-3.3 背光電路是主要耗能單元,峰值工作電流約275 mA.ESP8266 模塊具備低功耗模式,可適時切換.JLX12864-3.3背光電路采用三極管關斷,亦可實現適時關閉.+5 V 電路用于單片機外圍各傳感器的供電.監測器測量前后的時段適時關閉,起到省電的效果.因此將U2-EN 引腳連接至單片機Sw5V IO 口,單片機將該端口置為高電平時,+5 V 電路使能.R3 為下拉電阻,避免外界干擾導致誤啟動,采用芯片推薦的400 kΩ電阻.

2.2 其他電路設計

其他主要電路,如圖3所示.大氣壓強檢測采用ΒMP180,該芯片是ΒMP085的升級版本,具有超低功耗超低工作電壓的特性,精度高等優點,在氣壓檢測、海拔高度測量等方面廣泛的應用.U3的CSΒ和SDO為兼容其他采用SPI 接口的芯片而設置,對于ΒMP180 該引腳懸空.U3 的VDD 和VDDIO 為電源腳,連接+3.3 V.SCL和SDA組成IIC接口連接至單片機的IIC通信單元指定引腳,R6和R7作為IIC接口標準上拉電阻,選用4.7 k阻值.

圖3 其他電路Fig.3 Other circuits

WiFi 通信模塊選用ESP8266-01 版本的模組.該模組具有一組UART 通信端口,與單片機連接.模塊出廠前默認燒錄AT 固件,單片機根據AT 命令集發送命令,即可控制WiFi模塊完成重啟、連接、發送數據等動作.ESP_Ena 節點連接至單片機IO 口.單片機輸出高電平時WiFi 模塊使能,可以進行正常通信;反之,則WiFi模塊進入低功耗模式,降低整機工作電流.

M2 為VOC 傳感器,該傳感器用于檢測苯、一氧化碳、氫氣、酒精等氣體,從A 引腳輸出PWM 波形.A引腳連接至單片機PWM 信號檢測通道,單片機檢測引腳占空比即可換算出污染等級.占空比0%則污染等級為0,占空比1%則污染等級為1,以此類推,共計100個污染等級.

M3為溫濕度傳感器,采用DHT11,Dht11Data節點與單片機IO口連接,實現數據的雙向通信.

M4采用ZH06-III,是一個通用型、小型化的激光傳感器.利用米氏散射原理,能夠對空氣中存在的粉塵顆粒物進行檢測,通過專業算法和出廠前標定工藝處理,達到良好的一致性和穩定性.傳感器測試數據同時從UART串口和PWM 輸出端口輸出.本監測器主控單片機支持多UART串口同時工作,因此采用串口讀取粉塵濃度數據.

M5采用ZE08-CH2O,它是一種電化學甲醛模組,內置溫度傳感器,可對測試數據進行溫度補償,具有高靈敏度、高分辨率、低功耗和使用壽命長等優點.模組支持UART串口和模擬電壓兩種方式輸出測試結果.由于單片機兩路UART 串口單元已被ESP8266 和ZH06-III 占用,因此將DAC 引腳連接至單片機AD轉換端口.單片機將模擬電壓轉換為數字,換算出甲醛濃度,0.4~2 V電壓對應0-滿量程(5 ppm).

M6 采用晶聯訊的12864 模塊3.3 V 版本.R8 和C11 組成復位電路,開機時RST 引腳低電平,模塊復位;開機后隨著C11充電,RST引腳抬升到3.3 V,JLX12864模塊開始正常工作.模塊采用SPI通信,SCLK和SDA組成通信接口,實現串行同步傳輸.RS腳為寄存器選擇信號,高電平選中數據寄存器,低電平選中指令寄存器.CS為片選引腳,低電平選中.當需要進行通信時,單片機拉低CS引腳電壓,數據通信通道開啟.通信結束后,CS引腳變為高電平,關閉通信通道.受到外接強干擾導致SPI通信線和CS引腳出現電平波動時,CS 引腳低電平時長無法連續的達到完整數據幀的時長,干擾信號無法形成完整數據寫入12864內部.因此,CS 引腳適時拉高有效的剔除了外界環境噪聲的干擾,有效避免屏幕出現亂碼.JLX12864 模塊內部集成了一組背光二極管,二極管負極與地線相連,二極管正極串聯約100 Ω 電阻后,與LEDA 引腳相連.因此Q1、R9-R11 組成PNP 型的共射電路,實現對背光燈的亮滅控制.SW_LED 引腳連接單片機IO口,低電平背光燈亮起,高電平背光燈熄滅.R10 為基極限流電阻,R9 為上拉電阻避免背光燈受干擾誤開啟,R11 作為背光燈限流電阻進一步調節背光亮度.開關S2-S5 組成確定鍵、向下鍵、向上鍵和退出鍵,和屏幕組成人機交互接口,為用戶提供實時數據和歷史記錄的查看,測量設置以及聯網設置.

3 軟件部分設計

3.1 軟件總流程設計

以STM8S207單片機為核心,編寫單片機軟件,控制整機運行,實現測量數據讀取、屏幕刷新、按鍵檢測和數據上傳等功能.為了提高屏幕和按鍵的響應實時性,以及通信過程中突發事件的處理速度,單片機借鑒嵌入式操作系統的構架,采用任務時編程的方式.根據硬件的構架以及各個模塊的相關度,大致將任務劃分為“任務1:傳感器數據的讀取”“任務2:屏幕刷新”“任務3:按鍵檢測”“任務4:聯網管理”.各個任務采用非阻塞式編程,單片機主循環中快速的輪流處理各個任務函數,從而提高監測器各方面的速度,具體的程序框架如圖4所示.

圖4 軟件總體框架Fig.4 Overall software framework

單片機上電時,單片機先進行內部單元的初始化,為打通各傳感器的數據通信通道做準備.根據各傳感器用到的通信單元,單片機內部初始化PWM檢測單元、UART1單元、UART2單元、SPI串行口單元、AD轉換單元、IIC 通信單元和IO 口模式初始化.內部單元初始化完畢后,根據各模塊對初始化的需求進行設置.先后對ZH06-III 激光粉塵傳感器、12864 顯示屏和大氣壓強傳感器ΒMP180 進行內部寄存器的設置.WiFi 通信單元設置流程較多,一次性設置完成直至聯網,需要相對較長的時間.因此放到任務4 中,采用非阻塞的編程方式進行分步驟的設置.單片機初始化完成后,進入死循環,對4 個任務進行輪詢,達到特定觸發條件,則執行相應代碼,保證任務處理的實時性.

3.2 任務代碼設計

空氣質量監測器進行定時測量,每次定時測試結果通過互聯網自動上傳至服務器生成圖表供用戶查看.本監測器借助樂聯網的物聯網平臺接口實現數據收集和發布.該平臺是在TCP 協議基礎上,提供MQTT 3.1協議服務實現用戶認證和數據收集歸類.在樂聯網上注冊賬號并建立監測器設備后,新建數據類型,如圖5 所示.下位機將身份認證密鑰、設備號、數據標識、測量結果打包成MQTT 數據包后上傳.服務器端對數據包進行身份認證后,根據設備號和數據標識分離各個數據并存儲到對應的數據庫中.

圖5 樂聯網數據新建Fig.5 Create new data on lewei50.com

監測器的“任務4:聯網管理”負責WiFi連接狀態的維護、TCP連接的維護和數據上傳.WiFi模塊進行網絡通信時,突發事件較多.例如:連接本地WiFi 時,WiFi 信號不理想會導致連接失敗,路由器光纖掉落無法連接廣域網等等問題.WiFi 連接成功后,須與服務器建立TCP 連接,廣域網故障或者服務器忙碌會導致TCP連接過程存在較多的突發事件.數據上傳成功后,下位機應主動斷開TCP連接釋放服務器資源,待下次測量再重新連接.因此,聯網管理實務貫穿整個監測器的運行.傳統的阻塞式編程方式入門簡單,代碼可讀性高,維護方便,深受初學者的歡迎.基于網絡通信流程多,時間跨度長,阻塞式編程無法實時處理突發事件,同時也拖延了屏幕刷新、按鍵響應和傳感器數據讀取等事務的處理進度.監測器網絡通信流程如圖6所示.

圖6 監測器網絡通信流程Fig.6 Monitor network communication process

針對阻塞式編程方式存在的弊端以及監測器的應用需求,借鑒數字電路中的狀態機的設計思想,對“任務4:聯網管理”進行實現.在單片機內存中聲明一個字節,用于表征WiFi 模塊的聯網狀態.如表2 所示,總共分為12 個狀態.現態表示當前WiFi 的狀態,次態表示未來將有可能切換的狀態.觸發條件滿足時,由現態切換至對應次態.其他三個任務的狀態切換實現思路與任務4 相似,不再重復贅述.

表2 WiFi狀態切換列表Tab.2 WiFi status switching list

4 整機測試

在實驗室環境下,對物聯網監測器進行測試,如表3所示.

表3 整機測試結果Tab.3 Complete machine test results

監測器成功在本地顯示測量數值,并成功上傳至服務器生成圖表,能夠勝任全天監測的要求.如圖7所示,用戶通過本地屏幕查詢實時測試數據.遠程客戶通過物聯網平臺查詢,如圖8所示.

圖7 測量數據實時顯示Fig.7 Real time display of measurement data

圖8 物聯網平臺部分數據曲線Fig.8 Partial data curve of IoT platform

5 小結

設計了一款空氣質量監測器,檢測空氣中主要的污染物和環境參數,用戶可方便的在本地和物聯網平臺查詢數據.以單片機為核心,合理設計軟件構架、充分利用單片機硬件資源,對接眾多傳感器的同時,仍能流暢的完成人機交互和網絡通信.經過測試,該監測器性能達到了設計目標.該設計可用于居家檢測和氣象部門補充監測點,成本低廉,適合大規模普及.

猜你喜歡
監測器單片機聯網
“身聯網”等五則
《物聯網技術》簡介
基于單片機的SPWM控制逆變器的設計與實現
基于單片機的層次漸變暖燈的研究
基于單片機的便捷式LCF測量儀
搶占物聯網
健身監測器
谷歌研發可穿戴糖尿病監測器
Microchip推出兩個全新PIC單片機系列
基于HHT的電力系統低頻振蕩監測器的研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合