智能私家车库控制系统的设计与实现
摘要:随着人民生活质量的提升,我国家庭正逐步进入“一户一车”的时代。传统的开放式停车场已难以满足人们对车库安全性和智能化的需求。本文以STM32单片机为核心,结合DHT11传感器用于环境温湿度检测,MQ2烟雾传感器用于火灾检测,HC-SR04超声波传感器用于水位监测,esp8266作为WiFi通信模块,通过机智云物联网平台开发的手机APP,实现对车库内温湿度、水位和火灾等情况的实时监测。手机APP还支持远程控制车库门的升降及车库灯的开关。
1 智能车库硬件电路总体设计
本系统采用STM32单片机作为主控制器,采用步进电机控制车库门的升降、LED模拟库灯,分别设计温湿度检测、火灾检测、水位监测等电路。主控制器接收采集到的数据,然后利用WiFi模块与无线网络进行连接,使用手机App实现与服务器之间的通信。智能车库控制系统的硬件原理框图如图1所示。
图1 系统硬件原理框图
1.1 温湿度检测电路
温湿度检测使用DHT11温湿度传感器。该传感器是一款直接输出数字信号的传感器,利用数字采集和温湿度传感技术,完成温度和湿度的复合检测。其输出信号使用单总线数字信号,可直接与单片机的IO口进行串行的数据读取。因DHT11传感器具有低功耗、体积小、响应速度快以及抗干扰能力强等特性,被广泛应用于较苛刻的环境中。系统电路使用单片机的一个PA8口与DHT11传感器的DATA端相连。
1.2 火灾检测电路
火灾检测采用MQ2气体传感器。火灾检测电路由MQ2烟雾传感器和电压比较器构成。当检测气体来临时,MQ2传感器的内部电阻发生变化,并输出与烟雾浓度成比例的模拟电压,经低通滤波器后,再通过电压比较器输出数字量0或1,表示火灾的有或无。
1.3 水位检测电路
采用HC-SR04超声波传感器测量水位。它使用IO触发的方式,自动发射40 kHz方波信号,没有遇到障碍物,即没有信号返回时,IO输出低电平(0);遇到障碍物,即有信号返回时,IO输出高电平(1)。其持续时间就是超声波从发射到接收的时间。已知声速为340 m/s,水位超声波到地平面的距离为L,水平面到超声波探头的距离为X,超声波从发射到接收信号的时间差为T,则水位高度H为:
1.4 WiFi通信电路
WiFi通信电路采用ESP8266模块。该模块可实现与单片机进行串口通信,也可以通过它接入互联网,从而添加物联网设备。ESP8266模块只需将其Tx和Rx引脚连接至单片机的普通IO口,并将该IO口配置为串口的Tx和Rx,ESP8266模块的Tx与串口Rx相连,Rx与串口Tx相连即可。
1.5 其他外设电路 1.5.1 门控系统
使用28BYJ-48型步进电机的顺/逆时针转动模拟库门的开/关,28BYJ-48型步进电机使用ULN2003芯片驱动。驱动的工作原理是将电脉冲转换为角位移。单片机IO口输出脉冲信号,ULN2003接收到脉冲后,将驱动28BYJ-48型步进电机转动一定角度。
1.5.2 照明系统
采用工作电压为直流12 V,功率5 W的LED作为车库照明灯,使用STM32的IO口接三极管放大后接继电器,由继电器控制车库灯的亮灭。
1.5.3 报警系统
采用有源蜂鸣器作为报警系统,使用IO口和三极管驱动,通过置位IO口为高或低(1或0),控制三极管(NPN)的导通与截止,从而控制蜂鸣器报警或不报警。
2 物联网系统的构建 2.1 物联网方案设计 随着物联网技术的迅猛发展,其应用范围不断扩大,在提高工作效率、节省人工成本等方面起到了很大的作用。本系统主要采用的是机智云物联网平台。该平台提供了智能家电、智能家居等产品的物联网解决方案。在本方案中,STM32单片机通过ESP8266 WiFi模块,与GAgent进行数据互传,通过2.4 G网络(路由器或手机热点)接入互联网后,利用机智云平台与手机App实现数据通信,物联网方案如图2所示。
图2 物联网方案示意图
其中,GAgent是可移植到ESP8266 WiFi模组中的,主要实现数据转发的功能,实现设备、机智云和手机App之间的交互。其接入机智云平台的流程分为三大步骤:(1)设备上电;(2)配置入网;(3)绑定设备。
2.2 机智云平台 机智云平台应运物联网而生,是一个致力于物联网产品开发的云服务平台,包括智能硬件和软件。其产品接入流程图如图3所示。机智云物联网平台面向个人和企业开发者,是智能家居产品开发的理想云服务平台。
图3 机智云物联网平台快速接入流程
2.3 手机App的设计
手机App的设计主要使用机智云平台提供的Demo(样板App),Demo可到机智云平台的官网下载。根据上述产品接入流程,经注册、创建数据点及虚拟调试等步骤,即可完成硬件设备与App的绑定。手机App界面如图4所示。
图4 手机app界面
3 下位机系统程序设计 3.1 主控芯片程序设计
在STM32单片机的主程序中,包含了各模块函数的头文件、数据定义类型、协议及函数初始化等。主函数设计为一个死循环,循环的内容是对车库环境(温湿度、灾情等)的循环检测,以及对发出控制命令(开启报警,开/关门等)的循环检测。程序流程图如图5所示。
图5 主函数程序流程图
3.2 温湿度检测模块程序设计
温湿度检测模块程序设计,采用STM32单片机IO口串行数据读取,数据格式为8 bit湿度整数数据+8 bit湿度小数数据+8 bit温度整数数据+8 bit温度小数数据+8 bit校验位。首先对DHT11进行初始化,判断其是否存在,若数据正确即读取数据。程序流程图如图6所示。
3.3 火灾检测模块程序设计
火灾检测模块程序设计,使用STM32单片机内部的12位ADC采集。该模块的采集信号由IO输入到MCU,ADC把模拟量转化成数字量,再将数据转换成烟雾浓度。程序流程图如图7所示。
图6 温湿度检测程序流程图
图7 火宅检测程序流程图
3.4 水位检测模块程序设计
水位检测模块程序设计,利用STM32定时器定时,测量超声波发射到接收所用的时间,从而根据声速计算出所测水位是否超过预警值,若超出预警值则向手机发送水灾报警信号。
4 测试结果
通过测试,本系统实现了车库内部温湿度、烟雾、水位等测试,测试数据可通过WiFi上传至机智云平台,手机App可以查阅机智云平台存储的车库信息,也可以发送指令远程控制模拟车库门的升降。控制系统实物图如图8所示。
图8 控制系统实物图
5 结语 本文设计了一种基于物联网的智能私家车库控制系统。该系统以STM32单片机为核心,结合硬件检测电路、WiFi通信和手机App,实现了通过手机App远程控制车库门的升降,并对外部环境参数(如温湿度、烟雾、水位)进行智能检测和报警。
|