智能WiFi喂鱼器


DOIT SUPER
转载
发布时间: 2025-11-18 09:56:40 | 阅读数 0收藏数 0评论数 0
封面
要出门几天,但担心没地方喂鱼?这款DIY智能Wi-Fi喂鱼器可以解决这个问题!鱼儿不会休假,但我们有时会。这款DIY智能Wi-Fi喂鱼器能确保您的宠物鱼即使您不在家也能吃饱。它由纸板制成,采用ESP32芯片,并可连接到Telegram,方便您远程控制喂食。这款喂食器之所以独特,是因为: 无线控制(ESP32 + WiFi) Telegram 机器人界面(可从任何位置访问信息流,支持多个设备/帐户) 倒计时和定时喂食模式 多用户授权访问 无需3D打印(全部用纸板DIY) GitHub 仓库链接:链接https://github.com/Rainier-PS/Smart-WiFi-Fish-Fe

准备工作:

材料:

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


1

搭建支架

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


2

ESP32 + 伺服电机的抽屉滑架

我建议制作抽屉式滑架,这样电子元件就不会被永久粘合在滑架上。

  1. 裁剪一块硬纸板,使其能够像抽屉一样滑入支架上的槽中。
  2. 将 ESP32 和 SG90 伺服电机安装在此滑架上。
  3. 伺服臂应该伸出食物容器连接的位置。
  4. 将托架滑入支架中。这样以后就可以将其拉出进行维护或重新接线了。

这种设计允许部件进行更换,或在以后的其他项目或维护工作中重复使用。它还能防止因胶水或其他固定附件造成的损坏。


3

食品容器

食物容器方面,您可以选择以下两种主要选项:

  1. 塑料瓶→ 直接在瓶身侧面打孔。可以用烙铁或锋利的切割工具打孔。
  2. 纸板 + 厚纸→ 做成圆筒并剪出孔。(这是我的做法。)建议用木棍在补充装开口周围加固厚纸(像门框一样),以提高耐用性(见图)。


这些孔是用来投放食物的,所以要根据你养的鱼的种类或数量以及你想喂的量来设置孔的大小。将容器牢固地固定在伺服臂上。


4

接线

使用跳线将舵机连接到 ESP32:将母头插入舵机电缆,将公头插入 ESP32 引脚。

  1. 伺服 VCC(红色)→ ESP32 VIN(如果使用 USB 供电则可正常工作;为了提高可靠性,您可能需要使用带共地的外部 5V 电源)
  2. 伺服电机接地(棕色)→ ESP32 接地
  3. 伺服信号(橙色)→ ESP32 GPIO 13(如有需要,可通过代码更改此引脚)


5

创建 Telegram 机器人

上传代码之前,您需要设置一个 Telegram 机器人并将其与您的 ESP32 连接。方法如下:

  1. 打开 Telegram 应用,搜索 BotFather(它是 Telegram 官方的机器人创建工具)。
  2. 与 BotFather 开始聊天,然后输入 `/start`,再输入 `/newbot`。
  3. BotFather 会要求你输入一个名字,然后输入一个用户名(用户名必须以 bot 结尾,例如 FishFeederBot)。
  4. 复制BotFather 提供的机器人令牌。稍后您需要将其粘贴到代码中:
// 替换为您自己的来自 BotFather 的机器人令牌
const char* botToken = "YOUR_TELEGRAM_BOT_TOKEN";


5. 获取您的Telegram 用户 ID(用于身份验证):

  1. 搜索@userinfobot
  2. 发送 `/start`,它会回复你的数字用户 ID。
  3. 将其添加到代码中的 `authorizedUsers[]` 数组中:
unsigned long long authorizedUsers[] = {
1234567890 // 请替换为您自己的 Telegram ID
};

6.(可选)添加多个用户 ID,以便朋友/家人也可以控制喂食器。

6

编写代码和设置

首先,打开存放 FishFeeder 项目 Arduino 代码的GitHub 代码库。然后,按照此安装指南下载并安装Arduino IDE。IDE安装完成后,从代码库复制FishFeeder.ino文件,并将其粘贴到新的 Arduino 草图中。在上传代码之前,您需要安装一些库并修改部分代码以匹配您的设置。

您只需要手动安装以下库:

  1. UniversalTelegramBot(作者:Brian Lough)→ 可实现 ESP32 和 Telegram 之间的通信
  2. ESP32Servo(作者:Kevin Harrington、John K. Bennett)→ 允许控制 ESP32 上的伺服电机
注意: WiFi.h、WiFiClientSecure.h 和 time.h 已自动包含在 ESP32 板包中,因此您无需单独安装它们。

您还需要在代码中添加您自己的详细信息:

// 请替换为您的 Wi-Fi 网络凭据
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "您的WIFI密码";

// 替换为您自己的来自 BotFather 的 Telegram 机器人令牌
const char* botToken = "YOUR_TELEGRAM_BOT_TOKEN";

(请确保您已在步骤 5 中创建了 Telegram 机器人。)

代码已经附有详细的注释,只需按照里面的注释操作即可。


要安装库文件,请在 Arduino IDE 中依次选择“项目”>“包含库”>“管理库…” ,然后搜索并安装每个库文件。安装完成后,选择正确的开发板(ESP32)和端口,然后点击“上传”按钮编译代码并将其发送到 ESP32。如果一切设置正确,喂鱼器即可使用。

可用命令:

  1. /start & /help → 显示所有可用命令。
  2. /feed1 至 /feed5 → 立即分发 1-5 份食物。
  3. /countdown <秒数> [份数] 例如:/countdown 30 2 → 等待 30 秒,然后喂食 2 份。(最多 3600 秒,允许喂食 1-5 份)
  4. /schedule HH:MM [份数] 示例:/schedule 08:30 3 → 每天 08:30 喂食 3 份。
  5. /status → 显示 WiFi 信息、已喂食的总份数、活动倒计时和日程详情。

重要提示:

  1. 该代码默认设置为UTC+7时区:

configTime(25200, 0, "pool.ntp.org", "time.nist.gov");

如果您居住在其他时区,请更新 `25200`(秒偏移量)。

  1. 示例:UTC+1 → `3600`,UTC–5 → `-18000`。
  2. 伺服电机连接到GPIO 13
  3. 伺服电源来自ESP32 VIN(USB 供电也可以,但为了可靠性,请使用带公共接地的外部 5V 电源)。


INO
F2KRG8KMG16BOMU.ino
7.34KB
7

测试和调整

  1. 打开 ESP32 的电源,等待它连接到 WiFi。
  2. 打开你的 Telegram 机器人并发送 `/feed1`。伺服电机应该会旋转一周并掉落食物。
  3. 根据份量大小调整孔径或旋转角度。
  4. 测试倒计时和日程安排命令。

提示和建议

  1. 为了保持稳定性,务必在底板上增加配重。
  2. 将电子元件放在可拆卸的抽屉中,以便于维护或升级。
  3. 塑料瓶比纸瓶更耐用,但两者都可以用作食品容器。
  4. 根据您的需要定制食物托架上的孔(份量控制)。
  5. 使 ESP32 和线路远离水或溅水(考虑使用塑料保护罩)。
  6. 使用远程喂鱼器之前,务必对其进行彻底测试,以检查其可靠性。

局限性

由于该装置采用纸板制作,因此其耐用性不如塑料或3D打印设计。此外,支架高度固定,您可能需要根据自身情况调整尺寸。在电子元件方面,ESP32的WiFi信号范围有限,定时喂食功能需要稳定的WiFi连接才能可靠运行,并且如果电路板在喂食过程中复位,伺服电机可能需要外部5V电源。最后,该项目尚未经过长期测试,因此其长期使用的可靠性仍不确定。

结论

这是一个适合新手搭建的装置,我已经开始考虑如何改进它了。但就目前而言,它喂鱼的效果相当不错。


注意:这只是一个原型。它在我的配置下运行良好,但结果可能因您的容器设计、舵机质量或 WiFi 稳定性而异。我们无法保证它在所有配置下都能完美运行。您可以随意编辑、修改或重新组合此项目——它采用MIT 许可证

祝您玩得开心!


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载
pdf下载 举报