摘要
传统的安防措施在很多方面不仅耗时和消耗人力物力,并且容易让用户错失事故处理最佳时段。为了解决该问题,本人设计了一个基于OneNet的智能家居安防系统。它可以利用各传感模块作为信息采集点,采集家居环境中的各个区域的值。
该系统以STM32F103ZET6芯片为信息处理中心,能够根据用户需求对采集的数据实时整合处理,并且通过EDP协议把家居情况发送到OneNet手机端,方便用户实时远程监控。不仅如此,它还可以设置阀值,当测量数据超范围时可以实时发送警报信息。
关键词:家居安防,STM32,OneNet
1 系统总体设计及硬件实现
1.1 系统总体设计
根据用户的功能需求以及结合所学的专业知识,本系统总体设计主将分为硬件设计部分和软件设计部分。具体如下:
硬件部分使用STM32F103ZET6单片机、HX711压力传感器、红外寻迹循迹避障传感器、MIFARE RC522 RFID 射频传感器、DHT11温湿度传感器、ESP8266串口WIFI、OV7670图像传感器、2.8寸TFT LCD 液晶触摸屏、0.9寸的Oled显示屏等。
软件部分则分为STM32F103ZET6的初始化、各模块初始化、 OneNet界面设计、数据的采集、传输和处理。
在这其中,各类传感器通过IO端口与STM32进行信息传输,同时STM32芯片通过EDP协议与OneNet手机端通信。当各类传感器检测到家居各区域的信息时传输到STM32芯片,使用一定的条件判断决定是否发送提醒信息。
1.2 系统硬件实现
1.2.1 STM32控制器模块
目前STM32已经成为32位领先型单片机。它不仅体积小巧,性能较好,可靠性相对高,而且成本低、寿命长。这些优点可以说明它合适于家居安防系统。这次系统设计使用的是STM32F103ZET6芯片,它方便调试比较复杂和需要大量FLASH场所的程序,各种外设功能和高达72MHz的CPU工作频率非常合适开发家居安防系统应用。
如图3-1所示,本系统设计使用其中的GPIO引脚用于和各传感器进行数据的通信,VDD引脚提供各传感器的供电。芯片引脚如下:
图3-1 STM32F103ZET6最小系统
2 系统软件实现
2.1 开发工具的介绍
2.1.1 Keil uVision5
Keil uVision5是51系列兼容C语言软件开发系统。Keil通过一个集成开发环境可以把C编译器、调试器、宏汇编、编辑器、库管理等合并在一起。使用它不仅编译后生成的汇编代码紧凑,而且产生的目标代码效率极其高。在软件的开发时可使用C语言,在结构、阅读性、维护性上有显著的优势,因而容易理解。
2.1.2 OneNet
OneNet平台支持多类传感器和硬件的急速接入和Big Data服务。它不仅提供丰富的应用程序编程接口和应用模板有效地减少物联网应用开发和部署成本,还满足系统设备连接、协议适配、数据存储和安全性等需求。OneNet平台的数据传输支持使用五大协议:NB-LoT协议、EDP协议、Modbus协议、TCP协议、MQTT协议。本系统优先使用EDP协议。该协议适用于系统设备和平台保持长连接点对点控制的安防家居的系统。
2.2 逻辑框架
系统设计整体逻辑框架如图4-1所示:
在STM32开发板端,对各硬件模块初始化,对于采集的数据处理并在对应的模块显示。同时这些数据传输到OneNet端,进行数据交互,对应地修改各模块的状态值。OneNet平台还可以下发命令到STM32,收到数据信息对于修改模块的状态值
图4-1 逻辑框架图示
3 手机端软件实现
本系统的手机端使用OneNet设计,OneNet手机端有3大界面:安全提醒,智能控制,智能监控。安全提醒界面通过在各个模块设置警告阀值,超过阀值出现提醒信息;智能监控界面可以在手机端发送命令来控制家居里的部分电器开关;智能监控界面可以查询当前家居监控图片和温湿度等。
在OneNet平台创建一个接入协议为EDP的产品,该产品的产品ID为591593588。在OneNet页面点击添加应用设备,输入设备的名称和编号。该设备编号为IiU9E=FHKkT=uBdXjjx5MsySwfY=
3.1 安全提醒界面
该手机界面的尺寸为724*768。门、窗、房、厨为text控件,是固定文字。为了美观,给固定文本控件增加背景颜色rgba(110, 193, 142, 1),文字加颜色rgba(183, 44, 44, 1),具体如图所示。
右边是对应的提醒语句,当超过阀值就出现文字提醒。这里是是text控件,属性为数据流值。门对应的数据流是DoorWarning;窗对应的数据流是windowWanin;房对应的数据流是BedWarning;厨对应的数据流是TemperatureW。刷新频率都为3秒。为了美观,给背景增加背景颜色rgba(150, 210, 71, 0.52)。具体如图所示。
图4-5 OneNet安全提醒界面
4 系统调试与效果
4.1 调试步骤
第一步,根据功能需求编写代码。
第二步,编译源代码生成可执行文件并下载到stm32,和云平台配合调试。
第三步,在OneNet平台发布产品,可以通过手机浏览器登录账号或者下载设备云APP登录账号。
4.2 调试问题和处理方法
1.系统设计首次无法编译通过。
答:根据报错语句可以发现很多地方头文件没有添加。
2.无法传输图像
答:查询相关的博客,把摄像头拍摄的RBG格式转化为BMP类型,BMG在转化为平台可识别的JPEG格式
3.程序调试运行,但OneNet云平台在安全提醒界面无法按照设想传输报错语句
答:查询开发者手册,发现可以数据流支持char类型,无法支持终端传输过来的中文字符。因此修改云端界面提醒语句为简单易懂英语语句。
4.3 运行效果演示
前期操作是为单片机连接电源,开启单片机。并开启规定名称和密码的WiFi给系统连接。在按键求助模块中是按下STM32芯片的KEY0键可触发蜂鸣器发出求救信号。
为方便用户,本设计系统支持设备云APP和网站查看。具体上架公布网站是
https://open.iot.10086.cn/iotbox/appsquare/appview?openid=a64afa3f10e2617af46e62c3e57ae5db
4.3.1 安全提醒功能
1、该界面在门禁状态为Close时,生物体靠近门对应的红外传感器,它采集的数据不触发门禁提醒功能,当门禁状态为Open时,生物体靠近红外采集的数据触发门禁提醒,手机页面对应出现Door Warning字段。
2、当生物体靠近窗对应的红外传感器,它采集的数据触发提醒功能,页面对应出现Window warning字段。
3、当温度值超过阀值27度,触发提醒功能,手机页面对应出现Temperatere Warning字段;在OLED显示屏上显示当前温度值和湿度值。
4、当压力传感器承重值超过阀值触发提醒功能,页面对应的出现Bed Warning字段;在OLED显示屏上显示当前重量值。具体效果演示如图所示:
图5-1安全提醒界面手机界面演示效果
图5-2 房间对应的实物图
4.3.2 智能监控功能
在智能监控界面显示当前的温度和湿度,方便用户查看和根据判断警报信息精准性。可以通过按键的状态改变实时更新拍摄家居情况。
图5-5智能监控界面拍照操作
图5-6 监控图片显示效果
5 结 论
本论文主要描述了家居安防系统中,硬件环境搭建和软件系统的设计过程,包括以下内容:Keil uVision5 和 OneNet开发工具的介绍说明;各类传感器的介绍和引脚连接使用情况;STM32F103ZET6芯片的介绍和使用引脚情况;通过代码对STM32和传感器进行功能实现。
本设计的优点在于可以实时地监测当前家居的情况,用户不仅可以在手机端的智能控制界面实时控制家里的部分家电按钮,还可以通过手机端的智能监控界面实时获取真实的数据。同时具有手机端的安全提醒界面,使用户可以及时看到后快速采取正确的处理措施。还有系统带有的按键求助按钮简单方便使用。如果用户不希望手机下载安装多余的APP,该系统还支持网页版运行,使用手机自带的浏览器也可以查看家居情况,尽量做到释放手机内存,以便捷用户。
本设计目前仍然存在着很多需要改进的地方,例如实时监控的图片希望可以优化为实时视频,可以开发安卓APP, 通过代码嵌入直接调用OneNet前端组件的功能,可以使实时效率提高,观看舒适感增加。