Sida 1 av 1

Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 14 januari 2019, 15:15:44
av småsten
Hej,

Jag har länge tänkt automatisera bevattningen av min kolonilott för att slippa vattna var och varannan dag. Har därför införskaffat diverse arduinoprylar, såsom arduino nano, realtidsklocka, lcd display och 12 v solenoidventiler. Inser nu att jag inte riktigt är kapabel att fixa ihop delarna och programmera på egen hand varför jag undrar om någon kunnig här på forumet kan hjälpa mig? Skulle bli mycket glad och tacksam. Kolonilotten är belägen i en södersluttning så vattentrycket sköts av gravitation. Därför behövs inga pumpar. Tycker även det vore roligt knyta kontakt och träffas irl.. Både jag och kolonilotten finns i stockholm.

MVH

Andy

Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 14 januari 2019, 17:36:10
av HUGGBÄVERN
Jag tycker du ska börja med att göra några utkast till program. Sätt på pränt hur saker ska fungera, ta hjälp av t ex Hackster och Instructables och arduino.cc för att få lite tips hur man kan använda realtidsklocka, hur man vattnar blommor och annat, och så fixar vi resten tillsammans på forumet.

Några snabba ideer:
https://www.instructables.com/id/Arduin ... ng-System/
https://www.instructables.com/id/Plant-Manager/

Detta sagt för jag tror du får mer respons om du börjar nysta i projektet och ber om support när du får problem, än om du vill ha något mer ”nyckelfärdigt”.

Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 15 januari 2019, 20:02:55
av Mickecarlsson
Kolla in denna länk för tips
https://create.arduino.cc/projecthub/pr ... irrigation
Googla på arduino irrigation controller så får du massor av tips.

Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 15 januari 2019, 22:43:58
av småsten
Hej,

Jag hade tänkt mig något liknande detta. dvs en timer som tidpunkt för bevattning. Om fuktighetssensorn indikerar att marken är fuktig ska ingen ytterligae vattning ske. I exemplet nedan finns två reläer. Skulle vilja ha en knapp för manuell drift också. samt en lcddisplay. Vad tror ni om detta?

#include <virtuabotixRTC.h>
virtuabotixRTC myRTC(6, 7, 8); //digital pin 6 = SCCIC or CLK 7 = I/O or DAT 8 = CE oe RST
int moisturePin = 0; //define a pin for moisture sensor
int threshold = 300; //Treshhold value for moisture sensor
int x = 0;
int Moisture = 0; // Value from moisturesensor
int TimeM = 0; // Variable for storing Minutes
int TimeH = 0; // Variable for storing Hours

void setup() {
Serial.begin(9600); //Begin serial communcation
pinMode(13, OUTPUT); // Pin 13 as output used by ventil ett.
pinMode(12, OUTPUT); // Pin 13 as output used by ventil två.
//myRTC.setDS1302Time(10, 08, 22, 3, 16, 1, 2019); // Used to set time vith the DS1302 libray
Serial.println("Datum / Klockslag: ");
}

void loop() {
Light = analogRead(moisturePin);
digitalWrite(13, LOW);
myRTC.updateTime();
TimeH = myRTC.hours;
TimeM = myRTC.minutes;

Serial.print(myRTC.year);
Serial.print("-"); //|
Serial.print(myRTC.month); //|
Serial.print("-");
Serial.print(myRTC.dayofmonth);
Serial.print(" "); //|
Serial.print(myRTC.hours); //|
Serial.print(":"); //|
Serial.print(myRTC.minutes); //|
Serial.print(":"); //|
Serial.print(myRTC.seconds);
Serial.print(" ");
if (TimeH=21 && TimeM>=0 && TimeM<=10){ //Klockan 21:00 öppnas ventil ett om torrt i markern därefter //stänger ventilen 10 minuter senare.
if (Moisture < threshold ){
digitalWrite(13, HIGH);
Serial.print(" Ventil ett öppen ");
}

else {
digitalWrite(13, LOW);
Serial.print(" Ventil ett stängd");
}

if (TimeH=21 && TimeM>10 && TimeM<=20){ //Klockan 21:10 öppnas ventil ett om torrt i markern. if (Moisture < threshold ){
digitalWrite(12, HIGH);
Serial.print(" Ventil två öppen ");
}

else {
digitalWrite(13, LOW);
Serial.print(" Ventil två stängd ")
}

}
Serial.print(Moisture);
Serial.println();
delay(1000);
}

Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 16 januari 2019, 03:35:18
av HUGGBÄVERN
Jag sitter på chicago o’hare med huvudvärk (av oro och för lite sömn) men tycker du har gjort ett bra jobb, även om jag inte kan verifiera koden.

Vad du kan göra är att sätta ihop en enkel testpanel med lysdioder, tryckknappar och annat som får simulera in- och utorgan. Sedan kan du ju sätta dina timers så de gör snabbare (om det går).
Jag gjorde så med en enkel men ändå tillkrånglad histora som skulle köra som längst en tretimmars-cykel. När tre timmar var nerställda till 0,03 timmar körde jag kretsen fullt ut en natt.

Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 16 januari 2019, 07:20:53
av kodar-holger
Kollade lite på din kod. Använd gärna code-taggar när du postar så blir det lättare att läsa.
Hittade några småsaker som du säkert själv hittat rätt snart.

Kod: Markera allt

pinMode(13, OUTPUT); // Pin 13 as output used by ventil ett.
pinMode(12, OUTPUT); // Pin 13 as output used by ventil två.
Copy-paste fel på kommentaren. Det är pinne 12 du sätter som output och inte 13 i andra fallet.

Kod: Markera allt

if (TimeH=21 && TimeM>=0 && TimeM<=10){ //Klockan 21:00 öppnas ventil ett om torrt i markern därefter //stänger ventilen 10 minuter senare.
Nej, det blir 11 minuter eftersom ventilen är öppen minuter som heter 0,1,2,3,4,5,6,7,8,9 och 10.

Kod: Markera allt

if (TimeH=21 && TimeM>10 && TimeM<=20){ //Klockan 21:10 öppnas ventil ett om torrt i markern. 
Nej, ventilen öppnar när TimeM är större än 10, dvs minuter som heter 11,12 ...

Kod: Markera allt

digitalWrite(13, LOW);
Serial.print(" Ventil två stängd ")
Texten i printen är nog rätt men du stänger ventil 1.

Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 16 januari 2019, 08:07:45
av Jan Almqvist
Det "giftigaste" är

Kod: Markera allt

if (TimeH=21
eftersom du inte jämför TimeH med 21 utan tilldelar TimeH värdet 21. Resultatet blir alltid true eftersom 21 inte är noll.

Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 17 januari 2019, 19:36:38
av småsten
Shysst! Tack för all respons!

Jag har en del att lära som färskning forumet. Bra tips att använda Code funktionen för att göra koden mer lättläst.

kodar-holger
, nu jag mig fatta hur man ska tänka kring tidsintervall. Om jag skriver följande blir det rätt?

Kod: Markera allt

if (TimeH=21 && TimeM>=0 && TimeM<=9){ //Klockan 21:00 öppnas ventil ett om torrt i markern därefter stänger ventilen 10 minuter senare.

if (TimeH=21 && TimeM>=10 && TimeM<=9){ //Klockan 21:10 öppnas ventil två om torrt i markern.
Aj, Ja för att stänga ventil två ska det givetvis vara pin 12 som ska sättas LOW.

Kod: Markera allt

digitalWrite(12, LOW);
Serial.print(" Ventil två stängd ")

Jan Almqvist
, Hur bör jag göra för att komma till rätta med den "giftigaste" ?

Kod: Markera allt

if (TimeH=21
Hur skriver jag för att arduino ska kolla om realtimeklockan är 21? Ska det vara "==" istället?

Huggbävern, ok om jag förstår det rätt så menar du att jag bör prototypa med dioder och ändra tidsintervallen till exempelvis sekunder istället för timmar och minuter?


Följdfråga... Grejen är att jag inte riktigt vet hur jag kopplar ihop allt i en krets. Strömförsörjningen till ventilerna ligger på tolv volt medan arduinon ska ha 5 liksom reläerna. tar man ned söänningen med en spänningsdelare eller finns ett bättre sätt.??

mvh
Andy

Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 17 januari 2019, 21:34:14
av kodar-holger
Ja det är ju det där med = igen då.

Kod: Markera allt

if (TimeH==21 && TimeM>=0 && TimeM<=9){ 

if (TimeH==21 && TimeM>=10 && TimeM<=19){ 
För att koppla dina 12V-ventiler till arduinon behöver du någon interface-krets. Ett färdigt reläkort kanske är overkill men enkelt. Det här hittades vid en snabb nätsökning.
https://www.electrokit.com/produkt/rela ... gINQPD_BwE

Annars går det med några transistorer och motstånd om du är flink med lödkolven.
https://electronics.stackexchange.com/q ... duino-nano

Vad är det för sensor du skall använda för att avgöra om det är torrt eller fuktigt? Den behöver ju också kopplas in på något sätt.

Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 18 januari 2019, 08:38:17
av Jan Almqvist
Ett tips är att skriva konstanten till vänster vid jämförelse mellan variabel och konstant:

Kod: Markera allt

if (21==TimeH
Om man då skriver ett (1) likhetstecken:

Kod: Markera allt

if (21=TimeH
blir det fel vid kompilering.

Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?

Postat: 19 januari 2019, 08:42:15
av GalFisk
Se upp med placeringen av din moisture sensor, så att inte bevattningen från ventil 1 blöter ner den och hindrar ventil 2 från att någonsin öppnas.
Alt. läs av sensorn endast strax före bevattningen, och basera båda ventilöppningarna på resultatet.