littlebot
Published on 2025-04-12 / 1 Visits
0

【源码】基于Arduino的自动植物浇水系统

项目简介

AutoWater是借助Arduino板实现自动化浇水的项目。该项目利用电容式土壤湿度传感器测量土壤湿度,当湿度低于设定阈值时,触发常闭的电磁阀,向盆栽中泵水,为植物提供适宜的水分。

项目的主要特性和功能

  1. 能准确测量土壤湿度并实时显示读数。
  2. 可自动控制电磁阀进行浇水操作。
  3. 支持校准土壤湿度传感器,使湿度读数更精准。
  4. 可通过串行监视器查看系统状态和湿度读数,便于用户监控。

安装使用步骤(假设用户已经下载了本项目的源码文件)

所需材料

  • Arduino Uno板或兼容板,搭配9V电源供应。
  • TIP 120晶体管。
  • 1N4007二极管。
  • 1k欧姆电阻。
  • 模拟电容式土壤湿度传感器(V1.0)。
  • 面包板。
  • 10根以上跳线。
  • 2个鳄鱼夹。
  • 电磁阀。
  • 10英尺的塑料管。
  • 1盆盆栽植物。

具体操作步骤

  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)。
    • 向植物缓慢加水,传感器读数应逐渐降低以确保传感器正常工作。
  2. 校准土壤湿度传感器(可选)
    • 按上述步骤设置好传感器进行测试,准备一杯水。
    • 擦干传感器,运行MoistureSensorTest.ino,记录传感器在空气中的读数作为0%湿度值。
    • 将传感器浸入水中至白色水平线,待读数稳定后记录作为100%湿度值。
    • 打开Arduino IDE,将全局变量DEBUG的值从0改为1,把AIR_VALUEWATER_VALUE分别修改为记录的0%和100%湿度值,设置INTERVAL(AIR_VALUE - WATER_VALUE)/4(结果取整)。
    • 保存代码并重新上传到Arduino板,再次测试,输出应显示如“Humidity: >50%”的信息。
  3. 设置并测试电磁阀
    • 参考项目文档中的“电磁阀设置图”进行连接,连接时注意引脚不与湿度传感器测试时的引脚冲突。
    • 打开IDE,连接Arduino板到电脑,上传SolenoidTest.ino文件,靠近电磁阀应能听到每秒一次的开启声音。
    • 断开Arduino板连接,将一段短的水族管一端插入电磁阀,另一端放入水容器或泵中,另一段管插入电磁阀另一端并放入水桶。
    • 重新连接Arduino板并运行SolenoidTest.ino,电磁阀应每秒开启和关闭一次,将水排入水桶。
  4. 整合系统并运行
    • 若上一步未拔掉湿度传感器,可直接进行此步骤;若拔掉了,按连接湿度传感器的步骤重新连接,同时保留电磁阀的连线。
    • 将湿度传感器放入土壤,将水管出水口对准植物,但不要直接对着传感器。
    • 打开AutoWater.ino文件,根据湿度传感器校准值修改代码,设置DEBUG值以控制日志级别(0为最小日志,1为正常日志,2为最大日志且禁用实际浇水功能)。
    • 将修改后的文件上传到Arduino板,打开串行监视器,应立即看到湿度传感器读数。若读数过低且DEBUG < 2,系统将自动为植物浇水。
    • 根据植物需水情况调整代码中的时间变量,让植物得到合适的照顾。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】