基于云服务计算的远程家居监控系统
2022-04-25陈南忠曾凯健欧阳钜添刘境佳黄灿恒毋茂盛
陈南忠,曾凯健,欧阳钜添,刘境佳,黄灿恒,毋茂盛
(肇庆学院 计算机学院,广东 肇庆 526061)
0 引 言
随着计算机技术和通信技术的快速发展,手机更新换代速度日益加快,因此废旧手机的数量不断增长,造成了资源浪费。随着手机功能的不断扩展,从最初的通话功能,逐渐扩展了照相、音乐播放、上网以及支付等功能,为人们的生活带来了极大便利。基于手机的各种应用系统开发成为研究的热点。本文设计了基于云服务计算的远程家居监控系统,利用废旧手机采集图像,节省购置摄像头的成本,并借助手机测量房间温度和人体温度,实现开关灯、门锁控制等功能,同时还可以用手机进行实时远程监控和报警。
1 系统结构与功能
1.1 系统结构
系统主要由手机控制端APP、腾讯云服务器、图像采集端APP以及基于STM32的控制电路板组成。手机控制端APP和图像采集端APP均基于安卓系统开发;服务器包括流媒体服务器和MQTT服务器;STM32控制电路板包括单片机 STM32F103C8T6、温湿度采集模块、灯泡、电子锁以及控制驱动电路等。系统结构如图1所示。
图1 系统结构
1.2 系统功能
1.2.1 控制与报警
控制端手机APP通过MQTT协议向云服务器发送指令(如控制打开电子锁),云服务器接收指令后转发至STM32控制电路板,控制电路板接收到指令后执行对应的操作,从而实现对家居的智能化控制。控制端手机APP接收来自STM32控制板采集的温、湿度数据,并在手机屏幕上实时显示。如果监测到异常温度,控制端手机报警。
1.2.2 远程监视功能
为降低成本,系统利用废旧手机进行图像采集与传送。安装在废旧手机上的APP开启推流功能,出现摄像头预览页面,APP将拍摄的画面实时传输到云服务器。控制端手机APP开启拉流功能后,接收来自废旧手机APP传输的实时图像,并实时显示。
2 系统硬件设计
本系统的硬件包括废旧手机与STM32控制电路板。前者主要用于采集图像信息,后者主要用于控制灯、门锁的开闭,以及采集温度等信息。STM32控制电路板上电后会通过WiFi自动连接路由器,并不断进行室温采集。它通过MQTT协议和云服务器通信,接收来自云服务器的指令,并根据接收的指令控制其所连接的模块。同时,也可通过MQTT将模块集采的温度、湿度等数据发送到云服务器,再经由服务器发送到控制端APP。STM32控制电路板主要由ARM单片机STM32F103C8T6、测温模块、门锁、灯光控制模块以及WiFi通信模块等组成,硬件结构如图2所示。
图2 系统硬件结构
2.1 测温模块设计
测温模块的功能:完成人体温度和环境温湿度的测量,上传至服务器,并在OLED屏上显示。该模块硬件主要由STM32F103C8T6、人体红外传感器、温湿度传感器、报警电路、ESP8266 WiFi模块、OLED显示器等组成。测温模块硬件电路板如图3所示。
图3 温度测量模块电路板
2.1.1 人体温度采集电路
人体温度采集电路选用红外测温传感器GY906,其具有非接触、体积小、精度高、成本低等优点。该传感器通过IC接口和单片机进行数据传输,简化了硬件接口电路设计。当单片机STM32收到人体温度检测指令时,该电路将进行一次人体温度检测,并将检测结果送到OLED显示,同时上传至服务器。
2.1.2 环境温湿度采集电路
环境温湿度采集电路使用DHT11温湿度传感器,通过单总线接口与单片机相连。系统上电后,单片机每秒对周围环境的温、湿度进行一次测量,并将结果显示到OLED。同时,通过WiFi和MQTT协议将数据上传至服务器。
2.1.3 报警电路
当周围环境温湿度以及人体温度超过设定范围时,会向单片机申请中断,在单片机执行中断服务程序时通过蜂鸣器报警,同时通过WiFi向控制端手机发送报警信号。可通过手机和电路板按键手动关闭报警器,或者当数值恢复到设定范围内时自动关闭。
2.2 灯、锁模块开发设计
灯、锁控制模块主要由驱动电路、继电器以及灯泡和电插锁组成。控制电路板STM32通过其GPIO口发送信号给驱动电路,驱动电路将3.3 V信号分别转变成5 V和12 V,进行功率放大后驱动继电器。其中,灯泡由5 V继电器控制,电插锁由12 V继电器控制。电插锁选用YGS-600-S5,其由专用电源供电。通过读其GPIO口线,STM32可以掌握电插锁的状态,利用WiFi模块与服务器通信,STM32控制电路板收到开、关锁或灯的指令时,就执行对应操作,在控制端APP显示操作结果。
3 系统软件实现
3.1 图像采集APP
图像采集APP安装在废旧手机上,首先设置使用的摄像头,点击摄像头图标即可进行视频推流,视频数据会通过WiFi发送到Nginx+RTMP服务器,拉流程序再实时接收视频数据。程序在安卓平台上使用JNI方式开发,通过调用手机摄像头的API设置分辨率、帧率等参数,然后进行视频预览,使用FFmpeg对获取的视频数据进行h264格式编码后,再利用RTMP协议将编码的视频数据发送至服务器。推流部分核心代码如下:
采集图像画面如图4所示。
图4 废旧手机采集图像
3.2 控制端APP
控制端APP具有如下功能:
(1)在控制端手机显示图像信息;
(2)接收来自STM32开发板上的人体温度和环境温湿度数据,同时能够向云服务器发送开、关门锁的指令。
3.2.1 视频拉流功能实现
视频拉流通过RTMP协议实时获取服务器的视频码流,获取流数据后,通过FFmpeg对视频数据进行解码,最后在APP界面播放视频。显示图像界面如图5所示。
图5 控制手机显示图像
获取视频流部分代码如下:
3.2.2 灯锁控制以及信息显示程序设计
通过MQTT协议连接云服务器,获取人体温度和环境温湿度数据并显示在APP主界面,如果温度超过设定阈值,将触发蜂鸣器提醒。
点击控制灯和门锁按钮时,通过MQTT代理发送一条JSON格式的消息到服务器,然后服务器将收到的消息转发给STM32控制电路板,对灯和门锁进行控制,并更新APP上灯和门锁的状态显示。运行界面如图6所示。
图6 控制端APP运行界面
4 结 语
本文设计了用废旧手机远程控制家居的监控系统,利用废旧手机采集图像,降低了系统成本;通过温湿度传感器测量环境和人体温度与湿度,并在手机上显示,方便用户实时了解房间温度与湿度;通过红外测温模块测量体温,为日常生活提供便利,特别在疫情期间,该功能意义重大;利用手机开、关灯和门锁,实现了远程接收快递或外卖功能。该项研究扩展了手机的功能,具有很好的应用价值。