您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 基于ESP8266和OneNET云平台的远程报警系统
64Microcontrollers&EmbeddedSystems2017年第12期云平台的远程报警系统张萍(广东工贸职业技术学院计算机工程系,广州510510)摘要:基于ESP8266无线上网模块和中移动打造的OneNET开放物联网云平台,设计了一种远程报警系统,给出了硬件设计原理图和软件设计流程图,并对ESP8266和OneNET云平台的使用进行了介绍。利用ESP8266的GPIO口、OneNET云平台的存储、触发器功能和具有公网IP的上位机,为物联网数据采集、数据存储、控制指令下发提供了一种新的解决方案。关键词:物联网;ESP8266;OneNET云平台中图分类号:TP273文献标识码:ARemoteAlarmSystemBasedonESP8266andOneNETCloudPlatformZhangPing(SchoolofComputerEngineering,GuangdongPolytechnicofIndustryandCommerce,Guangzhou510510,China)Abstract:Inthepaper,akindofremotealarmsystemisproposedandrealizedbasedonESP8266wirelessinternetmoduleandOneNETopeninternetcloudplatform.Theschematicdiagramofhardwaredesignandsoftwareflowpatternaregivenout,andtheuseofESP8266andOneNETcloudplatformareintroduced.BasedonthecharacterofESP8266GPIO,thestorageandtriggerfunctionofcloundplatformandhostcomputerwithpublicnetworkIP,thesystemprovideanewsolutionfordatacollection,datastorageandcontrolinstructionofinternetofthings.Keywords:internetofthings;ESP8266;OneNETcloudplatform引言ESP8266是乐鑫公司专门为物联网研发的低价、低功耗WiFi芯片,具备无线上网功能,有强大的处理能力。OneNET是中国移动通信集团推出的专业的物联网开放云平台,其提供可靠的服务,帮助各类终端设备迅速接入网络,可实现数据传输、数据存储、数据管理等完整的交互流程。本文基于ESP8266和OneNET,采用HCSR501人体红外感应模块检测是否有人入侵,若发现有人入侵,则提供邮件通知和喇叭示警两种告警方式,实现了一种物联网远程报警系统。1远程告警系统架构ESP8266作为主MCU,无需和其他单片机配合使用,可利用ESP8266GPIO口功能进行数据采集并发出控制信号。采集端ESP8266利用无线上网功能和OneNET平台建立网络连接,上传数据到OneNET。OneNET平台具备触发功能,设置好接收邮箱和公网服务器,当采集到的数据满足触发条件时,既可以邮件的形式发送到设置好的邮箱,进行主动提醒;也可以httppost消息的形式发给设置好的公网服务器,由服务器进行中转。本文以一台具备公网IP的服务器作为上位机,接收从OneNET主动推送过来的告警消息,控制端ESP8266不断查询上位机,发现有告警信息则控制告警模块进行告警。选用高分贝报警器(有源SHD4216蜂鸣器)作为告警模块,正常状态蜂鸣器不响,当有人入侵时,蜂鸣器发出声音并持续10s告警。远程报警系统框图如图1所示。图1远程报警系统结构框图敬请登录网站在线投稿2017年第12期652系统硬件设计2.1采集端硬件设计HCSR501是基于红外线技术的自动控制模块,广泛应用于各类自动感应电器设备外部接口领域中。可工作在重复触发方式,平时保持低电平状态,当感应到有人活动时输出高电平。在延时时间段内,如果有人在其感应范围活动,则输出将一直保持高电平,直到人离开后才延时将高电平变为低电平。采集端硬件设计如图2所示。图2采集端硬件设计乐鑫公司的ESP8266系列有ESP826601至ESP826612多款芯片,某些引脚在内部已拉高或拉低,且不能通过外部电路更改其状态,否则硬件启动不成功。通过对比,选用ESP826612,可用GPIO口较多。ESP826612初始化GPIO4为输入状态,采集HCSR501的DATA引脚数据。2.2控制端硬件设计控制端仍采用ESP826612芯片,初始化GPIO4为输出状态,默认输出低电平,蜂鸣器不响;当从上位机获取到有人入侵的消息时,输出高电平,蜂鸣器发出声音告警。控制端硬件设计如图3所示。3系统软件设计3.1采集端ESP8266ESP8266支持多种编程方式,如AT、NonOSSDK、RTOSSDK。选用了NonOSSDK的编程方式,图2中采集端ESP8266利用NonOSSDK提供的定时器周期性查询GPIO口的输入信息,HCSR501人体红外感应模块检测到有人活动时GPIO口输入高电平,人离开后GPIO口输入低电平。ESP8266工作在STATION模式,设置SSID、PASSWORD,接入本地局域网。当发现GPIO图3控制端硬件设计口电平状态有变化时,发起TCP连接OneNET云平台,将最新数据上传到云平台。采集端ESP8266流程图如图4所示。图4采集端ESP8266流程图3.2OneNET云平台OneNET是中国移动打造的物联网开放平台,开发文档完善,开发者只需按照OneNET平台的规范接入平台,上传设备数据。数据存储在云端,需要时可以从云平台下载到本地进行分析处理,平台还提供触发器功能,可以将满足条件的数据主动推送给第三方,本文就是利用了平台的触发器功能。下面以本文实现的远程报警系统为例,对OneNET平台接入、触发器功能、数据协议进行说明。3.2.1OneNET平台接入OneNET平台接入流程如图5所示。用户在接入OneNET之前,先要在OneNET注册用户账户,在用户账户下创建产品,在产品中创建设备,为设备新增数据流。为实现红外报警功能,在OneNET平台66Microcontrollers&EmbeddedSystems2017年第12期接入流程进行操作。3.2.2触发器设置触发器设置如图6所示。图6OneNET云平台上的触发器设置3.2.3数据协议OneNET云平台提供公开协议产品和私有协议产品两种产品类型,其中公开协议产品又有HTTP、EDP、MQTT、MODBUS等多种协议可供选择。本文中使用的是HTTP协议。(1)采集端上传数据范例POST/devices/10985117/datapointsHTTP/1.1api-key:PKWOSxDHbMakYx5=aSxUOuBDpnQ=Host:api.heclouds.comContent-Length:61{datastreams:[{datapoints:[{value:1}],id:hcsr501}]}注意采集端在构造上传数据时要符合OneNET平台的规范,本文使用httppost方式上传,符合http协议规范。第一行斜体的10985117来自于设备ID,datapoints表示数据内容部分采用JSON格式,第二行api-key来自APIKey,数据内容部分“id”:“hcsr501”来自于OneNET平台上建立的数据流名称,“value”:1表示数据流的内容是1。OneNET平台在接收到上传数据后,会回消息给采集端,表示数据上传正确,成功接收。内容如下:HTTP/1.1200OKDate:Sun,06Aug201707:34:59GMTContent-Type:application/jsonContent-Length:26Connection:keep-aliveServer:Apache-Coyote/1.1Pragma:no-cache{errno:0,error:succ}根据触发器的设置,当采集端上传的数据内容为{datastreams:[{datapoints:[{value:1}],id:hcsr501}]},表示数据流hcsr501的值为1,符合触发条件。(2)OneNET云平台触发器发出的邮件通知范例标题:【OneNET】您的HCSR501设备的红外报警邮件通知触发器在2017080615:34:59被触发。详情:hc-sr501数据流、==类型、触发值1发件人:OneNETserv-ice@hedouds.com时间:2017年8月6日(星期天)下午3:35邮件内容:触发器信息触发器id:52239触发器名:红外报警-邮件通知类型:==阈值:1触发数据设备id:10985117设备名:HC-SR501数据流:hcsr501触发时间:2017-08-06T15:34:59.824触发值:1(3)OneNET云平台触发器推送到第三方服务器的消息范例上位机打开监听程序,监听端口2323,接收来自OneNET云平台的推送消息,消息采用httppost方式传递,符合http协议,实际传送内容采用JSON格式。POST/HTTP/1.1Content-Type:application/json;charset=utf-8敬请登录网站在线投稿2017年第12期67Content-Length:197Host:45.32.80.133:2323Connection:Keep-AliveAccetp-Encoding:gzipUser-Agent:okhttp/3.4.1{trigger:{id:52240,threshold:1,type:==},cur-rent_data:[{user_id:93432,dev_id:10985117,ds_id:hcsr501,at:2017-08-0616:55:38.346,value:1}]}3.3上位机因为OneNET位于公网,接收推送消息的第三方服务器也需要具备公网IP。从申请一台服务器作为上位机,服务器采用Debian操作系统。流程图如图7所示。3.4控制端ESP8266控制端ESP8266初始化GPIO4口为输出状态,默认输出低电平,蜂鸣器不响,仍采用NonOSSDK的编程方式,利用定时器周期性查询上位机数据,若发现有人入侵,则GPIO4口输出高电平,蜂鸣器发出声音报警,并持续一段时间,流程图如图8所示。图7上位机流程图图8控制端ESP8266流程图远程报警系统如图9所示。图9远程报警系统实物图结语本文利用ESP8266和OneNET云平台的特性,设计了一种物联网远程报警系统,电路简单,成本低,实时性好,可用于家庭、工厂防盗,为类似物联网项目提供了一种新的解决方案。参考文献[1]胡庆,周志强,吉彬,等.基于AT89C51单片机的智能灌溉系统[J].成都大学学报,2016,(354):383386.[2]范兴隆.ESP8266在智能家居监控系统中的应用.[J].单片机与嵌入式系统应用,2016,16(9):5256.[3]邱宏斌.一种基于ESP8266模块的物联网设计思路[J].电子世界,2017(4):157.[4]刘晓剑.基于OneNET的物联网监控系统[D].郑州:郑州大学,2016.张萍(教师),主要研究方向为物联网应用。(责任编辑:杨迪娜收稿日期:2017-08-18)
本文标题:基于ESP8266和OneNET云平台的远程报警系统
链接地址:https://www.777doc.com/doc-7598178 .html