吉利學院智能科技學院 熊方 劉昊非
所謂接近報警也叫靠近報警,主要用于解決設備與設備或者設備與人需要保持一個安全距離的應用場景,當彼此之間的距離小于安全距離實現報警提醒。接近報警系統應用廣泛,比如金融工商、自助銀行、ATM 監控人體接近報警,倒車提醒、防觸摸提醒、防盜、防偷窺、高壓危險區域靠近報警等。
接近報警系統的實現有的采用人體紅外傳感器,有的采用超聲波傳感器,大多數接近報警系統測距精度不高、功能單一。本文采用超聲波傳感器,檢測距離比人體紅外的精度更高;本文還可實現遠程控制,使得系統的應用更加靈活、控制更加便捷。
該系統實現的基本功能如下:
用手機(串口調試工具)控制并可以輸入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。
硬件模塊主要包括單片機、超聲波模塊、WiFi 模塊、LCD1602。
STC89C52 是一種低功耗、高性能CMOS8 位微控制器,具有8K 在系統可編程Flash 存儲器,擁有靈巧的8 位CPU 和在系統可編程Flash,使得STC89C52 為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案[1]。具有以下標準功能:8K 字節Flash,512 字節RAM,32 位I/O口線,看門狗定時器,內置4KBEEPROM,MAX810 復位電路,3 個16 位定時器/計數器,1 個6 向量2 級中斷結構,全雙工串行口。
HC-SR04 超聲波測距模塊可提供2cm-400cm 的非接觸式距離感測功能,測距精度可達高到3mm;模塊包括超聲波發射器、接收器與控制電路[2]?;竟ぷ髟恚海?)采用I/O 口TRIG 觸發測距,給至少10us 的高電平信號;(2)模塊自動發送8 個40kHz 的方波,自動檢測是否有信號返回;(3)有信號返回,通過I/O 口ECHO輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。
測試距離=(高電平時間×聲速(340M/S))/2
ESP8266 是一款串口WiFi 模塊芯片,專為移動設備,可穿戴電子產品和物聯應用設計[3]。ESP8266 WiFi 模塊可以通過串口與單片機連接,注意模塊電源為3.3V,通過編程給模塊進行初始化設置。可以通過AT 指令配置和單片機上的串口進行通信,利用WiFi 進行數據傳輸。它里面有一個MCU,常用的功能包括:I/O 控制、定時器、中斷、PWM、FreeRTOS、串行通信(UART、IIC、SPI)等。因此,ESP8266 可以完成單片機能完成的大部分操作。
LCD1602 液晶顯示器是廣泛使用的一種字符型液晶顯示模塊[2]。字符型液晶顯示模塊是一種專門用于顯示字母、數字和符號等的點陣式LCD,常用16×1、16×2、20×2 和40×2 等的模塊。LCD1602 可以顯示16×2 個字符,每一個顯示的位置都對應一個地址,通過D0-D7 八個引腳傳輸數據。
根據前面所描述的系統功能,單片機程序設計流程圖如圖2、圖3 所示。

圖2 單片機程序設計流程圖Fig.2 Flow chart of MCU program design

圖3 ESP8266 程序設計流程圖Fig.3 Flow chart of ESP8266 program design
單片機程序設計包括LCD1602 頭文件程序,主函數中有蜂鳴器程序,超聲波測距,部分代碼如下:
3.1.1 主函數



ESP8266 程序可實現接收手機TCP 指令,并向單片機發送數據,部分代碼如下:


通過以上的軟硬件設計,經過調試,該系統運行正常。用手機(串口調試工具)發送3 種不同指令:on、off、alert,系統將實現前面所述的相應功能。組裝效果以及在alert 指令下的運行情況(顯示接近距離,低于20cm蜂鳴器報警)如圖4 所示。

圖4 系統在alert 指令下的運行情況Fig.4 Operation of the system under the alert command
該系統典型工作電壓5V,超小靜態工作電流<2mA,感應角度≤15 度,探測距離2cm ~400cm,精度可達0.3cm,報警距離可通過程序進行設置。
該系統設計中,盡量做到硬件電路簡單穩定、程序設計思路清晰、代碼簡潔,經過測試,該系統運行溫度可靠,具有一定的實用性。
該系統的設計是以STC89C52 開發板為基礎進行開發的,故系統體積顯得較大,如果只針對該系統進行設計,產品的體積、外觀將得到極大的改善。功能上也可以進一步完善,如該系統只實現了遠距離的單向控制,還可以實現測量距離的數據上傳,讓用戶在手機上了解系統運行情況。