丁小一,刘宏斌
(合肥职业技术学院,安徽合肥,230000)
随着中国经济的飞速发展,高层住宅楼越来越多,这也导致了儿童发生意外的概率大幅提升。据统计,在儿童意外伤害事件中,高空跌落发生比例较高,达到34.6%。发生这样的意外,一方面是因为大人疏于看护[1],另一方面是由于高层住宅阳台缺乏完善的防护措施。在考虑到儿童行动的不确定性以及防护的时效性,提出了一种基于LoRa 技术的智能阳台监测系统。该系统不仅可以第一时间起到防护作用,集成室外环境实时监测系统,并实现远程交互为人们的生活提供便利。
按照数据处理流程,阳台监测系统可以分为LoRa 采集节点、LoRa 网关节点。LoRa 采集节点采集传感器数据并通过LoRa 无线模块发送到LoRa 网关节点,接收网关节点的命令操作执行器;LoRa 网关节点将接收到的数据,通过WiFi 模块发送到云服务器,并且接收服务器下发的指令发送给采集节点。
本系统主要包含智能防护、环境监测以及远程交互三大功能。其中,智能防护功能是监测系统的核心功能,通过多组激光传感器监测是否有儿童单独进入阳台,如果有,执行关窗操作,避免意外发生;通过温湿度、光敏及雨滴传感器实时监测天气情况,同时OLED显示下雨情况和实时温湿度,从而实现环境监测;Web 后端显示、存储采集的数据,同时可以通过这些数据对应的策略来自动下发控制指令到执行器,实现窗户的开关和晾衣杆的拉伸,从而实现远程交互功能。
图1 系统总体设计结构图
处理器采用意法半导体公司的STM32L151C8T6D 微控制器,如图2 所示,内置64KB Flash 存储器,价格较为便宜,耗电低,工作的环境温度区间在-40℃~85℃。
图2 STM32L151C8T6D主控模块
由于网关安装于小区配电房,采集节点安装于阳台,两者直线距离相距数十米。如果使用有线,则需要铺设线缆,耗费人力物力,故采用无线方式进行通信。目前常用的无线通信方式较多,如LoRa、NB-IoT 等[2]。在本系统中,通信距离长,信号需要穿过建筑物墙体,而且NB-IoT 会产生相关的通信费用,综合考虑选用LoRa 作为通信方式。
本系统选用利尔达LSD4RF-2F717N30 无线模块,如图3 所示,它是SEMTECH 公司的SX1278 射频芯片,具有传输距离远、速度快、功耗低、体积小的优点[3]。
图3 LSD4RF-2F717N30无线模块
基于以上选用的微控制器、LoRa 无线模块,根据需求,添加相应传感器及电源模块,设计LoRa 采集节点,具体硬件框图如图4 所示。
图4 采集节点硬件结构框图
2.3.1 温湿度传感器模块
温湿度数据的采集选用DHT11 模块,它的湿度测定范围大概在20%~90%之间(精度5.0%);温度测定的范围大概在0℃~50℃(精度2℃)[4],主要用来采集阳台的温度与湿度数据,其典型电路如图5 所示。
图5 DHT11 典型电路
2.3.2 激光传感器模块
由于激光具有传输快、相干性好、直线传播且稳定的物理特性,本系统采用多组激光收/发组来判定儿童是否独自进入阳台。激光收/发组由可调激光头和激光接收管组成,其中,可调激光发射头的工作电压为5V、发射功率为50mW、波长为650nm;通电时,激光接收管被激光照射后,从低电平变为高电平。
通过在阳台两侧安装多组激光发射与接收装置,根据家庭成员身高调节相应高度,高位配合低位检测成人进出情况,低位检测儿童进出情况。当激光收/发组仅低位触发时,表示儿童独自进入阳台,控制步进电机关闭窗户;当激光收/发组仅高位或高低位触发时,表示成人进入或成人陪同儿童进入,不执行任何操作。
2.3.3 雨量传感器模块
雨量传感器模块含LM393 比较器,用于检测室外是否下雨,其电路原理图如图6 所示。当感应电路板上没有水的时候,它不会被触发,模块的数字引脚会输出高电平;当感应电路板上有水时,它会被触发,数字引脚会输出低电平。
图6 雨量传感器原理图
2.3.4 步进电机
本系统每个采集节点均选用5 线4 相永磁式电机28BYJ48,用来驱动阳台窗户的开关和阳台晾衣架的推出与收起。选用ULN2003 驱动电机,原理图如图7 所示。核心板每发送一个脉冲信号给ULN2003 驱动板,28BYJ48 按设定的方向转动一定的度数。实际上,分别通过调整脉冲的频率和个数来控制28BYJ48 齿轮速度、加速度以及位移的角度,从而实现电机的调速。
图7 步进电机原理图
2.3.5 OLED 显示屏
本系统选用0.96 寸OLED 显示屏,具有自发光、清晰度高、体积轻薄、刷新频率快等特点,该显示屏与核心板使用I2C 进行通信。
一般小区设置一个网关节点,安装于小区配电房。基于以上选用的微控制器、LoRa 无线模块,添加WiFi 模块及电源模块构成LoRa 网关节点,具体硬件框图如图8 所示。
图8 网关节点硬件结构框图
其中,WiFi 模块选用 ESP8266 模块,它是一个低成本的无线连接设备,本系统采用的是体积小巧、功能齐全、价格低廉的ESP 系列ESP-01 模块。ESP-01 模块和主控芯片进行串口通信,主控芯片将打包好的Json 格式数据通过串口发送给ESP-01 模块,ESP-01 模块将数据通过MQTT 协议用WiFi 热点发送至服务器。
智能监测系统采集节点和网关节点采用星型组网,数据传输方式采用数据帧模式,为保证监测数据传输过程中的可靠性和准确性,采用CRC 算法对数据进行校验[5]。LoRa 模块通信协议请求命令结构[6]如表1所示,响应命令结构如表2 所示。
表1 LoRa模块通信协议请求命令结构
表2 LoRa模块通信协议响应命令结构
LoRa 采集节点采集传感器数据(是否有儿童单独进入阳台、温湿度数据、当前是否下雨等),在接收到网关节点请求命令后,对数据进行CRC 校验,解析请求命令,如果是读传感器的命令,根据响应命令结构封装数据,并上传给网关节点;如果是控制命令,则控制步进电机,开关窗户或者推拉晾衣杆,具体程序流程图如图9 所示。
网关节点的LoRa 模块接收采集节点发送过来的数据,通过SPI 接口发送给主控模块,主控模块通过串口发送给WiFi 模块,进而发送至服务器。同时,网关节点需要解析服务器发来的Json 数据,向采集节点发送命令,具体程序流程图如图10 所示。
图10 网关节点程序流程图
3.4.1 Web 后端的业务介绍
本系统Web 后端使用原生Java Web 技术与Mybatis 框架。用户在浏览器成功登录系统后,自动跳转到首页,首页会加载当前采集的传感器实时数据,以及来自第三方天气API 提供的实时天气数据、晾晒指数等。在控制页面,可以手动控制执行器,也可以启动并配置策略自动控制执行器,完成控制操作。在传感器数据显示页面,包括实时数据和历史数据,实时数据显示的是每个传感器数据的实时折线图,历史数据显示的是存入数据的记录。Web 后端的业务图如图11 所示。
图11 Web 后端业务图
3.4.2 数据库的搭建
本系统的Web 后端使用MySQL 数据库,在数据库中创建两张表,一张用来存储管理员账户的信息,包括管理员账号的用户名、密码等;另外一张用来存储传感器数据,包括有温度数据、湿度数据、雨滴数据、光照数据、是否仅有儿童进入阳台、发送这些数据的设备id、发送的来源IP、接收到这条数据的时间信息。
选用天气较好的一天,根据成人(175cm)和儿童(110cm)的身高调整采集节点1 的激光传感器。用户登录系统后,后台首页定时刷新当前采集的传感器实时数据,并显示来自第三方天气API 提供的当前实时天气数据、晾晒指数等信息,具体如图12 所示。
图12 后台首页
在执行器页面,选中设备1,可以手动操作设备1 窗户打开、晾衣架打开,也可以利用配置策略启用/停用自动模式,自动打开/关闭设备1 的窗户和晾衣架,具体如图13 所示。
图13 执行器控制页面
在网页端可以查看传感器实时数据,刚开始是否有小孩进入阳台显示0,说明没有儿童单独进入阳台;从0 变成1,说明有儿童单独进入阳台,自动操作执行器,关闭窗户,具体如图14 所示。
图14 传感器实时数据显示折线图
实验表明,本文设计的基于LoRa 技术的智能阳台监测系统,能够实时监测儿童是否单独进入阳台这一危险区域,实现智能防护;
实时监测室外环境,实现环境监测;将采集的数据上传到平台,在Web 后端对所有监测数据进行实时显示、历史查询、数据分析和决策控制,对阳台窗户和晾衣杆实现远程控制,实现远程交互功能,是智能家居的补充,具有一定的推广应用价值。