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

智能智造与信息技
基于MQTT协议的智能开关系统的设计
王亚东
(黑龙江工程学院计算机科学与技术学院黑龙江哈尔滨150050)
摘要:随着物联网的普及,每个人的家里或多或少都有智能家电,而且近年来市场规模和需求量在不断扩大。在这样的大趋势下,设计一套智能开关系统,意在帮助人们管理家中电器。智能开关系统由3个部分组成:硬件设备端、软件控制端、云服务器端。本设计可以检测当前环境数值(温度、湿度、光照强度),通过检测到的数值来控制相应的控制器进行开关操作,并且可以在OLED屏幕上看到环境信息。本设计具有快捷、方便等优点,能更加有效地控制开关。利用ESP8266WiFi模块、消息队列遥测传输协议(即MQTT协议),结合目前流行的云服务器、Micropython编程语言、Tkinter桌面程序编程,通过系统测试完成了此智能开关系统的设计,实现了通过电脑端来远程控制开关。
关键词:智能开关系统MQTT协议控制器云服务器远程控制
中图分类号:TP391.44文献标识码:A文章编号:1674-098X(2022)02(a)-0053-03 Design of Intelligent Switching System Based on MQTT Protocol
WANG Yadong
(College of Computer Science and Technology,Heilongjiang Institute of Technology,Harbin,Heilongjiang
Province,150050China)
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 switching system consists of three parts: hardware device end,software control end and cloud server end.The design can detect the current environmental values(temperature,humidity,light intensity),control the corresponding controller switch operation by the detected values,and can see the environmental information on the OLED screen.This design has the advantages of fast, convenient,and can control the switch more effectively.Using esp8266WiFi module,Message Queuing Telemetry Transport protocol(MQTT protocol),combined with the current popular cloud serv
er,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 achieved through the computer.
超分散剂应用涂料工业Key Words:Intelligent switching system;MQTT protocol;Controller;Cloud server;Remote control
物联网是物物互联的网络,又称为泛在网,即无所不在的网络。物联网是在IP互联的基础上,又融入了各种信息采集传感器,从而形成万物互联。随着物联网的广泛应用,智能家居已逐渐从实验室进入到了人们的日常生活中[1],应运而生的智能家居技术也日益成熟[2]。智能开关系统是一个典型的物联网应用系统,包括智能开关的传感层、网络层、应用层3个层面的技术和原理。系统的传感层使用ESP8266WiFi模块为核心的控制节点,网络层使用ESP8266连接WiFi 并使用MQTT协议通信,应用层使用Tkinter开发的应用服务程序,通过程序的形式展示设备和环境信息,控制系统操作。
DOI:10.16660/jki.1674-098X.2201-5640-3525
作者简介:王亚东(1972—),男,硕士,副教授,研究方向为计算机应用。
53
能智造与信息技术
1常用技术简介
1.1ESP8266
ESP8266WiFi模块通常是指基于乐鑫公司的ESP8266芯片的WiFi解决方案,是一款其内部集成了WiFi模块、数据透传以及串口AT指令控制等功能的一款低成本、低功耗串口WiFi模块。
1.2MQTT协议
MQTT协议即消息队列遥测传输协议,是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通信协议,由于MQTT是一种开销较低、带宽很小的即时通信协议,所以在物联网应用系统中有较广泛的应用前景。MQTT协议需要实现客户端和服务器端的信息交互,在通信过程中,MQTT协议中主要有3种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Sub⁃scribe)。消息的发布者和订阅者都是客户端,消息代理是服务器。在本设计中ESP8266模块和租赁的阿里云服务器同时充当MQTT服务器和MQTT客户端的两种角,用来实现两者的双向数据通信。
1.3MicroPython语言MicroPython是Python编程语言的一个精简高效的实现,它包含了Python标准库的一小部分子集,并且经过优化,可以在微控制器上和受限环境中运行,可以让用户轻松地将代码从
桌面转移到微控制器或大量基于ARM的嵌入式系统上,如Arduino,这样就可以通过用MicroPython基于嵌入式系统的自动控制类应用。
1.4MU编辑器
Mu是一个用于MicroPython开发的开源集成开发环境,不仅可以实现MicroPython程序的开发、编译等常见功能,还能连接硬件,实现二进制代码的上传、下载、单步跟踪等功能,在串口通信的帮助下,是非常友好的嵌入式芯片的调试工具,在本设计中,主要用于ESP8266模块的程序烧写和测试工作。
2系统设计方案
2.1系统结构
智能开关系统是一个典型的物联网系统,系统采用了MicroPython、Python、Tkinter桌面程序编程、数据库等方面的编程技术,硬件部分使用ESP8266WiFi模块,使用简单,客户端搭建MySQL数据库,具有小巧、功能齐全、查询迅捷等优点。服务器使用的是在阿里云服务器上搭建的MQTT服务器,包括智能开关的传感层、网络层、应用层3个层面的技术和原理。系统传感层使用ESP8266WiFi模块为核心的控制节点,网络层使用ESP8266连接WiFi并使用MQTT协议通信[3],应用层使用Tkinter开发的应用服务程序,能通过桌面程序的形式展示设备和环境信息和控制系统操作。系统结构图如图1所示。
2.2系统功能
基于MQTT协议的智能开关系统分为三大功能部分:在硬件设备端可以实现的功能有温湿度检测、光照强度检测、开机音效、屏幕显示信息、设备环境触发;在MQTT服务器端可以实现主题的订阅进行信息的接收与发送;在软件客户端可以实现的功能有用户的登录、注册、查看数据(环境信息和设备状态)、设备控制、更改设备阈值、切换模式等功能。本系统的功能模块如图2所示。
2.3控制逻辑
本系统的控制逻辑分2种,即自动控制逻辑与强制控制逻辑。
ESP8266模块智能在一种控制逻辑下工作,
控制逻辑可以自由切换。
在自动控制逻辑中,用户一般要预先设定两个阈值量,自动控制就是根据预先设定的阈值量与实时采集数据进行比较,符合条件的话就进行相应的控制器的开关。比如设定相对湿度的阈值为60RH和80RH,
图1系统结构图
图2智能开关系统功能图
54
智能智造与信息技
那么默认的逻辑就是当湿度传感器采集的实时湿度小于60RH时,就会自动打开加湿器;当湿度传感器采集的实时湿度大于60RH时,就会关闭加湿器的工作。
强制控制逻辑就是用户可以强制控制某个控制器的开关操作,不需要考虑自动控制逻辑。
2.4功能模块
风送系统
2.4.1硬件模块的主要功能
智能开关系统的硬件部分主要包括ESP8266WiFi 模块、传感器、控制器三大部分组成。ESP8266具有完整的自成体系的WiFi网络功能,具有较强的数据处理和控制能力,是系统中的核心硬件设备。传感器部分包括温湿度传感器、光敏电阻传感器。控制器部分包括LED灯、风扇、加湿器模块。考虑到
系统展示功能,加入了无源蜂鸣器、OLED等显示交互器件,使得控制系统更加方便、快捷,更加实用。本设计中ESP8266模块有2个数据采集端口,分别用ADC接口连接光敏传感器、GPIO1口连接温湿度传感器,可以采集光照强度、温度、湿度3个物理量;用PWM接口连接无源蜂鸣器、用I2C接口连接彩OLED显示屏,用于数据显示和报警;用GPIO2、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)数据显示功能,通过从服务器的数据库中读取数据来展示当前实时状况。
ppzhus
数控冲孔加工(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.
55

本文发布于:2024-09-25 09:39:57,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/134636.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:系统   开关   控制   实现   智能   功能   传感器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议