智能灌溉系统 - 电路图和代码
基于 Arduino 的智能灌溉系统
印度是一个 70% 的人口以农业为生的国家。如今,每项工作都可以通过使用机器以最简单的方式完成。毫无疑问,自动化提高了生产力并节省了大量时间和精力。灌溉是农业中最重要的部分,可以从您在该领域的投资中获得最大利润。但是,有几种机器可以供农民在农业领域使用,以减轻他们的工作量。不幸的是,由于成本高,农民买不起这种机器。他们所需要的只是一台简单、低成本、可轻松用于农业用途的机器。
在这篇文章中,我们将讨论使用低成本材料设计的智能且简单的灌溉系统。该灌溉系统的目的是检测土壤中的水分含量并自动运行电动泵。
除了农业领域,我们家还需要一个自动化的植物灌溉系统,以便在我们不在的时候照顾我们的植物。通过本文,我们将讨论智能灌溉系统项目的设计过程,该项目可用于在您舒适地坐在家中时自动给植物浇水。您可以使用这款智能灌溉系统设备定制浇水时间表和运行时间。
大约 50% 的水损失是由于传统灌溉系统效率低下导致的过度浇水。为了克服这个问题,我们将设计一个智能灌溉系统,它可以检查土壤中的水分含量并自动为植物供水。当电路在土壤中发现足够的水分时,电动泵就会启动。
另外,我们使用 GSM 模块定期更新您的土壤和水泵中的水分状况。该项目可靠性高,有助于消除田间灌溉过程中对人力的需求。
如上所述,我们使用土壤湿度传感器来感应土壤中的水分。在开始项目之前,让我们看一下电路中使用的主要组件,以帮助您清楚地了解电路的工作原理。
- 相关项目:自动植物浇水和灌溉系统 - 电路、代码和项目报告
土壤湿度传感器
土壤湿度传感器中有两个探头,用于测量土壤中水分的体积含量。这两个探头允许电流通过土壤,然后得到土壤中的水分值。
当土壤中有水存在时,电阻会变小,因此土壤会导电。因此,传感器感测到的湿度水平会更高。干燥的土壤是电的不良导体。当土壤中的水越少时,它会导电越少,因此电阻会越大。这就是水分含量会降低的原因。
技术规范:
- 输入电压 – 3.3-5V
- 输出电压- 0- 4.2 V
- 输入电流 - 35mA
- 输出电压 - 模拟/数字
土壤湿度传感器引脚:
- Vcc-电源
- A0- 模拟输出
- D0-数字输出
- GND-接地
相关项目:雨警报电路 - 雪、水和雨探测器项目
如前所述,土壤湿度传感器由两个用作探头的导电板组成。由于土壤湿度传感器只是充当两个导电板。第一个板连接到+5v电源。第二块板直接接地。输出直接取自土壤湿度传感器引脚的第一端。
土壤湿度传感器的工作原理是开路和闭路。当土壤干燥时,没有电流流过它,它就像一个开路一样工作。当土壤潮湿时,电流将开始从一个端子流向另一个端子,形成闭合电路。我们已将湿度传感器与 Arduino UNO 板连接起来。我们将在本文后面部分讨论电路的接口和仿真代码。
- 相关项目:水位指示器电路图 - 两个简单项目
土壤湿度传感器的应用:
该设备可用于家庭花园和草坪,以消除手动植物浇水过程的需要。可用于室内植物定期供水灌溉。
这个项目的第二个最重要的部分是GSM模块,它与Arduino微控制器一起用于通信。
TTL SIM800 GSM 模块:
我们在灌溉系统项目中使用了 SIM800 GSM 模块,并与 Arduino 接口发送和接收消息。 GSM 模块基本上是一个 GSM 调制解调器。该设备与 PCB 连接以从板上获取不同类型的输出。在我们的项目中,我们将 GSM 模块与 Arduino 接口,并采用 TTL 输出。该四频 GSM 模块的工作频率范围为 GSM 850MHz、EGSM 900MHz、DCS 1800MHz 和 PCS 1900MHz。 GSM 模块与 Arduino 和微控制器高度兼容。 TTL SIM800 GSM 模块组装成 24*24*3mm 尺寸,几乎适合所有设备,如智能手机 PDA 等。
在亚洲,大多数手机运营商都在 900 MHZ 频段运营。 GSM 模块是通过将单个 GSM 调制解调器连接到 PCB 来制造的。然后提供 RS232 输出。在为您的设备选择合适的 GSM 模块之前,请务必仔细检查项目中的 GSM 电源要求。此外,始终选择启用 TTL 的输出引脚直接与 Arduino 接口,没有任何不便。
- 相关项目:智能家居自动化系统 - 电路和源代码
技术规范:
- 基于四频段
- 所需电压 -9VDC-12 VDC
- 电源 - 基于开关稳压器
- 所需电源 - 1 MA
- 工作温度 - -40 TO + 85 摄氏度
GSM 800模块特点:
- 编码方案 - CS-1、CS-2、CS-3、CS-4 发射功率
- 耗电量低
- 配备包括麦克风输入和接收器输出的音频通道
现在您对土壤湿度传感器和 GSM 模块这两种设备的工作有了很好的了解。接下来,您必须将这两个组件与 Arduino 微控制器接口。
- 相关文章:智能 WiFi 断路器 - 构造、安装和工作
Arduino UNO 板
在揭开 Arduino UNO 板的细节之前,让我们让您知道市场上有各种版本的 Arduino 板,即 Arduino mega、Arduino Due 等。我们使用过Arduino UNO 在我们的项目中,因为它是最便宜和最容易连接微控制器的。该微控制器由 14 个数字 I/O 引脚和 6 个模拟引脚组成。 Arduino UNO 微控制器还支持使用 TX 和 Rx 引脚的串行通信。使用Arduino最大的好处就是可以根据自己的需求对软件和Arduino板进行优化和修改。
将土壤湿度传感器和 GSM 模块与 Arduino 连接
这个电路的接口很简单。您只需要按照电路图进行操作即可。
首先,将土壤湿度传感器的模拟引脚连接到Arduino的模拟引脚1。现在,将传感器的 VCC 和 GND 连接到 Arduino 的 5V 和 GND。
接下来,在模块中插入一张sim卡。现在,您需要将 GSM 模块与电源连接。我们使用的是 12V 的模块,如果你有一个 5V 的模块,那么你可以直接用 Arduino 的 5V 给它供电。连接 12V 电源,如电路图所示。现在,将模块的 GND 引脚与 Arduino 的 GND 连接起来。将模块的 ST 引脚与 Arduino 的数字引脚 9 连接,将模块的 SR 引脚与 Arduino 的数字引脚 10 连接。我们还连接了 LCD 以显示检测到的湿度水平。按照电路图连接LCD,同时连接一个电位器来控制LCD的对比度。
- 相关项目:使用 Arduino 和超声波传感器进行距离测量
使用继电器驱动图连接继电器和晶体管。
现在收集列表中提到的以下组件并按照电路图连接电路:
- Arduino UNO 板
- GSM 模块
- 连接线
- 晶体管
- 16×2 液晶显示屏
- 电源
- 接力
- 泵
- 土壤湿度传感器
- 电阻器
- 终端连接器
- 稳压器
编程代码说明
这个项目的编程部分非常简单。首先,我们需要为 LCD 和湿度传感器定义库。在下一行中,我们定义了传感器的发送器和接收器引脚,它们分别连接到数字引脚 9 和 10:
#include
#include
SoftwareSerial mySerial(9,10);
现在,我们已经定义了一些变量来使用它们而不是使用引脚号:
int M_Sensor = A0;
int W_led = 7;
int P_led = 13;
在下一行,我们定义了连接到 Arduino 的 LCD 引脚:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
在设置函数中,首先我们使用 lcd.begin() 函数初始化 LCD,使用 mySerial.begin() 函数初始化湿度传感器。我们已经通过了 16,2,因为 LCD 有 16 列和 2 行,这表明我们将使用整个 LCD。接下来,我们将数字管脚13的管脚模式初始化并定义为输出,连接到泵状态LED和继电器,管脚7为输入管脚,连接到水位LED。
void setup()
{
lcd.begin(16, 2);
mySerial.begin(9600);
pinMode(7,INPUT);
pinMode(13,OUTPUT);
}
现在,进入循环函数。在第一行中,我们已经清除了 LCD,以便如果有任何先前的输出被清除。在下一行中,我们获取湿度传感器值并将其存储在名为“Moist”的变量中:
lcd.clear();
int Moist = analogRead(M_Sensor);
在接下来的几行中,我们介绍了干燥、潮湿和潮湿土壤的条件:
if (Moist> 700) // for dry soil
{
lcd.setCursor(11,0);
lcd.print("DRY");
lcd.setCursor(11,1);
lcd.print("SOIL");
if (digitalRead(W_led)==1) //test the availability of water in storage
{
digitalWrite(13, HIGH);
lcd.setCursor(0,1);
lcd.print("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");
mySerial.println(“AT+CMGF=1”);
delay(1000);
mySerial.println(“AT+CMGS=\”NUMBER”\r”);
delay(1000);
mySerial.println(“PUMP:OFF”);
delay(100);
mySerial.println((char)26);
delay(1000);
}
}
if (Moist>= 300 && Moist<=700) //for Moist Soil
{
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");
mySerial.println(“AT+CMGF=1”);
delay(1000);
mySerial.println(“AT+CMGS=\”NUMBER”\r”);
delay(1000);
mySerial.println(“PUMP:OFF”);
delay(100);
mySerial.println((char)26);
delay(1000);
}
if (Moist < 300) // For Soggy soil
{
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");
mySerial.println(“AT+CMGF=1”);
delay(1000);
mySerial.println(“AT+CMGS=\”NUMBER”\r”);
delay(1000);
mySerial.println(“PUMP:OFF”);
delay(100);
mySerial.println((char)26);
delay(1000);
}
delay(1000);
}
- 相关文章:使用 Arduino UNO 的可变电源 - 电路和代码
自动灌溉系统的工作
自动灌溉系统的工作非常简单易懂。在这个项目中,Arduino 用于控制电路的整个工作。首先,当土壤中不存在水分时,土壤传感器的两个探头之间将存在传导。结果,晶体管将保持在导通状态。此外,Arduino 的 pin13 将保持低电平。之后,由于土壤湿度正常,Arduino 会向用户发送消息。电机关闭”。在这种情况下,电动泵将保持“关闭”状态。
当土壤中没有水分时,晶体管 Q2 变为 OFF。此外,引脚 D7 变高。因此,Arduino send 启动水泵并将消息发送给用户,因为检测到低湿度。电机开启。同样,当土壤湿度传感器检测到土壤中有足够的水分时,电动泵将自动关闭。
- 相关项目:自动浴室灯开关电路图及操作
智能灌溉系统特点
这款智能灌溉系统满足理想灌溉系统的所有标准。一些有利可图的功能是:
- 这种智能灌溉系统可轻松适应天气状况并相应地感应水分以操作水泵
- 土壤湿度传感器通过感应土壤中存在的水分轻松感应高水流,因此会自动关闭和启动
- 使用智能灌溉系统,您无需前往田间,即可远程管理水流
- 与电路相连的液晶显示器定期显示土壤水分数据,可用于记录不同情况下的水分
相关项目:Arduino 带有物体检测功能的自动门铃
底线
智能灌溉系统 在生产力和可靠性方面也非常有用。此外,该设备易于设计,并且可以使用容易获得的电子元件进行组装。软件中使用的 Arduino 微控制器非常流行,可以轻松连接,没有任何不便。我们使用土壤湿度传感器来感知土壤中的水分。
本项目使用GSM模块通过手机发送信息通知用户。我们还用Arduino描述了所有组件的工作和接口方法。我们希望您现在能够设计出这种低成本的智能灌溉系统,以在您的日常生活中节约用水。
相关项目:
- 如何制作三倍压电路?
- 电子学最后一年项目创意列表
- 工科学生的电子工程项目构想
- 适合初学者的简单基本电子迷你项目创意
- 更多电气和电子工程项目
工业技术