基于树莓派和Python的智能家居系统设计

2019-09-23 10:51许礼捷葛华陈红
沙洲职业工学院学报 2019年1期
关键词:树莓温湿度云端

许礼捷 葛华 陈红

基于树莓派和Python的智能家居系统设计

许礼捷 葛华 陈红

(沙洲职业工学院,江苏 张家港 215600)

介绍树莓派第3代开发平台,融合Python开发技术和OneNET云平台通信技术等先进技术,设计一款智能化的家居控制系统,具有功能强、成本低、易扩展、运行稳定、应用广等优势。给出了系统架构图,详细阐述了树莓派的数据采集与处理、云平台的接入及数据上传与处理的关键技术和流程,对目前智能家居系统的设计,有着一定的理论参考价值和实用价值。

智能家居;树莓派;Python;OneNET云平台;传感器模块

引言

自2014年的智能家居元年发展至今,随着新一代信息技术的不断发展和应用,我国智能家居系统从最初的概念普及阶段,迅速发展成为基于物联网、云平台的智能家居硬件系统,通过采集、分析家居智能设备的状态数据,实现对家居智能设备的远程监控,为家庭用户提供智能化、个性化的服务。

1 系统总体设计

1.1 基于树莓派和Python的智能家居系统架构图

智能家居系统主要由控制主机、传感器模块和云平台组成。如图1所示,控制主机通过GPIO连接温湿度传感器、超声波传感器、红外传感器、声音传感器、PM2.5传感器等各类家居环境传感器模块,实现数据采集、读取、保存、上传到云端服务器,最终以图形化的形式实时显示的功能,远程用户可以通过移动设备或计算机实时查看家居环境监测数据,并对家居设备进行远程控制。

1.2 树莓派Raspberry Pi 3B+开发板结构

智能家居系统采用最新的Raspberry Pi 3B+作为控制主机,核心是一块BCM2837的片上系统[1],板上提供40个GPIO引脚、1个千兆以太网接口、4个USB接口、1个SD插槽,支持2.4G/5G双频WiFi,支持以太网供电(PoE),不仅性能高,而且成本低。结构示意图如图2所示。

图1 智能家居系统架构图

图2 树莓派Raspberry Pi 3B+主板结构示意图

1.3 Python语言

Python是面向对象的高级编程语言,使用它可以加速开发,高效地与系统整合,语法清晰、简单易学,效率高且维护费用低,跨平台、可移植、开源。树莓派为Python编程提供了一个成本低廉、稳定可靠的开发平台,Python允许树莓派的开发者将项目扩展到令人难以置信的规模。

2 树莓派的数据采集与处理

2.1 传感器的连接

各类传感器通过GPIO接入树莓派[2],以DHT11温湿度传感器为例,将DHT11的VCC、GND、DATA分别接到GPIO的2#、6#、12#。如图3所示,其中树莓派第2脚为5V,给超声波模块供电,接温湿度模块VCC;树莓派第6脚为GND,与温湿度模块共地接GND;树莓派第12脚为GPI18,作接收用,与温湿度模块Data相连接。

图3 DHT11温湿度传感器连接树莓派GPIO口示意图

2.2 数据采集与处理

本系统的程序运行在树莓派上,树莓派的程序采用 python 编程读写GPIO接口,通过控制树莓派 GPIO 管脚从而控制传感器数据收集,实现数据采集和处理[3]。具体的流程如图4所示,其中接收的数据为二进制形式,需要经过处理后转换为十进制数据,并最终根据温湿度的要求,编程实现对继电器开关控制,以达到对智能家居设备控制的功能[4]。

图4 Python采集与处理数据的开发流程

3 云平台的接入及数据上传与处理

3.1 OneNET物联网开放云平台的接入

系统采用中国移动基于物联网技术打造的开放平台——OneNET云平台,实现数据上传到云端,并在云端实现数据处理、图形化显示及远程控制。OneNET是中国移动的物联网开放云平台,提供了丰富的智能硬件开发接口,便于各类终端设备迅速接入网络,实现数据传输、数据存储、数据管理等完整的交互流程。云端接入分为平台域和设备域。具体的接入流程如图5所示。

3.2 数据上传与处理

(1)云平台的接口协议

智能家居系统利用无线网络,将终端设备的状态数据上传到云平台并完成处理。树莓派的无线传输网络和OneNET云平台的API接口都是基于HTTP协议进行数据传输,终端设备可以采用HTTP协议与OneNET对接,实现数据点的上传和保存[5]。OneNET遵循约定的接口规范,接收来自终端设备利用HTTP协议上传的数据。其设计原则如下:

●数据资源的创建、读取、更新和删除(CURD)操作使用标准 HTTP方法实现;

●API输入输出采用json数据格式;

●错误信息以json数据格式输出。

在OneNET云平台中,上传文本类型数据所使用的接口协议,如表1所示。

图5 OneNET云平台接入流程

表1 上传文本类型数据所使用的接口协议

增加数据点需要在请求的 URL中增加 type 字段,可以采用简写方式,目前 type类型支持 3、4、5 三种情况,如表2所示。

表2 type类型字段的三种情况

(2)数据上传到云平台的主要流程

1)#添加http请求头

headers={'api-key':' biiGzzM4qt3Q0unumz8Lkek3PFE='}

#数据封装成json字符串

payload=json.dumps({"temperature":temperature,"humidity":humidity})

2)#发送请求,其中23828172是设备号

r=requests.post('http://api.heclouds.com/devices/23828172/datapoints',

headers=headers,params={"type":'3'},data=payload);

3)#显示结果

print(r.json())

(3)云端远程开关控制

在云端获取了当前设备的数据流信息之后,可以根据数据流的当前值,控制界面上的开关所在数据流的值,从而实现对树莓派的远程开关控制。取值的方法为:

http:///devices//datapoints

可以使用json格式获取到所有设备数据流的当前值。

4 结束语

系统基于树莓派和Python采集接收各类传感器数据,通过WiFi联网,将数据上传到OneNET云平台,利用OneNET图形化界面实时显示家居设备的各种状态信息,通过可视化界面实现对家居设备的智能控制。系统实际运行稳定、准确率高、开发成本低、扩展性强、应用广,具有一定的理论参考价值和较高的实用价值。

[1] Raspberry Pi官方帮助[EB/OL]. (2018-12-20)[2019-01-20].https://www.raspberrypi.org/help/,2018.

[2] gpio|树莓派实验室[EB/OL]. (2018-12-29)[2019-01-19]. http://shumeipai.nxez.com/tag/GPIO,2018.

[3] 吴波涛, 徐正峰, 孙金卫. 基于树莓派的智能温湿度监控终端的设计与实现[J]. 电子设计工程, 2018 (22):190-193.

[4] 安翔. 物联网Python开发实战[M]. 北京: 电子工业出版社, 2018.

[5] OneNET开发文档“OnetNET设备终端接入协议——HTTP”[EB/OL]. (2018-08-25)[2019-01-15]. https://open.iot.10086. cn/doc/,2018.

Design of the Smart Home System Based on Raspberry Pi and Python

Xu Lijie, Ge Hua, Chen Hong

( Shazhou Professional Institute of Technology, Zhangjiagang 215600, Jiangsu, China )

For the realization of home automation, a control system of smart home is designed based on Raspberry Pi, Python and OneNET cloud platform. The system is of the advantages of strong function, low cost, easy expansion, stable operation and wide application. In this paper a systematical architecture diagram is presented, which elaborates the key technologies and processes of data collection and processing, cloud platform access and data uploading and processing. The system is of some theoretical and practical values for the designing of smart home control system.

smart home; Raspberry Pi; Python; OneNET cloud platform; Sensor module

TP273.5

A

1009-8429(2019)01-0001-05

2019-02-26

2018年江苏省高等学校大学生创新创业训练计划项目(201811288007Y)

许礼捷(1972-),男,沙洲职业工学院电子信息工程系副教授;

葛 华(1974-),女,沙洲职业工学院电子信息工程系讲师;

陈 红(1997-),男,沙洲职业工学院电子信息工程系2016级电子信息工程技术专业学生。

猜你喜欢
树莓温湿度云端
四海心连·云端汇聚
基于AT89C51的数字型蚕用温湿度计的设计
云端之城
基于DSP的多路温湿度监测系统
基于树莓派的骑行智能头盔设计
基于温湿度控制的天气预测装置
基于DSP和μcos的温湿度检测系统的设计
基于树莓派的远程家居控制系统的设计
云端创意
响应面法优化红树莓酒发酵工艺