亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

智能城市植物灌溉系统:基于传感器的自动化浇水方案

组件与物料

组件 数量 备注
土壤湿度传感器 2 任意模拟输出型均可;两电极分压电路亦可替代(可选)
雨滴传感器 1
牛奶瓶(水箱) 1 任何可盛水、可剪裁、可固定的容器;需安装在高处
软质塑料软管 1 任意管材;作者剪去两端的跳绳中空部分
杜邦线 37 视实际布线而定
SparkFun Arduino 101 发明者套件 1 含 Arduino 101、舵机、面包板、电位器、LCD
塑性粘土 1 用于密封管口
短塑料杆 1 支撑出水管,防弯折
330 Ω 电阻 1

所需工具

软件与在线服务

项目详解

智能城市植物灌溉系统:基于传感器的自动化浇水方案

本装置旨在改善城市环境下的植物灌溉。基于 Arduino 101,结合板载资源与外部传感器,自动计算最佳浇水时机并执行浇水。核心原理包含三部分:

1. 重力与水压驱动供水

智能城市植物灌溉系统:基于传感器的自动化浇水方案

以牛奶瓶为水箱,配合软管、粘土密封及舵机控制。水箱置于高处,既可接收雨水,也可人工注水。重力使水流经底部出水口,舵机臂平时竖直堵住管口,浇水时转动 135° 放行,浇完复位。水压既稳固水箱又助推水流,保证持续出水。

2. TMP36 温度传感器 + Intel Curie 模式匹配引擎 (PME)

智能城市植物灌溉系统:基于传感器的自动化浇水方案

最佳浇水温度约 25°C。系统每小时采样 30 次(间隔 2 分钟),去除首次读数后取平均值,送入 PME 学习。PME 是 Arduino 101 内置的 128 神经元神经网络,能对向量数据分类。每天 8:00–21:00 记录 14 个时段的平均温度,训练后将 25°C 对应的类别(即小时数)作为次日浇水时刻。首次运行将数据存入板载串行 Flash,掉电保持;后续每天重新学习并更新浇水时间。若 PME 无法分类,则退回各月经验峰值时刻(如冬季 12:00,夏季 16:00)。

3. Intel Curie 实时时钟 (RTC) + 蓝牙低功耗 (BLE)

智能城市植物灌溉系统:基于传感器的自动化浇水方案

RTC 负责定时采样、浇水及月份判断。首次上电需手动校准时间,通过 BLE 由手机 App (nRF Connect) 以十六进制依次写入:确认字节、时、分、日、月。Arduino 101 作为外设接收数据。

硬件制作步骤

  1. 按 Fritzing 图接线(土壤湿度传感器可选;雨传感器与舵机引线可能需延长)。
  2. 电池供电时:两组 4×AA 电池盒串联,正负极相连,用电工胶带捆绑,盖子合为一体,预留开关口;粘贴在 Arduino 底部,便于抽换。
  3. 将主板放入手工篮,侧面开两槽:一为编程/USB 供电,一为外设引线出口。
  4. 剪去牛奶瓶上部,底部钻孔插入软管,粘土密封上下管口。
  5. 舵机固定于瓶底,舵机臂绑扎软管中段与塑料杆,杆上端也固定软管。
  6. 水箱固定在高处台面。
  7. 植物置于出水口正下方;土壤湿度传感器插入盆土(可选),雨传感器贴地放置;外设插入主板,主板稍离水箱与植物。

编程与运行

使用 Arduino IDE(Curie Core 2.0.2+)烧录附件代码。首次上电等待 BLE 连接,通过 nRF Connect 依次发送十六进制时间数据,断开后系统等待次日 8:00 开始学习。若 Flash 已有数据则直接用作浇水时刻,否则进行为期 14 小时的采样学习。浇水时检测雨天或土壤过湿(可选)则跳过当天。循环往复,实现全自动优化灌溉。

代码

Arduino 101 灌溉系统主程序

需安装 CuriePME 库(GitHub),其余库 IDE 自带。代码含详细注释,此处仅展示关键片段:

/* 城市灌溉方案:利用 CuriePME 学习温度并分类最佳浇水条件 (25°C),
   在该时刻浇水,随后遗忘重学,循环执行。 */
#include "CuriePME.h"
#include <CurieBLE.h>
#include <CurieTime.h>
#include <SerialFlash.h>
#include <SPI.h>
#include <LiquidCrystal.h>
#include <Servo.h>

Servo waterPipe;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#define THERMOMETER A3
#define RAIN_SENSOR 1
#define HUMIDITY1 A4
#define HUMIDITY2 A1

// ... 变量定义、BLE 服务与特征值设置 ...

void setup() {
  waterPipe.attach(9); waterPipe.write(0);
  pinMode(RAIN_SENSOR, INPUT);
  lcd.begin(16, 2); lcd.clear();
  // BLE 初始化,广播 "Arduino 101",等待手机写入时间
  // 读取 Flash,决定是否首次学习
  // 首次学习:8:00-21:00 每小时采样 30 次,取平均送入 PME,最后保存到 Flash
}

void loop() {
  // 每天循环:用 PME 分类 25°C,得出类别即浇水小时;
  // 无匹配则用月度默认值;随后遗忘 PME,等待 8:00 重新学习
  // 浇水时检查雨传感器与土壤湿度,满足条件则舵机转动 135° 持续 7 秒
}

完整代码请下载附件 Arduino 101 Irrigation System.ino。

原理图

Fritzing 电路图(电池接左侧,土壤湿度传感器可选):

rainpoweredsmartirrigationsystem_OHtd4bVfb3.fzz

制造工艺

  1. 钛:关键性能、应用领域与工业用途全解析
  2. 响板:历史、工艺与演奏
  3. 胶水的历史、生产与未来:从古老粘合剂到现代创新
  4. 缝纫线:类型、历史、生产与质量控制
  5. 乙炔:生产、用途与操作安全全览
  6. 石棉全景:从古代用途到现代健康风险
  7. 骰子的历史、设计与制造:从古代工具到现代游戏
  8. 胶合板:历史、生产与前行之路
  9. 锡:从青铜时代到现代工业——用途、生产与未来
  10. 银:历史、特性与现代应用
  11. 树莓派自动浇水系统:土壤湿度监测 + Web 仪表盘远程控制
  12. 西门子与Bentley联合推出方案,加速电厂数字化