基于NB-IoT 的家庭环境监控系统设计
2023-11-19周洁徐金鸣孙立辉
周洁,徐金鸣,孙立辉
(吉林化工学院 信息与控制工程学院,吉林吉林,132000)
0 引言
随着我国信息技术的高速发展,人们对于家庭居住环境的安全性和舒适度有了新要求。由于家庭成员不能时时居住在房屋内,去改善家庭环境。因此当房屋人体最佳居住环境参数发生变化时,很容易滋生健康隐患[1~2]。许多学者对家庭远程监控系统做了大量研究,蒋志伟等人[3]设计一种以ARM 为核心的智能家居系统,运用QT 技术设计智能网关的UI 界面实现对全屋控制。程琪戬等人[4]提出了采用Zigbee 技术,数据通过网关发到互联网实现物联网智能家居安防。邓楷煊等人[5]提出了用STM32 作为主控制器,通过ESP8266 发送数据到云平台。何朋高等人[6]提出了一种基于ZigBee 的智能家居控制系统,采用ZigBee 无线通信技术与单片机技术实现“一对多”模式下的智能控制。杜忠波等人[7]设计一种基于ZigBee 技术和LabVIEW 的分布式家庭智能化监控系统,使用无线数据网络对家居环境中的各项信息进行监控。李雪峰等人[8]设计了以STM32 单片机为主控芯片,实现对家居的远程及智能语音控制。马晗旭等人[9]设计了一种基于家庭环境安全远程监控,采用STM32F103 单片机为控制核心,监测信息通过GSM 通讯模块发送至手机端。孙宇舸等人[10]设计一种采用Arduino Uno 开发板为主控制器,采用ESP8266 WiFi 模块搭建一个具有远程控制的智能家居控制系统。大多数学者在上位机与下位机之间使用蓝牙或者WiFi 等技术,而这些技术都存在功耗高、信号不稳定等问题。因此,本设计采用NB-IOT 技术,设计一款基于NB-IoT 的家庭环境安全监控系统,同时结合Zigbee 无线传感技术和OneNET 云平台接入技术,实现了在云平台上实时监控各个传感器数据,为家庭安全防护和家庭成员居住舒适度和安全性的提升提供了参考。
1 系统总体设计
家庭环境安全监控系统包括监控系统的下位机和查看数据信息的云平台的上位机。其中,下位机部分中Zigbee协调器作为主要的控制单元,传感器作为数据采集单元连接在Zigbee 终端上,传感器将采集到的数据通过Zigbee 网络传输到Zigbee协调器上,由Zigbee协调器接收处理数据。数据通信单元由NB-IOT 模块和Zigbee 协调器组成。上位机部分为云平台管理系统,主要包括数据管理、设备管理等。系统总体结构框图如图1 所示。通过对家庭环境的湿度、环境温度、当前光照强度和烟雾传感器浓度的采集,并结合温度过高开窗、环境光照强度过高关闭窗帘、烟雾传感器浓度过高打开窗户等相关科学的算法,控制窗帘和窗户适时地打开或关闭,实现对家庭环境居住舒适度和安全性的精准控制。数据的传输采用电信CoAP/NB-IoT 模块对数据进行透传,NB-IOT 与OneNET 云平台之间使用LWM2M 协议进行传输,隔两秒钟CC2530 将采集的所有信息传输到OneNET云平台,以组态的方式展示给管理员。
图1 系统总体结构框图
2 硬件设计
■2.1 Zigbee 模块的硬件设计
Zigbee 模块主要是将串口接收到的数据,通过Zigbee协议传输到对应的Zigbee 模块,对应的Zigbee 模块接收到信息后,将接收的信息通过串口输出。本设计的模块是基于TI CC2530 芯片研发的一款工作在2.4GHz 频段的Zigbee 无线模块。本设计一共用了两个Zigbee 终端节点,下面简称为终端1 和终端2。CC2530 终端的最小系统接线图如图2 所示。
2.1.1 采集模块设计
数据采集单元是由温湿度传感器、光照传感器和烟雾传感器组成。温湿度传感器、烟雾传感器连接在终端1 上,光照传感器连接在终端2上,他们将采集到的信息传输给连接的Zigbee 节点,再由节点向外输出。
温湿度传感器选用的是DHT11 数字温湿度传感器,湿度的精准度在±5%RH,温度的精准度在±2℃,可测量的湿度范围为5%~95%RH,温度范围为-20 ℃~+60 ℃。DHT11 具有超长的信号传输距离和超低功耗,符合本设计家庭环境温湿度测量的要求。温度传感器在Zigbee 终端1的接线图如图3 所示。
图3 温度传感器接线图
光照传感器选用的是数字型光强度传感器BH1750,该传感器可检测的光强度范围是0~65535 LX,利用它的高分辨率可以探测较大范围的光强度变化,可满足设计需要。BH1750 光照传感器在Zigbee 终端2 的接线图如图4 所示。
图4 BH1750 光照传感器接线图
烟雾传感器选用的是对天然气和烟雾有较好灵敏度的MQ-2,该传感器可检测烟雾和天然气的浓度范围是100~10000ppm,输出0~5V 的测量电压,气体浓度越高,电压越高,模拟量及TTL 电平双路信号输出,TTL 输出有效信号为低电平,当输出低电平时信号灯亮,可直接接单片机,可满足设计需要。烟雾传感器在Zigbee 终端1 的接线图如图5 所示。
图5 烟雾传感器器接线图
2.1.2 控制模块设计
控制模块单元是由8 引脚JQC-3FF-S-Z 继电器组成,当传感器接收到的数据超过正常数值,Zigbee 协调器就会调动继电器对其进行调整。本设计使用两个继电器,分别用于控制窗户和窗帘,一个继电器跟温湿度传感器和烟雾传感器接在Zigbee 终端1 用于控制窗户开关、一个继电器和光照传感器接在Zigbee 终端2 用于控制窗帘开关。
终端1 继电器在Zigbee 终端1 的原理图如图6 所示。
图6 终端1 继电器原理图
■2.2 家庭网关的硬件设计
本设计融合网关包括Zigbee 模块、BC26 模块和OneNET云平台。融合网关实现Zigbee 模块与BC26 模块的通信和BC26 与OneNET 云平台之间的通信。融合网关中Zigbee 协调器将从Zigbee终端接收到的数据通过串口传输给BC26 模块,BC26模块通过NB-IOT 网关将接收到信息传输到OneNET云平台。
家庭融合网关实物图如图7 所示。家庭网关的LED1 是Zigbee 终 端1 的通讯指示灯,LED2 是与Zigbee 终端2 的通讯指示灯。通讯指示灯灭表示Zigbee 终端与Zigbee 协调器通讯中断或者通讯不成功。
图7 家庭融合网关实物图
3 软件设计
■3.1 Zigbee 无线网络通信
本设计使用的是TI 推出的Zigbee 2007 协议栈也称之 为Z-stack。Z-stack 协 议栈中有事件驱动型操作系统抽象层OSAL,OSAL 是基于事件驱动的轮询式操作系统,当有事件的时候,创建的任务才会被触发,没有事件的时候,创建的任务不会被触发。应用层是一个任务,他有系统分配的唯一编号叫任务ID,每一个任务都有对应的事件处理,每一个任务都有自己的任务事件处理函数。任务事件处理函数有一个任务事件变量,需要处理的事件有一个事件号,当任务事件变量与事件号相与为1 时,这个事件将会被处理,当任务事件变量与事件号相与为0 时,程序会认为当前没有需要处理的事件。轮询机制就是不断地判断程序里面有没有相与不为0 的事件,调用对应任务ID 下的任务事件处理函数处理任务事件变量和事件号与为1 的事件。如图8 所示,OSAL 事件驱动过程。
图8 OSAL 事件驱动过程
■3.2 Zigbee 协调器与BC26 通信
本设计中的网关节点也是协调器节点,系统软件不仅要包含协调器的基本工作还有两个异构网络之间的通信,CC2530 与BC26 模块是串口连接,Zigbee 协调器与终端之间的通信是Zigbee 协议由Z-Stack 协议栈处理,NB-IOT与云平台之间的通信是NB-IOT 协议由BC26 模块处理,两个异构网络的数据交换主要为应用层数据的交换。
■3.3 BC26 与OneNET 云平台通信
两个平台的通信过程,首先对BC26 进行初始化,采用AT 握手模块,判断卡是否存在,接着判断注册网络状态,当设备正常收发数据才可以正常处理。
然后初始化MQTT,连接上云平台,为发数据做准备。发送数据时,要获取JSON 数据格式进行数据发送,一定要严格按照OneNET 平台的要求来进行数据组包,不能随意自己发数据,JSON 数据包的长度为n 个字节,JSON 格式的第一个字节是数据点类型值,属于JSON 类型1,第一个字节值为1。第二个字节是后面JSON 字符串的长度高位,JSON 数据整体长度不能超过128 个字节,一次性发送128 个字节以上的数据,ZigBee 网络会崩溃,出现异常。如果数据长度过长,要进行分包发送,第二个字节的值为0x00。第三个字节为低位,值为0x41。第4~n 个字节为发送的数据内容,如果第一个发送温度值格式是:
datastreams 内可以同时传输多个数据流,格式是:
其中,""at":"时间戳""可以选择省略。本设计传输了温度值、湿度值、烟雾值、光照值和一个当这四项数据出现异常时,警告异常的警告值。因为一个JSON 包放不下,使用了分包发送。
4 云平台数据可视化
OneNET 云平台提供3 种版本的数据可视化应用,本设计使用的是平台的VIEW3.0。VIEW3.0 支持2D/3D 场景搭建、OneNET 内置数据源接入,搭建场景便利和简单。本设计搭建的管理系统包含传感器实时的采集数据显示、历史采集数据显示和传感器采集到的数据异常时,显示“1”的异常情况通知显示。本设计场景的实时数据是每7 秒刷新一次,采用过滤器过滤组件数据,如图9 所示,家庭环境监控系统管理平台数据可视化显示。
图9 家庭环境监控系统管理平台数据可视化显示
5 结束语
传感器实时采集数据信息,传递给Zigbee 终端,经过Zigbee 无线网络的运载,到达BC26 模块,再送到上位机显示,系统可以通过温湿度、光照、烟雾数值的异常,选择打开窗户或者拉窗帘,保持家庭恒温恒湿的环境,还可以监控家庭是否出现异常的温度数据或者烟雾值,保证了房屋的安全性。实践表明,该系统运行稳定,实时反馈效果理想,满足家庭环境监测系统的要求,并具有一定的市场前景。