基于arduino的土壤湿度检测以及水泵浇水(包含proteus仿真)
最新推荐文章于 2024-10-12 19:44:06 发布

我怎会不珍惜你 于 2022-04-28 10:31:05 发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
proteus中没有arduino中土壤传感器所需的继电器以及四线制模块,因此我从其他地方找到原理图
上图便是四线制模块的原理图,其中的SOIL SIMULATED RESISTANCE为土壤的模拟电阻,及两脚式土壤湿度检测器的接入端,变阻器用来调节灵敏度

上图为水泵系统,jqc3ff继电器的原理图,RL4为普通的继电器,开关转换的电压阈值可调。
若13处输入高电平,经三极管后与VCC形成电势差,最终吸附开关使电机断开,因此为低通。
总电路图

另外,arduino开发板需要二进制代码:
#include <Servo.h>
int sensorpin = 4; //传感器引脚 有水为0;无水为1
float pumpin = 13; //水泵引脚 低电平触发 digitalWrite(8,LOW);
int var;
int var2;
int var3;
int sensorpin2 = A0;
void setup() {
Serial.begin(9600);
pinMode(sensorpin, INPUT);
pinMode(sensorpin2, INPUT);
pinMode(pumpin, OUTPUT);
digitalWrite(pumpin, HIGH); //水泵关闭
}
void loop() {
var = digitalRead(sensorpin);
var2 = digitalRead(pumpin);
var3 = analogRead(sensorpin2);
Serial.print("var3:");
Serial.println(var3);
//如果传感器检测值为1表示没水;0表示有水
if (var == 1 && var3 > 300)
{
Serial.print(var);
Serial.println("缺水状态!");
digitalWrite(pumpin, LOW); //水泵打开
Serial.println("水泵状态-打开");
delay(5000);//浇水的时间是10秒
digitalWrite(pumpin, HIGH); //水泵关闭
Serial.println("水泵-关闭");
}
else
{
digitalWrite(pumpin, HIGH);
Serial.print(var);
Serial.println("不缺水状态!");
Serial.println("水泵-关闭");
}
delay(10000);//十秒钟扫描一次;
Serial.flush();
//delay(36000000);//10小时扫描一次
while(Serial.available() > 0)
Serial.read();
}
代码块是从别处搬来的稍微改动了一下,代码块还是需要用arduino IDE来编译,最终导出二进制文件,双击proteus的arduino UNO可以看到添加二进制文件的地方(.hex)

感谢观看!!!
相关知识
基于STM32的土壤湿度检测自动浇水系统proteus仿真设计(仿真+程序+设计报告+讲解视频)
Arduino与水泵实验+土壤湿度传感器
51单片机的花卉、农田自动浇水灌溉系统开发,Proteus仿真,原理图和C代码
基于单片机智能花卉灌溉浇花浇水检测系统设计
基于Arduino的自动浇灌系统
基于Arduino微控制器的自动植物浇水系统设计
Arduino 自动浇花系统的控制原理
基于单片机的智能自动浇花浇水控制系统设计
一种基于Arduino的智能浇花系统的制作方法
基于单片机士壤湿度检测及自动浇花系统
原文链接: 基于arduino的土壤湿度检测以及水泵浇水(包含proteus仿真) https://m.huajiangbk.com/newsview514212.html
| 上一篇: 如何将土壤湿度传感器与Ardui... | 下一篇: 兰花按生态习性分,可分为地生兰、... |



