(廣東工貿職業技術學院 計算機工程系,廣州 510510)
基于ESP8266和OneNET云平臺的遠程報警系統
張萍
(廣東工貿職業技術學院 計算機工程系,廣州 510510)
基于ESP8266無線上網模塊和中移動打造的OneNET開放物聯網云平臺,設計了一種遠程報警系統,給出了硬件設計原理圖和軟件設計流程圖,并對ESP8266和OneNET云平臺的使用進行了介紹。利用ESP8266的GPIO口、OneNET云平臺的存儲、觸發器功能和具有公網IP的上位機,為物聯網數據采集、數據存儲、控制指令下發提供了一種新的解決方案。
物聯網;ESP8266;OneNET云平臺
ESP8266是樂鑫公司專門為物聯網研發的低價、低功耗WiFi芯片,具備無線上網功能,有強大的處理能力。OneNET是中國移動通信集團推出的專業的物聯網開放云平臺,其提供可靠的服務,幫助各類終端設備迅速接入網絡,可實現數據傳輸、數據存儲、數據管理等完整的交互流程。
本文基于ESP8266和OneNET,采用HC-SR501人體紅外感應模塊檢測是否有人入侵,若發現有人入侵,則提供郵件通知和喇叭示警兩種告警方式,實現了一種物聯網遠程報警系統。
ESP8266作為主MCU,無需和其他單片機配合使用,可利用ESP8266 GPIO口功能進行數據采集并發出控制信號。采集端ESP8266利用無線上網功能和OneNET平臺建立網絡連接,上傳數據到OneNET。OneNET平臺具備觸發功能,設置好接收郵箱和公網服務器,當采集到的數據滿足觸發條件時,既可以郵件的形式發送到設置好的郵箱,進行主動提醒;也可以http post消息的形式發給設置好的公網服務器,由服務器進行中轉。本文以一臺具備公網IP的服務器作為上位機,接收從OneNET主動推送過來的告警消息,控制端ESP8266不斷查詢上位機,發現有告警信息則控制告警模塊進行告警。選用高分貝報警器(有源SHD4216蜂鳴器)作為告警模塊,正常狀態蜂鳴器不響,當有人入侵時,蜂鳴器發出聲音并持續10s告警。遠程報警系統框圖如圖1所示。

圖1 遠程報警系統結構框圖
HC-SR501是基于紅外線技術的自動控制模塊,廣泛應用于各類自動感應電器設備外部接口領域中。可工作在重復觸發方式,平時保持低電平狀態,當感應到有人活動時輸出高電平。在延時時間段內,如果有人在其感應范圍活動,則輸出將一直保持高電平,直到人離開后才延時將高電平變為低電平。采集端硬件設計如圖2所示。

圖2 采集端硬件設計
樂鑫公司的ESP8266系列有ESP8266-01至ESP8266-12多款芯片,某些引腳在內部已拉高或拉低,且不能通過外部電路更改其狀態,否則硬件啟動不成功。通過對比,選用ESP8266-12,可用GPIO口較多。ESP8266-12初始化GPIO4為輸入狀態,采集HC-SR501的DATA引腳數據。
控制端仍采用ESP8266-12芯片,初始化GPIO4為輸出狀態,默認輸出低電平,蜂鳴器不響;當從上位機獲取到有人入侵的消息時,輸出高電平,蜂鳴器發出聲音告警。控制端硬件設計如圖3所示。

圖3 控制端硬件設計
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流程圖
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}]}
因為OneNET位于公網,接收推送消息的第三方服務器也需要具備公網IP。從www.vultr.com申請一臺服務器作為上位機,服務器采用Debian操作系統。流程圖如圖7所示。
控制端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)