基于私有云的智能家居控制系统的设计

2022-07-21 11:53王亚东
科技创新导报 2022年5期
关键词:物联网技术

摘要:在当今社会,随着科技进步,网络的应用已经逐渐进入人们的生活。例如,人们在手机上通过网络进行远距离与跨时间的交流。人们驾驶的汽车也已经可以随时联网导航、播放音乐等。所以,现在的人们对于家居的需求也不仅只在家居本身的舒适度、价格方面。人们更希望在外面也可以对家里的状况进行掌控。于是智能家居的概念出现在了人们的视野之中。智能家居让人们感受到了便利,例如,人们即使不在家里,也可以通过智能家居来进行烧水等活动。本文将对人们在远端控制并了解家居的系统的实现进行说明。智能家居控制系统主要包括用户端、采集端和云端3个方面,其中,云端又包括数据库、MQTT、UDP、HTTP这4个方面。此系统采用Python和Django开发,通过对智能家居控制系统的需求进行分析,对系统功能进行设计,并且用Python语言进行实现。此系统采用Pycharm作为主要的开发工具,后台数据库采用MySQL。

关键词:MQTT协议;Esp8266;物联网技术;Django

Design of Smart Home Control System Based on

Private Cloud

WANG Yadong

(Heilongjiang Institute of Technology, Harbin, Heilongjiang Province, 150001 China)

Abstract:In today's society, with the progress of science and technology, the application of network has gradually entered people's life. For example, people communicate long-distance and cross time through the network on mobile phones. People can play music and car navigation at any time. Therefore, people's demand for home now is not only in the comfort and price of home itself. People prefer to be able to control the situation at home outside. So the concept of smart home appears in people's vision. Smart home makes people feel convenient. For example, people can cook water and other activities through smart home even if they are not at home. This paper will explain the implementation of the system that people control and understand the home remotely. Smart home control system mainly includes three aspects: user end, acquisition end and cloud end. Among them, cloud end also includes four aspects: database, MQTT, UDP and HTTP. The system is developed by Python and Django. Through the analysis of the requirements of the smart home control system, the system functions are designed and implemented in Python language. This system uses pychar as the main development tool, and the background database uses MySQL.

Key Words: Message Queuing Telemetry Transport;ESP8266; Internet of things technology; Django

智能家居已逐漸从实验室进入到了人们的日常生活中。应运而生的智能家居技术也日益成熟。系统分为3个部分用户端、采集端和云端,采用ESP8266作为采集端即智能网关,搭建包含UDP服务器、数据库服务器、MQTT服务器、HTTP服务器的云端私有服务器。让用户通过web端实现数据的显示、查询和阈值配置等动能。

1 常用技术简介

1.1 ESP8266

ESP8266是一款其内部集成了Wi-Fi模块、数据透传以及串口AT指令控制等功能的Wi-Fi解决方案,是一款低成本低功耗串口Wi-Fi模块。在本设计中ESP8266担任智能网关的角色,起到数据采集、接收配置信息、控制继电器等功能。

1.2  MQTT协议

MQTT协议即消息队列遥测传输协议,是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通信协议,在本设计中智能网关和私有云服务器同时充当MQTT服务器和MQTT客户端的两种角色,用来实现两者的双向数据通信。

1.3 Micro Python语言

Micro Python是Python编程语言的一个精简高效的实现,它包含了Python标准库的一小部分子集,并且经过优化,可以在微控制器上和受限环境中运行。可以用Micro Python开发基于嵌入式系统的自动控制类应用。

1.4 Django框架简介

Django是一种用Python语言编写的开源的支持网络服务的开发框架。Django是一种既基于MTV模型又基于MVC模型所创造出来了框架。基于数据库的数据来创造出界面良好,功能强大的网站。

2 系统设计方案

2.1 系统框架

智能家居控制系统主要分为用户端、采集端和云端。系统采用了Micro Python、Python、Django、数据库等方面的编程技术,采集端硬件部分使用ESP8266模块,使用简单。系统使用ESP8266 作为采集端,使用ESP8266连接Wi-Fi并使用MQTT协议与MQTT服务器通信,云端包括UDP服务器、HTTP服务器、MQTT服务器、数据库服务器4个部分内容。用户端使用Python语言在Django框架下开发的web服务。

2.1.1 用户端的功能描述

用户在用户端进入注册和登录界面,若为新用户,则先进行注册然后登录。若是老用户,直接登录即可。登录成功后,用户可以选择进入应用管理系统还是个人管理系统。若用户选择进入个人管理系统,可对个人信息进行修改,如用户密码、用户邮箱等。如果,用户选择进入应用管理系统界面。用户可以选择添加新应用或者是对已有应用进行操作。在此时,若用户选择添加新应用,用户可以填写新应用的应用名及其详细说明。在此之后,用户点击提交按钮,新应用即创建成功。如果用户选择对已有应用进行操作,用户可以对已有应用进行编辑、增加设备、增加控制逻辑、删除和展示操作。用户选择编辑功能时,可以对应用的名称和详细说明进行修改。若用户选择增加设备这一功能,需要输入设备编号、连接接口、设备种类以及采集类型等信息。如果用户选择增加控制逻辑这一功能,用户需要输入设备生效的区间值以及采集和控制接口号。如果用户选择删除这一功能,则点击删除按钮,该设备就删除成功。如果用户选择展示功能,则展示该应用的应用编号、应用名、详细说明、连接的接口号、接口类型、接口功能以及功能生效范围。

2.1.2 云端功能描述

云端主要包括数据库、UDP服务器、MQTT服务器和HTML服务器。当新用户注册时,新用户在网页上所填的信息将保存在云端数据库的用户个人信息表中。若用户在个人管理系统中对个人信息进行修改,那么相关信息也自动将在数据库的用户个人信息表中进行修改。同样的,用户在用户端所进行的操作,在云端的数据库都会进行相应的改变。在智能家居控制系统的UDP服务器中,将数据包分成了3种类型,分别为问询类数据包、数据包和状态变更类数据包。在MQTT服务器当中,将其接受到的消息也分为3种,分别为配置消息、命令消息和初始化消息。在云端,UDP服务器主要负责接收8266发送的数据包然后向云端的数据库进行查询最后再控制MQTT服务器发布消息。而云端的MQTT服务器主要的任务就是别Udp服务器所控制向8266发送3种不同类型的消息。在云端HTML服务器负责响应web页面的请求。

2.1.3 智能网关功能描述

采集端最开始是向云端的UDP服务器发送问询类数据包查询配置信息。在接收到云端MQTT服务器的配置消息后,向UDP服务器服务器发布数据包,在写入云端的数据库中。当8266达到触发条件时,向云端的UDP服务器发送状态变更类数据包,并将变更数据写入数据库中。当用户在用户端强制更改8266的状态时,通过HTTP服务器将更改状态写入数据库,并通过云端MQTT服务器发送命令消息到8266。当用户在用户端更改8266作用阈值范围时,通过HTTP服务器将更改状态写入数据库,并通过云端MQTT服务器发送初始化消息到8266。

2.2 系统的数据流

系统由3个部分组成,其中云端是核心部分,分别于智能网关和用户端对接。三者见得数据流关系见图一所示。

2.2.1 智能网关的数据流

ESP8266模块充当智能网关的角色,是智能网关的核心部件,智能网关和云端的数据交换有:负责向UDP服务器发送三类数据,接受MQTT服务器的三类消息,实现数据采集与控制开关间的控制逻辑。控制逻辑分两种,自动控制逻辑与强制控制逻辑。智能网关的控制逻辑可以自由切换。在自动控制逻辑中,用户一般要预先设定两个阈值量,自动控制就是根据预先设定的阈值量与实时采集数据进行比较,符合条件的话就进行相应的控制器开关。强制控制逻辑就是用户可以强制控制某个控制器的开关操作,不需要考虑自动控制逻辑。

智能网关在发送模式下有3种数据类型。(1)初始化请求信息。在智能网关刚开机的情况下,需要从云端下载该网关的各种配置信息。故发送请求包,要求获得自己的初始化配合信息。(2)數据包。把实时采集到的数据打包发送给云端的UDP服务器,之后再存储到数据库中。比如可以利用DHT11模块实现温湿度的实时采集。(3)控制器变更包。当智能网关控制的控制器状态发生变化时,要同时云端,同步变更云端数据库中控制器的状态。上面三种数据包均是以MQTT客户端的方式发出的。

智能网关在接收模式下有3种数据类型。(1)初始化信息。接收来自云端的初始化配置信息,配置本地的控制规则,控制器的状态,GPIO接口的功能等信息。(2)强制控制命令。用于接收用户端的强制开关命令。并执行相应操作,之后把强制开关多对应的控制器的状态变更发送给UDP服务器。(3)配置信息。当用户手动更改各种阈值或切换控制逻辑时,云端需要把变更后的配置信息传给智能网关。是两者配置信息保持同步。

2.2.2 云端的数据流

云端主要包括UDP服务器、MQTT服务器、数据库服务器、HTTP服务器4个部分内容。

UDP服务器主要负责接收智能网关发来的初始化数据、实时数据、状态变更数据。并查询数据库做出必要的反馈。包括把实时数据或状态变更数据写入数据库,把初始化信息通过MQTT发送给智能网关。

数据库服务器主要用于实时数据的存储、控制逻辑、控制器状态等的存储。数据库需要有足够的容量和良好的稳定性,易于进行数据的迁移和存储。

MQTT服务器功能用于和智能网关进行双向数据传输。

HTTP服务器与用户端配合,提供HTTP服务。

2.2.3客户端模块的主要功能

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

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

3 结语

综上所述,物联网技术是一种结合了传统互联网与传感器网络的新技术。基于私有云的智能家居控制系统的设计的基本功能已经实现,实现了能在两种控制逻辑间自由切换,并可根据用户需求调整阈值的智能家居控制系统。经过一系列的测试,圆满地完成了设计的各项功能需求。

参考文献

[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.

中图分类号:TP273;TU855DOI:10.16660/j.cnki.1674-098x.2201-5640-6593

作者简介:王亚东(1972—),男,硕士,副教授,研究方向为计算机应用。

猜你喜欢
物联网技术
物联网技术在智能车辆管理中的应用探究
基于Arduino的物联网技术下校园路灯控制的实现与应用