張婭琳,吳偉強(qiáng),賴靖豪
(深圳職業(yè)技術(shù)學(xué)院 電子與通信工程學(xué)院,廣東 深圳 518055)
在智能家居、智能建筑、森林防火監(jiān)測、生態(tài)環(huán)境監(jiān)測等領(lǐng)域,溫濕度、光照強(qiáng)度、煙霧濃度等環(huán)境信息的監(jiān)測,對智慧生活、防火防災(zāi)有重要的影響[1-3]。因此,精準(zhǔn)監(jiān)測并記錄環(huán)境溫度、濕度、光照強(qiáng)度、煙霧濃度等信息,并及時做出有效反饋,對人們的生產(chǎn)生活具有重要意義。為此,本文設(shè)計(jì)了一款基于ESP8266 WiFi模塊的空氣質(zhì)量監(jiān)測模塊,用于監(jiān)測當(dāng)前環(huán)境的溫度、濕度、光照以及煙霧等,并通過OLED顯示相關(guān)環(huán)境信息。同時,設(shè)計(jì)了云端監(jiān)測應(yīng)用和手機(jī)APP軟件,可將監(jiān)測的環(huán)境信息通過WiFi上傳到云端,并通過Internet將數(shù)據(jù)傳輸至手機(jī)APP,便于用戶遠(yuǎn)程監(jiān)測,為具體應(yīng)用領(lǐng)域的監(jiān)控和預(yù)防奠定基礎(chǔ)。
系統(tǒng)功能框架如圖1所示。系統(tǒng)主要分為如下模塊:
圖1 系統(tǒng)功能框架
(1)ESP8266模塊為程序控制和WiFi無線通信主控模塊,主要功能包括控制傳感模塊進(jìn)行環(huán)境信息的采集,并將采集的信息通過WiFi模塊經(jīng)路由器傳送到云平臺[4-6];
(2)傳感模塊主要包括溫濕度檢測模塊、光照檢測模塊和煙霧檢測模塊,用于檢測環(huán)境信息;
(3)云平臺模塊主要用于檢測數(shù)據(jù)的云存儲和網(wǎng)頁端顯示[7-8];
(4)手機(jī)APP主要用于遠(yuǎn)程監(jiān)控,云平臺通過Internet將用戶信息和檢測數(shù)據(jù)傳送到手機(jī)APP;
(5)OLED模塊用于顯示本地檢測信息。
ESP8266是面向物聯(lián)網(wǎng)應(yīng)用的高性價比、高度集成的WiFi MCU,可以獨(dú)立運(yùn)行或從屬于從機(jī)搭載于其他主機(jī)MCU。ESP8266集成了增強(qiáng)版本的Tensilica L106 Diamond系列32位核心處理器和片上SRAM。同時,ESP8266具有完整的獨(dú)立WiFi網(wǎng)絡(luò)功能,可通過WiFi路由器連接到Internet,實(shí)現(xiàn)本地和云端的數(shù)據(jù)交互[9]。ESP8266的I/O可以作為傳感器的輸入通道,驅(qū)動LED或OLED等。
選用的溫濕度傳感模塊是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器DHT11,使用單總線雙向串行通信協(xié)議。數(shù)據(jù)采集時,單片機(jī)發(fā)起開始信號,DHT11向單片機(jī)發(fā)送響應(yīng)并傳輸40位數(shù)據(jù),具體格式為:8位濕度整數(shù)+8位濕度小數(shù)+8位溫度整數(shù)+8位溫度小數(shù)+8位校驗(yàn)。
采用光敏電阻的光電導(dǎo)效應(yīng)進(jìn)行環(huán)境光照強(qiáng)度檢測。光敏電阻與光強(qiáng)度直接相關(guān),隨著光強(qiáng)度的增加,電阻減??;反之,光強(qiáng)度減小,電阻增加。通過電阻器分壓將電阻變化轉(zhuǎn)換為電壓信號。采用ADC0832進(jìn)行模數(shù)轉(zhuǎn)換,將光照信息傳輸?shù)紼SP8266,然后上傳到云端。
煙霧傳感模塊MQ-2使用氣敏材料二氧化錫(SnO2),其在清潔空氣中具有較低的電導(dǎo)率。如果傳感器所處環(huán)境存在可燃?xì)怏w,則傳感器的電導(dǎo)率將隨空氣中可燃?xì)怏w濃度的增加而增大,通過內(nèi)部電路將電導(dǎo)率的變化轉(zhuǎn)換成對應(yīng)氣體濃度的輸出信號。MQ-2直流輸出信號會隨著煙霧濃度的變化,通過ADC0832進(jìn)行轉(zhuǎn)換得到煙霧濃度。
本文采用0.96英寸有機(jī)發(fā)光二極管OLED(Organic Light Emitting Diode, OLED)屏幕,由I2C總線驅(qū)動,用于顯示檢測的溫濕度、光照、煙霧等環(huán)境信息。OLED具有超快的響應(yīng)速度和超薄等優(yōu)勢,被廣泛用于移動設(shè)備。
圖2所示為系統(tǒng)硬件原理,本文采用ESP8266 D1 Mini模塊。
圖2 硬件原理
如圖2所示,ESP8266的D2引腳連接溫濕度傳感器DHT11的數(shù)據(jù)引腳及上拉電阻。由于光敏電阻和煙霧傳感器輸出的模擬量需要轉(zhuǎn)換成數(shù)字量進(jìn)行數(shù)據(jù)存儲、處理和顯示,因此本文采用芯片ADC0832進(jìn)行光敏和煙霧信號的模數(shù)轉(zhuǎn)換:ADC0832的CH0和CH1通道分別連接煙霧傳感器和光敏傳感器的輸出端口,ESP8266控制ADC模塊進(jìn)行數(shù)據(jù)采集和傳輸。ESP8266模塊利用RX和D1引腳控制I2C時序驅(qū)動OLED屏幕顯示數(shù)據(jù)信息:ESP8266的RX引腳連接OLED的SDA引腳,D1引腳連接OLED的SCL引腳。
機(jī)智云平臺是機(jī)智云物聯(lián)網(wǎng)科技有限公司推出的面向個人、企業(yè)開發(fā)者的一站式智能硬件開發(fā)及云服務(wù)平臺。平臺提供了從定義產(chǎn)品、設(shè)備端開發(fā)調(diào)試、應(yīng)用開發(fā)、云端開發(fā)、運(yùn)營管理、數(shù)據(jù)服務(wù)等覆蓋智能硬件接入到運(yùn)營管理全生命周期服務(wù)的能力。機(jī)智云平臺為開發(fā)人員提供自助工具操作、SDK和API服務(wù),用于開發(fā)智能硬件和開放的云端服務(wù),降低了物聯(lián)網(wǎng)硬件開發(fā)的技術(shù)門檻和研發(fā)成本[10]。
登錄機(jī)智云首頁(https://www.gizwits.com/),注冊機(jī)智云賬號,進(jìn)入開發(fā)者中心頁面,點(diǎn)擊創(chuàng)建新產(chǎn)品,在產(chǎn)品分類中選擇對應(yīng)的大類。
設(shè)置產(chǎn)品名稱,選擇產(chǎn)品分類和技術(shù)方案(WiFi/移動網(wǎng)絡(luò)方案、藍(lán)牙方案、網(wǎng)關(guān)方案)、通信方式、數(shù)據(jù)傳輸方式等參數(shù)。如圖3所示,本設(shè)計(jì)的通信方式為WiFi,數(shù)據(jù)定長,功耗較低。
圖3 機(jī)智云創(chuàng)建新產(chǎn)品技術(shù)方案及參數(shù)設(shè)定界面
機(jī)智云抽象設(shè)備產(chǎn)品功能,定義“數(shù)據(jù)點(diǎn)”描述產(chǎn)品功能及其參數(shù)。創(chuàng)建數(shù)據(jù)點(diǎn)后,設(shè)備與云端通信的數(shù)據(jù)格式便可確定,設(shè)備、機(jī)智云可以相互識別設(shè)備與機(jī)智云互聯(lián)互通的數(shù)據(jù)。圖4顯示了本項(xiàng)目的數(shù)據(jù)點(diǎn),主要包含溫度、濕度、煙霧和照明傳感數(shù)據(jù)標(biāo)識符及數(shù)據(jù)類型。
圖4 云平臺產(chǎn)品功能的數(shù)據(jù)點(diǎn)
機(jī)智云根據(jù)硬件使用的方案,可以自動生成MCU開發(fā)中必要的代碼,加快應(yīng)用程序開發(fā)流程。本次設(shè)計(jì)選擇生成SoC方案SDK,硬件平臺為ESP8266_32M。機(jī)智云根據(jù)已定義產(chǎn)品的數(shù)據(jù)點(diǎn),生成對應(yīng)的設(shè)備端代碼,自動實(shí)現(xiàn)通信協(xié)議的解析與封包,不僅可封裝成簡單的API,還提供了多種平臺的實(shí)例代碼。云平臺MCU SDK開發(fā)如圖5所示。
圖5 云平臺MCU SDK開發(fā)
機(jī)智云自動生成物聯(lián)網(wǎng)(IoT)應(yīng)用開發(fā)平臺,包括基礎(chǔ)平臺以及上層應(yīng)用開發(fā)示例,如智能燈、智能開關(guān)等。SDK的基礎(chǔ)平臺按照是否基于操作系統(tǒng)可分為Non-OS和RTOS兩種版本。本文使用Non-OS SDK版本,它是不基于操作系統(tǒng)的SDK,主要使用定時器和回調(diào)函數(shù)的方式實(shí)現(xiàn)各功能事件的嵌套,達(dá)到特定條件下觸發(fā)特定功能函數(shù)的目的。
本文基于機(jī)智云生成的Non-OS SDK進(jìn)行嵌入式軟件開發(fā)。軟件主流程如圖6所示。
圖6 嵌入式軟件主流程
用戶程序入口為user_init(),完成應(yīng)用的初始化功能:I/O口初始化、ADC0832初始化、OLED初始化、機(jī)智云服務(wù)初始化。初始化完成后進(jìn)入空循環(huán)模式,等待連接WiFi并設(shè)置按鍵回調(diào)函數(shù),WiFi定時連接中斷,傳感器定時檢測中斷。一旦中斷到達(dá),CPU跳轉(zhuǎn)到中斷服務(wù)函數(shù)進(jìn)行中斷處理。
當(dāng)檢測到WiFi連接成功后,設(shè)置數(shù)據(jù)更新定時器。定時檢測環(huán)境數(shù)據(jù),如溫濕度、光照、煙霧等,并顯示在OLED顯示屏上。如果WiFi連接成功,則將檢測數(shù)據(jù)上傳至機(jī)智云服務(wù)器。如初次使用需配置WiFi信息,可長按按鍵啟動一鍵配置模式,使用手機(jī)APP進(jìn)行配置,配置完成后設(shè)備連接WiFi,連接成功后進(jìn)行數(shù)據(jù)更新。WiFi定時連接中斷以及傳感器檢測定時中斷流程如圖7所示。
圖7 WiFi定時連接中斷以及傳感器定時檢測中斷流程
手機(jī)APP應(yīng)用開發(fā)是在機(jī)智云官網(wǎng)提供的demo版本(Android 版本)基礎(chǔ)上,根據(jù)需求在 Android Studio進(jìn)行界面設(shè)計(jì)和開發(fā)。如圖8所示,本文手機(jī)APP界面設(shè)計(jì)中使用線性布局,用于溫度、濕度、光照、煙霧的界面信息顯示,每個線性布局有1個ImageView圖片視圖和1個TextView文字視圖,ImageView用于加載界面信息類型圖片,TextView用于顯示數(shù)據(jù)。
圖8 Android APP界面開發(fā)
設(shè)備上電后,長按按鍵觸發(fā)配置模式,OLED顯示W(wǎng)iFi config,使用APP點(diǎn)擊右上角的“+”號,選擇一鍵配置,配置之前需手機(jī)連接到目標(biāo)路由器,輸入WiFi密碼,點(diǎn)擊“下一步”后方可進(jìn)行配置。配置完成后返回設(shè)備列表,點(diǎn)擊設(shè)備即可查看傳感數(shù)據(jù)。設(shè)備與應(yīng)用調(diào)試如圖9所示。
圖9 設(shè)備與應(yīng)用調(diào)試
本文設(shè)計(jì)了一種基于WiFi的環(huán)境數(shù)據(jù)采集云平臺監(jiān)控系統(tǒng),主要包括傳感信息的采集,基于WiFi的信息傳輸,云平臺和手機(jī)APP端監(jiān)控等功能。系統(tǒng)在ESP8266模塊的控制下采集溫度、濕度、光照、煙霧等環(huán)境信息,通過WiFi模塊傳輸?shù)綑C(jī)智云端,并利用手機(jī)APP進(jìn)行環(huán)境信息的監(jiān)控。經(jīng)過調(diào)試,本系統(tǒng)能夠很好地完成數(shù)據(jù)采集、數(shù)據(jù)顯示、數(shù)據(jù)上報(bào)、手機(jī)APP查看測量環(huán)境數(shù)據(jù)等功能,基本實(shí)現(xiàn)了設(shè)計(jì)要求。本系統(tǒng)可用于智能家居、智能建筑等領(lǐng)域,也能對火災(zāi)、山洪等安全事故提前預(yù)警。本系統(tǒng)采用的WiFi通信可以拓展為移動通信網(wǎng)絡(luò)、NB-IoT、LoRa、藍(lán)牙等,根據(jù)不同的傳感信息實(shí)現(xiàn)在智能交通、智能物流、智慧農(nóng)業(yè)、健康監(jiān)護(hù)、工業(yè)控制等領(lǐng)域的應(yīng)用。
物聯(lián)網(wǎng)技術(shù)2021年10期