王亞東
摘要:隨著物聯(lián)網(wǎng)的普及,每個人的家里或多或少都有智能家電,而且近年來市場規(guī)模和需求量在不斷擴(kuò)大,在這樣的大趨勢下,設(shè)計一套智能開關(guān)系統(tǒng),意在幫助人們管理家中電器。智能開關(guān)系統(tǒng)由3個部分組成:硬件設(shè)備端、軟件控制端、云服務(wù)器端。本設(shè)計可以檢測當(dāng)前環(huán)境數(shù)值(溫度、濕度、光照強(qiáng)度),通過檢測到的數(shù)值來控制相應(yīng)的控制器進(jìn)行開關(guān)操作,并且可以在OLED屏幕上看到環(huán)境信息。本設(shè)計具有快捷、方便等優(yōu)點,更加有效地控制開關(guān)。利用ESP8266 WiFi模塊、消息隊列遙測傳輸協(xié)議(即MQTT協(xié)議),結(jié)合目前流行的云服務(wù)器、Micropython編程語言、Tkinter桌面程序編程,通過系統(tǒng)測試完成了此智能開關(guān)系統(tǒng)的設(shè)計,實現(xiàn)了通過電腦端來遠(yuǎn)程控制開關(guān)。
關(guān)鍵詞:智能開關(guān)系統(tǒng) MQTT協(xié)議 控制器 云服務(wù)器 遠(yuǎn)程控制
Research on Hidden Dangers and Countermeasures of Internet of Things
WANG Yadong
(Heilongjiang Institute of Technology, College of Computer Science and Technology, Harbin,Heilongjiang Province, 150050 China)
Abstract:With the popularity of the Internet of things, everyone has smart appliances at home more or less, and the market scale and demand are expanding in recent years. Under such a general trend, a set of intelligent switching system is designed to help people manage home appliances.The intelligent switch system based on mqtt protocol is divided into three parts: hardware device end,software control end and cloud server end.The system can detect the current environmental values (temperature,humidity,light intensity),through the detected values can control the corresponding controller switch operation,and can see the environmental information on the OLED screen.This design has the advantages of fast, convenient,more effective control switch.Using esp8266 WiFi module, Message Queuing Telemetry Transport protocol(MQTT protocol),combined with the current popular cloud server,Micropython programming language, Tkinter desktop program programming, the design of the intelligent switch system is completed through system testing, and the remote control switch is realized through the computer.
Key Words: Intelligentswitch system;Message Queuing TelemetryTransport;Controller;
Cloudserver;Remote control
物聯(lián)網(wǎng)是物物互聯(lián)的網(wǎng)絡(luò),又稱為泛在網(wǎng),即無所不在的網(wǎng)絡(luò)。物聯(lián)網(wǎng)是在IP互聯(lián)的基礎(chǔ)上,又融入了各種信息采集傳感器,從而形成萬物互聯(lián)。隨著物聯(lián)網(wǎng)的廣泛應(yīng)用,智能家居已逐漸從實驗室進(jìn)入到了人們的日常生活中[1],應(yīng)運而生的智能家居技術(shù)也日益成熟[2]。智能開關(guān)系統(tǒng)是一個典型的物聯(lián)網(wǎng)應(yīng)用系統(tǒng),包括智能開關(guān)的傳感層、網(wǎng)絡(luò)層、應(yīng)用層3個層面的技術(shù)和原理。系統(tǒng)的傳感層使用ESP8266 WiFi模塊為核心的控制節(jié)點,網(wǎng)絡(luò)層使用ESP8266連接WiFi并使用MQTT協(xié)議通信, 應(yīng)用層使用Tkinter開發(fā)的應(yīng)用服務(wù)程序,通過程序的形式展示設(shè)備和環(huán)境信息,控制系統(tǒng)操作。
1 常用技術(shù)簡介
1.1 ESP8266
ESP8266 WiFi模塊通常是指基于樂鑫公司的ESP8266芯片的WiFi解決方案,是一款其內(nèi)部集成了WiFi 模塊、數(shù)據(jù)透傳以及串口AT指令控制等功能的一款低成本、低功耗串口WiFi模塊。
1.2 ?MQTT協(xié)議
MQTT協(xié)議即消息隊列遙測傳輸協(xié)議,是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級”通信協(xié)議,由于MQTT是一種開銷較低、帶寬很小的即時通信協(xié)議,所以在物聯(lián)網(wǎng)應(yīng)用系統(tǒng)中有較廣泛的應(yīng)用前景。MQTT協(xié)議需要實現(xiàn)客戶端和服務(wù)器端的信息交互,在通信過程中,MQTT協(xié)議中主要有3種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器。在本設(shè)計中ESP8266模塊和租賃的阿里云服務(wù)器同時充當(dāng)MQTT服務(wù)器和MQTT客戶端的兩種角色,用來實現(xiàn)兩者的雙向數(shù)據(jù)通信。
1.3 MicroPython語言
MicroPython 是 Python 編程語言的一個精簡高效的實現(xiàn),它包含了 Python 標(biāo)準(zhǔn)庫的一小部分子集,并且經(jīng)過優(yōu)化,可以在微控制器上和受限環(huán)境中運行,可以讓用戶輕松地將代碼從桌面轉(zhuǎn)移到微控制器或大量基于ARM的嵌入式系統(tǒng)上,如Arduino,這樣就可以通過用MicroPython 基于嵌入式系統(tǒng)的自動控制類應(yīng)用。
1.4 MU編輯器
Mu是一個用于MicroPython開發(fā)的開源集成開發(fā)環(huán)境,不僅可以實現(xiàn)MicroPython 程序的開發(fā)、編譯等常見功能,還能連接硬件,實現(xiàn)二進(jìn)制代碼的上傳、下載、單步跟蹤等功能,在串口通信的幫助下,是非常友好的嵌入式芯片的調(diào)試工具,在本設(shè)計中,主要用于ESP8266模塊的程序燒寫和測試工作。
2 系統(tǒng)設(shè)計方案
2.1 系統(tǒng)結(jié)構(gòu)
智能開關(guān)系統(tǒng)是一個典型的物聯(lián)網(wǎng)系統(tǒng),系統(tǒng)采用了MicroPython、Python、Tkinter桌面程序編程、數(shù)據(jù)庫等方面的編程技術(shù),硬件部分使用ESP8266 WiFi模塊,使用簡單,客戶端搭建MySQL數(shù)據(jù)庫,具有小巧、功能齊全、查詢迅捷等優(yōu)點。服務(wù)器使用的是在阿里云服務(wù)器上搭建的MQTT服務(wù)器,包括智能開關(guān)的傳感層、網(wǎng)絡(luò)層、應(yīng)用層3個層面的技術(shù)和原理。系統(tǒng)傳感層使用ESP8266 WiFi模塊為核心的控制節(jié)點,網(wǎng)絡(luò)層使用ESP8266連接WiFi并使用MQTT協(xié)議通信[3],應(yīng)用層使用Tkinter開發(fā)的應(yīng)用服務(wù)程序,能通過桌面程序的形式展示設(shè)備和環(huán)境信息和控制系統(tǒng)操作。系統(tǒng)結(jié)構(gòu)圖如圖1所示。
2.2 系統(tǒng)功能
基于MQTT協(xié)議的智能開關(guān)系統(tǒng)分為三大功能部分:在硬件設(shè)備端可以實現(xiàn)的功能有溫濕度檢測、光照強(qiáng)度檢測、開機(jī)音效、屏幕顯示信息、設(shè)備環(huán)境觸發(fā);在MQTT服務(wù)器端可以實現(xiàn)主題的訂閱進(jìn)行信息的接收與發(fā)送;在軟件客戶端可以實現(xiàn)的功能有用戶的登錄、注冊、查看數(shù)據(jù)(環(huán)境信息和設(shè)備狀態(tài))、設(shè)備控制、更改設(shè)備閾值、切換模式等功能。本系統(tǒng)的功能模塊如圖2所示。
2.3 控制邏輯
本系統(tǒng)的控制邏輯分2種,即自動控制邏輯與強(qiáng)制控制邏輯。ESP8266模塊智能在一種控制邏輯下工作,控制邏輯可以自由切換。
在自動控制邏輯中,用戶一般要預(yù)先設(shè)定2個閾值量,自動控制就是根據(jù)預(yù)先設(shè)定的閾值量與實時采集數(shù)據(jù)進(jìn)行比較,符合條件的話就進(jìn)行相應(yīng)的控制器的開關(guān)。比如設(shè)定相對濕度的閾值為60 RH和80 RH,那么默認(rèn)的邏輯就是當(dāng)濕度傳感器采集的實時濕度小于60 RH時,就會自動打開加濕器;當(dāng)濕度傳感器采集的實時濕度大于60 RH時,就會關(guān)閉加濕器的工作。
強(qiáng)制控制邏輯就是用戶可以強(qiáng)制控制某個控制器的開關(guān)操作,不需要考慮自動控制邏輯。
2.4 ?功能模塊
2.4.1硬件模塊的主要功能
智能開關(guān)系統(tǒng)的硬件部分主要包括ESP8266 WiFi模塊、傳感器、控制器三大部分組成。ESP8266具有完整的自成體系的WiFi網(wǎng)絡(luò)功能,具有較強(qiáng)的數(shù)據(jù)處理和控制能力,是系統(tǒng)中的核心硬件設(shè)備。傳感器部分包括溫濕度傳感器、光敏電阻傳感器。控制器部分包括LED燈、風(fēng)扇、加濕器模塊??紤]到系統(tǒng)展示功能,加入了無源蜂鳴器、OLED等顯示交互器件,使得控制系統(tǒng)更加方便、快捷,更加實用。本設(shè)計中ESP8266模塊有2個數(shù)據(jù)采集端口,分別用ADC接口連接光敏傳感器、GPIO1口連接溫濕度傳感器,可以采集光照強(qiáng)度、溫度、濕度3個物理量;用PWM接口連接無源蜂鳴器、用I2C接口連接彩色OLED顯示屏,用于數(shù)據(jù)顯示和報警;用GPIO 2、3、8口分別連接控制加濕器、風(fēng)扇、燈的繼電器模塊,使其在條件觸發(fā)的情況下實現(xiàn)設(shè)備的開啟與關(guān)閉。
ESP8266模塊是系統(tǒng)的核心部件[4],主要有五部分功能。
(1)數(shù)據(jù)采集,負(fù)責(zé)采集溫濕度傳感器和光敏電阻傳感器的數(shù)據(jù),獲取溫度、濕度、光照強(qiáng)度。其中利用DHT11模塊實現(xiàn)溫濕度采集[5]。
(2)觸發(fā)繼電器實現(xiàn)被控制電器的開關(guān)操作。
(3)MQTT客戶端功能,主要實現(xiàn)把采集回來的各種數(shù)據(jù)發(fā)給服務(wù)器。
(4)MQTT服務(wù)器功能,在強(qiáng)制控制邏輯中,用于接收用戶端的強(qiáng)制開關(guān)命令;在自動控制邏輯中,用于接收用戶的閾值數(shù)據(jù);還可以接收用戶端控制邏輯的切換命令。
(5)數(shù)據(jù)顯示與提醒功能,可以通過OLED彩色屏幕顯示各種信息。
2.4.2服務(wù)器模塊的主要功能
(1)數(shù)據(jù)庫功能,用于實時數(shù)據(jù)的存儲、控制邏輯、控制器狀態(tài)等的存儲。數(shù)據(jù)庫需要有足夠的容量和良好的穩(wěn)定性,易于進(jìn)行數(shù)據(jù)的遷移和存儲[6]。
(2)MQTT客戶端功能,用于向ESP8266的服務(wù)器端發(fā)送用戶的強(qiáng)制開關(guān)命令、閾值等。
(3)MQTT服務(wù)器功能,用于接收ESP8266實時采集的數(shù)據(jù)。
2.4.3客戶端模塊的主要功能
(1)數(shù)據(jù)顯示功能,通過從服務(wù)器的數(shù)據(jù)庫中讀取數(shù)據(jù)來展示當(dāng)前實時狀況。
(2)提供閾值設(shè)定窗口和控制器開關(guān)設(shè)定窗口及控制邏輯切換窗口,便于用戶的閾值設(shè)定、控制器的強(qiáng)制開關(guān)和控制邏輯的切換。
3 結(jié)語
綜上所述,物聯(lián)網(wǎng)技術(shù)是一種結(jié)合了傳統(tǒng)互聯(lián)網(wǎng)與傳感器網(wǎng)絡(luò)的新技術(shù)?;贛QTT協(xié)議的智能開關(guān)系統(tǒng)的基本功能已經(jīng)實現(xiàn),構(gòu)建了能在兩種控制邏輯間自由切換,并可根據(jù)用戶需求調(diào)整閾值的智能開關(guān)控制系統(tǒng)。本系統(tǒng)的主體是充當(dāng)了前端采集和控制器相結(jié)合的ESP8266模塊,經(jīng)過一系列的測試,完滿地完成了設(shè)計的各項功能需求。
參考文獻(xiàn)
[1] 黃開龍,劉力銘,趙娟.一種云智能家具系統(tǒng)的設(shè)計 [J].科技創(chuàng)新導(dǎo)報,2020(3):48-50.
[2] 王春武,陸欣月,張信芝,等.基于ESP866的智能云環(huán)境控制系統(tǒng)[J].吉林師范大學(xué)學(xué)報:自然科學(xué)版,2021(42):74-79.
[3] 文道朋,楊浩,趙娟.基于ESP8266的人流量監(jiān)測系統(tǒng)設(shè)計[J].科技創(chuàng)新導(dǎo)報,2020(1):151-153.
[4] 李雙斌,呂志華,朱鵬洲.基于ESP8266的太陽能自動跟蹤和智能控制裝置 [J]. 南方論壇,2021(12):37-39.
[5] 張萍,胡應(yīng)坤.基于OneNET的物聯(lián)網(wǎng)云平臺構(gòu)建視頻應(yīng)用 [J].物聯(lián)網(wǎng)技術(shù),2022(1):42-46
[6] 于雪飛.基于云平臺的危房健康監(jiān)測系統(tǒng)研究[J]. 科技創(chuàng)新導(dǎo)報,2019(18):152-154.