基于S5P6818的在线智能家居监测电路设计
2022-07-09王亚林王清勃查文华
王亚林,王清勃,查文华
东华理工大学机械与电子工程学院,江西,南昌,330013
0 引言
随着国家经济发展和百姓生活水平的提高,人们对家居环境的品质要求越来越高,家中空气湿度、温度和不健康气体等逐渐被重视和关注起来。本文设计一种在线家居环境监测系统,以GEC-S5P6818为控制器,在其外围加上温度、光照等传感器模块,可以采集环境温度、湿度、大气压强和光照强度等信息,并在LCD屏上显示出来,同时也将数据通过MQTT实时上传阿里云服务平台,实现环境数据在线监控和显示,达到了对监控环境的实时监测[1-2]。
1 智能监控系统的主要硬件部分
使用的GEC-S5P6818开发平台有丰富的外围设备,支持以太网、USB接口和MIPI接口。在底板背部留有一个40PIN的LCD接口,通过软排线将RGB相关信号连接到LCD控制板上[3],硬件结构总体框图如图1所示。
图1 硬件结构总体框图
1.1 LCD显示字符部分
利用了分辨率为800*480的LCD显示屏。当显示BGM图片时,把颜色值填入帧缓冲设备中,底层驱动按照从左到右、从上到下的顺序把屏幕每个像素点显示成对应的颜色,在LCD屏上就能显示出bmp图片。当内存映射时,使用mmap函数把一个文件映射到内存,映射成功之后就可以像操作内存一样操作这个文件,进而对文件进行一系列操作。
1.2 GY-39传感器模块
使用的GY-39是一款能实现气压、温湿度、光照强度采集的传感器模块,工作电压3~5V,当MCU收集传感器数据后,通过用户解析统一处理后,在终端显示出计算后的结果。
1.3 火焰传感器部分
使用的火焰传感器连接在开发板的串口上,工作电压3.3~5V;比较器输出信号,波形良好,具有驱动能力,输出电流达15mA以上。火焰传感器可检测波长范围在760~1100nm内的火焰。在测试初期,一直使用打火机作火源,火焰距离80cm左右,火焰越大,测试距离越远。检测角度纵向约为60度,利用传感器对火焰光谱的敏感性,在可调电位器调节下,可适当调节火焰传感器的灵敏度。在检测范围内,当检测到火苗或明显的光照时,AD口采集到数据后会向核心板发送高电位“1”,串口RX收到该数据后,开始调用蜂鸣器函数并驱使蜂鸣器发声,如果火焰不结束,蜂鸣器会一直鸣叫。
2 开发环境及配置设计
在嵌入式开发平台创建好开发环境后进行配置、安装,然后在主机上编辑和调试嵌入式程序,并将文件执行写入目标机中。利用虚拟机系统、物理机系统和ARM开发板文件的共享功能,实现编译程序代码及跨平台代码的信息编辑[4-5]。
设计中利用source insight4.0进行代码书写、管理。其中,Ubuntu的代码编译使用arm-linuxgcc系列工具,在遇见错误和逻辑问题时,为稳定执行过程,做到及时修改程序,可使用gdb进行调试。在PC机上编译完成后,利用rz工具进行烧写,然后经过串口写进S5P6818开发板上。接入网线到开发板中会出现以下情况。
(1)在SecureCRT终端可以打开以下信息:[4147.078000] PHY: stmmac-0:04 - Link is Up - 1000/Full,说明当前以太网口已经被激活可以使用。
(2)以太网口LED灯在闪烁,说明在测试Windows与开发板是不是连通;开发板ping百度时出现:
[root@GEC6818 /]#ping www.baidu.com
PING www.baidu.com: 56 data bytes
64 bytes from www.baidu.com: seq=0 ttl=64 time=1.888 ms
64 bytes from www.baidu.com: seq=1 ttl=64 time=0.648 ms
如果出现跳秒现象的话,说明开发板可与ping通PC机。
4 采集数据及计算过程
4.1 数据采集过程
由于GY-39模块采集到的数据,输出格式固定,每帧数据均含十六进制的8~13个字节,各帧含义如下:
Byte0: 0x5A,帧头标志;
Bytel:0x5A,帧头标志;
Byte2:0x15,本帧数据类型;
Byte3:0x04,数据量;
Byte4:0x00~0xFF,数据前高8位;
Byte5:0x00~0xFF,数据前低8位;
Byte6:0x00~0xFF,数据后高8位;
Byte7:0x00~0xFF,数据后低8位;
Byte8:0x00~0xFF,校验和。
4.2 GY-39模块涉及的数据计算
(1)光照强度计算(当Byte2=0x15时,数据:Byte4~Byte7)。
Lux=(前高8位<<24)| (前低8位<<16)| (后高8位<<8)|后低8位单位lux;
Lux=(0x00<<24)|(0x00<<16) |(0xFE<<8)0x40;
Lux= Lux/100-650.88 (lux);
(2)温度、气压、湿度、海拔,分别计算(当Byte2=0x45时)。
温度:Byte4 Byte5;
T=(高8位<<8)| 低8位;
T= T/100单位C;
气压: Byte6-Byte9;
P= (前高8位<<24)| (前低8位<<16)| (后高8位<<8)| 后低8位;
P= P/100 单位pa;
湿度: Byte10-Byte11;
Hum= (高8位<<8) |低8位;
Hum= Hum/100 百分制;
海拔: Bytel2~Byte13;
H= (高8位<<8)| 低8位 单位m;
火焰传感器采集到的数据为高低电平,通过串口将采集到的数据读出来,高电平为1,低电平为0;将1和0作为字符串传递到应用的函数中即可,随后将导出的串口恢复。实验中,收集的部分数据见表1,系统采集数据与普通仪表采集数据对比如图2所示。
表1 实验采集数据
图2 系统采集数据与普通仪表采集数据对比
5 MQTT协议数据上报
系统是基于Aliyun mqtt的数据上传的代理协议,提供一对多分发消息,发布者可以匹配多个订阅者,当发布者更改时,可以通知所有订阅者,这种模式提供多个基于网络拓扑结构的扩展功能。在物联网平台上自定义Topic类后,设备将消息发送到自定义Topic中,服务端通过 SDK获取设备上报消息,服务端通过调用云端API Pub向设备发布指令,实现智能家居在线监控。来自IOT平台相应设备的数据显示在对象模型的选项卡上,数据验证通过后,它将与设备数据表单中的设备详细信息页面一起显示在IOT控制台平台上对应选项卡,服务器可以通过基本引擎获取响应结果,设备事件属性,数据,设备设置和属性,服务调用命令,预订服务,产品流云。通过定义物模型并设置实时刷新来实时查看采集到的数据,并且可以选择图表和表格的形式,使得数据更加的直观。
5.1 开发MQTT库需要提供命令
Connect:当一个TCP/IP套接字在服务器端和客户端连接建立时需使用的命令。
publish:是由客户端向服务端发送,告诉服务器端自己感兴趣的Topic。
disconnect:断开这个TCP/IP协议。
5.2 数据上报
采集到的一系列数据经过处理后,需要通过设备发送上报到云平台,即可实现智能家居系统的在线查看功能,利用打火机进行实验监测时,电脑监控界面出现异常报警信号,如图3所示。
图3 打火机测试报警信号
6 结语
本文利用嵌入式技术、物联网技术进行了家居环境的实验研究,实时监测出了家居环境的温度、湿度、光照强度等。但所设计系统也有不完美之处,偶尔出现数据的精度不够问题,且由于预算经费的限制,限制使用功能选用更好的模块,后续在功能扩展、精度条件和算法等方面还有深度研究的价值。理想型智能家居传感器终端应具有自适应判断环境、自我诊断和自我修复的能力,可以有效地改善智能家居应用的动态智能协作感知。此外,随着中国三大电信运营商对5G网络和应用的快速发展,依靠最新的5G网络优势,结合智能家居应用的特点,5G手机被用于实现可视对讲等服务。另外,在保证安全的基础上,通过终端模块加载和自动发现协议,使一些设备能通过大数据获取人们的日常活动,对家庭网络的访问将更加自动化,实现即插即用。