基于ESP8266和OneNET云平台的远程报警系统

2018-01-04 02:55
单片机与嵌入式系统应用 2017年12期
关键词:触发器蜂鸣器高电平

(广东工贸职业技术学院 计算机工程系,广州 510510)

基于ESP8266和OneNET云平台的远程报警系统

张萍

(广东工贸职业技术学院 计算机工程系,广州 510510)

基于ESP8266无线上网模块和中移动打造的OneNET开放物联网云平台,设计了一种远程报警系统,给出了硬件设计原理图和软件设计流程图,并对ESP8266和OneNET云平台的使用进行了介绍。利用ESP8266的GPIO口、OneNET云平台的存储、触发器功能和具有公网IP的上位机,为物联网数据采集、数据存储、控制指令下发提供了一种新的解决方案。

物联网;ESP8266;OneNET云平台

引 言

ESP8266是乐鑫公司专门为物联网研发的低价、低功耗WiFi芯片,具备无线上网功能,有强大的处理能力。OneNET是中国移动通信集团推出的专业的物联网开放云平台,其提供可靠的服务,帮助各类终端设备迅速接入网络,可实现数据传输、数据存储、数据管理等完整的交互流程。

本文基于ESP8266和OneNET,采用HC-SR501人体红外感应模块检测是否有人入侵,若发现有人入侵,则提供邮件通知和喇叭示警两种告警方式,实现了一种物联网远程报警系统。

1 远程告警系统架构

ESP8266作为主MCU,无需和其他单片机配合使用,可利用ESP8266 GPIO口功能进行数据采集并发出控制信号。采集端ESP8266利用无线上网功能和OneNET平台建立网络连接,上传数据到OneNET。OneNET平台具备触发功能,设置好接收邮箱和公网服务器,当采集到的数据满足触发条件时,既可以邮件的形式发送到设置好的邮箱,进行主动提醒;也可以http post消息的形式发给设置好的公网服务器,由服务器进行中转。本文以一台具备公网IP的服务器作为上位机,接收从OneNET主动推送过来的告警消息,控制端ESP8266不断查询上位机,发现有告警信息则控制告警模块进行告警。选用高分贝报警器(有源SHD4216蜂鸣器)作为告警模块,正常状态蜂鸣器不响,当有人入侵时,蜂鸣器发出声音并持续10s告警。远程报警系统框图如图1所示。

图1 远程报警系统结构框图

2 系统硬件设计

2.1 采集端硬件设计

HC-SR501是基于红外线技术的自动控制模块,广泛应用于各类自动感应电器设备外部接口领域中。可工作在重复触发方式,平时保持低电平状态,当感应到有人活动时输出高电平。在延时时间段内,如果有人在其感应范围活动,则输出将一直保持高电平,直到人离开后才延时将高电平变为低电平。采集端硬件设计如图2所示。

图2 采集端硬件设计

乐鑫公司的ESP8266系列有ESP8266-01至ESP8266-12多款芯片,某些引脚在内部已拉高或拉低,且不能通过外部电路更改其状态,否则硬件启动不成功。通过对比,选用ESP8266-12,可用GPIO口较多。ESP8266-12初始化GPIO4为输入状态,采集HC-SR501的DATA引脚数据。

2.2 控制端硬件设计

控制端仍采用ESP8266-12芯片,初始化GPIO4为输出状态,默认输出低电平,蜂鸣器不响;当从上位机获取到有人入侵的消息时,输出高电平,蜂鸣器发出声音告警。控制端硬件设计如图3所示。

图3 控制端硬件设计

3 系统软件设计

3.1 采集端ESP8266

ESP8266支持多种编程方式,如AT、Non-OS SDK、RTOS SDK。选用了Non-OS SDK的编程方式,图2中采集端ESP8266利用Non-OS SDK提供的定时器周期性查询GPIO口的输入信息,HC-SR501人体红外感应模块检测到有人活动时GPIO口输入高电平,人离开后GPIO口输入低电平。ESP8266工作在STATION模式,设置SSID、PASSWORD,接入本地局域网。当发现GPIO口电平状态有变化时,发起TCP连接OneNET云平台,将最新数据上传到云平台。采集端ESP8266流程图如图4所示。

图4 采集端ESP8266流程图

3.2 OneNET云平台

OneNET是中国移动打造的物联网开放平台,开发文档完善,开发者只需按照OneNET平台的规范接入平台,上传设备数据。数据存储在云端,需要时可以从云平台下载到本地进行分析处理,平台还提供触发器功能,可以将满足条件的数据主动推送给第三方,本文就是利用了平台的触发器功能。下面以本文实现的远程报警系统为例,对OneNET平台接入、触发器功能、数据协议进行说明。

3.2.1 OneNET平台接入

OneNET平台接入流程如图5所示。

图5 OneNET接入流程

用户在接入OneNET之前,先要在OneNET注册用户账户,在用户账户下创建产品,在产品中创建设备,为设备新增数据流。为实现红外报警功能,在OneNET平台进行操作。

3.2.2 触发器设置

触发器设置如图6所示。

图6 OneNET云平台上的触发器设置

3.2.3 数据协议

OneNET云平台提供公开协议产品和私有协议产品两种产品类型,其中公开协议产品又有HTTP、EDP、MQTT、MODBUS等多种协议可供选择。本文中使用的是HTTP协议。

(1)采集端上传数据范例

POST /devices/10985117/datapoints HTTP/1.1

api-key: PKWOSxDHbMakYx5=aSxUOuBDpnQ=

Host:api.heclouds.com

Content-Length:61

{"datastreams":[{"datapoints":[{"value":1}],"id":"hcsr501"}]}

注意采集端在构造上传数据时要符合OneNET平台的规范,本文使用http post方式上传,符合http协议规范。第一行斜体的10985117来自于设备ID,datapoints表示数据内容部分采用JSON格式,第二行api-key来自APIKey,数据内容部分“id”:“hcsr501”来自于OneNET平台上建立的数据流名称,“value”:1 表示数据流的内容是1。

OneNET平台在接收到上传数据后,会回消息给采集端,表示数据上传正确,成功接收。内容如下:

HTTP/1.1 200 OK

Date: Sun, 06 Aug 2017 07:34:59 GMT

Content-Type: application/json

Content-Length: 26

Connection: keep-alive

Server: Apache-Coyote/1.1

Pragma: no-cache

{"errno":0,"error":"succ"}

根据触发器的设置,当采集端上传的数据内容为{"datastreams":[{"datapoints":[{"value":1}],"id":"hcsr501"}]},表示数据流hcsr501的值为1,符合触发条件。

(2)OneNET云平台触发器发出的邮件通知范例

标题:

【OneNET】您的HC-SR501设备的红外报警-邮件通知触发器在2017-08-06 15:34:59被触发。详情:hcsr501数据流、==类型、触发值1

发件人:OneNET

时间:2017年8月6日(星期天)下午3:35

邮件内容:

触发器信息

触发器id: 52239

触发器名: 红外报警-邮件通知

类型: ==

阈值: 1

触发数据

设备id: 10985117

设备名: HC-SR501

数据流: hcsr501

触发时间: 2017-08-06T15:34:59.824

触发值: 1

(3)OneNET云平台触发器推送到第三方服务器的消息范例

上位机打开监听程序,监听端口2323,接收来自OneNET云平台的推送消息,消息采用http post方式传递,符合http协议,实际传送内容采用JSON格式。

POST / HTTP/1.1

Content-Type: application/json;charset=utf-8

Content-Length: 197

Host:45.32.80.133:2323

Connection:Keep-Alive

Accetp-Encoding: gzip

User-Agent: okhttp/3.4.1

{"trigger":{"id":52240,"threshold":1,"type":"=="},"current_data":[{"user_id": 93432,"dev_id":"10985117","ds_id":"hcsr501","at":"2017-08-06 16:55:38.346", "value": 1}]}

3.3 上位机

因为OneNET位于公网,接收推送消息的第三方服务器也需要具备公网IP。从www.vultr.com申请一台服务器作为上位机,服务器采用Debian操作系统。流程图如图7所示。

3.4 控制端ESP8266

控制端ESP8266初始化 GPIO4口为输出状态,默认输出低电平,蜂鸣器不响,仍采用Non-OS SDK的编程方式,利用定时器周期性查询上位机数据,若发现有人入侵,则GPIO4口输出高电平,蜂鸣器发出声音报警,并持续一段时间,流程图如图8所示。

图7 上位机流程图

图8 控制端ESP8266流程图

远程报警系统如图9所示。

图9 远程报警系统实物图

结 语

[1] 胡庆,周志强,吉彬,等.基于AT89C51单片机的智能灌溉系统[J].成都大学学报,2016,(354):383-386.

[2] 范兴隆.ESP8266在智能家居监控系统中的应用.[J].单片机与嵌入式系统应用,2016,16(9):52-56.

[3] 邱宏斌.一种基于ESP8266模块的物联网设计思路[J].电子世界,2017(4):157.

[4] 刘晓剑.基于OneNET的物联网监控系统[D].郑州:郑州大学,2016.

张萍(教师),主要研究方向为物联网应用。

RemoteAlarmSystemBasedonESP8266andOneNETCloudPlatform

ZhangPing

(School of Computer Engineering,Guangdong Polytechnic of Industry and Commerce,Guangzhou 510510,China)

In the paper,a kind of remote alarm system is proposed and realized based on ESP8266 wireless internet module and OneNET open internet cloud platform.The schematic diagram of hardware design and software flow pattern are given out,and the use of ESP8266 and OneNET cloud platform are introduced.Based on the character of ESP8266 GPIO,the storage and trigger function of clound platform and host computer with public network IP,the system provide a new solution for data collection,data storage and control instruction of internet of things.

internet of things;ESP8266;OneNET cloud platform

TP273

A

杨迪娜

2017-08-18)

猜你喜欢
触发器蜂鸣器高电平
电动自行车产品车速提示音检测现状和整改技术研究(2)
一种基于FPGA的PWM防错输出控制电路
掌控板制作简易钢琴
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
单片机驱动蜂鸣器的程序设计
主从JK触发器逻辑功能分析
使用触发器,强化安全性
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响