利用动态水循环,具有下雨探测,日出探测功能,智能灌溉你的院子或花园。
一定要看文章最后哦,结尾有惊喜!
部件和材料
- Arduino NANO开发板 1块
- IO扩展板 1块
- IO扩展模块包 1套
app和在线服务
项目背景
使用Arduino创建智能灌溉控制器
智能灌溉您的院子或花园用动态水循环。如果正在下雨,或者自从上次浇水后就已经下雨了,不要再给院子浇水了。使用光传感器检测日出时间,并自动调整水开始时间。如果天气太冷,就停止给院子浇水。
功能列表
- 户外温度传感器
- 户外下雨传感器
- 户外光照传感器
- 有电池的RTC支持按周的灌溉调度
- 非易失性存储-永远不会因为断电而丢失灌溉设置参数
- 日出检测
- 智能的浇水可以节省你的水费
- 日出前浇水,留出适当的渗透时间
- 减少真菌生长
- 简单的调度控制
制作智能灌溉控制器所需的零件清单
- IO扩展板 1块
- 单总线转I2C 2块
- 单线连接器 1个
- 光纤连接器 1个
- 光分路器 1个
- Arduino Nano开发板 1块
- 4路直流5V继电器
- TSL2561光传感器
- DS18B20防水温度传感器
- 光学红外水位传感器
- DS3231 AT24C32 IIC精密实时时钟
- I2C SSD1306 OLED 128x64显示屏
- 透明防水塑料外壳200x120x75mm
- 透明防水塑料外壳100x68x50mm
- ip68 pg7防水尼龙电缆盖
- ip68 pg11防水尼龙电缆盖
- RJ11 螺钉接线端子
- 50英尺4C4P RJ11线
- 6" 4C4P RJ11线
- 2.54毫米接头线
- 2引脚SPST瞬时微动按钮开关 2个
- 12VDC 1A适配器电源
接线图
OLDE显示屏
点击Menu按钮显示菜单,并继续点击此按钮循环完成所有菜单选项。如果30秒没有操作这个菜单将会自动返回。按下选择按钮以执行所需的菜单功能。
那么为什么使用IO扩展器呢?
- 设计更简单
- 现成的零件
- 不需要编写单线驱动程序
- 不需要编写DS3231 RTC驱动程序
- 不需要编写EEPROM 驱动程序
- 不需要编写OLED驱动程序
- 没有显示字体占用Arduino代码空间
- 不需要编写温度传感器驱动程序
- 不需要编写光学雨感测器驱动程序
- 节省Arduino上的代码空间;只有12710字节(39%)
- 只要三天的时间来写代码
- 易于电线使用标准的RJ11电话电缆
- 无传感器电缆长度问题
- 比类似的商业系统更便宜
- 易于进行更改以适应个别需求
- 单电源供电
系统构建
将Arduino Nano连接到IO扩展器,并使用以下代码对其进行编程。6 pin头是软件的串行调试端口,在最终的安装中是不需要的。
确保您更改了ONEWIRE_TO_I2C_ROM1和ONEWIRE-TO_I2C_ROM2定义的地址,使您的单总线地址与I2C地址相匹配。
注意:如果您使用USB端口来给Arduino Nano编程,您必须断开它与IO扩展器的连接,因为它也使用相同的单一串行端口,相反,如果您想调试使用ICSP端口来编程ATmega328P。要启用软件调试端口,请取消对SERIAL_DEBUG定义的注释。
分配器必须首先配置为将光学红外传感器数据线与单线远程传感器线隔离。在R2处焊接零欧姆0603电阻。
- 在小外壳上钻一个7/16"孔,在较大的外壳的右侧钻一个11/16"的孔,用来装PG7和PG11防水接线端。使用达美电磨工具稍微扩大孔,直到压盖盖紧。PG7将为远程传感器、PG11提供12VDC、24VAC、多种电线和RJ11远程传感器电线。
将SPST轻触按钮微动开关接上RJ11螺丝端子。使用热收缩管绝缘接触端。
连接所有电线和组装/馈送所有部件到大外壳。将所有部件装到大外壳里,并连接所有导线。
用于连接远程传感器的50英尺的RJ11电缆应该刚好穿过PG11防水头,而不必剪断它。
在小外壳的顶部钻一个9/16英寸的孔,用于安装光学红外水传感器。使用达美电磨工具稍微把孔扩大一点,直到传感器安装到位。小型远程传感器与外壳紧密贴合,但是如果传感器是按照推荐的方向放置的,那么它应该刚好合适。使RJ11电缆尽可能短将有助于把它塞进更小的外壳。组装完成后,建议在拧上螺母之前在压盖螺母垫圈中添加一些防水胶,将会有更好的密封效果。
在屋外安装远程传感器器外壳,并将其升高到您房子的东侧,同时使光学红外雨传感器和光照度传感器指向天空,中间不要有任何障碍物。
在大外壳的顶部靠中间靠下的位置钻1/4“的孔,然后安装按钮。使用达美电磨工具稍微扩大孔,直到按钮安装到位。
测试系统,确保一切正常。要测试继电器和传感器,请断开Arduino与IO扩展器的连接,并将其直接连接到您的计算机以手动控制它。一旦您确认一切正常,使用双面胶带和包装泡沫将所有部件组装到外壳中,以保护您的电路板,并享受智能灌溉控制器带来的好处和节约用水。
完整代码
使用你的Arduino智能浇灌你的院子或花园。
/* IO Expander sketch optimized
为了让更多电子、嵌入式爱好者认识Arduino,学习Arduino编程,加入到Arduino开源编程的大家庭,本人业余时间自制了一些Arduino NANO开发板。将免费赠送给那些一直关注我的文章的读者和粉丝,只要将我的专栏或任意一篇Arduino的文章分享到10个群或转发给20个人,就可以联系我,获得免费的Arduino NANO开发板一块。