信息通信INFORMATION&COMMUNICATIONS
2019 (Sum.No200)
2019年第8期
(总第200期)
蒋树庆,房淳
(五邑大学智能制造学部,广东江门529020)
摘要:MQTT是一个轻量级基于代理发布/订阅的消息传输协议,具有低功耗、节省流量施扩展性强的特点oHome A ssistant 一款基于Python语言的开源家庭自动化平台。文章分析了MQTT消息的发布订阅模式,设计一种基于MQIT协议通过Home A ssistant平台实现对ESP8266传感器节点的数据采集以及控制系统,老成了在Home A ssistant客户端的数据可视化。 关键词:MQTT;物联网;ESP8266;Home Assistant
中图分类号:TP274.2文献标识码:A文章编号:1673-1131(2019)08-0080-03
Abstract:MQTT is a lightweight proxy-based publish/subscribe messaging protocol with low power consumption,traffic savings and scalability.Home Assistant i s an open source home automation p latform based on t he Python language.This paper analyzes the release and subscription mode of MQTT message,and designs a data acquisition and control system based on the MQTT protocol for the ESP8266sensor node through the Home Assistant platform,and completes the data visualization in the Home Assistant client.
Keyword:MQTT;IOT;ESP8266;Home Assistant
0引言
随着物联网技术不断发展以及无线传感器网络逐渐应用,越来越多的智能终端通过物联网系统互联互通。MQTT协议是一个轻量级基于代理的发布/订阅的消息传输协议,专为受限设备和低带宽、高延迟或不可靠的网络而设计.该协议也是新兴的“机器到机器”或“物联网”世界设备连接的理想选择之一叭本文设计一种基于MQTT协议的数据采集控制系统。首先ESP8266通过MQTT协议将釆集到的传感器数据发送到MQTT服务器,然后Home Assistant客户端订阅了对应的特定的消息,就可以收到相应的传感器数据。同时,Home Assistant也可发布消息实现对ESP8266模块的控制。 datal.AddField(喳询日期",喳询日期",7,1);
datal.AddField("查询时间查询时间
datal.AddField(\\本站点\变量,\\本站点\变量,7,1);
datal.W here="査询日期=#"如+"#";
datal.FetchDataO;
datal.FetchEndO
监控系统运行时,进行综合报表查询如图10所示。
图10综合报表査询
4结语
经过两年多的实际应用,运行结果表明,大雁水源井供水远程监控系统完全达到了设计要求和应用效果。本监控系统实现了工人在值班室(监控中心)可査看各个水源井的运行参数,起停水源井泵,及时关停故障水源井泵,解决了以往靠值班人员就地起停无法远控、效率低等问题。提高了水源井生产数
据实时监控的准确性,实现了水源井液位、出水压力、出水流量和潜水泵电参数远程实时监控,起到了低液位预警、高液位自动启泵作用,解决了水源井空抽、干烧等现象,提升了水源井管理效率皿。保证了供水系统的安全、可靠、高效运行。
参考文献:
[1]郭荣,张国钧等.基于PLC的综合供水系统设计[J].给水排
水,2016(9):128-131.
⑵司昌楠,靳宝全•矿区水源井与供水管网远程监控系统研
究[J].煤矿机械,2014(4):219-222.
[3]邵照勇,柴西林等.基于PLC的恒压供水系统设计[J].信息
通信,2018(1):100-102.
[4]黄振中,王维庆等.基于的凤力发电机监控系统
设计与实现[几仪表技术与传感器,2012(8):63-65.
[5]處常初.PLC编程及应用(第4版)[M].北京:机械工业出版
社,2014.
[6]李海云城镇水厂自动供水SCADA系统的研究与应用
[D]咸都:电子科技大学,2010.
[7]陈志军,南新元等.水源地监控系统的设计与实现[J].电子
技术应用,2009(1):80-83.
[8]北京亚控科技发展有限公司:组态王6.53用户使用手册
[KJ.2009.
[9]郭春春,贺贵明.组态王在泵站监控系统中的应用[J]冰电
自动化与大坝监测,2006(3):82-84.
[10]高宝元水源井液位在线远程监控系统应用研究[J].石油
化工自动化,2018(1):48-50.
作者简介;黄振中(1984-),男,硕士研究生,工程师,主要研究方向:信息系统工程。
80
信息通信
蒋树庆等:一种基于MQTT 协议的数据釆集控制系统
1 MQTT 消息发布订阅模式
ESP8266 模
―MQTT-―|<-^| HomeAssista
图1 MQTT 消息发布/订阅结构图
MQTT 消息发布/订阅基本结构如图1所示,它由MQTT 客户端和MQTT 代理服务器组成,MQTT 客户端和MQTT 代
化妆笔
理服务器之间通过MQTT 协议进行消息传输。这里.ESP8266 和 Home Assistant 是 MQTT 客户端,MQTT-Broker 是 MQTT 代理服务器。在MQTT 客户端和MQTT 代理服务器通信过
程中,客户端首先将数据发送给代理服务器,代理服务器收到 客户端发布的消息后,会进行消息的过
滤。消息过滤主要有
三种方式:基于主题的过滤、基于内容的过滤、基于类型的筛 选[2]。MQTT 代理服务器完成消息过滤后会将特定的消息转
发到订阅了该消息的客户端。这样,循环进行不断完成客户
端和MQTT 代理服务器之间数据的传输。MQTT 消息发布/
膜加盖订阅通信模型具有异步、多点通信的特点,使通信的参与者在
空间、时间和控制流上完全解耦,能够很好地满足物联网系统 松散通信的需求叫
2总体设计
在本系统中,硬件设备主要包括树莓派、路由器、ESP8266
模块、电脑或手机移动终端等。其中,ESP8266模块可以连接 温湿度传感器、人体感应传感器、烟雾传感器、继电器等,构成 传感器终端节点。系统软件主要是在树莓派Linux 系统搭建
点头娃娃的MQTT 服务器和Home Assistant 平台。在此系统中,
ESP8266传感器节点和树莓派、电脑或移动设备处在同_个局 域网中。
3系统硬件设计
本系统硬件设计主要是ESP8266模块和继电器、温湿度静压试验
传感器、光照传感器间的连接。ESP8266是乐鑫公司生产的低
功耗、高集成度的WIFI 芯片,集成了 32位处理器、射频、电源 管理模块等叫
ESP8266传感器节点设计原理图如图2所示。ESP8266由 3.3V 的USB 接口进行供电。根据传感器的特性,整板不涉及
模拟接口的使用,主要是以数字接口来采集传感器和继电器
反馈的数据。如图2.D1和D2是串口数据的传输接口;D3用
于核心板的复位接口; D4用来釆集DHT11温湿度传感器反
馈的数据,再经过软件程序上的数据处理,将数据通过MQTT 协议传输到MQTT 服务器;D7和D8主要是用于控制两个低
电平触发的继电器,由于ESP8266管脚输出电压较小以及继
电器需要5V 电压来触发,所以通过三极管对输出的信号进行
放大来达到对继电器进行控制的效果。J3和J4分别为两个 接线端子,主要用来连接受控制设备。
| 继电器 _| ESP8266
| 传!8 器 |—>| ESP8266
賂由88 ”二
电IHlf “动设缶
图2 —种基于MQTT 协议的数据采集控制系统框图
4系统程序设计
系统软件程序设计主要是ESP8266传感器节点和Home
Assistant 平台开发,两者程序流程图如图3所示.ESP8266开 启后会根据下载好的程序设置,先进行系统初始化,连接上路
由器;接着ESP8266将传感器釆集的数据通过MQTT 协议进
行发布,发布的数据存储到MQTT 代理服务器,MQTT 代理服
务器会把接收的数据转发给订阅了特定消息的客户端。同时,
ESP8266也可以订阅特定的消息。另一方ffi.Home Assistant
开启后先进行系统初始化,连接至同一路由器;然后通过监听
事件检测MQTT 代理服务器是否有发布消息、系统页面是否
有交互操作,当检测到MQTT 代理服务器发布了消息并且
Home Assistant 也订阅了这个消息,Home Assistant 会把
MQTT 代理服务器所发送的数据存储到其数据库中,供前端 页面调用数据库中的相应内容进行显示,此时用户则可以根
据前端显示的内容查看相应的信息或是进行控制操作。当用
户在页面控制继电器开关时。例如:当打开继电器时,Home
Assistant 会将打开继电器的消息发布到MQTT 代理服务器,
订阅了这个消息的ESP8266就会收到来自MQTT-Broker 打
开继电器的指令,开启继电器。
图3 ESP8266与温湿度、光照传感器和继电器连接设计电路图
图4 ESP8266和Home Assistant 程序流程图
5结语
MQTT 作为一种轻量级的消息发布/订阅协议,给物联网
系统的设计与开发带来极大的灵活性和可靠性。本文研究了
MQTT 协议的消息发布/订阅模式以及MQTT 客户端和MQTT
代理服务器间的通信过程,设计了一种基于MQTT 协议的数
据采集控制系统,实现了 ESP8266传感器节点和Home Assi
stant 平台的通信,完成了在客户端Home Assistant 平台的数 据可视化。用户可以登录Home Assistant 平台主页查看传感
器数据或者控制继电器的开关。
81
信息通信INFORMATION&COMMUNICATIONS
2019 (Sum.No200)
2019年第8期
(总第200期)
微服务技术框架在智慧警务应用中的优势和缺点
徐维,刘屹
(武汉市公安局江岸分局,湖北武汉430014)
摘要:智慧警务系统在各区各部门民警的日常工作得到了大量的应用,多年来,随着技术不斷的更新和迭代,智慧警务系统的建设;模式在飞速的发展,近些年来,springcloud、redis、docker等一批先进而成熟技术在智慧警务的建设中也应用得越来越多,文■章对springcloud、redis、docker在智慧警务应用中的优势和缺点进■行了探索和分析。
关键词:智慧警务;微服务;springcloud;redis;docker
中图分类号:D631.1文献标识码:A文章编<:1673-1131(2019)08-0082-02
0引盲
智慧警务系统是以公安部大数据战略框架为核心指导思想,面向各级区县公安实战部门,为警务实战服务的实战应用系统。经过多年的建设,智慧警务应用系统已经具备一定的基础了,能够满足区县级公安的基本业务需求,但是公安部门的核心任务体系相对庞大,传统的技术在处理这些业务需求的时候,性能和响应速度方面往往容易遇到瓶颈,而近年来新兴的微服务框架技术,如spriogcloud、redis、docker等,发展迅速,相对成熟,性能优秀,当传统技术在处理庞大的公安部门核心业务乏力的时候,这些技术则弥补了传统技术的一些短板和不足。本文将探讨微服务框架spingcloud,redis,docker在智慧警务的具体应用中的优势和不足之处。
1微服务技术框架在智賴警务中的优势
磁石电话机
1.1常用微1艮务框架简介
随着持续交付、按需虚拟化、大型集成系统这些实践的流行,参与的用户越来越多,越来越复杂的业务场景,传统的单体架构已经很难满足大型集成系统了,微服务也应运而生了,常见的微服务架构如图1所示:
图]微^务常用架构模式
微服务给了团队极大的技术自由,可以由一些协同工作的的小而自治的服务组成。微服务可以按照不同的业务逻辑来划分成不同的独立运行的服务单元,而各个服务单元之间通过HTTP协议来相互通信,还可以借助一些自动化部署的工具如docker来实现自动化部署,也支持使用一些redis这种的Nosql数据库,相比传统的架构,微服务可以将复杂的业务逻辑解耦出来,拆分成小的业务,易于实现和维护,而且各个单元是独立部署的,修改单个小的单元对其他的服务单元是不会造成影响的,而且分布式的也提供了整个系统的员载能力,方便对整个工程进行横向扩展,但是微服务也有自身的一些短板和不足之处,比如微服务往往要定义很多细而小的服务单元,定义精准有一定的难度,另外,一般需要对每个微服务进行治理、监控等,实现起来也有一定的复杂性,最重要的是,用微服务架构拆封成不同的子服务模块之后,需要考虑到分布式事务和分布式缓存。在智慧警务的微服务架构设计
中,最长用到的微服务技术就是spring-cloud、redis、docker,springcloud是一个优秀的微服务开发框架,而redis则最常用来实现分布式缓存,docker去实现子服务的自动化部署,通过这三种主要技术搭建的智慧警务应用系统,相比传统架构建设的智慧警务应用系统,开发和维护的效率更高,成本更低,响应速度更快,系统更加健壮,更加地安全,更加地稳定,容错能力高,具备一定地自我恢复能力,防止连级故障等等诸多优势,而本文也主要会对springcloud、redis、docker在智慧警务应用中使用的优势和缺点做一番探讨。
1.2springcloud在智藏警务应用中的优势
Springcloud是基于springboot的_套微服务框架,其有丰富的组件,如注册中心组件Eureka、均衡负载组件ribbon、断路器组件hystrix、网关组件zuul、配置中心组件config。而在实际的智慧警务应用的开发中,由于智慧警务平台的功能繁多,解耦出来作为多个多个子服务来管理,不仅能提高开发的效率,更能提高整个智慧警务的健壮性,springcloud
参考文献:
[1]BanksA,Gvq>taR.OASIS StandardMQTT Version3.1.1Jittp:/
//mqtt/niqtt/v3.1.l/mqtt-v3.1.1.html.
[2014-10-29].
⑵P.T.Eugster,P.A.Felba;R.Guerraoui,and A.-M.Ker-
nmairec/The m any&ces of p ublish/subscribe,"ACM Computing Surveys,vol.35,no.2,莎.114-131,J une2003.
[3]LI M,YE F,KIM M,et al.A scalable and elastic publish/
subscribe service[C]/ZProceedmg of Parallel&Distributed Processing Symposium.Anchorage,AK:[s.n.],2011: 1254-1265.
[4]范兴隆.ESP8266在智能家居监控系统中的应用[J].单片防雨罩
机与嵌入式系统应用,2016,16(9):52-56.
[5]林浒,张家铭,杨海波.基于MQTT协议的即时消息业务设
计与实现[J].计算机系统应用,2017(3).
[6]姚丹,谢雪松,杨建军.基于MQTT协议的物联网通信系统
的研究与实现[J].信息通信,2016(3):33-35.
82