APP下载

基于MQTT协议的智能开关系统的设计

2022-06-23王亚东

科技创新导报 2022年4期
关键词:远程控制控制器

王亚东

摘要:随着物联网的普及,每个人的家里或多或少都有智能家电,而且近年来市场规模和需求量在不断扩大,在这样的大趋势下,设计一套智能开关系统,意在帮助人们管理家中电器。智能开关系统由3个部分组成:硬件设备端、软件控制端、云服务器端。本设计可以检测当前环境数值(温度、湿度、光照强度),通过检测到的数值来控制相应的控制器进行开关操作,并且可以在OLED屏幕上看到环境信息。本设计具有快捷、方便等优点,更加有效地控制开关。利用ESP8266 WiFi模块、消息队列遥测传输协议(即MQTT协议),结合目前流行的云服务器、Micropython编程语言、Tkinter桌面程序编程,通过系统测试完成了此智能开关系统的设计,实现了通过电脑端来远程控制开关。

关键词:智能开关系统 MQTT协议 控制器 云服务器 远程控制

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

物联网是物物互联的网络,又称为泛在网,即无所不在的网络。物联网是在IP互联的基础上,又融入了各种信息采集传感器,从而形成万物互联。随着物联网的广泛应用,智能家居已逐渐从实验室进入到了人们的日常生活中[1],應运而生的智能家居技术也日益成熟[2]。智能开关系统是一个典型的物联网应用系统,包括智能开关的传感层、网络层、应用层3个层面的技术和原理。系统的传感层使用ESP8266 WiFi模块为核心的控制节点,网络层使用ESP8266连接WiFi并使用MQTT协议通信, 应用层使用Tkinter开发的应用服务程序,通过程序的形式展示设备和环境信息,控制系统操作。

1 常用技术简介

1.1 ESP8266

ESP8266 WiFi模块通常是指基于乐鑫公司的ESP8266芯片的WiFi解决方案,是一款其内部集成了WiFi 模块、数据透传以及串口AT指令控制等功能的一款低成本、低功耗串口WiFi模块。

1.2  MQTT协议

MQTT协议即消息队列遥测传输协议,是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通信协议,由于MQTT是一种开销较低、带宽很小的即时通信协议,所以在物联网应用系统中有较广泛的应用前景。MQTT协议需要实现客户端和服务器端的信息交互,在通信过程中,MQTT协议中主要有3种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。消息的发布者和订阅者都是客户端,消息代理是服务器。在本设计中ESP8266模块和租赁的阿里云服务器同时充当MQTT服务器和MQTT客户端的两种角色,用来实现两者的双向数据通信。

1.3 MicroPython语言

MicroPython 是 Python 编程语言的一个精简高效的实现,它包含了 Python 标准库的一小部分子集,并且经过优化,可以在微控制器上和受限环境中运行,可以让用户轻松地将代码从桌面转移到微控制器或大量基于ARM的嵌入式系统上,如Arduino,这样就可以通过用MicroPython 基于嵌入式系统的自动控制类应用。

1.4 MU编辑器

Mu是一个用于MicroPython开发的开源集成开发环境,不仅可以实现MicroPython 程序的开发、编译等常见功能,还能连接硬件,实现二进制代码的上传、下载、单步跟踪等功能,在串口通信的帮助下,是非常友好的嵌入式芯片的调试工具,在本设计中,主要用于ESP8266模块的程序烧写和测试工作。

2 系统设计方案

2.1 系统结构

智能开关系统是一个典型的物联网系统,系统采用了MicroPython、Python、Tkinter桌面程序编程、数据库等方面的编程技术,硬件部分使用ESP8266 WiFi模块,使用简单,客户端搭建MySQL数据库,具有小巧、功能齐全、查询迅捷等优点。服务器使用的是在阿里云服务器上搭建的MQTT服务器,包括智能开关的传感层、网络层、应用层3个层面的技术和原理。系统传感层使用ESP8266 WiFi模块为核心的控制节点,网络层使用ESP8266连接WiFi并使用MQTT协议通信[3],应用层使用Tkinter开发的应用服务程序,能通过桌面程序的形式展示设备和环境信息和控制系统操作。系统结构图如图1所示。

2.2 系统功能

基于MQTT协议的智能开关系统分为三大功能部分:在硬件设备端可以实现的功能有温湿度检测、光照强度检测、开机音效、屏幕显示信息、设备环境触发;在MQTT服务器端可以实现主题的订阅进行信息的接收与发送;在软件客户端可以实现的功能有用户的登录、注册、查看数据(环境信息和设备状态)、设备控制、更改设备阈值、切换模式等功能。本系统的功能模块如图2所示。

2.3 控制逻辑

本系统的控制逻辑分2种,即自动控制逻辑与强制控制逻辑。ESP8266模块智能在一种控制逻辑下工作,控制逻辑可以自由切换。

在自动控制逻辑中,用户一般要预先设定2个阈值量,自动控制就是根据预先设定的阈值量与实时采集数据进行比较,符合条件的话就进行相应的控制器的开关。比如设定相对湿度的阈值为60 RH和80 RH,那么默认的逻辑就是当湿度传感器采集的实时湿度小于60 RH时,就会自动打开加湿器;当湿度传感器采集的实时湿度大于60 RH时,就会关闭加湿器的工作。

强制控制逻辑就是用户可以强制控制某个控制器的开关操作,不需要考虑自动控制逻辑。

2.4  功能模块

2.4.1硬件模块的主要功能

智能开关系统的硬件部分主要包括ESP8266 WiFi模块、传感器、控制器三大部分组成。ESP8266具有完整的自成体系的WiFi網络功能,具有较强的数据处理和控制能力,是系统中的核心硬件设备。传感器部分包括温湿度传感器、光敏电阻传感器。控制器部分包括LED灯、风扇、加湿器模块。考虑到系统展示功能,加入了无源蜂鸣器、OLED等显示交互器件,使得控制系统更加方便、快捷,更加实用。本设计中ESP8266模块有2个数据采集端口,分别用ADC接口连接光敏传感器、GPIO1口连接温湿度传感器,可以采集光照强度、温度、湿度3个物理量;用PWM接口连接无源蜂鸣器、用I2C接口连接彩色OLED显示屏,用于数据显示和报警;用GPIO 2、3、8口分别连接控制加湿器、风扇、灯的继电器模块,使其在条件触发的情况下实现设备的开启与关闭。

ESP8266模块是系统的核心部件[4],主要有五部分功能。

(1)数据采集,负责采集温湿度传感器和光敏电阻传感器的数据,获取温度、湿度、光照强度。其中利用DHT11模块实现温湿度采集[5]。

(2)触发继电器实现被控制电器的开关操作。

(3)MQTT客户端功能,主要实现把采集回来的各种数据发给服务器。

(4)MQTT服务器功能,在强制控制逻辑中,用于接收用户端的强制开关命令;在自动控制逻辑中,用于接收用户的阈值数据;还可以接收用户端控制逻辑的切换命令。

(5)数据显示与提醒功能,可以通过OLED彩色屏幕显示各种信息。

2.4.2服务器模块的主要功能

(1)数据库功能,用于实时数据的存储、控制逻辑、控制器状态等的存储。数据库需要有足够的容量和良好的稳定性,易于进行数据的迁移和存储[6]。

(2)MQTT客户端功能,用于向ESP8266的服务器端发送用户的强制开关命令、阈值等。

(3)MQTT服务器功能,用于接收ESP8266实时采集的数据。

2.4.3客户端模块的主要功能

(1)数据显示功能,通过从服务器的数据库中读取数据来展示当前实时状况。

(2)提供阈值设定窗口和控制器开关设定窗口及控制逻辑切换窗口,便于用户的阈值设定、控制器的强制开关和控制逻辑的切换。

3 结语

综上所述,物联网技术是一种结合了传统互联网与传感器网络的新技术。基于MQTT协议的智能开关系统的基本功能已经实现,构建了能在两种控制逻辑间自由切换,并可根据用户需求调整阈值的智能开关控制系统。本系统的主体是充当了前端采集和控制器相结合的ESP8266模块,经过一系列的测试,完满地完成了设计的各项功能需求。

参考文献

[1] 黄开龙,刘力铭,赵娟.一种云智能家具系统的设计 [J].科技创新导报,2020(3):48-50.

[2] 王春武,陆欣月,张信芝,等.基于ESP866的智能云环境控制系统[J].吉林师范大学学报:自然科学版,2021(42):74-79.

[3] 文道朋,杨浩,赵娟.基于ESP8266的人流量监测系统设计[J].科技创新导报,2020(1):151-153.

[4] 李双斌,吕志华,朱鹏洲.基于ESP8266的太阳能自动跟踪和智能控制装置 [J]. 南方论坛,2021(12):37-39.

[5] 张萍,胡应坤.基于OneNET的物联网云平台构建视频应用 [J].物联网技术,2022(1):42-46

[6] 于雪飞.基于云平台的危房健康监测系统研究[J]. 科技创新导报,2019(18):152-154.

猜你喜欢

远程控制控制器
工商业IC卡控制器改造为物联网控制器实践
水冷发射机冷却系统故障分析及解决方案
基于GSM的远程控制系统
基于DSP的复合跟踪控制器的设计
MOXA RTU控制器ioPAC 5542系列
红狮控制 PID控制器PXU系列
4V三输出同步降压型控制器