打印
[应用相关]

STM32+ESP8266和OneNET云平台

[复制链接]
11339|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
基于ESP8266无线上网模块和中移动打造的OneNET开放物联网云平台,设计了一种远程报警系统,给出了硬件设计原理图和软件设计流程图,并对ESP8266和OneNET云平台的使用进行了介绍。利用ESP8266的GPIO口、OneNET云平台的存储、触发器功能和具有公网IP的上位机,为物联网数据采集、数据存储、控制指令下发提供了一种新的解决方案
沙发
chenqiang10|  楼主 | 2018-2-21 11:57 | 只看该作者
ESP8266是乐鑫公司专门为物联网研发的低价、低功耗WiFi芯片,具备无线上网功能,有强大的处理能力。OneNET是中国移动通信集团推出的专业的物联网开放云平台,其提供可靠的服务,帮助各类终端设备迅速接入网络,可实现数据传输、数据存储、数据管理等完整的交互流程。

使用特权

评论回复
板凳
chenqiang10|  楼主 | 2018-2-21 11:58 | 只看该作者
本文基于ESP8266和OneNET,采用HC-SR501人体红外感应模块检测是否有人入侵,若发现有人入侵,则提供邮件通知和喇叭示警两种告警方式,实现了一种物联网远程报警系统。

使用特权

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

使用特权

评论回复
5
chenqiang10|  楼主 | 2018-2-21 11:59 | 只看该作者
远程报警系统框图如图所示

使用特权

评论回复
6
chenqiang10|  楼主 | 2018-2-21 12:01 | 只看该作者
HC-SR501是基于红外线技术的自动控制模块,广泛应用于各类自动感应电器设备外部接口领域中。可工作在重复触发方式,平时保持低电平状态,当感应到有人活动时输出高电平。在延时时间段内,如果有人在其感应范围活动,则输出将一直保持高电平,直到人离开后才延时将高电平变为低电平。

使用特权

评论回复
7
chenqiang10|  楼主 | 2018-2-21 12:02 | 只看该作者
采集端硬件设计如图所示。

使用特权

评论回复
8
chenqiang10|  楼主 | 2018-2-21 12:02 | 只看该作者
乐鑫公司的ESP8266系列有ESP8266-01至ESP8266-12多款芯片,某些引脚在内部已拉高或拉低,且不能通过外部电路更改其状态,否则硬件启动不成功。通过对比,选用ESP8266-12,可用GPIO口较多。ESP8266-12初始化GPIO4为输入状态,采集HC-SR501的DATA引脚数据。

使用特权

评论回复
9
chenqiang10|  楼主 | 2018-2-21 12:05 | 只看该作者
控制端仍采用ESP8266-12芯片,初始化GPIO4为输出状态,默认输出低电平,蜂鸣器不响;当从上位机获取到有人入侵的消息时,输出高电平,蜂鸣器发出声音告警。

使用特权

评论回复
10
chenqiang10|  楼主 | 2018-2-21 12:05 | 只看该作者
控制端硬件设计如图所示

使用特权

评论回复
11
chenqiang10|  楼主 | 2018-2-21 12:06 | 只看该作者
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云平台,将最新数据上传到云平台。

使用特权

评论回复
12
chenqiang10|  楼主 | 2018-2-21 12:06 | 只看该作者
采集端ESP8266流程图如图所示

使用特权

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

使用特权

评论回复
14
chenqiang10|  楼主 | 2018-2-21 12:11 | 只看该作者
OneNET平台接入

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

使用特权

评论回复
15
chenqiang10|  楼主 | 2018-2-21 12:12 | 只看该作者
用户在接入OneNET之前,先要在OneNET注册用户账户,在用户账户下创建产品,在产品中创建设备,为设备新增数据流。为实现红外报警功能,在OneNET平台进行操作。

使用特权

评论回复
16
chenqiang10|  楼主 | 2018-2-21 12:14 | 只看该作者
触发器设置

使用特权

评论回复
17
chenqiang10|  楼主 | 2018-2-21 12:15 | 只看该作者
数据协议

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

使用特权

评论回复
18
chenqiang10|  楼主 | 2018-2-21 12:16 | 只看该作者
采集端上传数据范例

POST /devices/10985117/datapoints HTTP/1.1

api-key: PKWOSxDHbMakYx5=aSxUOuBDpnQ=

Host:api.heclouds.com

Content-Length:61

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

使用特权

评论回复
19
chenqiang10|  楼主 | 2018-2-21 12:17 | 只看该作者
注意采集端在构造上传数据时要符合OneNET平台的规范,本文使用http post方式上传,符合http协议规范。第一行斜体的10985117来自于设备ID,datapoints表示数据内容部分采用JSON格式,第二行api-key来自APIKey,数据内容部分“id”:“hcsr501”来自于OneNET平台上建立的数据流名称,“value”:1 表示数据流的内容是1

使用特权

评论回复
20
chenqiang10|  楼主 | 2018-2-21 12:21 | 只看该作者
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"}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

940

帖子

1

粉丝