金亚洲技术笔记

凡是过往,皆为序章。

做一个定时喂食器

Posted on   » 物联网iot • 1767 words • 4 minute read
Tags: iot, 物联网

淘宝和闲鱼没有找到合适尺寸和固定的喂食器,用闲置的树莓派zero w做了一个。成品如下:

IMG_5372

IMG_5371

👇 下方的出食孔:

IMG_5374

👇 盒子尺寸有点小,布线很乱:

IMG_5366

前期准备

1. 确定尺寸

  • 进食管:栅栏的间隔距离约为4.5cm,食物最大尺寸2cm,为了防止食物卡住,所以喂食器直径尽可能大,选择外径40mm。
  • 物料盒:为了固定进食管,需要一个物料盒,也可以塞进开发板及模块,尺寸定义为120mm x 50mm x 52mm;

很多配件尺寸都特别详细,不用买回来之后再测量了。

IMG_6628

IMG_6629

IMG_6669


❓︎ 如何固定电机?

设计一个外壳,电机固定外壳上,外壳固定在进食管上。


整体尺寸如下:

IMG_6626


2. 确定外观

(1) 管状结构。有两种喂食方案:螺旋结构和推拉结构。

  • 螺旋结构简单,但是比较容易卡住食物;
  • 推拉结构所需的投送管比较长;

确定使用螺旋结构,在进食管上面开一个进食孔,下方开一个出食孔。

(2) 长方体结构。长方体结构需要打印的零件太多,而且不容易观察。所以选管状结构。


花了几个小时入门3D,学会了最基本的图形设计。设计图如下:

2026-01-03_10.51.59


3. 确定材质

  • 进食管选择无毒、可接触食物的PC材质;透明的管子也可以观察食物是否卡住。
  • 3D打印件,选择树脂,无毒、可接触食物。

4. 确定供电方案

2026-01-03_13.50.30

最开始时有点草率,走一步看一步。板子(5V)、电机(12V)是独立供电,后面后加了显示屏、风扇,觉得太繁琐,独立供电地线不好处理,就统一使用12V电源,使用降压模块将为5V和3.3V,这样就有12V、5V和3.3V三种电压。

  • 12V电压:为电机、风扇提供直接供电;
  • 5V电压:为树莓派、OLED显示屏供电;
  • 3.3V电压:为继电器模块供电;

❌︎ 为什么不选择12V继电器?

刚开始选择的是12V继电器,买回来之后发现无法触发。询问客服之后才发现高电平触发条件是0-3V,低电平触发条件是9-12V,可用的电压只有树莓派的5V和3.3V,不满足条件。


❌︎ 为什么不选择5V继电器?

为什么要多出一个3.3V,不直接使用5V呢?因为树莓派不使用micro USB 电源接口供电,使用2/4引脚从12V电源降压的5V供电,2/4引脚是短接的,只能同时作为输入或者同时作为输出,无法一个作为输入、一个作为输出。所以5V电源只能作为输入电源。


✅︎ 为什么可以选择3.3V继电器?

3.3V继电器高电平触发条件是0-0.8V,低电平触发条件是2.0-3.3V,完全满足触发条件。


❓︎ 3.3V继电器使用树莓派3.3V针脚供电还是12V转3.3V降压供电?

树莓派如果直接供电,继电器瞬时电流过大,可能会导致供电不稳定。而且显示屏也需要3.3V供电,所以需要从电源直接供电。树莓派的电源只用于板子自身。


5. 确定物料

名称 规格 价格
透明PC管 外径40mm,内径37.6mm,长度15cm 4.80
降压模块 12V -> 5.0V,为树莓派供电 2.48
降压模块 12V -> 3.3V,为3.3V继电器供电 2.48
继电器 3.3V 3.50
OLED显示屏 0.91寸、4排针、I2C接口,3.3-5V 8.15
散热风扇 40mm x 40mm x 10mm,12V 1.00
供电电源 12V/3A电源,为散热风扇直接供电;为降压模块提供电源 19.65
电机 12Vm、26转/min 9.00
3D打印 50.00
总计 100.56

家里有杜邦线、热熔胶枪、绝缘胶带、m3螺丝等,树莓派板子为闲置,未计入物料成本。


❓︎ 为什么需要显示屏?

  • 可以确认供电是否正常(通过是否黑屏判断);
  • 可以确认系统是否宕机(通过秒数是否走动判断);
  • 可以确认联网是否正常(通过右侧图标及「ONLINE/OFFLINE」字样判断);
  • 显示温度及正在喂食(显示「FEED」),凑数用;

IMG_9459


❓︎ 为什么需要散热风扇?

因为太便宜了,1元包邮。但是降温特别明显,开启风扇后,室内温度28度时,cpu温度从51度降到42度左右。


6. 确定代码环境

  • 操作系统:Raspberry Pi OS (32-bit)

  • 编程语言:C / C++ / C# / Python / Go 可以选择。树莓派zero w是ARMv6架构,只支持到.net 6,不想额外安装.net 6 sdk;不会C / C++,Go也需要额外安装环境,所以选择了系统自带的Python3。


7. 确定具体功能

  • 默认每天13点自动喂食,电机运行10秒;
  • 可以修改默认时间;
  • 可以手动喂食;

手动喂食动态演示

6958b522a713c_6958b522abbb5


不足之处

  • 第一次做3d,精度把握有问题。比如:瓶盖的尺寸没把握好,导致瓶子拧不进去,后面又用原瓶盖掏孔解决的;
  • 树脂过软。虽然把最薄处厚度设置了2mm,还是太软容易变形,不应该用树脂打印螺丝;

学习到了什么

  • 入门了一个新技能——3D设计;
  • 学会了如何让屏幕局部刷新;
×