摘 要:基于阿里云物聯(lián)網(wǎng)平臺(tái)的遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)以ESP8266模塊為控制核心,連接溫濕度、煙霧、光照等傳感器,利用Arduino對(duì)ESP8266進(jìn)行編程開發(fā),通過(guò)ESP8266中集成的Wi-Fi模塊與阿里云物聯(lián)網(wǎng)平臺(tái)通信,基于MQTT協(xié)議將數(shù)據(jù)發(fā)送至平臺(tái),同時(shí),利用Android開發(fā)移動(dòng)端App,在阿里云物聯(lián)網(wǎng)平臺(tái)中利用云產(chǎn)品流轉(zhuǎn)功能將數(shù)據(jù)發(fā)送至移動(dòng)端App,實(shí)現(xiàn)環(huán)境數(shù)據(jù)的運(yùn)程監(jiān)測(cè)功能。系統(tǒng)與其他監(jiān)測(cè)系統(tǒng)相比,具有部署簡(jiǎn)單靈活、價(jià)格便宜、穩(wěn)定性高等特點(diǎn),能廣泛應(yīng)用于各類物聯(lián)網(wǎng)場(chǎng)景,如家庭、醫(yī)療、農(nóng)業(yè)和工廠等場(chǎng)所的環(huán)境監(jiān)測(cè)。
關(guān)鍵詞: ESP8266;阿里云平臺(tái);Arduino;Android;遠(yuǎn)程監(jiān)測(cè)
中圖分類號(hào):TP274 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2024)23-0114-06
Abstract: The remote environmental monitoring system based on the Alibaba Cloud IoT platform uses the ESP8266 module as the control core and connects sensors such as temperature, humidity, smoke, and light. Arduino is used to program and develop the ESP8266, which communicates with the Alibaba Cloud IoT platform through the integrated Wi-Fi module in ESP8266. The data is sent to the platform based on the MQTT protocol. Simultaneously, an Android app is developed to receive the data from the platform using cloud product flow function in the Alibaba Cloud IoT platform, realizing the real-time monitoring of environmental data. Compared with other monitoring systems, this system has the advantages of simple and flexible deployment, low cost, and high stability, making it widely applicable in various IoT scenarios such as homes, healthcare, agriculture, factories, etc.
Keywords: ESP8266; Alibaba Cloud platform; Arduino; Android; remote monitoring
隨著人們對(duì)生活環(huán)境的要求越來(lái)越高,環(huán)境質(zhì)量逐漸成為關(guān)注的焦點(diǎn),環(huán)境質(zhì)量可以通過(guò)環(huán)境監(jiān)測(cè)獲取環(huán)境數(shù)據(jù)進(jìn)而評(píng)估。環(huán)境監(jiān)測(cè)指通過(guò)傳感器設(shè)備采集環(huán)境數(shù)據(jù)對(duì)環(huán)境質(zhì)量進(jìn)行監(jiān)測(cè)和評(píng)估的過(guò)程。環(huán)境監(jiān)測(cè)在家庭、農(nóng)業(yè)、醫(yī)療和工廠等物聯(lián)網(wǎng)場(chǎng)景中的應(yīng)用日益廣泛。傳統(tǒng)的環(huán)境監(jiān)測(cè)方法主要依靠人工采樣,采樣率低,數(shù)據(jù)時(shí)效性低,成本高。筆者旨在研究和設(shè)計(jì)一種基于阿里云物聯(lián)網(wǎng)平臺(tái)的遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)(以下簡(jiǎn)稱遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)),主要包括傳感器節(jié)點(diǎn)、ESP8266模塊、阿里云物聯(lián)網(wǎng)平臺(tái)和移動(dòng)端APP等,以實(shí)現(xiàn)實(shí)時(shí)采集、遠(yuǎn)程監(jiān)測(cè)、可視化展示環(huán)境數(shù)據(jù),提高環(huán)境監(jiān)測(cè)的精度和效率。遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)可以實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)和分析環(huán)境溫濕度、煙霧、光照等環(huán)境參數(shù),提供科學(xué)、準(zhǔn)確、及時(shí)的環(huán)境信息服務(wù)。
1 系統(tǒng)總體設(shè)計(jì)
1.1 系統(tǒng)架構(gòu)
遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)由硬件設(shè)備、軟件系統(tǒng)、阿里云物聯(lián)網(wǎng)平臺(tái)組成,整體框架如圖1所示。
硬件設(shè)備主要有ESP8266模塊、溫濕度傳感器、煙霧傳感器、光照傳感器和無(wú)線網(wǎng)絡(luò)設(shè)備等。
軟件系統(tǒng)主要包括2部分:①利用Arduino軟件對(duì)ESP8266進(jìn)行編程開發(fā),實(shí)現(xiàn)對(duì)傳感器采集數(shù)據(jù)的處理,通過(guò)ESP8266自帶的Wi-Fi芯片、基于MQTT協(xié)議和阿里云物聯(lián)網(wǎng)平臺(tái)傳輸數(shù)據(jù),實(shí)時(shí)發(fā)送采集的數(shù)據(jù)至云平臺(tái)。②利用Android Studio軟件進(jìn)行移動(dòng)端APP的開發(fā),同樣是基于MQTT協(xié)議實(shí)現(xiàn)阿里云物聯(lián)網(wǎng)平臺(tái)和移動(dòng)端APP的數(shù)據(jù)傳輸,從而實(shí)現(xiàn)環(huán)境數(shù)據(jù)的遠(yuǎn)程實(shí)時(shí)監(jiān)測(cè)。
阿里云物聯(lián)網(wǎng)平臺(tái)主要實(shí)現(xiàn)設(shè)備的創(chuàng)建和接入、傳感器數(shù)據(jù)的采集和存儲(chǔ)。通過(guò)云產(chǎn)品流轉(zhuǎn),實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā)功能。
1.2 監(jiān)測(cè)過(guò)程
如圖1所示,利用連接在ESP8266模塊的各類傳感器采集環(huán)境數(shù)據(jù),ESP8266模塊處理數(shù)據(jù)并轉(zhuǎn)換成JSON格式發(fā)送至阿里云物聯(lián)網(wǎng)平臺(tái)的設(shè)備1中,設(shè)備1通過(guò)云產(chǎn)品流轉(zhuǎn)功能轉(zhuǎn)發(fā)數(shù)據(jù)至云平臺(tái)中設(shè)備2中,移動(dòng)端APP連接平臺(tái)后解析并獲取設(shè)備2中的數(shù)據(jù),從而實(shí)現(xiàn)環(huán)境數(shù)據(jù)的遠(yuǎn)程、實(shí)時(shí)監(jiān)測(cè)。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 ESP8266模塊
ESP8266是一種低成本、擁有完整Wi-Fi網(wǎng)絡(luò)功能的單片機(jī)模塊,由樂(lè)鑫信息科技(上海)股份有限公司開發(fā)[1],所需供電電壓為3.3~5 V。ESP8266芯片集成在NodeMCU型開發(fā)板中,內(nèi)置32位處理器,主頻支持80 MHz和160 MHz,支持802.11 b/g/n協(xié)議,并集成CP2101芯片,提供可靠的USB轉(zhuǎn)UART功能,便于與計(jì)算機(jī)進(jìn)行數(shù)據(jù)傳輸和編程。NodeMCU開發(fā)板提供多個(gè)GPIO引腳及擴(kuò)展引腳,可連接外部傳感器、執(zhí)行器或其他設(shè)備,且支持Arduino開發(fā)環(huán)境,可用Arduino代碼和函數(shù)庫(kù)進(jìn)行編程開發(fā)。
2.2 溫濕度、煙霧、光照傳感器
AM2301(DHT21)數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,應(yīng)用數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品可靠性高,長(zhǎng)期穩(wěn)定,主要有1個(gè)電容式感濕元件、1個(gè)NTC測(cè)溫元件,并與1個(gè)高性能8位單片機(jī)相連接,3引線輸出[2]。MQ-2型煙霧傳感器以二氧化錫(SnO2)為氣敏材料,有VCC、GND、TTL高低電平輸出端、模擬電壓輸出端4個(gè)引腳,可用于探測(cè)液化氣、丁烷、丙烷、甲烷和氫氣等可燃?xì)怏w[3]。BH1750FVI型數(shù)字光照傳感器測(cè)量范圍廣,精度高,具備I2C接口,能連接NodeMCU并輸出數(shù)字信號(hào)。
2.3 系統(tǒng)硬件的連接
如圖2所示,ESP8266的引腳與NodeMCU開發(fā)板上的兩排插針相連,具有17個(gè)用于通用輸入輸出的GPIO引腳、1個(gè)用于模擬輸入的ADC引腳、能為外部傳感器提供3.3 V電源的3V3引腳、2個(gè)預(yù)留引腳等。
溫濕度傳感器、光照傳感器為數(shù)字傳感器,能以數(shù)字信號(hào)方式輸出監(jiān)測(cè)的環(huán)境數(shù)據(jù)。煙霧傳感器為模擬傳感器,輸出模擬信號(hào)。由ESP8266引腳類型、傳感器產(chǎn)品接線說(shuō)明可知:溫濕度傳感器、光照傳感器的信號(hào)輸出端接ESP8266的GPIO引腳,煙霧傳感器模擬輸出端接ESP8266的ADC引腳;傳感器的電源線均接ESP8266的3V3和GND引腳。連接用輔助材料及工具包括杜邦線、接線端子、Micro-USB數(shù)據(jù)線和剝線鉗等。以溫濕度傳感器連接為例,分別將電源線、信號(hào)線通過(guò)接線端子接入ESP8266對(duì)應(yīng)的引腳,用Micro-USB數(shù)據(jù)線連接NodeMCU開發(fā)板為ESP8266供電,連接完成的實(shí)物圖如圖3所示。
3 云平臺(tái)中設(shè)備及云產(chǎn)品流轉(zhuǎn)創(chuàng)建
3.1 設(shè)備創(chuàng)建
使用物聯(lián)網(wǎng)平臺(tái)接入設(shè)備前需在物聯(lián)網(wǎng)平臺(tái)控制臺(tái)創(chuàng)建產(chǎn)品。產(chǎn)品是設(shè)備的集合,通常指一組具有相同功能的設(shè)備。創(chuàng)建產(chǎn)品完成后,需在產(chǎn)品下添加設(shè)備,獲取設(shè)備證書[4]。產(chǎn)品創(chuàng)建操作步驟:①登錄阿里云物聯(lián)網(wǎng)平臺(tái),進(jìn)入已開通的公共實(shí)例。②點(diǎn)擊左側(cè)導(dǎo)航欄設(shè)備管理下的產(chǎn)品,在產(chǎn)品頁(yè)面點(diǎn)擊創(chuàng)建產(chǎn)品。③在新建產(chǎn)品頁(yè)面中輸入產(chǎn)品名稱、設(shè)置所屬品類、節(jié)點(diǎn)類型、連網(wǎng)方式、數(shù)據(jù)格式及校驗(yàn)級(jí)別、認(rèn)證方式等信息,點(diǎn)擊確認(rèn)按鈕。
遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)需要在產(chǎn)品下添加2臺(tái)設(shè)備,分別用于表示ESP8266端設(shè)備和移動(dòng)端設(shè)備。設(shè)備創(chuàng)建步驟:①點(diǎn)擊左側(cè)導(dǎo)航欄設(shè)備管理下的設(shè)備,在設(shè)備頁(yè)面點(diǎn)擊添加設(shè)備。②在添加設(shè)備頁(yè)面選擇所屬產(chǎn)品、輸入設(shè)備名稱(DeviceName)、備注名稱。設(shè)備創(chuàng)建完成,未接入平臺(tái)前處于未激活狀態(tài),如圖4所示。點(diǎn)擊查看進(jìn)入設(shè)備能查詢其三元組信息,即ProductKey、DeviceName和DeviceSecret。
3.2 云產(chǎn)品流轉(zhuǎn)創(chuàng)建
設(shè)備創(chuàng)建完成,使用阿里云物聯(lián)網(wǎng)平臺(tái)云產(chǎn)品流轉(zhuǎn)功能,以使設(shè)備間可進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。通過(guò)云產(chǎn)品流轉(zhuǎn),用戶可定義設(shè)備數(shù)據(jù)的接收、處理、發(fā)送規(guī)則,實(shí)現(xiàn)設(shè)備數(shù)據(jù)的實(shí)時(shí)傳輸、存儲(chǔ)和分析等。創(chuàng)建云產(chǎn)品流轉(zhuǎn)步驟:①創(chuàng)建數(shù)據(jù)源。點(diǎn)擊左側(cè)導(dǎo)航欄消息轉(zhuǎn)發(fā)下的云產(chǎn)品流轉(zhuǎn),在數(shù)據(jù)源選項(xiàng)卡中點(diǎn)擊創(chuàng)建數(shù)據(jù)源,進(jìn)入對(duì)話框輸入數(shù)據(jù)源名稱。②創(chuàng)建數(shù)據(jù)目的。在數(shù)據(jù)目的選項(xiàng)卡中點(diǎn)擊創(chuàng)建數(shù)據(jù)目的,進(jìn)入對(duì)話框輸入數(shù)據(jù)目名稱、選擇發(fā)布到另一個(gè)Topic、該Topic所屬產(chǎn)品。③創(chuàng)建解析器。在解析器選項(xiàng)卡中點(diǎn)擊創(chuàng)建解析器,機(jī)內(nèi)對(duì)話框輸入解析器名稱。④關(guān)聯(lián)數(shù)據(jù)源。解析器創(chuàng)建完成后,點(diǎn)擊右側(cè)查看進(jìn)行關(guān)聯(lián)數(shù)據(jù)源、數(shù)據(jù)目的,解析器的腳本設(shè)置。注意1個(gè)解析器只能關(guān)聯(lián)1個(gè)數(shù)據(jù)源,但可關(guān)聯(lián)最多10個(gè)數(shù)據(jù)目的。在編輯腳本的“writeIotTopic”中,需正確填寫數(shù)據(jù)目的的ID、流轉(zhuǎn)設(shè)備的Topic。啟動(dòng)創(chuàng)建的解析器,實(shí)現(xiàn)數(shù)據(jù)流轉(zhuǎn)功能,如圖5所示。
4 系統(tǒng)軟件設(shè)計(jì)
4.1 ESP8266模塊的開發(fā)
遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)利用Arduino IDE 2.21對(duì)ESP8266進(jìn)行編程開發(fā)。程序經(jīng)編譯調(diào)試無(wú)誤后通過(guò)Micro-USB數(shù)據(jù)線燒錄至ESP8266,實(shí)現(xiàn)ESP8266的自動(dòng)聯(lián)網(wǎng)、MQTT連接、發(fā)送數(shù)據(jù)等功能。進(jìn)行開發(fā)前必須在Arduino開發(fā)板管理器和庫(kù)管理器中下載并安裝ESP8266安裝包、對(duì)應(yīng)的傳感器庫(kù)、ArduinoJson庫(kù)、PubSubClient庫(kù)[5]。實(shí)現(xiàn)ESP8266自動(dòng)聯(lián)網(wǎng)功能可通過(guò)ESP8266WiFi.h庫(kù)文件中提供的WiFi.mode(WIFI_STA)、WiFi.begin(ssid, password)函數(shù)實(shí)現(xiàn);ESP8266接入物聯(lián)網(wǎng)平臺(tái),通過(guò)定義設(shè)備三元組信息,包括PRODUCT_KEY、DEVICE_NAME、DEVICE_SECRET,設(shè)置線上環(huán)境域名和端口號(hào),利用client.connect()建立MQTT(云平臺(tái))的連接。部分關(guān)鍵代碼如下:
……………………….
#define PRODUCT_KEY "xxxxxx"
#define DEVICE_NAME "xxxxxx"
#define DEVICE_SECRET "xxxxxx" //設(shè)備三元組信息
……………………….
#define MQTT_PASSWD "xxxxxx" //第三方工具生成密碼
const int keepalive = 60; //定義時(shí)間間隔
……………………….
client.setServer(MQTT_SERVER, MQTT_PORT); //設(shè)置MQTT服務(wù)器
client.connect(CLIENT_ID, MQTT_USRNAME, MQTT_PASSWD); //MQTT連接
client.setKeepAlive(keepalive); //發(fā)送?;钚奶?/p>
……………………….
實(shí)現(xiàn)發(fā)送傳感器數(shù)據(jù)功能主要步驟:①創(chuàng)建傳感器對(duì)象并設(shè)置引腳。②設(shè)置ALINK_BODY_FORMAT消息體的JSON 格式。③設(shè)置MQTT消息發(fā)布的Topic。④編寫數(shù)據(jù)發(fā)送代碼。以溫濕度傳感器的數(shù)據(jù)發(fā)送為例,部分關(guān)鍵代碼如下:
……………………….
DHTNEW mySensor(5); //創(chuàng)建溫濕度傳感器對(duì)象,并設(shè)置引腳為5(D1口)
#define ALINK_BODY_FORMAT "{\"id\":\"ES P8266\",\"version\":\"1.0\",\"params-
\":%s,\"method\":\"thing.event.property.post\"}" //定義JSON 格式的字符串
#define PROP_POST "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post"
float wd,sd; //定義溫濕度變量
……………………….
mySensor.read(); //傳感器讀取數(shù)據(jù)
wd=mySensor.getTemperature(); //獲取溫度數(shù)據(jù)
sd=mySensor.getHumidity(); //獲取濕度數(shù)據(jù)
……………………….
sprintf(param, "{\"temp\":%s,\"hum\":%s}",String(wd),String(sd));
sprintf(jsonBuf, ALINK_BODY_FORMAT, param);
client.publish(PROP_POST, jsonBuf); //發(fā)送數(shù)據(jù)
……………………….
4.2 移動(dòng)端APP的開發(fā)
遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)在移動(dòng)端APP的開發(fā)中使用軟件Android Studio。移動(dòng)端APP界面設(shè)計(jì)采用LinearLayout線性布局方式,在水平或垂直方向排列子視圖。界面包含溫度、濕度、煙霧和光照等數(shù)據(jù)的實(shí)時(shí)監(jiān)測(cè),此外,還有為后續(xù)設(shè)計(jì)預(yù)留的燈光開關(guān)、風(fēng)扇開關(guān)、報(bào)警開關(guān),如圖6所示。
在功能方面,實(shí)現(xiàn)移動(dòng)端與阿里云物聯(lián)網(wǎng)平臺(tái)通信并獲取傳感器數(shù)據(jù)需要在Android中使用Paho Android Service庫(kù)。Paho Android service是用Java編寫的MQTT客戶端庫(kù)[6]。移動(dòng)端APP功能實(shí)現(xiàn)主要步驟。
1)添加Paho Android Service庫(kù)及依賴項(xiàng)。在settings.gradle的dependencyResolutionManagement下添加Paho倉(cāng)庫(kù)地址:https://repo.eclipse.org/content/repositories/paho-releases/。在build.gradle文件中,添加Paho Android Service的2個(gè)依賴項(xiàng),即paho.client.mqttv3-1.1.0和paho.android.service:1.1.1。
2)在AndroidMainfest.xml頁(yè)面中聲明服務(wù)及添加權(quán)限。聲明服務(wù)為<service android:name="org.eclipse.paho.android.service.MqttService"/>。在AndroidMainfest.xml添加Paho MQTT Service所需的4項(xiàng)權(quán)限:WAKE_LOCK、INTERNET、ACCESS_NETWORK_STATE、ACCESS_WI FI_STATE,設(shè)置usesCleartextTraffic="true",以便允許應(yīng)用程序使用非加密的HTTP協(xié)議(明文)進(jìn)行網(wǎng)絡(luò)通信。要注意的是,應(yīng)用build.gradle文件中的targetSdkVersion需要小于或等于30,若不符合要求,必須修正[7]。
3)移動(dòng)端接入物聯(lián)網(wǎng)平臺(tái)。下載阿里云官網(wǎng)提供的計(jì)算MQTT連接參數(shù)所需的源碼文件AiotMqttOption.java,導(dǎo)入Android項(xiàng)目,定義設(shè)備(移動(dòng)端)三元組信息、獲取MQTT連接信息的3個(gè)參數(shù)即clientId、username、password,將username和password設(shè)置到MqttConnectOptions對(duì)象中。創(chuàng)建1個(gè)MqttAndroidClient對(duì)象,設(shè)置回調(diào)接口、調(diào)用connect方法,從而建立連接。部分關(guān)鍵代碼如下:
……………………….
/* 阿里云MQTT服務(wù)器域名 */
final String host = "tcp://" + PRODUCTKEY + ".iot-as-mqtt." + REGION_ID + ".aliyuncs.com:1883";
MqttAndroidClient mqttAndroidClient;
……………………….
/* 獲取MQTT連接信息clientId、username、password。*/
clientId = aiotMqttOption.getClientId();
userName = aiotMqttOption.getUsername();
passWord = aiotMqttOption.getPassword();
……………………….
/* 創(chuàng)建MqttAndroidClient對(duì)象,設(shè)置回調(diào)接口,建立MQTT連接。*/
mqttAndroidClient = new MqttAndroidClient(getApplicationContext(), host, clientId);
mqttAndroidClient.setCallback(new MqttCallback() { @Override......});
……………………….
4)獲取物聯(lián)網(wǎng)平臺(tái)傳感器數(shù)據(jù)。通過(guò)subscribe方法訂閱云端的Topic,獲取物聯(lián)網(wǎng)平臺(tái)下發(fā)的數(shù)據(jù),對(duì)接收的數(shù)據(jù)進(jìn)行JSON解析并提取。以獲取溫濕度的數(shù)據(jù)為例,部分關(guān)鍵代碼如下:
……………………….
/* 訂閱topic */
mqttAndroidClient.subscribe(topic, 0, null, new IMqttActionListener() {@Override.......});
……………………….
/* JSON解析提取溫度值 */
String tempc= jsonObject.optString("temp");
JSONObject temp_data = new JSONObject(tempc);
String temp2 = temp_data.optString("value");
temp.setText(temp2.toString()+"℃");
……………………….
/* JSON解析提取濕度值 */
String humic= jsonObject.optString("hum");
JSONObjecthumi_data = new JSONObject(humic);
String humi2 = humi_data.optString("value");
hum.setText(humi2.toString()+"RH%");
……………………….
5 系統(tǒng)測(cè)試
遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)測(cè)試包括ESP8266模塊、阿里云物聯(lián)網(wǎng)平臺(tái)、移動(dòng)端APP,測(cè)試內(nèi)容主要包括傳感器數(shù)據(jù)的獲取、硬件設(shè)備與阿里云的連接情況、云產(chǎn)品流轉(zhuǎn)及移動(dòng)端APP的數(shù)據(jù)獲取情況。
ESP8266模塊主要測(cè)試MQTT連接是否正常、各類傳感器數(shù)據(jù)的獲取是否正常。以測(cè)試溫濕度傳感器的數(shù)據(jù)獲取為例,對(duì)ESP8266上電后利用Arduino軟件中的串口監(jiān)視器工具查看,可見MQTT連接正常,溫濕度數(shù)據(jù)獲取正常,如圖7所示。
阿里云物聯(lián)網(wǎng)平臺(tái)主要測(cè)試內(nèi)容為創(chuàng)建設(shè)備的上線情況、數(shù)據(jù)獲取及云產(chǎn)品流轉(zhuǎn)功能是否正常。運(yùn)行ESP8266和移動(dòng)端APP后,登錄物聯(lián)網(wǎng)平臺(tái)實(shí)例中的設(shè)備頁(yè)面,其中創(chuàng)建的test代表ESP8266設(shè)備、Android代表移動(dòng)端設(shè)備,可見2個(gè)設(shè)備均已在線,如圖8所示。
查看云端運(yùn)行日志可知數(shù)據(jù)流轉(zhuǎn)的情況,即傳感器數(shù)據(jù)從ESP8266端發(fā)送到阿里云物聯(lián)網(wǎng)平臺(tái),云端設(shè)備(test)獲取數(shù)據(jù)后進(jìn)行云產(chǎn)品流轉(zhuǎn),將數(shù)據(jù)轉(zhuǎn)發(fā)至云端移動(dòng)端設(shè)備(Android),下發(fā)數(shù)據(jù)至移動(dòng)端APP。云端運(yùn)行日志如圖9所示。
運(yùn)行移動(dòng)端APP后,在模擬器中可以看到APP能正常運(yùn)行,并能成功獲取溫度、濕度、煙霧、光照數(shù)值,如圖10所示。通過(guò)軟件下方的logcat也能看出,APP連接MQTT正常,并每隔3 s實(shí)時(shí)獲取云端Android設(shè)備下發(fā)的數(shù)據(jù),如圖11所示。
經(jīng)過(guò)連續(xù)24 h左右的測(cè)試,系統(tǒng)運(yùn)行正常,各傳感器數(shù)據(jù)輸出穩(wěn)定。相比其他環(huán)境監(jiān)測(cè)系統(tǒng),本系統(tǒng)基于阿里云物聯(lián)網(wǎng)平臺(tái),支持多種通信協(xié)議和設(shè)備接入方式,可以與各種硬件設(shè)備和軟件系統(tǒng)進(jìn)行集成,可根據(jù)實(shí)際需求進(jìn)行擴(kuò)展和定制,且硬件價(jià)格便宜、布局靈活,應(yīng)用價(jià)值較高。
6 結(jié)束語(yǔ)
遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)能夠?qū)崟r(shí)采集環(huán)境溫濕度、煙霧、光照數(shù)據(jù),并通過(guò)阿里云將數(shù)據(jù)下發(fā)到移動(dòng)端設(shè)備實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)。遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)運(yùn)行可靠,硬件價(jià)格低廉,具有較好的擴(kuò)展性和實(shí)用性,后續(xù)可以進(jìn)一步添加其他傳感器或執(zhí)行器設(shè)備(如燈光、風(fēng)扇的控制等)實(shí)現(xiàn)功能拓展,能廣泛應(yīng)用于各類環(huán)境監(jiān)測(cè)的場(chǎng)景。
參考文獻(xiàn):
[1] 楊海龍,寇健,溫曉東,等.基于ESP8266的智能建筑溫濕度檢測(cè)系統(tǒng)設(shè)計(jì)[J].河北建筑工程學(xué)院學(xué)報(bào),2023,41(3):177-181,188.
[2] 化騰飛.基于MSP430F149單片機(jī)與AM2301傳感器的溫濕度計(jì)設(shè)計(jì)[J].山東農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,46(1):143-147.
[3] 盧佳欣,陳柏祥,丁子建.基于物聯(lián)網(wǎng)技術(shù)的智慧家庭監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].科技與創(chuàng)新,2023(21):105-107,110.
[4] 阿里云產(chǎn)品文檔手冊(cè).創(chuàng)建產(chǎn)品[EB/OL].(2023-12-08)[2024-01-02].https://help.aliyun.com/zh/iot/user-guide/create-a-prod uct.
[5] 蒲成雷.基于NodeMCU和OneNET的設(shè)備機(jī)房環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].現(xiàn)代信息科技,2023,7(20):80-83.
[6] 梁永恩.基于MQTT的農(nóng)業(yè)大棚環(huán)境監(jiān)測(cè)系統(tǒng)[J].信息與電腦,2023(3):70-74.
[7] 阿里云產(chǎn)品文檔手冊(cè).Paho-MQTT Android接入示例[EB/OL].(2023-01-17)[2024-01-02].https://help.aliyun.com/zh/iot/use-cases/use-the-paho-mqtt-android-client.
作者簡(jiǎn)介:孫振華(1984-),男,碩士,講師。研究方向?yàn)槲锫?lián)網(wǎng)技術(shù),軟件設(shè)計(jì),影視后期制作。