- 参赛项目:2024年上海市少年儿童乐创挑战系列活动
- 参赛队名:智慧星河队
- 学校:上海市静安区一中心小学
- 班级:三(6)班
- 队员:王一野、乔安易、程云骞、夏长榎
- 指导老师:陈晓婧、丁毅
- 报名编号:TFJ10037
随着现代生活节奏的加快,越来越多的家庭选择饲养宠物作为家庭成员,但工作繁忙的主人往往难以保证按时给宠物喂食。传统的宠物喂食器功能单一,缺乏智能监控功能,无法及时发现和解决喂食过程中的问题。
我们的智能宠物喂食器针对以下问题提供解决方案:
- 定时喂食:解决主人无法按时喂食的问题
- 远程控制:随时查看和控制喂食情况
- 智能监测:实时监控储粮和宠物状态
- 异常预警:及时发现并提醒各类异常情况
本项目采用掌控板作为主控,结合多种传感器和云平台,实现了一个功能完整、操作简便的智能喂食解决方案。不仅能确保宠物按时进食,还�����助主人随时了解宠物的喂食情况,让宠物照料更加智能化、人性化。
-
自动喂食
- 定时喂食:每8小时自动投放一次
- 手动喂食:通过按钮触发
- 可调节份量:支持小份(30°)、中份(60°)、大份(90°)
- 食盘防溢出:实时监测食盘重量,超过阈值自动停止投食
- 实时重量监测:记录实际投放量,确保喂食准确性
-
智能监测
- 储粮监测:通过累计投放量计算剩余量,低于阈值及时提醒
- 进食监测:通过重量变化检测宠物是否正常进食
- 异常警报:长时间未进食自动报警提醒(12小时无变化触发)
- 状态上报:定期向云端报告运行状态
-
人机交互
- OLED显示:
- 当前时间
- 距离下次喂食时间
- 当前份量设置
- 上次进食时间
- 在线状态
- 储粮余量
- 按键操作:
- P8按键:执行喂食
- ButtonA:切换份量(小份/中份/大份)
- ButtonB:重置储粮量
- LED指示:
- 绿色:正常工作
- 黄色:储粮不足
- 红色:离线状态(呼吸效果)
- 声光报警:
- 储粮不足:红色闪烁
- 食盆已满:黄色闪烁
- 宠物异常:紫色闪烁
- 硬件错误:红蓝交替
- OLED显示:
-
在线功能
- [暂未实现] 远程喂食控制
- [暂未实现] 远程调整份量
- 实时状态监控
- [暂未实现] 异常情况推送
-
离线模式
- 自动切换离线模式
- 保持基本喂食功能
- 显示离线状态
- 智能重连机制
-
网络管理机制
-
基本连接策略
- 启动时尝试连接
- 连接失败自动进入离线模式
- 每小时自动尝试重连一次
- 连接成功后自动恢复在线功能
-
状态监控
- 实时连接状态显示
- 自动订阅消息主题
- 定时状态上报(每分钟)
- 离线/在线状态自动切换
-
离线保护
- 保持基本喂食功能
- 本地按键操作不受影响
- 清晰的离线状态提示
- 定时自动恢复尝试
-
-
状态上报内容
- 剩余储粮量
- 当前份量设置
- 食盆重量
- 设备在线状态
- 网络连接质量
-
警告类提示
- 储粮不足:262Hz警报音
- 食盆已满:330Hz警报音
- 宠物异常:392Hz警报音
- 硬件错误:523Hz警报音
-
操作类提示
-
7896
- 喂食成功:659Hz提示音
- 份量切换:784Hz提示音
- 掌控板(支持Arduino IDE和Mind+编程环境)
- 舵机(投食机构)
- DFRobot_HX711_I2C称重模块
- 内置蜂鸣器
- 内置RGB LED
- 内置OLED显示屏
- 内置WiFi模块
- P8: 多功能按钮(喂食触发)
- P0: 舵机控制(投食机构)
- P9: LED指示灯
- I2C接口: 称重模块
-
首次配置:
- 修改WiFi信息(WIFI_SSID和WIFI_PASSWORD)
- 配置Easy IoT设备ID和密码
- 上传程序并等待自动连接
- [已移除] 进行称重校准
-
按键操作:
- 单击:执行喂食
- [已移除] 双击:切换份量
- [已移除] 三连击:重置储粮量
- [已移除] 长按:进入称重校准模式
-
显示界面:
- 第一行:运行时间、当前份量和在线状态
- 第二行:状态信息和提示
-
IoT平台操作:
- 远程触发喂食
- 远程调整份量
- 查看设备状态
- 接收异常警报
-
日常维护:
- 定期检查储粮情况
- 清理食盆
- 检查机构是否正常
- Wire.h:I2C通信
- DFRobot_Servo.h:掌控板舵机控制
- DFRobot_HX711_I2C.h:称重模块
- MPython.h:掌控板核心库
- DFRobot_Iot.h:Easy IoT功能
-
基础配置
- 包含库文件
- 常量定义
- 对象创建
- IoT配置
-
核心功能
- 喂食相关函数
- 显示相关函数
- 按钮处理函数
- 传感器相关函数
- IoT通信函数
-
主程序
- setup(): 初始化配置
- loop(): 主循环逻辑
-
使用限制
- 储粮量计算基于累计投放量,每次加满粮后需要手动按B键重置储粮量
- 重启后所有数据重置,不能保存上次数据
- 每8小时自动喂食一次,如需调整,请在IoT平台进行
- 需要稳定的WiFi环境,否则进入离线模式,离线模式仅能保证最基本的喂食
-
网络连接管理
- 初始连接:首次启动时自动连接WiFi和IoT平台
- 断线重连:每小时自动尝重连一次
- 稳定性:支持自动切换在线/离线模式
- 资源控制:重连间隔1小时,避免频繁连接
-
可能的问题
- 储粮量计算可能有误差
- 宠物检测可能受环境影响
- 按键可能需要适应才能熟练操作
- 网络不稳定时会自动进入离线模式
- 重连过程可能暂时影响响应速度
-
改进建议
- 添加数据存储功能保存设置
- 增加更多传感器监测
- 进一步优化网络重连策略
- 添加网络质量监测
- 实现本地数据缓存
-
网络安全
- 定期更换IoT密码
- 避免在公共网络使用
- 注意保护设备ID和密码
- 定期检查异常访问记录
- 监控网络连接状态
-
网络连接问题
- 检查WiFi信息是否正确
- 观察重连次数和间隔
- 确认路由器工作正常
- 检查IoT平台服务状态
-
显示问题
- 确认网络状态显示正确
- 检查重连进度显示
- 验证错误信息显示
- 观察状态更新及时性
-
功能异常
- 在线模式功能异常时尝试重启
- 离线模式下确认基本功能
- 检查传感器工作状态
- 验证网络切换是否正常
-
日常维护
- 定期检查网络连接状态
- 观察重连日志和频率
- 确认在线/离线模式切换
- 验证状态上��正常
-
定期检查
- 网络连接质量
- 重连策略效果
- 在线时间统计
- 异常记录分析
-
优化调整
- 根据使用环境调整重连参数
- 优化网络连接策略
- 更新固件版本
- 改进异常处理机制