【DigiKey好物畅享】 Espressif Systems ESP32-P4-EYE开发实战-厨房报警器

除了图像之外ESP32-P4-EYE还支持网络功能,这里使用ESP32-P4-EYE结合外部传感器来制作一个厨房报警器,解决忘记关火这一现实生活中经常出现的场景。

1.硬件准备

ESP32-P4-EYE在相机侧面预留了部分GPIO接口及电源接口,但是请注意这个电源是5V,电池供电时是电池电压,不要直接给3.3V设备使用。使用的测温传感器是热电堆传感器,支持30-50cm远距离测温,测温范围-30-350℃使用I2C接口进行通讯,连接GPIO13(SCL)和GPIO14(SDA) 。雷达模块直接使用GPIO10,通过GPIO电平进行检测。蜂鸣器使用GPIO6控制。除此之外使用板载的三个按钮实现对时间阈值的增减,以及警报的取消。为了方便接线,这里做了个简易的转接板。ESP32-P4虽然不支持WiFi,但是ESP32-P4-EYE集成了ESP32C6模组可以实现WiFi联网功能。

树莓派ZERO 2W即Raspberry Pi SC1176当作接收端,通过自带的WiFi模组连接网络,使用VNC软件来接收并显示图片。

2.软件方面

ESP32-P4-EYE和Raspberry Pi SC1176均连接WIFI网络,通过MQTT协议发布和订阅特定主题来实现通讯。在ESP32-P4-EYE中操作ESP32C6模组联网只需添加WIFI_REMOTE组件并在menuconfig中设置好模组的引脚,之后就可以按照与ESP32S3等带WIFI模组一样的模式来操作WIFI联网了。

将ESP32-P4-EYE放置在现场进行检测,满足条件则向指定主题截取并发送jpg图片并发出蜂鸣器声音报警。Raspberry Pi SC1176通过python程序连接MQTT服务器,循环检测订阅的主题是否有消息,有消息则接收并将jpg数据流转为图片并显示,当然这里也可以改为手机等接收端,实现远程查看,尤其适合家里有老人的情况。触发报警后蜂鸣器会一直鸣响直至本地按键被按或者远程发布订阅消息(以免误报)后取消。

为了直观显示,这里保留了实时画面显示,并将测量到的温度、是否有人以及等待无人时间间隔等信息直接显示在了屏幕上。因MQTT只适合轻量数据,这里将警报时发送的图片分辨率改为640*480。

编译时出现了LCD屏设置SPI速率过高导致系统崩溃的问题,需要按照ESP32-P4-EYE出厂Demo中的0004-fix-spi-default-clock-source补丁说明打补丁解决。

功能框图及软件流程

3.实际测试

这里将时间设置为默认的1分钟,将相机附带传感器放置于灶台附近并将相机及温度传感器对准火焰区域,而雷达模块则对准人员活动区域。实测发现1分钟内无人活动则ESP32-P4-EYE本地发出报警并通过网络上传照片至Raspberry Pi SC1176,Raspberry Pi SC1176接收并显示图片,可以通过本地按键及远程发布特定消息取消报警。

4.总结

本项目利用 ESP32-P4-EYE 搭配热电堆测温传感器与雷达模块,实现厨房燃气灶无人看管自动报警。虽然ESP32-P4不支持无线功能,但其WIFI_REMOTE功能使用起来与芯片自带无线功能几乎无差别。其在物联网场景中具有融合图像采集、边缘感知与无线通信的综合应用能力。