gada888 发表于 2016-5-6 12:45:41

自动浇花器

本帖最后由 gada888 于 2021-12-27 08:46 编辑

自动浇花器
应网友之要求,同时也按他的意图做的浇灌器,因有其它功能未添加,不算完工,他的核心诉求是用一个单片机来给他家里的多种宝贝植物按需供水(好像很精贵的植物的样子),未能最后完工,所以暂不把程序贴出来。同时希望同学们把生活中的痛点告诉楼主。也许楼主能做。而且楼主保证做好第一个发给你。当然你也可以到我网店任挑一个你喜欢的。


硬件清单:arduino Diecimila 328P,
土壤探测器:4只
继电器:4连-5v10A
auduino 快速焊接扩展板: 一只
水泵:12V-4只(视频里没连,现手头没水泵)连线部分:数字IO的D3,D5,D7,D9分别连继电器IN1,IN2,IN3,IN4,继电器的VCC和GND连Arduino的vcc和gnd。每只土壤传感器的信号口分别连arduino的A0,A1,A2,A3.
每只土壤传感器的vcc和gnd分别连arduino 的Vcc和GND。
顺便说一下,我没有8连继电器只好用了4连的,这种arduino板有6个analog口,应该可以连6个土壤湿度探头。我会再找一个两联继电器,这样把它凑够六个。






http://v.youku.com/v_show/id_XMTU2MDIxODA5Mg==.html
更新了,连了6个土壤探测器,也就是应该连6个水泵。我手边目前就两个,还有一个测试时候发现是坏的。控制板换成maga板的话,理论上可以连16个土壤探头。但没有实际测试过。http://v.youku.com/v_show/id_XMTU2NjQ2NzQxNg

先声明,源码写的太久找不到了。于是现写了一个,arduino测试通过,没有在连接硬件调试。因为手头也缺乏多个土壤探测头。
四个土壤探头接arduino A0-A3口int soilPin1 = A0;
int soilPin2 = A1;
int soilPin3 = A2;
int soilPin4 = A3;

继电器接arduino D7-D10口
int pump1=7;               //pump1 at pin 7
int pump2=8;               //pump2 at pin 8
int pump3=9;               //pump1 at pin 9
int pump4=10;               //pump2 at pin 10
关于土壤探头,它的模拟值是0-1023,我设置的临界值是900,这个可以调整的。是aruduino程序里调整参数。小于900需要防水。大于900不需要水。一个是通过调整探头的电位器,把灯调亮。

//this code is written by gada888 in 26-12-2021
int soilPin1 = A0;
int soilPin2 = A1;
int soilPin3 = A2;
int soilPin4 = A3;

int soilReading1;
int soilReading2;
int soilReading3;
int soilReading4;

int pump1=7;               //pump1 at pin 7
int pump2=8;               //pump2 at pin 8
int pump3=9;               //pump1 at pin 9
int pump4=10;               //pump2 at pin 10

int tempo=2000;             //watering time of 2 seconds
int ledboard=13;         //on board led at pin 13

void setup()
{
Serial.begin(9600);
pinMode(pump1,OUTPUT);       //pump1 output
pinMode(pump2,OUTPUT);       //pump2 output
pinMode(pump3,OUTPUT);       //pump3 output
pinMode(pump4,OUTPUT);       //pump4 output
pinMode(ledboard,OUTPUT);    //on board led output
digitalWrite(ledboard,LOW);//turn off Arduino led
}

void loop()
{
soilReading1 = analogRead(soilPin1);
soilReading2 = analogRead(soilPin2);
soilReading3 = analogRead(soilPin3);
soilReading4 = analogRead(soilPin4);
Serial.print("Analog output: ");
//Serial.println(readSensor());

if (soilReading1 < 900) {
Serial.println("pump1 needs water");
digitalWrite(pump1,HIGH); //turn on pump1
delay(tempo);             //wait some time
digitalWrite(pump1,LOW);//turn off pump1
} else if (soilReading2 < 900) {
Serial.println("pump2 needs water");
digitalWrite(pump2,HIGH); //turn on pump2
delay(tempo);             //wait some time
digitalWrite(pump2,LOW);//turn off pump2
} else if (soilReading3 < 900) {
Serial.println("pump3 needs water");
digitalWrite(pump3,HIGH); //turn on pump1
delay(tempo);             //wait some time
digitalWrite(pump3,LOW);//turn off pump1
} else if (soilReading4 < 900) {
Serial.println("pump4 needs water");
digitalWrite(pump4,HIGH); //turn on pump2
delay(tempo);             //wait some time
digitalWrite(pump4,LOW);//turn off pump2
}
}









virtualwiz 发表于 2016-5-6 13:27:32

LZ加油~

dsweiliang 发表于 2016-5-6 13:59:37

学习学习

大连林海 发表于 2016-5-6 17:30:01

加油 加油

凌风清羽 发表于 2016-5-11 10:11:02

路过,顶一个~~

gada888 发表于 2016-5-11 19:53:11

更新了一下。

20060606 发表于 2020-8-17 06:12:45

好创意,赞一个

3PDy1MnK 发表于 2021-12-26 11:32:23

楼主,做出来了吗

gada888 发表于 2021-12-26 21:29:52

3PDy1MnK 发表于 2021-12-26 11:32
楼主,做出来了吗

看上面,已更新

腻了匿了 发表于 2022-3-4 16:03:22

楼主,卖么
页: [1]
查看完整版本: 自动浇花器