首页
/ 告别宠物喂养焦虑:ESPHome打造智能定时定量喂食器

告别宠物喂养焦虑:ESPHome打造智能定时定量喂食器

2026-02-05 04:08:17作者:农烁颖Land

你是否也曾经历过出差时担心宠物饿肚子,或是因加班晚归让毛孩子饥肠辘辘地等待?传统喂食器要么无法精准控制食量导致宠物肥胖,要么需要手动操作难以坚持规律喂养。本文将带你用ESPHome构建一套成本不到200元的智能喂食系统,通过简单配置实现定时定量喂食,让你的宠物随时享受科学喂养。

系统架构与核心组件

智能喂食器主要由四个功能模块组成,通过ESPHome的配置文件将它们无缝集成:

系统架构

硬件连接指南

按照以下接线图连接各组件,注意步进电机和HX711传感器的电源需要独立供电:

组件 ESP32引脚 说明
A4988 STEP GPIO26 步进脉冲信号
A4988 DIR GPIO27 方向控制信号
A4988 EN GPIO14 使能信号(低电平有效)
HX711 DOUT GPIO19 数据输出
HX711 SCK GPIO18 时钟信号
限位开关 GPIO4 送料器复位检测

步进电机驱动配置示例:

stepper:
  - platform: a4988
    id: feed_stepper
    step_pin: GPIO26
    dir_pin: GPIO27
    enable_pin: GPIO14
    step_distance: 0.01mm
    max_speed: 200.0mm/s
    acceleration: 50.0mm/s²
    deceleration: 50.0mm/s²

称重传感器校准

HX711传感器需要通过以下步骤进行校准,确保喂食量精确到±2g:

  1. 空载校准:在传感器上无任何物品时,记录原始读数
  2. 负载校准:放置已知重量(如100g)的标准砝码,计算校准系数
sensor:
  - platform: hx711
    id: food_scale
    dout_pin: GPIO19
    clk_pin: GPIO18
    gain: 128
    update_interval: 1s
    unit_of_measurement: g
    accuracy_decimals: 1
    filters:
      - calibrate_linear:
          - 0.0 -> 0.0
          - 23456 -> 100.0  # 根据实际校准结果调整

智能喂食逻辑实现

核心喂食流程通过ESPHome的自动化规则实现,包含定时触发、重量监测和异常处理:

automation:
  - alias: "Morning feeding"
    trigger:
      platform: time
      at: "08:00:00"
    action:
      - service: stepper.set_target
        data:
          id: feed_stepper
          target: 360  # 旋转一圈送料
      - delay: 2s
      - if:
          condition:
            sensor.in_range:
              id: food_scale
              below: 50.0
          then:
            - logger.log: "Food bowl is empty!"
            - homeassistant.service:
                service: notify.mobile_app_my_phone
                data:
                  message: "Pet feeder is empty"

时间控制支持复杂的CRON表达式,例如设置工作日7点喂食:

trigger:
  platform: time
  cron: "0 7 * * MON-FRI"

高级功能扩展

远程监控与控制

通过ESPHome的Web服务器组件esphome/components/web_server/init.py,可以实现网页端实时监控和手动喂食:

web_server:
  port: 80
  auth:
    username: petfeeder
    password: !secret feeder_password

button:
  - platform: template
    name: "Manual Feed"
    on_press:
      - service: stepper.set_target
        data:
          id: feed_stepper
          target: 180  # 半圈送料

喂食记录与统计

使用ESPHome的文本传感器组件esphome/components/text_sensor/init.py记录喂食历史:

text_sensor:
  - platform: template
    name: "Last Fed"
    id: last_fed
    icon: mdi:clock

automation:
  - trigger:
      platform: time
      at: "08:00:00"
    then:
      - text_sensor.template.publish:
          id: last_fed
          state: !lambda 'return id(time).now().strftime("%Y-%m-%d %H:%M");'

安装与调试

  1. 首先克隆项目仓库:
git clone https://gitcode.com/GitHub_Trending/es/esphome
cd esphome
  1. 创建设备配置文件,参考示例配置tests/test_packages/test_uptime_sensor.yaml

  2. 使用ESPHome命令行工具编译上传:

esphome run pet_feeder.yaml
  1. 调试建议:

总结与展望

本项目展示了如何利用ESPHome构建功能完善的智能宠物喂食器,通过组合不同组件实现了定时定量、称重监测、远程控制等核心功能。系统具有以下优势:

未来可以添加AI宠物行为识别,通过分析进食情况判断宠物健康状态,或集成语音识别实现声控喂食。

项目完整代码可在esphome/components/demo/init.py中找到参考示例,更多使用技巧请查阅README.md。如果您有任何改进建议,欢迎通过CONTRIBUTING.md中的方式参与项目贡献。

登录后查看全文
热门项目推荐
相关项目推荐