基于Arduino的智能灌溉系统:电路图与代码实现高效农业
基于Arduino的智能灌溉系统
印度70%人口以农为生。机械化让一切更轻松,自动化提产、省时、省力。灌溉是农业增产关键,但现有农机成本高、农民难负担。农民需要低成本、易操作的农用设备。
本文介绍基于低成本材料的智能灌溉系统:检测土壤湿度,自动控制水泵。
除农田,家庭养花也需自动灌溉。本文详述智能灌溉系统设计流程,让您足不出户定制浇水计划与时长。
传统灌溉因过度浇水导致约50%水资源浪费。本系统检测土壤湿度自动供水,湿度达标自动停泵。
引入GSM模块定时推送土壤湿度与水泵状态,极大降低人工依赖,可靠性高。
核心器件:土壤湿度传感器。先了解主要组件原理:
- 相关项目:自动植物浇水灌溉系统——电路、代码与项目报告
土壤湿度传感器
双探针测土壤容积含水率。探针通电测土壤导电性:湿土导电好、电阻小、传感器读数高;干土导电差、电阻大、读数低。

技术规格:
- 输入电压:3.3-5V
- 输出电压:0-4.2V
- 输入电流:35mA
- 输出模式:模拟/数字
引脚定义:
- VCC - 电源正
- A0 - 模拟输出
- D0 - 数字输出
- GND - 地
相关项目:雨水/雪/水检测报警电路
传感器双导电板作为探针工作。一板接+5V,一板接地,输出取自第一板端子。原理:干土开路,湿土导通。已与Arduino UNO对接,后文详述接口与仿真代码。
- 相关项目:水位指示器电路图——两个简易项目
应用场景:
家庭花园/草坪自动浇水;室内植物定时灌溉。
第二核心部件:GSM模块配合Arduino实现通信。
TTL SIM800 GSM模块
采用SIM800模块对接Arduino收发短信。GSM模块本质是GSM猫,经PCB引出多种输出。本项目取TTL电平直连Arduino。四频段:GSM 850/EGSM 900/DCS 1800/PCS 1900MHz。高兼容性,24×24×3mm超薄封装适配各类设备。
亚洲运营商多用900MHz频段。模块由单个GSM猫+PCB组成,提供RS232输出。选型前核对功耗需求,优先选TTL输出引脚直连Arduino免电平转换。
- 相关项目:智能家居自动化系统——电路与源码
技术规格:
- 四频段
- 供电电压:9-12VDC
- 开关稳压供电
- 功耗:1mA
- 工作温度:-40至+85℃
SIM800特性:
- 编码制式:CS-1/2/3/4 Tx功率
- 低功耗
- 内置音频通道(麦克风输入/接收器输出)
掌握两器件原理后,下一步对接Arduino单片机。
- 相关阅读:智能WiFi断路器——结构、安装与工作原理
Arduino UNO开发板
市面Arduino版本众多(Mega、Due等)。本项目选UNO:最廉价、最易对接。14路数字I/O、6路模拟输入,支持TX/RX串口通信。最大优势:软硬件均可按需优化修改。
土壤湿度传感器与GSM模块对接Arduino
接线按电路图:
- 传感器模拟脚接Arduino A1;VCC/GND接5V/GND。
- 模块装SIM卡,接电源(12V模块需外部12V,5V模块可直取Arduino 5V)。模块GND接Arduino GND。ST脚接Arduino D9,SR脚接D10。
- 接16×2 LCD显示湿度,电位器调对比度(按电路图)。
- 按继电器驱动图接继电器与三极管。
所需元件清单:
- Arduino UNO
- GSM模块
- 连接线
- 三极管
- 16×2 LCD
- 电源
- 继电器
- 水泵
- 土壤湿度传感器
- 电阻
- 接线端子
- 稳压芯片

代码逻辑解析
编程简易。引入LCD库与传感器库,定义发射/接收脚(D9/D10):
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(9,10);
定义变量替代引脚号:
int M_Sensor = A0;
int W_led = 7;
int P_led = 13;
定义LCD引脚:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
setup初始化LCD(16列2行)、串口波特率9600,设D13输出(泵状态LED/继电器)、D7输入(水位LED):
void setup() {
lcd.begin(16, 2);
mySerial.begin(9600);
pinMode(7, INPUT);
pinMode(13, OUTPUT);
}
loop中清屏、读取模拟值存Moist:
lcd.clear();
int Moist = analogRead(M_Sensor);
三档阈值判断:
if (Moist > 700) { // 干土
lcd.setCursor(11,0); lcd.print("DRY");
lcd.setCursor(11,1); lcd.print("SOIL");
if (digitalRead(W_led)==1) { // 水箱有水
digitalWrite(13, HIGH);
lcd.setCursor(0,1); lcd.print("PUMP:ON");
// GSM发送"PUMP:ON"
mySerial.println("AT+CMGF=1"); delay(1000);
mySerial.println("AT+CMGS=\"NUMBER\"\r"); delay(1000);
mySerial.println("PUMP:ON"); delay(100);
mySerial.println((char)26); delay(1000);
} else { // 缺水
digitalWrite(13, LOW);
lcd.setCursor(0,1); lcd.print("PUMP:OFF");
// GSM发送"PUMP:OFF"
...
}
}
if (Moist >= 300 && Moist <= 700) { // 湿润土
lcd.setCursor(11,0); lcd.print("MOIST");
lcd.setCursor(11,1); lcd.print("SOIL");
digitalWrite(13, LOW);
lcd.setCursor(0,1); lcd.print("PUMP:OFF");
// GSM发送"PUMP:OFF"
...
}
if (Moist < 300) { // 过湿/积水
lcd.setCursor(11,0); lcd.print("SOGGY");
lcd.setCursor(11,1); lcd.print("SOIL");
digitalWrite(13, LOW);
lcd.setCursor(0,1); lcd.print("PUMP:OFF");
// GSM发送"PUMP:OFF"
...
}
delay(1000);
- 相关阅读:Arduino UNO可调电源——电路与代码
自动灌溉系统工作流程
Arduino全程控制。无湿度时探针不导通,三极管导通,D13低电平,Arduino发"土壤湿度正常,水泵关闭",水泵OFF。干旱时三极管截止,D7高电平,Arduino启泵发"检测到低湿度,水泵开启"。湿度达标传感器检测到自动停泵。
- 相关项目:Arduino超声波测距
智能灌溉系统亮点
- 自适应天气感知湿度自动控泵
- 传感器感知大水流自动启停
- 远程管理水流,无需下地
- LCD实时显示湿度数据,便于记录不同时刻湿度变化
相关项目:Arduino物体检测自动门铃
总结
智能灌溉系统在生产力与可靠性上表现优异。易设计、元件易得。Arduino生态成熟、对接便捷。土壤湿度传感器监测湿度,GSM模块短信告警,全流程接口与工作原理已详述。愿您能DIY此低成本系统,节水护绿。
相关项目:
- 如何制作三倍压电路?
- 电子毕设创意清单
- 电子工程毕设创意
- 初学者电子小制作创意
- 更多电气电子工程项目
工业技术
- Arduino Yun + Sharp Plasmacluster 智能空气净化器系统
- Helium + DFRobot 无线土壤湿度传感器:实时植物养护监测
- 掌握串联 RLC 电路分析:从阻抗到 KVL
- 555定时器电路设计:1-15分钟延时电路原理图、计算与应用
- 自动植物浇水灌溉系统:电路设计、代码与项目报告
- 多线缆测试电路设计全攻略:原理、元件与PCB布局指南
- VL53L0X激光测距传感器:引脚、电路、规格与实战应用
- HDC2080数字湿温传感器:电路图、规格与应用
- 土壤湿度传感器:工作原理与实用应用
- 压电换能器详解:工作原理、电路设计与实用应用
- AI 增强数码相机革新土壤湿度监测
- 精密微带电路与材料表征系统用于超导薄膜