news 2026/9/16 7:57:51

基于STM32的远程宠物自动投喂系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于STM32的远程宠物自动投喂系统
  • 远程宠物自动投喂系统
    • 绪论
    • 系统方案设计
      • 需求分析
      • 系统总体方案
      • 主要模块选型
    • 硬件设计
      • 主控与称重
      • 温湿度与液位
      • 视频与通信
      • 语音与显示
      • 系统接线总表
    • 软件设计
      • 主程序流程
      • 喂食执行
      • 语音与远程交互
      • 计划与状态上报
    • 系统实现与测试
      • 调试步骤
      • 测试结果
    • 总结

远程宠物自动投喂系统

绪论

随着工作节奏加快与跨城出行增多,宠物在家的无人照护问题日益凸显。一次出差几天,主人最关心的是宠物能否按时按量进食、饮水是否充足、活动区域是否异常。本设计构建一套远程宠物自动投喂系统,将STM32主控、温湿度、称重、液位、视频监测与Wi-Fi通信组合成一个完整方案,搭配手机App实现远程喂食与状态查看,并通过语音模块补充本地交互,作为低成本家庭宠物自动照护的参考实现。

系统方案设计

需求分析

  • 主人外出时按计划自动出粮。
  • 食盒余量低于阈值时报警。
  • 饮水瓶余量低时提醒加水。
  • 主人手机端实时查看温湿度、宠物活动视频。
  • 现场可用语音与按键操作。

系统总体方案

系统由STM32F103C8T6主控、DHT22温湿度传感器、称重传感器(HX711)、液位传感器、舵机驱动出粮机构、ESP32-CAM视频模块、ESP8266-01S Wi-Fi模块、LU-ASR01语音识别模块、OLED12864显示模块、按键输入构成。STM32通过I2C、SPI、UART与各模块通信。

主要模块选型

模块方案对比本设计选择
主控STM32F103C8T6 / ESP32STM32F103C8T6,与传感器接口成熟
温湿度DHT11 / DHT22DHT22,精度更高
称重HX711+称重盘HX711+10kg称重传感器
液位浮球开关 / 电容式电容式液位,连续输出
出粮舵机+旋转挡板舵机SG90,便宜易用
视频OV2640模组 / USB摄像头ESP32-CAM,集成Wi-Fi+摄像头
通信ESP8266 / 蓝牙ESP8266-01S,体积小
语音LD3320 / LU-ASR01LU-ASR01,离线识别

硬件设计

主控与称重

主控沿用STM32F103C8T6最小系统。HX711通过两根IO线(PD_SCK、DOUT)与单片机通信,使用5kg量程称重传感器安装在出粮漏斗下方。

温湿度与液位

DHT22单总线接到PA0,电容式液位传感器AO接PA1(ADC),量程对应水箱高度。舵机控制信号接到PB0。

视频与通信

ESP32-CAM独立运行,与主控通过串口握手应答。主控通过ESP8266接入家庭Wi-Fi并连接云平台。

语音与显示

LU-ASR01通过UART3接收识别结果,主控根据命令切换模式;OLED12864使用I2C显示当前模式、出粮量、剩余水量、温湿度。

系统接线总表

序号单片机引脚外设/功能
1PA0DHT22单总线
2PA1液位传感器AO
3PA2/PA3/PA4HX711-DOUT/SCK/GND
4PB0舵机PWM
5PB1蜂鸣器
6PB6/PB7I2C(含OLED)
7PA9/PA10ESP8266串口
8PB10/PB11LU-ASR01语音模块串口

软件设计

主程序流程

主程序周期性调度称重、温湿度、液位采样,并根据当前模式触发出粮;Wi-Fi模块接收云端指令后修改喂食计划。下表给出定时器与任务调度表。

int main(void) { SystemInit(); DHT22_Init(); HX711_Init(); ADC1_Init(); Servo_Init(); OLED_Init(); USART1_Init(115200); // ESP8266 USART3_Init(9600); // LU-ASR01 Buzzer_Init(); Schedule_Init(&plan); while (1) { float t = DHT22_ReadTemp(); float h = DHT22_ReadHumidity(); float weight = HX711_ReadWeight(); uint16_t lvl = ADC_ReadAvg(8); Schedule_Run(&plan, &feed_ctx); if (weight < plan.food_threshold) { Buzzer_On(); ESP8266_Alert("food low"); } if (lvl < plan.water_threshold) { Buzzer_On(); ESP8266_Alert("water low"); } OLED_Update(t, h, weight, lvl, plan); ESP8266_SendStatus(t, h, weight, lvl, plan); delay_ms(500); } }

喂食执行

Servo_SetAngle(0)关闭挡板,0.5s后Servo_SetAngle(45)打开挡板维持1.5s放粮,HX711读数下降约8g,误差控制±2g。称重阈值校准后即可长时间稳定。

语音与远程交互

LU-ASR01预先录入"投喂"“停止投喂”"查看状态"等命令。主控解析命令并切换模式;云端App可下发:“投喂1次”“修改计划”“请求视频”。ESP32-CAM定时拍摄图片上传云端。

计划与状态上报

喂食计划用结构体存储:

typedef struct { uint8_t hour, minute; uint16_t food_g; // 本次出粮克数 } FeedPlanItem;

每天可定义最多4次计划,主程序tick每秒检查当前时间是否命中。

系统实现与测试

调试步骤

  1. 称重校准:使用100g砝码测定校准系数。
  2. 舵机校准:实测0~180度对应出粮挡板开闭角度。
  3. 语音测试:分别在安静、嘈杂环境下测试LU-ASR01识别率。
  4. 远程控制:在4G和Wi-Fi混合网络下测试App与本地通信稳定性。

测试结果

  • 称重误差±2g,长期稳定性良好。
  • 出粮到位率>98%,余粮检测触发报警准确。
  • LU-ASR01识别率约95%(5米安静环境)。
  • App端视频延迟约1.5秒,连续运行12小时稳定。
  • 断网重连后能自动同步喂食计划,时间误差<2s。

总结

本设计围绕远程宠物自动投喂这一典型场景,将STM32与多种传感器、舵机、Wi-Fi和视频模块结合,形成了一个完整的无人照护原型。经过多轮测试,系统在称重精度、出粮控制、语音交互与远程监控方面均达到了设计预期。该方案可以推广到鱼缸喂食、鸟巢补食等自动化养护场景,未来增加活动量分析后还可接入健康预警与推荐算法。

资料内容完整工程资料(原理图、PCB、代码、元件清单)

资料获取方式

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 7:57:50

从MQTT到边缘计算:用树莓派和ESP32搭建隐私友好的本地智能家居网关

作为一个把家里智能设备折腾了五六年的人&#xff0c;我越来越觉得市面上的"智能家居"其实笨得要命。每个牌子的传感器都要自己的App、自己的云&#xff0c;晚上想关个灯&#xff0c;语音指令绕一圈云端再回来&#xff0c;少说一两秒&#xff0c;偶尔服务器抽风直接装…

作者头像 李华
网站建设 2026/9/16 7:57:49

小白程序员进阶大模型:超详细学习路线图,收藏必备!

本文提供了一份详尽的AI Agent学习路线图&#xff0c;从模型基础认知到生产工程化&#xff0c;帮助后端工程师系统学习并掌握大模型应用开发&#xff0c;适合希望转向Java AI/Agent应用开发的工程师。 随着 AI Agent 岗位的兴起&#xff0c;以及对 AI 工具的普及&#xff0c;很…

作者头像 李华
网站建设 2026/9/16 7:57:23

PaddleOCR GPU部署全流程:环境配置、版本匹配与性能调优实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/16 7:57:18

SQL查询经典题解析:多表关联与UNION ALL求平均价格

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/16 7:56:56

汇编语言实现时间差反跟踪技术解析

1. 项目背景与核心概念在软件安全领域&#xff0c;反跟踪技术一直是保护关键代码逻辑的重要手段。"用时间差反跟踪"是一种基于汇编语言实现的精妙防御技术&#xff0c;它通过人为制造时间差异来干扰调试器的正常分析。这种技术在软件加密、授权验证等场景中尤为常见&…

作者头像 李华