尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

STM32智能宠物投喂系统设计

发布时间:2026/9/5 5:52:07

资讯中心
01
ARTICLE

STM32智能宠物投喂系统设计

STM32智能宠物投喂系统设计
喂食喂水自动补给ESP32-CAM远程视频LU-ASR01语音控制出差一周也不怕毛孩子挨饿一、系统功能拆解二、器件选型每个模块都对比过三、电路设计接线表 关键要点四、软件设计4.1 主程序框架4.2 DHT11 读取单总线时序4.3 SR-01 水位ADC 采样 均值换算4.4 TCRT5000 食物检测低电平 防抖确认4.5 ESP32-CAM 视频推流4.6 LU-ASR01 语音指令4.7 ESP8266 联网与透传五、整机调试按功能逐项验证六、常见坑汇总七、可扩展方向出差三五天最放心不下的就是家里的猫狗饭没人添、水没人换、想看一眼都看不着。这篇基于 STM32 的智能宠物投喂系统就是冲着这些痛点去的DHT11 监测温湿度、SR-01 电阻式水位传感器盯水量、TCRT5000 红外检测食盆余粮、缺水缺粮自动报警补给自动/手动双模式配ESP32-CAM 摄像头远程看宠物实时活动、LU-ASR01 语音识别动口不动手、ESP8266 联网手机 APP 远程操控。选型对比、电路接线、程序流程、整机调试一次讲透。一、系统功能拆解一句话总结多参数采集温湿度/水量/食物量→ 阈值判断自动补给/环境调节 → 本地显示 视频 语音 APP 四通道交互。功能实现方式对应硬件温湿度监测数字温湿度传感器阈值联动加热/除湿DHT11水量检测电阻式水位传感器模拟量采样SR-01 ADC自动补水水量低于阈值 → 报警并补给继电器 水泵食物检测红外反射检测食盆余粮缺粮自动投喂TCRT5000环境调节温度低自动加热、湿度高自动除湿继电器 加热/除湿模块模式切换自动模式阈值闭环 / 手动模式直接控制独立按键语音控制语音指令操作投喂、加水等功能LU-ASR01远程视频实时视频流上传 APP 查看宠物活动ESP32-CAMOV2640远程监控数据上传 APP 切换模式/远程操控ESP8266-01S数据显示温湿度、水量、食物状态实时刷新OLED12864SSD1306这套系统的差异化看点是视频 语音双通道普通投喂器只管喂这台还让你远程看和现场喊——ESP32-CAM 独立跑视频流不占主控资源LU-ASR01 离线语音识别不依赖网络两个都是十几块钱的模块成本压得很低。二、器件选型每个模块都对比过器件选型结果淘汰方案核心理由主控STM32F103C8T6PIC32MX795F512L72MHz 够用、生态成熟、成本减半温湿度DHT11DHT22±2°C/±5%RH 对环境调节足够便宜一半水位SR-01 电阻式MS-5803-01BA 压力式结构简单安装方便宠物水盆场景够用摄像ESP32-CAMOV2640 2MPOV56405MP自带 WiFiTCP 推流主控零负担语音LU-ASR01XY-V21嘈杂环境识别更稳、32MB 闪存词条多食物检测TCRT5000QTR-8A 八路阵列单点检测食盆余粮一个够用显示OLED12864LCD2004自发光无需背光、IIC 只占两根线无线ESP8266-01SLoRa SX1278直连 WiFi 入互联网LoRa 到不了手机 APP几个关键选型理由展开讲ESP32-CAM vs OV5640OV5640 分辨率高一档但它是裸摄像头得主控配 DCMI 接口接收、再想办法压缩传输STM32F1 干这个很吃力ESP32-CAM 是摄像头CPUWiFi 一体的独立小系统自己完成采集、JPEG 压缩、TCP 推流STM32 只需要通过 APP 逻辑控制它开/关——视频这种重活必须让专职模块干。SR-01 vs 压力式水位MS-5803 精度高还能测深水但宠物水盆就几厘米深压力式的高精度完全是浪费SR-01 十几块钱插在水盆里通过电极电阻变化反映水位配 ADC 多次均值采样精度足够判断该补水了。LU-ASR01 vs XY-V21语音交互的生死线是噪声鲁棒性——宠物在家里叫、电视开着、风扇转着识别率掉到 70% 以下就形同虚设LU-ASR01 的降噪表现和可扩展词条量都是为这种场景准备的。DHT11 vs DHT22环境调节的联动阈值比如低于 15°C 开加热对精度要求不高±2°C 完全够用DHT22 的 0.5°C 精度在这个场景买不回差价。整套物料成本约90~120 元比市售带摄像头的智能投喂器300 元起便宜一大截而且功能可以自己改。三、电路设计接线表 关键要点主控最小系统3.3V 供电HSE 8MHz 晶振 RTC 32.768kHz复位电路按键 RC 组合拉低 NRST。模块接口方式连接引脚参考备注DHT11单总线DATA → 数字 IO5V 供电DATA 需 10kΩ 上拉SR-01模拟输出S → ADC 输入通道5V 供电多次采样取均值TCRT5000数字输出OUT → GPIO 上拉输入5V 供电低电平 检测到食物ESP32-CAM独立 WiFi 系统无需接主控可选 IO 控制开关5V 供电峰值电流 250mALU-ASR01UARTTXD → 主控 RX115200bps中断接收ESP8266-01SUART2PA2(TX)/PA3(RX)RST→PA43.3VCH_PD 拉高OLED12864IICPB6(SCL)/PB7(SDA)3.3V继电器组GPIO 输出水泵/出粮/加热/除湿各一路三极管驱动接线五个坑ESP32-CAM 供电必须 5V 且要粗WiFi 发射 摄像头工作瞬间峰值电流 250mA 以上从 STM32 板载 3.3V 借电必死机黑屏独立 5V 供电加 470µF 大电容是标配。双无线模块 WiFi 配置要一致ESP32-CAM 和 ESP8266 各自连 WiFiSSID/密码要写对同一套且都要在路由器 2.4G 频段——5G-only 的路由器两个模块全都连不上。SR-01 电极长期泡水会电解腐蚀电阻式水位传感器的探针在水里持续通电会产生电解水位值越漂越远一是选镀金探针版本二是软件上周期性采样不要高频连续通电三是每隔几周检查清洗一次。TCRT5000 检测有没有粮的安装角度装在出粮口下方检测落粮或装在食盆边缘检测余粮高度两种用途安装位置完全不同先想清楚检测逻辑再打孔装反了缺粮报警就变成投喂成功报警。继电器组与 ADC 信号线分区走线水泵/加热继电器吸合的感性干扰耦合进 SR-01 的模拟信号线水位读数会瞬间乱跳信号线远离继电器输出侧必要时加 RC 滤波。四、软件设计4.1 主程序框架int main(void) { SystemInit(); delay_init(); KEY_Init(); // 模式切换 阈值设定 手动控制 DHT11_Init(); // 温湿度 ADC1_Init(); // SR-01 水位采样 OLED_Init(); Relay_Init(); // 水泵/出粮/加热/除湿 USART1_Init(115200); // LU-ASR01 语音 USART2_Init(115200); // ESP8266 ESP8266_Connect(); // STA 连 WiFi → 透传 → TCP 服务器 while (1) { DHT11_Read(temp, humi); water Get_Water_Level(); // ADC 均值 → 水位换算 food Food_Scan(); // TCRT5000 低电平有粮 if (mode AUTO) { if (water water_th) { Alarm(ON); Relay_Pump(ON); } // 缺水报警补水 else { Relay_Pump(OFF); } if (!food) { Alarm(ON); Relay_Feed(ON); } // 食盆空→投喂 else { Relay_Feed(OFF); } if (temp temp_th) Relay_Heat(ON); // 温度低→加热 if (humi humi_th) Relay_Dehum(ON); // 湿度高→除湿 } key_scan(); // 手动模式按键直控投喂/补水/加热/除湿 voice_cmd_handle(); // 语音指令解析串口中断收到的命令字 OLED_Show(temp, humi, water, food, mode); WiFi_Report(temp, humi, water, food); Handle_APP_Cmd(); // APP 下发切模式 / 远程投喂 / 开关摄像头 } }4.2 DHT11 读取单总线时序u8 DHT11_Read(u8 *temp, u8 *humi) { DHT11_Rst(); // 主机拉低 20ms → 拉高 30us if (DHT11_Check() ! 0) // 等 DQ 低 80us → 高 80us 响应 return 1; // 传感器不在线 /* 连续读 5 字节湿度整数/小数 温度整数/小数 校验 */ buf[0] DHT11_Read_Byte(); ... buf[4] DHT11_Read_Byte(); if (buf[0]buf[1]buf[2]buf[3] buf[4]) // 校验和 { *humi buf[0]; *temp buf[2]; return 0; } return 1; // 校验失败 }每个字节的读取是50us 低电平起始 26~70us 高电平表数据位高电平持续时间决定 0 还是 1——时序全部用 us 级延时函数实现期间不能被中断打断把 DHT11 读取放在主循环里关中断做或者干脆用定时器捕获。4.3 SR-01 水位ADC 采样 均值换算u16 Get_Water_Level(void) { u32 sum 0; u8 i; for (i 0; i 10; i) { ADC_SoftwareStartConvCmd(ADC1, ENABLE); while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)); // 等转换完成 sum ADC_GetConversionValue(ADC1); // 12bit: 0~4095 } return Water_Convert(sum / 10); // 按传感器量程标定换算实际水位 }采样时间配 239.5 周期10 次均值后水位读数才稳定。换算系数要实测标定空盆记一次 ADC 值满盆记一次两点连线就是标定曲线——直接抄别人的系数水量能差出一半。4.4 TCRT5000 食物检测低电平 防抖确认u8 Food_Scan(void) { if (GPIO_ReadInputDataBit(GPIO_FOOD, PIN_FOOD) Bit_RESET) // 低有食物 { delay_ms(10); // 消抖 if (GPIO_ReadInputDataBit(GPIO_FOOD, PIN_FOOD) Bit_RESET) return 1; // 二次确认仍有粮 } return 0; // 无粮 → 触发投喂 }引脚配上拉输入低电平有效10ms 防抖后二次确认——光电开关的输出在粮粒滚动的瞬间会抖动单次判断会误触发投喂。4.5 ESP32-CAM 视频推流ESP32-CAM 是独立小系统程序思路STA 模式连 WiFi关闭 WiFi 睡眠提速重试 20 次→ 启动 TCP 服务器监听 8080 端口 → 关闭小包合并Nagle降延迟 → 有客户端接入后循环取摄像头帧缓冲 → 按 1024 字节分包加开始/结束标志发送 → 清空帧缓冲。STM32 侧不参与视频链路只通过 APP 命令控制摄像头开/关和 LED。4.6 LU-ASR01 语音指令模块出厂已烧录识别固件主控侧只做听串口串口中断收到 0xC0 帧头表示新命令块开始累积字节后按命令 ID 分发——比如 0x01 投喂、0x02 补水、0x03 切换模式。串口配置 115200-8-N-1接收引脚浮空输入。词条在模块端用厂商上位机录制烧录先唤醒词再命令词的两级结构可以大幅降低误触发。4.7 ESP8266 联网与透传RST 拉低复位 → 等 ready ATCWMODE1 → STA 模式 ATCWJAPSSID,PWD → 连 WiFi 等 OK ATCIPMUX0 → 关多路连接 ATCIPMODE1 → 透传模式 ATCIPSTARTTCP,... → 连 TCP 服务器等 CONNECT之后串口即网络主控周期上报T:xx;H:xx;W:xx;F:xAPP 下发的模式切换和远程投喂指令经透传直达串口中断解析执行。五、整机调试按功能逐项验证Keil 5 ST-Link 开发调试软件先跑通各模块驱动再联调逻辑闭环。测试项操作预期结果温湿度对比温湿度计 呵气加湿读数一致响应及时水位标定空盆→满盆两点标定 → 中间水位验证显示与实际水量吻合自动补水放掉水盆的水到阈值下报警响 水泵启动补到设定值停食物检测取走食盆食物检测无粮 → 自动出粮投喂环境调节温度降到阈值下 / 湿度升到阈值上加热/除湿分别联动语音控制喊唤醒词命令词开电视造噪声嘈杂环境识别仍可靠视频推流APP 连接 8080 端口实时画面流畅延迟可接受APP 远程切换模式 / 远程投喂 / 查看数据指令执行 状态回传手动模式按键直接控制四路负载即按即动互不干扰六、常见坑汇总原论文主流程里有句表述要警惕“当水量低于阈值或者检测到食物时系统触发报警并自动投喂”——检测到食物就投喂逻辑显然反了正确逻辑是食盆空了检测不到食物才投喂。改写程序时按后者实现不然食盆越满投得越欢宠物直接吃成球。DHT11 读取被中断打断单总线时序全靠 us 级延时串口中断一插进来时序就乱读数校验失败率飙升。读 DHT11 前关中断或确保读取期间无中断读完再开。ESP32-CAM 与 ESP8266 抢路由器两个模块同时推流/上报时廉价路由器可能掉一个测试时先单独调通一个再并另一个路由器务必开 2.4G 频段。水位电极电解漂移见接线坑 3表现为系统用了几天后明明有水却报缺水先查标定曲线是否漂了重新标定一次即可恢复。语音模块误触发电视里的声音、家人闲聊都可能撞上词条一定要用唤醒词命令词两级确认并且把唤醒词选得生僻一点比如设备名而不是小爱同学这种大众词。投喂量不做反馈会越积越多出粮电机转固定时间固定份量但猫粮颗粒大小/出粮口堵塞都会让实际量漂移有条件加称重反馈一片 HX711没条件至少在 APP 里做投喂记录供主人核对。七、可扩展方向出粮口加 5V 称重模块HX711从定时定量升级按克投喂多宠家庭还能做配额视频 移动侦测宠物异常行为长时间不进食自动推送提醒换 4G 模块或接入智能家居网关租房没 WiFi 的场景也能用。六、资料内容完整工程资料原理图、PCB、代码、元件清单七、资料获取方式
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。