廖小健
(武漢城市職業(yè)學(xué)院 湖北·武漢 430070)
ESP8266作為主打消費(fèi)電子市場的國產(chǎn) WiFi芯片,價(jià)格優(yōu)勢(shì)明顯,功能豐富。ESP8266內(nèi)部集成了MCU,可以圍繞ESP8266為核心快速開發(fā)新穎的消費(fèi)類電子產(chǎn)品,ESP8266為這種開發(fā)方式配套了豐富的開發(fā)資源。工程師使用這些配套資源能夠快速開發(fā)使用ESP8266完成設(shè)計(jì)工作。
本文介紹一種基于ESP8266-SDK的遠(yuǎn)程環(huán)境數(shù)據(jù)監(jiān)測(cè)系統(tǒng)設(shè)計(jì),該系統(tǒng)以ESP8266為核心,采用配套的SDK進(jìn)行開發(fā),實(shí)現(xiàn)環(huán)境溫濕度數(shù)據(jù)的采集、上報(bào)和遠(yuǎn)端監(jiān)測(cè)。通過對(duì)該設(shè)計(jì)實(shí)現(xiàn)的介紹,著重突出SDK開發(fā)效率高、采用集成的MCU成本低的優(yōu)勢(shì)。
基于ESP8266-SDK的遠(yuǎn)程環(huán)境數(shù)據(jù)監(jiān)測(cè)系統(tǒng)由終端采集、上傳和云端數(shù)據(jù)接收、顯示兩大部分組成,如圖1所示。
圖1:系統(tǒng)總體結(jié)構(gòu)
終端部分主要由ESP8266模塊、AHT10溫濕度采集模塊及電源等輔助電路組成。終端部分利用ESP8266內(nèi)部集成的MCU作為控制核心,避免使用額為的MCU,節(jié)約了資源,減小了終端的電路體積。云端數(shù)據(jù)接收、顯示部分通過百度智能云平臺(tái)設(shè)計(jì)實(shí)現(xiàn)。
終端硬件電路以ESP8266為主控芯片進(jìn)行設(shè)計(jì),如圖2所示。ESP8266功能高度集成,不僅僅是一款WiFi芯片,更是一款具有WiFi功能的MCU。
圖2:終端硬件電路主要組成
溫濕度傳感器選用國產(chǎn)的 AHT10溫濕度傳感器,AHT10是一款高精度,完全校準(zhǔn),貼片封裝的溫濕度傳感器。AHT10通信方式采用標(biāo)準(zhǔn)I2C接口。AHT10掛載在ESP8266的IIC總線上與主控芯片進(jìn)行數(shù)據(jù)通信。
為編程及調(diào)試方便,電路中增加了USB轉(zhuǎn)串口電路和OLED顯示功能,USB轉(zhuǎn)串口采用國產(chǎn)CH340芯片實(shí)現(xiàn),設(shè)計(jì)調(diào)試工作完成后可以去除這兩個(gè)電路進(jìn)一步縮小終端的尺寸。
要使用ESP8266中的MCU作為終端的控制核心就必須采用SDK進(jìn)行編程。在ESP8266開發(fā)中用好SKD這個(gè)資源能極大的提高開發(fā)效率。在SDK文件夾根目錄下examples文件夾中包含了大量的代碼框架,選擇并使用合適的框架開發(fā)固件有利于開發(fā)效率的提升,同時(shí)能夠保證終端的穩(wěn)定性。本設(shè)計(jì)采用文件夾中的 esp_mqtt_proj框架進(jìn)行實(shí)現(xiàn)。要使用這個(gè)框架只要將esp_mqtt_proj文件夾移動(dòng)到根目錄下并刪除examples文件夾即可。采用SDK編程的另一大優(yōu)勢(shì)是SDK提供大量的API函數(shù),調(diào)用這些API函數(shù)可以減少代碼的編寫量,進(jìn)一步提高開發(fā)效率。固件工作流程如圖3所示。
圖3:固件工作流程
1秒軟件定時(shí)函數(shù)是本設(shè)計(jì)中的關(guān)鍵函數(shù),在這個(gè)函數(shù)中主要完成AHT10溫濕度傳感器數(shù)據(jù)的讀取,數(shù)據(jù)的再封裝以及數(shù)據(jù)的上傳工作。其中AHT10溫濕度傳感器數(shù)據(jù)讀取代碼可以參考AHT10官網(wǎng)提供的STM32讀取AHT10數(shù)據(jù)代碼進(jìn)行移植。數(shù)據(jù)的再封裝是將數(shù)據(jù)整理成云平臺(tái)要求的數(shù)據(jù)格式,只有這樣數(shù)據(jù)才能被云平臺(tái)識(shí)別并顯示。數(shù)據(jù)上報(bào)調(diào)用API函數(shù)MQTT_Publish實(shí)現(xiàn),其中第二個(gè)參數(shù)是云端的網(wǎng)址信息,這個(gè)信息在進(jìn)行云端配置時(shí)由云端服務(wù)器提供,其他參數(shù)可參考ESP8266的API參考手冊(cè)進(jìn)行設(shè)置。定時(shí)函數(shù)代碼如圖4所示。
圖4:定時(shí)函數(shù)
百度智能云平臺(tái)的物聯(lián)網(wǎng)核心套件(IoT Core)是面向物聯(lián)網(wǎng)領(lǐng)域開發(fā)者的全托管云服務(wù),通過主流的物聯(lián)網(wǎng)協(xié)議(如MQTT)通訊,可以在智能設(shè)備與云端之間建立安全的雙向連接,快速實(shí)現(xiàn)物聯(lián)網(wǎng)項(xiàng)目。云平臺(tái)的配置主要包含下列步驟:(1)創(chuàng)建 IoT Core實(shí)例;(2)創(chuàng)建設(shè)備;(3)獲取連接信息;(4)連接及收發(fā)信息;(5)將信息流轉(zhuǎn)到業(yè)務(wù)服務(wù)器。
創(chuàng)建實(shí)例和創(chuàng)建設(shè)備可按照平臺(tái)的導(dǎo)引進(jìn)行操作,當(dāng)設(shè)備創(chuàng)建成功后將獲取如圖5所示的文本文檔,文檔中包含服務(wù)器網(wǎng)址、賬號(hào)和密碼,這是終端接入云平臺(tái)的重要參數(shù)。
圖5:配置參數(shù)文檔
這些參數(shù)被用在終端配置文件中,當(dāng)終端啟動(dòng)后將調(diào)用這些參數(shù)連接云平臺(tái),連接成功后每隔1秒自動(dòng)向平臺(tái)上報(bào)一次數(shù)據(jù)。
百度智能云提供的物可視功能,通過拖拽的方式可輕松創(chuàng)作可視化儀表盤。物可視提供豐富的可視化組件。整個(gè)開發(fā)過程采用所見即所得的方式,形象直觀。同時(shí)有詳細(xì)的開發(fā)手冊(cè)作為參考,可快速開發(fā)顯示功能。在手機(jī)中的顯示效果如圖6所示。
圖6:手機(jī)顯示效果
本文從終端軟硬件設(shè)計(jì)和物聯(lián)網(wǎng)云平臺(tái)配置兩個(gè)方面介紹了基于ESP8266-SDK的遠(yuǎn)程環(huán)境數(shù)據(jù)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)過程,從設(shè)計(jì)過程可以看出ESP8266-SDK提供的代碼框架、API使終端部分軟硬件設(shè)計(jì)效率大大提高,同時(shí)云平臺(tái)提供了簡單易用的數(shù)據(jù)接收和顯示服務(wù),讓數(shù)據(jù)能夠快速、直觀的呈現(xiàn)。文章介紹的軟硬件結(jié)構(gòu)簡單、修改擴(kuò)展能力強(qiáng),可廣泛應(yīng)用于其他遠(yuǎn)程數(shù)據(jù)監(jiān)測(cè)場合。