8000 GitHub - josephway/petFeeder: A smart petFeeder using ESP32 board
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

josephway/petFeeder

Repository files navigation

智能宠物喂食器

项目信息

  • 参赛项目:2024年上海市少年儿童乐创挑战系列活动
  • 参赛队名:智慧星河队
  • 学校:上海市静安区一中心小学
  • 班级:三(6)班
  • 队员:王一野、乔安易、程云骞、夏长榎
  • 指导老师:陈晓婧、丁毅
  • 报名编号:TFJ10037

项目背景

随着现代生活节奏的加快,越来越多的家庭选择饲养宠物作为家庭成员,但工作繁忙的主人往往难以保证按时给宠物喂食。传统的宠物喂食器功能单一,缺乏智能监控功能,无法及时发现和解决喂食过程中的问题。

我们的智能宠物喂食器针对以下问题提供解决方案:

  1. 定时喂食:解决主人无法按时喂食的问题
  2. 远程控制:随时查看和控制喂食情况
  3. 智能监测:实时监控储粮和宠物状态
  4. 异常预警:及时发现并提醒各类异常情况

本项目采用掌控板作为主控,结合多种传感器和云平台,实现了一个功能完整、操作简便的智能喂食解决方案。不仅能确保宠物按时进食,还�����助主人随时了解宠物的喂食情况,让宠物照料更加智能化、人性化。

功能特点

  1. 自动喂食

    • 定时喂食:每8小时自动投放一次
    • 手动喂食:通过按钮触发
    • 可调节份量:支持小份(30°)、中份(60°)、大份(90°)
    • 食盘防溢出:实时监测食盘重量,超过阈值自动停止投食
    • 实时重量监测:记录实际投放量,确保喂食准确性
  2. 智能监测

    • 储粮监测:通过累计投放量计算剩余量,低于阈值及时提醒
    • 进食监测:通过重量变化检测宠物是否正常进食
    • 异常警报:长时间未进食自动报警提醒(12小时无变化触发)
    • 状态上报:定期向云端报告运行状态
  3. 人机交互

    • OLED显示:
      • 当前时间
      • 距离下次喂食时间
      • 当前份量设置
      • 上次进食时间
      • 在线状态
      • 储粮余量
    • 按键操作:
      • P8按键:执行喂食
      • ButtonA:切换份量(小份/中份/大份)
      • ButtonB:重置储粮量
    • LED指示:
      • 绿色:正常工作
      • 黄色:储粮不足
      • 红色:离线状态(呼吸效果)
    • 声光报警:
      • 储粮不足:红色闪烁
      • 食盆已满:黄色闪烁
      • 宠物异常:紫色闪烁
      • 硬件错误:红蓝交替

IoT功能说明

  1. 在线功能

    • [暂未实现] 远程喂食控制
    • [暂未实现] 远程调整份量
    • 实时状态监控
    • [暂未实现] 异常情况推送
  2. 离线模式

    • 自动切换离线模式
    • 保持基本喂食功能
    • 显示离线状态
    • 智能重连机制
  3. 网络管理机制

    • 基本连接策略

      • 启动时尝试连接
      • 连接失败自动进入离线模式
      • 每小时自动尝试重连一次
      • 连接成功后自动恢复在线功能
    • 状态监控

      • 实时连接状态显示
      • 自动订阅消息主题
      • 定时状态上报(每分钟)
      • 离线/在线状态自动切换
    • 离线保护

      • 保持基本喂食功能
      • 本地按键操作不受影响
      • 清晰的离线状态提示
      • 定时自动恢复尝试
  4. 状态上报内容

    • 剩余储粮量
    • 当前份量设置
    • 食盆重量
    • 设备在线状态
    • 网络连接质量

声音提示说明

  1. 警告类提示

    • 储粮不足:262Hz警报音
    • 食盆已满:330Hz警报音
    • 宠物异常:392Hz警报音
    • 硬件错误:523Hz警报音
  2. 操作类提示

      7896
    • 喂食成功:659Hz提示音
    • 份量切换:784Hz提示音

硬件要求

  • 掌控板(支持Arduino IDE和Mind+编程环境)
  • 舵机(投食机构)
  • DFRobot_HX711_I2C称重模块
  • 内置蜂鸣器
  • 内置RGB LED
  • 内置OLED显示屏
  • 内置WiFi模块

引脚连接

  • P8: 多功能按钮(喂食触发)
  • P0: 舵机控制(投食机构)
  • P9: LED指示灯
  • I2C接口: 称重模块

使用说明

  1. 首次配置:

    • 修改WiFi信息(WIFI_SSID和WIFI_PASSWORD)
    • 配置Easy IoT设备ID和密码
    • 上传程序并等待自动连接
    • [已移除] 进行称重校准
  2. 按键操作:

    • 单击:执行喂食
    • [已移除] 双击:切换份量
    • [已移除] 三连击:重置储粮量
    • [已移除] 长按:进入称重校准模式
  3. 显示界面:

    • 第一行:运行时间、当前份量和在线状态
    • 第二行:状态信息和提示
  4. IoT平台操作:

    • 远程触发喂食
    • 远程调整份量
    • 查看设备状态
    • 接收异常警报
  5. 日常维护:

    • 定期检查储粮情况
    • 清理食盆
    • 检查机构是否正常

依赖库

  • Wire.h:I2C通信
  • DFRobot_Servo.h:掌控板舵机控制
  • DFRobot_HX711_I2C.h:称重模块
  • MPython.h:掌控板核心库
  • DFRobot_Iot.h:Easy IoT功能

代码结构

  1. 基础配置

    • 包含库文件
    • 常量定义
    • 对象创建
    • IoT配置
  2. 核心功能

    • 喂食相关函数
    • 显示相关函数
    • 按钮处理函数
    • 传感器相关函数
    • IoT通信函数
  3. 主程序

    • setup(): 初始化配置
    • loop(): 主循环逻辑

注意事项

  1. 使用限制

    • 储粮量计算基于累计投放量,每次加满粮后需要手动按B键重置储粮量
    • 重启后所有数据重置,不能保存上次数据
    • 每8小时自动喂食一次,如需调整,请在IoT平台进行
    • 需要稳定的WiFi环境,否则进入离线模式,离线模式仅能保证最基本的喂食
  2. 网络连接管理

    • 初始连接:首次启动时自动连接WiFi和IoT平台
    • 断线重连:每小时自动尝重连一次
    • 稳定性:支持自动切换在线/离线模式
    • 资源控制:重连间隔1小时,避免频繁连接
  3. 可能的问题

    • 储粮量计算可能有误差
    • 宠物检测可能受环境影响
    • 按键可能需要适应才能熟练操作
    • 网络不稳定时会自动进入离线模式
    • 重连过程可能暂时影响响应速度
  4. 改进建议

    • 添加数据存储功能保存设置
    • 增加更多传感器监测
    • 进一步优化网络重连策略
    • 添加网络质量监测
    • 实现本地数据缓存
  5. 网络安全

    • 定期更换IoT密码
    • 避免在公共网络使用
    • 注意保护设备ID和密码
    • 定期检查异常访问记录
    • 监控网络连接状态

故障排除

  1. 网络连接问题

    • 检查WiFi信息是否正确
    • 观察重连次数和间隔
    • 确认路由器工作正常
    • 检查IoT平台服务状态
  2. 显示问题

    • 确认网络状态显示正确
    • 检查重连进度显示
    • 验证错误信息显示
    • 观察状态更新及时性
  3. 功能异常

    • 在线模式功能异常时尝试重启
    • 离线模式下确认基本功能
    • 检查传感器工作状态
    • 验证网络切换是否正常

维护建议

  1. 日常维护

    • 定期检查网络连接状态
    • 观察重连日志和频率
    • 确认在线/离线模式切换
    • 验证状态上��正常
  2. 定期检查

    • 网络连接质量
    • 重连策略效果
    • 在线时间统计
    • 异常记录分析
  3. 优化调整

    • 根据使用环境调整重连参数
    • 优化网络连接策略
    • 更新固件版本
    • 改进异常处理机制

About

A smart petFeeder using ESP32 board

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0