Co potrzebujemy?
https://flesztech.blogspot.com/arduino
* 1 kanałowy przekaźnik 5V 10A AVR ARM ARDUINO:
https://diolut.pl/modul-1-kanalowy-przekaznik-5v-10a-avr-arm-arduino-p-8746.html?
omawiany w poprzednich ćwiczeniach:
https://flesztech.blogspot.com/2019/03/arduino-budujemy-aktywator-wlacznik-sejf-zamek-na-kod-pin.html
* Czujnik poziomu cieczy/wilgoci:
https://www.ledats.pl/pl/czujnik-cieczy/2866-czujnik-wilgoci-poziomu-wody.html
* Dowolną pompkę wody:
https://pl.aliexpress.com/item/Gikfun-12V-DC-Dosing-Pump-Peristaltic-Dosing-Head-with-Connector-For-Arduino-Aquarium-Lab-Analytic-Diy/32725118884.html
Schemat połączeń dla wskaźnika standardowego (LEDowego) poziomu cieczy:
schemat w przypadku podłączenia przekaźnika nie różni się niczym, po prostu pod pin numer 8 podpinamy pin aktywujący przekaźnik
schemat w przypadku podłączenia przekaźnika nie różni się niczym, po prostu pod pin numer 8 podpinamy pin aktywujący przekaźnik
Kod do wgrania:
Metoda standard (wskaźnik LED):
void setup() {
Serial.begin(9600);
pinMode(9,OUTPUT); // żółta
pinMode(10,OUTPUT); // zielona
pinMode(8,OUTPUT); // czerwona
pinMode(22,OUTPUT); // przekaźnik
}
void loop() {
int stan = analogRead(A0);
Serial.println(stan);
delay(2000);
if(stan >900)
{
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(22,LOW);
};
if (stan <600)
{
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
digitalWrite(10,LOW);
digitalWrite(22,HIGH);
};
if (stan <800)
{
digitalWrite(10,HIGH);
digitalWrite(9,LOW);
digitalWrite(8,LOW);
digitalWrite(22,HIGH);
};
}
Metoda 1, wypompowywanie nadmiaru cieczy:
void setup() {
Serial.begin(9600);
pinMode(8,OUTPUT); // przekaźnik
}
void loop() {
int stan = analogRead(A0);
Serial.println(stan);
delay(100); // czas reakcji
if(stan >900) // stan przy którym pompka się zatrzymuje
{
digitalWrite(8,HIGH);
};
if (stan <850) // stan przy którym pompka zaczyna odsysać nadmiar cieczy
{
digitalWrite(8,LOW);
};
}
Metoda 2, uzupełnianie pojemnika z cieczą / automatyczna podlewaczka kwiatków:
void setup() {
Serial.begin(9600);
pinMode(8,OUTPUT); // przekaźnik
}
void loop() {
int stan = analogRead(A0);
Serial.println(stan);
delay(100); // czas reakcji
if (stan >850) // stan przy którym pompka zaczyna podlewać lub napełniać pojemnik, ustal jaki chcesz poziom
{
digitalWrite(8,LOW);
};
if (stan <700) // stan przy którym pompka nie pompuje wody, pojemnik napełniony, ustal swój poziom
{
digitalWrite(8,HIGH);
};
}
Metoda 3, automatyczny podlewacz kwiatków:
Według moich doświadczeń, ziemia sucha ma około 1000 zaś dobrze nawilżona ma około 700 - także w tych granicach możemy ustawiać nawadnianie kwiatków przy całkowitym zanurzeniu sondy w ziemi:
void setup() {
Serial.begin(9600);
pinMode(8,OUTPUT); // przekaźnik
}
void loop() {
int stan = analogRead(A0);
Serial.println(stan);
delay(100);
if (stan >980) // stan ziemi prawie suchej, pompka załącza podlewanie
{
digitalWrite(8,LOW);
};
if (stan <730) // stan przy którym ziemia jest odpowiednio nawilżona, pompka wyłącza się
{
digitalWrite(8,HIGH);
};
}
Gotowy efekt:
W drugiej części mamy projekt automatycznego dolewania wody do określonego poziomu, np. możemy to wykorzystać jako automatyczne pojenie naszego pupila, piesek wypija wodę do określonego poziomu po czym pompka zaczyna napełniać miskę do pełna (do danego poziomu)
Możemy to także wykorzystać jako automatyczne podlewanie kwiatków, lecz musimy zmienić parametry poziomu wilgotności w zakresie od 0 do 1000 w ten sposób by dostosować wilgotność ziemi kwiatka, by nie przelać go
Projekt automatycznej podlewaczki kwiatków: