智能WiFi喂鱼器
0
准备工作:
材料:

- ESP32开发板(推荐使用USB Type-C版本)
- SG90伺服电机
- 纸板
- 热熔胶枪 + 胶棒
- 跳线(3根公对母连接线)
- 塑料瓶(用作食品容器)或纸板+厚纸替代品
- 胶带(可选,用于加固)
- 工具:剪刀、美工刀、电烙铁(如果需要熔化瓶身孔洞)、尺子、记号笔
搭建支架





- 裁剪一块硬纸板底板。底板要足够宽,以防止喂食器倾倒。建议在底板下方放置一些重物(例如石头、螺栓或其他重物)以保持其稳定性。
- 制作一个空心的垂直轴。保持空心,以便将跳线整齐地收纳在里面。
- 在轴内添加一块内部支撑纸板,以防止轴向内塌陷,但要在上面留出空间放置电线。
- 将轴粘到底板上。
ESP32 + 伺服电机的抽屉滑架





我建议制作抽屉式滑架,这样电子元件就不会被永久粘合在滑架上。
- 裁剪一块硬纸板,使其能够像抽屉一样滑入支架上的槽中。
- 将 ESP32 和 SG90 伺服电机安装在此滑架上。
- 伺服臂应该伸出食物容器连接的位置。
- 将托架滑入支架中。这样以后就可以将其拉出进行维护或重新接线了。
这种设计允许部件进行更换,或在以后的其他项目或维护工作中重复使用。它还能防止因胶水或其他固定附件造成的损坏。
食品容器

食物容器方面,您可以选择以下两种主要选项:
- 塑料瓶→ 直接在瓶身侧面打孔。可以用烙铁或锋利的切割工具打孔。
- 纸板 + 厚纸→ 做成圆筒并剪出孔。(这是我的做法。)建议用木棍在补充装开口周围加固厚纸(像门框一样),以提高耐用性(见图)。
这些孔是用来投放食物的,所以要根据你养的鱼的种类或数量以及你想喂的量来设置孔的大小。将容器牢固地固定在伺服臂上。
接线

使用跳线将舵机连接到 ESP32:将母头插入舵机电缆,将公头插入 ESP32 引脚。
- 伺服 VCC(红色)→ ESP32 VIN(如果使用 USB 供电则可正常工作;为了提高可靠性,您可能需要使用带共地的外部 5V 电源)
- 伺服电机接地(棕色)→ ESP32 接地
- 伺服信号(橙色)→ ESP32 GPIO 13(如有需要,可通过代码更改此引脚)
创建 Telegram 机器人

上传代码之前,您需要设置一个 Telegram 机器人并将其与您的 ESP32 连接。方法如下:
- 打开 Telegram 应用,搜索 BotFather(它是 Telegram 官方的机器人创建工具)。
- 与 BotFather 开始聊天,然后输入 `/start`,再输入 `/newbot`。
- BotFather 会要求你输入一个名字,然后输入一个用户名(用户名必须以 bot 结尾,例如 FishFeederBot)。
- 复制BotFather 提供的机器人令牌。稍后您需要将其粘贴到代码中:
5. 获取您的Telegram 用户 ID(用于身份验证):
- 搜索@userinfobot。
- 发送 `/start`,它会回复你的数字用户 ID。
- 将其添加到代码中的 `authorizedUsers[]` 数组中:
6.(可选)添加多个用户 ID,以便朋友/家人也可以控制喂食器。
编写代码和设置

首先,打开存放 FishFeeder 项目 Arduino 代码的GitHub 代码库。然后,按照此安装指南下载并安装Arduino IDE。IDE安装完成后,从代码库复制FishFeeder.ino文件,并将其粘贴到新的 Arduino 草图中。在上传代码之前,您需要安装一些库并修改部分代码以匹配您的设置。
您只需要手动安装以下库:
- UniversalTelegramBot(作者:Brian Lough)→ 可实现 ESP32 和 Telegram 之间的通信
- ESP32Servo(作者:Kevin Harrington、John K. Bennett)→ 允许控制 ESP32 上的伺服电机
注意: WiFi.h、WiFiClientSecure.h 和 time.h 已自动包含在 ESP32 板包中,因此您无需单独安装它们。
您还需要在代码中添加您自己的详细信息:
(请确保您已在步骤 5 中创建了 Telegram 机器人。)
代码已经附有详细的注释,只需按照里面的注释操作即可。
要安装库文件,请在 Arduino IDE 中依次选择“项目”>“包含库”>“管理库…” ,然后搜索并安装每个库文件。安装完成后,选择正确的开发板(ESP32)和端口,然后点击“上传”按钮编译代码并将其发送到 ESP32。如果一切设置正确,喂鱼器即可使用。
可用命令:
- /start & /help → 显示所有可用命令。
- /feed1 至 /feed5 → 立即分发 1-5 份食物。
- /countdown <秒数> [份数] 例如:/countdown 30 2 → 等待 30 秒,然后喂食 2 份。(最多 3600 秒,允许喂食 1-5 份)
- /schedule HH:MM [份数] 示例:/schedule 08:30 3 → 每天 08:30 喂食 3 份。
- /status → 显示 WiFi 信息、已喂食的总份数、活动倒计时和日程详情。
重要提示:
- 该代码默认设置为UTC+7时区:
configTime(25200, 0, "pool.ntp.org", "time.nist.gov");
如果您居住在其他时区,请更新 `25200`(秒偏移量)。
- 示例:UTC+1 → `3600`,UTC–5 → `-18000`。
- 伺服电机连接到GPIO 13。
- 伺服电源来自ESP32 VIN(USB 供电也可以,但为了可靠性,请使用带公共接地的外部 5V 电源)。
测试和调整

- 打开 ESP32 的电源,等待它连接到 WiFi。
- 打开你的 Telegram 机器人并发送 `/feed1`。伺服电机应该会旋转一周并掉落食物。
- 根据份量大小调整孔径或旋转角度。
- 测试倒计时和日程安排命令。
提示和建议
- 为了保持稳定性,务必在底板上增加配重。
- 将电子元件放在可拆卸的抽屉中,以便于维护或升级。
- 塑料瓶比纸瓶更耐用,但两者都可以用作食品容器。
- 根据您的需要定制食物托架上的孔(份量控制)。
- 使 ESP32 和线路远离水或溅水(考虑使用塑料保护罩)。
- 使用远程喂鱼器之前,务必对其进行彻底测试,以检查其可靠性。
局限性
由于该装置采用纸板制作,因此其耐用性不如塑料或3D打印设计。此外,支架高度固定,您可能需要根据自身情况调整尺寸。在电子元件方面,ESP32的WiFi信号范围有限,定时喂食功能需要稳定的WiFi连接才能可靠运行,并且如果电路板在喂食过程中复位,伺服电机可能需要外部5V电源。最后,该项目尚未经过长期测试,因此其长期使用的可靠性仍不确定。
结论
这是一个适合新手搭建的装置,我已经开始考虑如何改进它了。但就目前而言,它喂鱼的效果相当不错。
注意:这只是一个原型。它在我的配置下运行良好,但结果可能因您的容器设计、舵机质量或 WiFi 稳定性而异。我们无法保证它在所有配置下都能完美运行。您可以随意编辑、修改或重新组合此项目——它采用MIT 许可证。
祝您玩得开心!
0
0
0
qq空间
微博
复制链接
分享