基于单片机可TCP 远程控制的接近报警系统
2023-05-10吉利学院智能科技学院熊方刘昊非
吉利学院智能科技学院 熊方 刘昊非
所谓接近报警也叫靠近报警,主要用于解决设备与设备或者设备与人需要保持一个安全距离的应用场景,当彼此之间的距离小于安全距离实现报警提醒。接近报警系统应用广泛,比如金融工商、自助银行、ATM 监控人体接近报警,倒车提醒、防触摸提醒、防盗、防偷窥、高压危险区域靠近报警等。
接近报警系统的实现有的采用人体红外传感器,有的采用超声波传感器,大多数接近报警系统测距精度不高、功能单一。本文采用超声波传感器,检测距离比人体红外的精度更高;本文还可实现远程控制,使得系统的应用更加灵活、控制更加便捷。
1 系统方案
该系统实现的基本功能如下:
用手机(串口调试工具)控制并可以输入3 种不同指令:on、off、alert。若用手机输入on 指令,装置触发报警系统(蜂鸣器工作);输入off 指令,装置关闭报警系统(蜂鸣器停止工作);输入alert 指令,超声波工作(检测物体与装置的距离),当物体距离装置20cm 时,触发报警系统,两者之间超过20cm 时,警报关闭。
本文采用的实现方法主要由2 个芯片组成。主芯片——STC89C52RC,编程语言为C 语言;芯片——ESP8266,编程语言为MicroPython。
系统配件包括WiFi 模块(版型:ESP-01);超声波测距模块(HC-SR04);有源蜂鸣器和LCD1602 显示器。
主要系统框图如图1 所示。
图1 系统框图Fig.1 System block diagram
该可控接近系统中使用的软件有Clion、VSCode,插件有PlatformIO,编译器有SDCC。
2 硬件模块介绍
硬件模块主要包括单片机、超声波模块、WiFi 模块、LCD1602。
2.1 单片机STC89C52
STC89C52 是一种低功耗、高性能CMOS8 位微控制器,具有8K 在系统可编程Flash 存储器,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案[1]。具有以下标准功能:8K 字节Flash,512 字节RAM,32 位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810 复位电路,3 个16 位定时器/计数器,1 个6 向量2 级中断结构,全双工串行口。
2.2 超声波模块HC-SR04
HC-SR04 超声波测距模块可提供2cm-400cm 的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路[2]。基本工作原理:(1)采用I/O 口TRIG 触发测距,给至少10us 的高电平信号;(2)模块自动发送8 个40kHz 的方波,自动检测是否有信号返回;(3)有信号返回,通过I/O 口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间×声速(340M/S))/2
2.3 WiFi 模块ESP8266
ESP8266 是一款串口WiFi 模块芯片,专为移动设备,可穿戴电子产品和物联应用设计[3]。ESP8266 WiFi 模块可以通过串口与单片机连接,注意模块电源为3.3V,通过编程给模块进行初始化设置。可以通过AT 指令配置和单片机上的串口进行通信,利用WiFi 进行数据传输。它里面有一个MCU,常用的功能包括:I/O 控制、定时器、中断、PWM、FreeRTOS、串行通信(UART、IIC、SPI)等。因此,ESP8266 可以完成单片机能完成的大部分操作。
2.4 LCD1602 显示器
LCD1602 液晶显示器是广泛使用的一种字符型液晶显示模块[2]。字符型液晶显示模块是一种专门用于显示字母、数字和符号等的点阵式LCD,常用16×1、16×2、20×2 和40×2 等的模块。LCD1602 可以显示16×2 个字符,每一个显示的位置都对应一个地址,通过D0-D7 八个引脚传输数据。
3 软件设计
根据前面所描述的系统功能,单片机程序设计流程图如图2、图3 所示。
图2 单片机程序设计流程图Fig.2 Flow chart of MCU program design
图3 ESP8266 程序设计流程图Fig.3 Flow chart of ESP8266 program design
3.1 单片机程序设计
单片机程序设计包括LCD1602 头文件程序,主函数中有蜂鸣器程序,超声波测距,部分代码如下:
3.1.1 主函数
3.2 ESP8266 程序设计
ESP8266 程序可实现接收手机TCP 指令,并向单片机发送数据,部分代码如下:
4 系统运行结果
通过以上的软硬件设计,经过调试,该系统运行正常。用手机(串口调试工具)发送3 种不同指令:on、off、alert,系统将实现前面所述的相应功能。组装效果以及在alert 指令下的运行情况(显示接近距离,低于20cm蜂鸣器报警)如图4 所示。
图4 系统在alert 指令下的运行情况Fig.4 Operation of the system under the alert command
5 结语
该系统典型工作电压5V,超小静态工作电流<2mA,感应角度≤15 度,探测距离2cm ~400cm,精度可达0.3cm,报警距离可通过程序进行设置。
该系统设计中,尽量做到硬件电路简单稳定、程序设计思路清晰、代码简洁,经过测试,该系统运行温度可靠,具有一定的实用性。
该系统的设计是以STC89C52 开发板为基础进行开发的,故系统体积显得较大,如果只针对该系统进行设计,产品的体积、外观将得到极大的改善。功能上也可以进一步完善,如该系统只实现了远距离的单向控制,还可以实现测量距离的数据上传,让用户在手机上了解系统运行情况。