项目简介
AutoWater是借助Arduino板实现自动化浇水的项目。该项目利用电容式土壤湿度传感器测量土壤湿度,当湿度低于设定阈值时,触发常闭的电磁阀,向盆栽中泵水,为植物提供适宜的水分。
项目的主要特性和功能
- 能准确测量土壤湿度并实时显示读数。
- 可自动控制电磁阀进行浇水操作。
- 支持校准土壤湿度传感器,使湿度读数更精准。
- 可通过串行监视器查看系统状态和湿度读数,便于用户监控。
安装使用步骤(假设用户已经下载了本项目的源码文件)
所需材料
- Arduino Uno板或兼容板,搭配9V电源供应。
- TIP 120晶体管。
- 1N4007二极管。
- 1k欧姆电阻。
- 模拟电容式土壤湿度传感器(V1.0)。
- 面包板。
- 10根以上跳线。
- 2个鳄鱼夹。
- 电磁阀。
- 10英尺的塑料管。
- 1盆盆栽植物。
具体操作步骤
- 连接并测试土壤湿度传感器
- 在
tests
目录下找到MoistureSensorTest.ino
文件用于测试。 - 将湿度传感器放入盆栽植物,使白色水平线不被淹没,土壤高度距此线约1英寸。
- 用3根跳线(红、黑、蓝)连接传感器与Arduino板,红色接5V引脚,蓝色接模拟0引脚,黑色接地引脚(GND)。
- 连接Arduino板到电脑,打开Arduino IDE,上传
MoistureSensorTest.ino
文件,若有权限问题,参考错误信息执行相应命令,如sudo chmod a+rw /dev/ttyACM0
。 - 上传成功后,在IDE的“Tools”菜单中选“Serial Monitor”查看传感器读数,若显示乱码,确保监视器波特率与代码中设置一致(默认9600 Bd)。
- 向植物缓慢加水,传感器读数应逐渐降低以确保传感器正常工作。
- 在
- 校准土壤湿度传感器(可选)
- 按上述步骤设置好传感器进行测试,准备一杯水。
- 擦干传感器,运行
MoistureSensorTest.ino
,记录传感器在空气中的读数作为0%湿度值。 - 将传感器浸入水中至白色水平线,待读数稳定后记录作为100%湿度值。
- 打开Arduino IDE,将全局变量
DEBUG
的值从0改为1,把AIR_VALUE
和WATER_VALUE
分别修改为记录的0%和100%湿度值,设置INTERVAL
为(AIR_VALUE - WATER_VALUE)/4
(结果取整)。 - 保存代码并重新上传到Arduino板,再次测试,输出应显示如“Humidity: >50%”的信息。
- 设置并测试电磁阀
- 参考项目文档中的“电磁阀设置图”进行连接,连接时注意引脚不与湿度传感器测试时的引脚冲突。
- 打开IDE,连接Arduino板到电脑,上传
SolenoidTest.ino
文件,靠近电磁阀应能听到每秒一次的开启声音。 - 断开Arduino板连接,将一段短的水族管一端插入电磁阀,另一端放入水容器或泵中,另一段管插入电磁阀另一端并放入水桶。
- 重新连接Arduino板并运行
SolenoidTest.ino
,电磁阀应每秒开启和关闭一次,将水排入水桶。
- 整合系统并运行
- 若上一步未拔掉湿度传感器,可直接进行此步骤;若拔掉了,按连接湿度传感器的步骤重新连接,同时保留电磁阀的连线。
- 将湿度传感器放入土壤,将水管出水口对准植物,但不要直接对着传感器。
- 打开
AutoWater.ino
文件,根据湿度传感器校准值修改代码,设置DEBUG
值以控制日志级别(0为最小日志,1为正常日志,2为最大日志且禁用实际浇水功能)。 - 将修改后的文件上传到Arduino板,打开串行监视器,应立即看到湿度传感器读数。若读数过低且
DEBUG < 2
,系统将自动为植物浇水。 - 根据植物需水情况调整代码中的时间变量,让植物得到合适的照顾。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】