基于STM32 MCU远程视频监控的系统设计
摘要
关键词
STM32F407ZGT6;DHT11;4G;MQ2;ov2640;监控系统设计
正文
0 引 言
常规的远程摄像头只有单一的摄像头功能,并不能采集温湿度数据,烟雾报警等关乎生命财产安全的功能。本设计是基于STM32 MCU远程视频监控,能够自动检测周围环境动态数据和当前实时的视频数据,将所检测的数据通过4G网络方式传输至远程服务器,进而通过手机远程连接服务器查看监控信息和实时温湿度等功能,一旦检测到的数据超过预先设定的阈值,则会进行触发报警提醒,让用户避免更大的安全隐患和财产损失。4G网络摆脱了传统局域网的空间限制,实现了“随时、随地”访问和控制智能家居安防控制系统。本文对基于STM32 MCU远程视频监控的控制系统进行了设计,具体如下。
1 系统概述
1.1 系统结构
基于STM32 MCU远程视频监控由STM32最小系统模块、4G模块、烟雾报警器模块、温湿度检测模块、远程服务器接收端[1]等构成,具体如图1所示。
图1 基于STM32 MCU远程视频监控的系统结构
1.2 工作原理
使用STM32F407ZGT6作为控制芯片,配合DHT11温湿度,MQ2烟雾等传感器模块检测环境数据,通过4G模块EC20实现将数据上传到远程服务器,再通过手机APP访问远程服务器,用户就可以通过手机端查看监控及相关环境数据[2],工作原理如图2所示。
图2 基于STM32 MCU远程视频监控的工作原理
1.3 公网远程服务器
使用阿里云公网服务器作为远程服务器端[3],云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了采购IT硬件的前期准备,可以像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。众所周知,公网IP是比较难以获取的。但阿里云平台简化了诸多复杂的技术细节和繁琐的申请流程,支持云服务器的功能,其简化的操作流程如图3所示。
图3 阿里云服务器申请使用流程
2 系统设计
2.1 硬件设计
STM32F4系列ARM芯片是由意法半导体(ST)公司推出的内核为Cortex-M4的32位微控制器,其硬件采用LQFP-144封装。该芯片具有集成了新的DSP和FPU指令,168MHz的高速性能使得数字信号控制器应用和快速的产品开发达到了新的水平,还拥有多重AHB总线矩阵和多通道DMA:支持程序执行和数据传输并行处理,数据传输速率非常快。本系统使用的芯片型号为STM32F407ZGT6,该芯片具有提供三个12位ADC、两个DAC、一个低功耗RTC、十二个通用16位定时器,包括两个用于电机控制的PWM定时器、两个通用32位定时器。功能强大。本设计采用的是开发板设计,开发板使用的硬件电路简明原理如图4所示。
图4 硬件电路简明原理
2.2 软件设计
本系统的软件设计关键点在于系统时钟的配置、MQ2模块初始化、DHT11模块初始化、OV2640摄像头模块初始化、4G模块初始化,以及主函数的调用。
OV2640摄像头模块的初始化流程图如图5所示。
图5 OV2640摄像头模块的初始化流程图
4G模块[4]由于是使用EC200T-CN的模块,它内嵌了TCP/IP协议栈,Host直接通过AT命令可以方便的访问internet,Host可以减少对PPP和TCP/IP协议栈的依赖,实现低成本的设计。所以该模块的初始化得使用AT命令来执行。这里仅展示比较主要的AT命令。
发送ATE0关闭回显,发送AT+CSQ检查CSQ, 发送ATI检查模块的版本号,发送AT+CPIN?检查SIM卡是否存在,当得到返回ready,再发送AT+CREG?检查是否注册GSM网络,发送AT+CGREG?检查是否注册GPRS网络,发送AT+COPS?检查注册的是哪个运营商,发送AT+QICSGP=1,1,\042CMNET\042,\042\042,\042\042,0接入APN,无用户名和密码,发送AT+QIDEACT=1在激活GPRS场景之前先关闭GPRS场景,确保连接正确,发送AT+QIACT=1激活移动场景,发送AT+QIACT?获取当前IP地址,最后发送AT+QIOPEN=1,0,\"TCP\",\"8.134.147.20\",10086,0,2设置为透传模式,连接到接收端服务器的IP地址和端口号。至此4G模块初始化完毕。
MQ2模块, DHT11模块的初始化如下:
对DHT11模块的初始化,首先初始化所用的GPIOD_PIN3引脚,设置普通推挽输出,然后设置PD3为输出模式,先拉低20ms再拉高30us使得DHT11复位,复位后设置PD3为输入模式,再设置每100us的检查器件是否离线的判定函数,即可完成对DHT11的初始化。
图6 MQ2模块的初始化流程
所有模块初始化完毕后,再写好对应的操作函数,就可以进入主函数调用阶段。
主函数[5]的调用如图7所示。
图7 主函数的调用流程
2.3 远程服务器的配置
使用阿里云的远程服务器,首先注册阿里云账号,然后申请服务器。在云服务器的安全组策略中,设置如图8所示方可使用接收端软件。
图8 远程服务器的配置
2.4 手机端的配置
准备一台手机,安装向日葵软件。远程服务器端也安装同一个软件,再注册向日葵账号。即可实现远程查看远程服务器所接收来自STM32单片机的信息[6]。
3 实验与分析
实验第一步:先确认远程服务器接收端的软件端口是否正确启用。然后在Keil软件中输入对应的IP地址与端口号,如图9所示。
图9 输入正确的公网IP地址与接收端口号
实验第二步:然后开始使用Keil软件编译,用STLINK下载器烧录程序进单片机。烧录完成后拔掉STLINK,并且打开单片机电源,效果如图10所示。
图10 开机状态
所有准备工作完成后,开展效果检验。首先使用电脑来连接远程服务器,在Windows系统下,WIN+R调用运行框。输入mstsc,连接到前文所申请的远程服务器的公网IP地址,并输入用户名和密码。进入系统后,打开接收端软件UartDisplay,并且启用对应的端口号。然后等待单片机与服务器的连接。连接成功如图11所示。
图11 接收端软件UartDisplay
图11左边为温湿度和烟雾浓度的相关信息,右边则是所传输的视频图像。
最后在手机端和远程服务器端安装好向日葵远程控制软件,使用手机远程查看监控信息。如图12所示。
图12 手机端向日葵
4 结 论
在物联网技术飞快发展与“互联网+”对智能交互需求的背景下,本文进行了一款基于STM32 MCU远程视频监控的硬件部分设计。通过测试证明,本系统的硬件搭建分布合理、运行正常,可以进行系统性的进一步程序开发。[6]由于使用开发板进行制作,会有许多冗余模块,后期实际应用中应当去除部分冗余外围电路和考虑防尘防水等设计。
参考文献:
[1] 陶杰,王欣.基于STM32F407和OV7670的低端视频监控系统[J].单片机与嵌入式系统应用,2014,14(03):60-63.
[2] 缪腾. 基于STM32的无人环境视频监控系统设计[D].山东大学,2021.
[3] 黄志芳,李伟鑫,谢宋汕等.基于4G的实时图传智能探测车[J].电子设计工程,2022,30(12):129-132+137.
[4] 刘维周,王嘉敏.4G模块在广域物联网中的应用[J].无线互联科技,2022,19(10):90-92.
[5] 吴晓红,石丽梅,黄振兴.基于STM32F103C8T6单片机的火灾报警系统的设计与实现[J].现代信息科技,2021,5(01):171-174.
[6] 贾光亮,邓智方,宋雨宸等.基于STM32F407单片机的智能安防系统[J].通讯世界,2017(10):231-232.
基金项目:2023年广东省大学生创新创业训练计划项目(GK2023035)。
作者简介:徐金源(1999—),男,广东台山人,本科,主要研究方向为嵌入式开发。
...