《树莓派官方杂志》近期介绍了一个名为SmartCoop的智能鸡舍项目。这个项目利用树莓派来监控饲料和水的存量,并且能够根据预设时间以及天气数据来控制鸡舍主门的自动开关。
养鸡日常少不了几件固定工作:早晚开关鸡舍门、捡拾鸡蛋、确保食水充足。由于这些任务几乎每天都要重复,如果饲养者计划外出超过一两天,就必须找人代为照料。
正是为了解决这个痛点,SmartCoop诞生了。该项目的一个核心设计目标就是确保系统足够可靠,让创作者Dave Duncanson即使离家长达一周,也无需担心鸡群无人看管,同时还能有效防范当地狐狸的侵扰。

鸡舍主门可实现自动开关;传感器负责测量水位和饲料余量等数据。
Dave在十多年前就开始了对SmartCoop的研究,目前的版本已经用上了他设计的第四代定制印刷电路板。正是得益于这个新设计,他才能够将核心控制器升级为性能更强的树莓派Zero 2 W。
整个系统包含了一系列自动化门、光传感器、手动按钮、水位测量装置以及喂食器等组件。在软件层面,一个MQTT代理负责数据的分发,而一个基于Pi4J库开发的Java应用程序则扮演着“大脑”的角色。它综合来自天气API的实时数据以及各类传感器的读数,来决策门的开关、跟踪喂食情况并执行其他管理任务。

树莓派Zero 2 W安装在一块定制的印刷电路板上,该板集成了连接多个传感器的接口。
这个项目的演进不仅受技术驱动,也充满了与自然“斗智斗勇”的趣味。Dave曾遇到过一只特别聪明的狐狸,它摸清了鸡舍门自动开启的规律并伺机捕食。为此,研发团队改进了算法,不再单纯依赖定时,而是以预期的日出日落时间为参考,并结合光传感器的实际测量结果来决策开关门,让狐狸无规律可循。
此外,生活中的小插曲也成了系统优化的契机。比如,家里的青少年有时会忘记关鸡舍门。为了解决这类人为疏忽,SmartCoop具备状态监控功能,持续监测门禁以及食物、水的供应状态。一旦系统发现异常,就会立即向预设的多个联系人发送警报,及时提醒。

鸡舍门的开关最终由日光传感器控制。
关于未来,Dave设想为每只鸡配备一个UHF RFID脚环,并在鸡舍入口安装读取器,这样就能在夜间清点是否所有鸡都已回巢。更进一步,如果在每个产蛋箱也装上读取器,甚至能精准统计每只鸡的产蛋量。
核心分工:树莓派 + ESP32
系统的核心功能大约80%由树莓派Zero 2 W承担,它运行着一个Java应用程序。该程序使用Pi4J库来直接控制GPIO引脚并与I2C设备通信,将采集到的数据存储在本地的H2数据库中,同时它还提供了GPS/NTP对时、事件调度以及一个基于模板的网页管理界面。
多个传感器被部署在各处,持续监测水位、饲料重量等关键指标,确保鸡群始终处于安全、饱足的状态。

水位传感器用于监测饮水供应。

通过感知饲料容器重量的变化来监控余量。

当天黑或检测到潜在威胁时,门会自动关闭,将鸡群保护在鸡舍内。
其余20%的工作则由一块ESP32开发板负责。它最初的角色仅仅是通过实时时钟中断,在可配置的时间点唤醒或休眠树莓派以节省电量。后来其功能得到扩展,现在还能检查门的位置和电机编码器的状态。由于ESP32兼容大量现成的Arduino示例代码,在将控制逻辑移植到Java和Pi4J之前,这些代码为Dave理解如何驱动某些特定组件提供了极大帮助。
项目总结与开源分享
Dave坦承,这个解决方案对于普通家庭养鸡来说可能过于复杂,性价比不高。但这确实实现了他心目中完全自动化管理鸡舍的理想方式。他目前没有将其商业化的计划,而是选择在Bitbucket上开源分享该项目的全部软件和硬件设计资料。
对于物联网和自动化项目感兴趣的开发者来说,SmartCoop是一个融合了硬件设计、传感器网络和上层应用开发的绝佳学习案例。如果你想探讨更多关于树莓派或Java在嵌入式领域的应用,欢迎到云栈社区的相关板块交流心得。