王蕭宇,李 夢(mèng),馮永睿,汪 源
(三亞學(xué)院 理工學(xué)院,海南 三亞 572022)
隨著科技發(fā)展的日新月異,人們對(duì)實(shí)驗(yàn)室環(huán)境的需求不再局限在安全舒適性方面,還增加了智能化的需求,利用手機(jī)對(duì)實(shí)驗(yàn)室環(huán)境進(jìn)行實(shí)時(shí)監(jiān)控已經(jīng)成為現(xiàn)實(shí)。發(fā)達(dá)國(guó)家從20世紀(jì)70年代開始就展開了對(duì)實(shí)驗(yàn)室環(huán)境監(jiān)測(cè)的研究,對(duì)人們的工作環(huán)境也非常重視。
我國(guó)在20世紀(jì)80年代開始關(guān)注實(shí)驗(yàn)室空氣質(zhì)量監(jiān)測(cè),由于幾種全球性傳染性疾病的肆虐,實(shí)驗(yàn)室環(huán)境質(zhì)量問(wèn)題也引起了人們的高度重視,給實(shí)驗(yàn)室環(huán)境監(jiān)測(cè)技術(shù)的快速發(fā)展帶來(lái)了一個(gè)契機(jī)[1]。如何將物聯(lián)網(wǎng)技術(shù)和無(wú)線傳輸數(shù)據(jù)技術(shù)融合到實(shí)驗(yàn)室環(huán)境監(jiān)測(cè),成為了實(shí)驗(yàn)室現(xiàn)代化管理的關(guān)鍵[2-3]。
本文以物聯(lián)網(wǎng)技術(shù)作為核心,利用STM32 單片機(jī)作為數(shù)據(jù)處理模塊,利用溫濕度、光照、CO 等傳感器來(lái)實(shí)現(xiàn)環(huán)境數(shù)據(jù)的實(shí)時(shí)監(jiān)測(cè),通過(guò)WiFi 模塊將結(jié)果上傳到阿里云平臺(tái)數(shù)據(jù)庫(kù),并用手機(jī)APP 實(shí)時(shí)顯示。監(jiān)測(cè)結(jié)果一旦超過(guò)設(shè)定安全值,系統(tǒng)將發(fā)出報(bào)警,實(shí)現(xiàn)實(shí)驗(yàn)室環(huán)境實(shí)時(shí)監(jiān)測(cè)的效果。
本文設(shè)計(jì)的是基于STM32 的新能源汽車實(shí)驗(yàn)室環(huán)境監(jiān)測(cè)報(bào)警系統(tǒng),為了實(shí)現(xiàn)該系統(tǒng)的功能,設(shè)計(jì)了傳感器陣列模塊、ESP8266 無(wú)線WiFi 模塊[4]、OLED 顯示模塊及蜂鳴器報(bào)警模塊。傳感器模塊使用聲音分貝傳感器、DHT11 溫濕度傳感器、BH1750 光照強(qiáng)度傳感器、MQ-7 一氧化碳傳感器。該系統(tǒng)研究所需要實(shí)現(xiàn)的功能為:(1)實(shí)現(xiàn)對(duì)實(shí)驗(yàn)室環(huán)境的監(jiān)測(cè),用OLED 屏顯示光照度、溫濕度、一氧化碳等數(shù)據(jù)的具體信息;(2)通過(guò)ESP8266 連接熱點(diǎn)將上述參數(shù)數(shù)據(jù)發(fā)送到阿里云平臺(tái)數(shù)據(jù)庫(kù)[5]進(jìn)行保存,使用手機(jī)APP 通過(guò)MQTT協(xié)議[6]實(shí)現(xiàn)對(duì)實(shí)驗(yàn)室參數(shù)的遠(yuǎn)程監(jiān)控;(3)判斷是否達(dá)到溫度、一氧化碳所設(shè)最高值,如果達(dá)到最高值,蜂鳴器則報(bào)警提醒。系統(tǒng)總體功能框架如圖1所示。
圖1 系統(tǒng)總體功能框架
系統(tǒng)的硬件電路主要包括STM32 單片機(jī)核心控制模塊、電源電路、降壓電路、無(wú)線傳輸模塊、OLED 顯示模塊、光照強(qiáng)度傳感器模塊、噪聲傳感器模塊、溫濕度傳感器模塊、一氧化碳傳感器模塊、報(bào)警模塊。
系統(tǒng)核心控制板采用的單片機(jī)為STM32F103C8T6。STM32F103C8T6 是STM32 系列的中等容量增強(qiáng)型MCU,是一個(gè)32 位的ARM 微控制器,存儲(chǔ)容量為64 KB,工作頻率的最高值為72 MHz,它還包含USB、CAN、7 個(gè)定時(shí)器、2 個(gè)12 位模數(shù)轉(zhuǎn)換器、7 通道的DMA 控制器、多達(dá)37 個(gè)I/O 端口及9 個(gè)通信接口,電壓為2~3.6 V,支持SWD 和USB 接口,工作溫度為-40~85 ℃。
通信模塊選用的是WiFi 模塊ESP8266,該芯片采用串行通信模式,能夠通過(guò)串行接口直接與單片機(jī)進(jìn)行數(shù)據(jù)交流,也可以進(jìn)行數(shù)據(jù)透?jìng)?,操作非常?jiǎn)單、方便,具有價(jià)格便宜、功耗較低、功能強(qiáng)大的優(yōu)點(diǎn)。
光照強(qiáng)度監(jiān)測(cè)選用BH1750 傳感器,它的尺寸為21 mm×16 mm×3.3 mm,使用I2C 總線進(jìn)行接口交流,能夠直接輸出數(shù)字信號(hào)。該傳感器的供電電壓為3~5 V,量程和精度的范圍為1~65 535 lx,具有功耗低、測(cè)量誤差較小等優(yōu)點(diǎn)。
環(huán)境氣體監(jiān)測(cè)選用ZPH01 傳感器,它的尺寸為59.47 mm×44.5 mm×20 mm,用來(lái)監(jiān)測(cè)空氣中的粉塵顆粒物PM2.5。該傳感器有兩個(gè)輸出方式:PWM 信號(hào)輸出及UART 數(shù)字串口輸出。它的工作電壓為5 V 左右,對(duì)粉塵最小粒子的檢出能力是1 μm,具有重量輕、易安裝的優(yōu)點(diǎn)。
環(huán)境溫濕度監(jiān)測(cè)選用傳感器DHT11,它是四引腳的,安裝方便。該傳感器既能測(cè)量濕度,也能測(cè)量溫度。工作時(shí)的電壓為3.3~5 V,輸出的是數(shù)字電壓。該傳感器的測(cè)量范圍分別為20%~90%RH、0~50 ℃,測(cè)濕精度為±5%RH,測(cè)溫精度為±2 ℃,分辨率為1,封裝為4 針單排直插。DHT11 溫濕度傳感器對(duì)溫濕度的測(cè)量分辨率都為8 bit,具有功耗低、體積小、穩(wěn)定性強(qiáng)的特點(diǎn)。
系統(tǒng)主程序設(shè)計(jì)包括初始化模塊程序設(shè)計(jì)、傳感器模塊程序設(shè)計(jì)、顯示模塊程序設(shè)計(jì)、無(wú)線模塊程序設(shè)計(jì)、報(bào)警模塊程序設(shè)計(jì)。本次設(shè)計(jì)的總工作流程如圖2所示,首先將使用的所有傳感器、STM32 單片機(jī)、無(wú)線模塊ESP8266、OLED 屏都進(jìn)行初始化[7],然后利用傳感器采集信號(hào),將數(shù)據(jù)信號(hào)直接通過(guò)STM32 單片機(jī)的端口輸出數(shù)字量,得到實(shí)驗(yàn)室環(huán)境參數(shù)的數(shù)據(jù)。WiFi 模塊ESP8266 會(huì)將單片機(jī)STM32 收集到的數(shù)據(jù)發(fā)送到阿里云的數(shù)據(jù)庫(kù)進(jìn)行保存,然后發(fā)送到手機(jī)APP 進(jìn)行遠(yuǎn)程監(jiān)控。與此同時(shí),傳感器讀取的數(shù)據(jù)也會(huì)在OLED 屏上顯示出來(lái)。當(dāng)溫度、一氧化碳的數(shù)據(jù)值一旦被判斷超過(guò)設(shè)定的最高值,報(bào)警模塊就會(huì)實(shí)現(xiàn)其相對(duì)應(yīng)的功能,通過(guò)蜂鳴器發(fā)出響聲進(jìn)行報(bào)警。如果被判斷沒有超過(guò)設(shè)定的最高值,就會(huì)再次進(jìn)行初始化,重復(fù)上述相應(yīng)步驟。
圖2 主程序設(shè)計(jì)流程
先對(duì)OLED 屏進(jìn)行初始化,再寫入一個(gè)字符串,寫入一個(gè)字節(jié),這時(shí)就可以進(jìn)行寫入命令到OLED 中、寫入數(shù)據(jù)到OLED 中這一步驟,然后收集通過(guò)STM32 單片機(jī)的控制得到的實(shí)驗(yàn)室環(huán)境參數(shù)數(shù)據(jù),將這些數(shù)據(jù)進(jìn)行轉(zhuǎn)換,就可以得到能夠顯示的具體字符圖形,最后通過(guò)指針定位在OLED 屏上進(jìn)行顯示。
把WiFi 模塊ESP8266 初始化,設(shè)置其工作模式為STA 模式,并加入WiFi 熱點(diǎn)進(jìn)行用戶信息確認(rèn)。接著連接MQTT 服務(wù)器(阿里云平臺(tái)數(shù)據(jù)庫(kù)),連接成功后,將通過(guò)STM32 單片機(jī)的控制進(jìn)行AD 轉(zhuǎn)換,得到實(shí)驗(yàn)室環(huán)境參數(shù)數(shù)據(jù)并由WiFi 模塊ESP8266 發(fā)送到服務(wù)器進(jìn)行保存。最后MQTT 客戶端(手機(jī)APP)[8-10]開始提出訂閱主題和退訂的請(qǐng)求,服務(wù)器會(huì)向該客戶端推送所需要的消息內(nèi)容。
以溫濕度傳感器為例進(jìn)行說(shuō)明,其他傳感器程序設(shè)計(jì)類似。首先把DHT11 溫濕度傳感器初始化,然后該傳感器先采集實(shí)驗(yàn)室溫濕度的數(shù)據(jù),因?yàn)橹苯优c單片機(jī)的端口相連,所以直接向單片機(jī)輸出數(shù)字量,然后進(jìn)行數(shù)據(jù)顯示。最后查看溫度的數(shù)值是否超過(guò)所設(shè)溫度最高值,如果超過(guò),蜂鳴器就會(huì)發(fā)出聲音報(bào)警;反之,則返回重新采集數(shù)據(jù)。
使用充電寶提供電源,把實(shí)物與充電寶用數(shù)據(jù)線進(jìn)行連接。當(dāng)裝置上電后,CO、CH2O 兩個(gè)傳感器以及STM32 單片機(jī)的指示燈全部亮起,系統(tǒng)開始工作并采集環(huán)境數(shù)據(jù)。通過(guò)調(diào)試WiFi 模塊ESP8266 連接阿里云并將數(shù)據(jù)發(fā)送到云端,并可以打開手機(jī)APP 進(jìn)行監(jiān)測(cè)。當(dāng)溫濕度模塊所測(cè)量的實(shí)驗(yàn)室溫度大于60 ℃,或一氧化碳傳感器所測(cè)量的實(shí)驗(yàn)室一氧化碳的含量大于30 ppm,蜂鳴器都會(huì)發(fā)出響聲進(jìn)行報(bào)警,同時(shí)手機(jī)顯示的火災(zāi)報(bào)警區(qū)域顯示“火災(zāi)險(xiǎn)情”。測(cè)試時(shí)系統(tǒng)硬件如圖3所示。
圖3 系統(tǒng)實(shí)物測(cè)試
以上的實(shí)驗(yàn)結(jié)果證明了該裝置能夠很好地對(duì)實(shí)驗(yàn)室環(huán)境進(jìn)行監(jiān)測(cè);溫度、一氧化碳超過(guò)所設(shè)的最高值時(shí),設(shè)備會(huì)自動(dòng)報(bào)警;也能夠用手機(jī)APP 進(jìn)行遠(yuǎn)程監(jiān)控,實(shí)現(xiàn)對(duì)實(shí)驗(yàn)室環(huán)境的實(shí)時(shí)監(jiān)測(cè)。因此,本實(shí)物的調(diào)試是成功的,完美地實(shí)現(xiàn)了該系統(tǒng)的全部功能。
本文利用物聯(lián)網(wǎng)技術(shù)、無(wú)線通信技術(shù)設(shè)計(jì)了一款新能源汽車實(shí)驗(yàn)室環(huán)境監(jiān)測(cè)系統(tǒng)。利用各種傳感器模塊實(shí)現(xiàn)新能源汽車實(shí)驗(yàn)室環(huán)境數(shù)據(jù)的獲取,并將數(shù)據(jù)傳輸?shù)絊TM32最小系統(tǒng)單片機(jī),然后STM32 最小系統(tǒng)單片機(jī)接收到數(shù)據(jù)后進(jìn)行數(shù)據(jù)的提取和處理,再將處理的數(shù)據(jù)通過(guò)WiFi 模塊ESP8266 上傳到云平臺(tái),還可在手機(jī)APP 和本地的顯示屏上進(jìn)行實(shí)時(shí)顯示;當(dāng)環(huán)境數(shù)據(jù)超出設(shè)定范圍時(shí),系統(tǒng)會(huì)報(bào)警。
注:本文通訊作者為汪源。