简介 去年五一之前给三只小龟做了个自动喂食器: 赶在五一之前给乌龟做个自动喂食器 ,刚好一年过去了(我这拖延症),升级到了 2.0 版本,主要是增加了自动水循环系统。 结构设计 在结构上增加了一个循环水箱,一个过滤水箱。水从循环水箱里抽出来,经过过滤水箱后给乌龟们洗澡喝水,再回流到了循环水箱里面。画了一个示意图: 在经过一段时间的循环后,水必然会减少,除了乌龟们用的,还有蒸发的,所以还得往循环水箱里面加水。既然自动化了,当然不能让我每天盯着水少了就加啊。于是我就增加了一个检测水位的装置: 检测到了低水位后,水泵就打开,从水桶里往循环水箱里加水,一直加到高水位后水泵就停止了。 你问桶里没水了怎么办?当然是我手动加了,我可舍不得钱买一个能电动控制的水龙头,一个星期加一桶水,顺便清晰一下几个水箱,更换一下过滤棉。 硬件设计 主控还是 ESP8266 模块,除了自动喂食器的电机驱动,增加了两个水泵的电源控制继电器,再用两个 IO 来检测水位。 一个水泵是循环抽水的,可以通过云端设置开关的时间间隔,另一个水泵是加水的,当检测到低水位时,该水泵就打开,水位到最高点时自动关闭水泵。 监测水位的我用的是干簧管和磁铁,在防水上没什么问题,也不用多余的工作。 中间的白色浮子里面嵌入了一个小磁铁,可以飘浮在水中,随着水位升降。当水面下降时,磁铁会靠近底下的干簧管,干簧管短路,IO 电平由低变高。水位上升的时候磁铁会离开底下的干簧管,干簧管开路,IO 由高变低,当靠近上面的干簧管后,IO由低变高,说明水面到了高水位。 开始本来的想法是用水的导电性来设计水位传感器的,淘宝上卖的也基本都是这类,因为水箱离主控板比较远,线缆一长,ADC 转换的时候容易出错,所以我就改成了用 IO 电平变化来监测水位了。 电路很简单,也没考虑很多,能用就行,仅供 DIY 用。 软件设计 软件设计还是 ESP8266 模块作为 Arduino 板联网控制,通过 Arduino IoT Cloud 连接设备。 Arduino Cloud IoT 使用入门指南 Arduino 代码很简单,注释我也写得很详细,流程图如下: /* Sketch generated by the Arduino IoT Cloud Thing "Autofeed2.0...