Hjälp med arduinoprojekt för bevattning av kolonilotten?
Hjälp med arduinoprojekt för bevattning av kolonilotten?
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
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
- HUGGBÄVERN
- Tidigare soundbrigade
- Inlägg: 32889
- Blev medlem: 23 augusti 2006, 22:44:11
- Ort: Lilla Paris
- Kontakt:
Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?
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”.
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”.
- Mickecarlsson
- EF Sponsor
- Inlägg: 3888
- Blev medlem: 15 april 2017, 18:06:15
- Ort: Malmö
- Kontakt:
Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?
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.
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?
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, ; //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);
}
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, ; //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);
}
- HUGGBÄVERN
- Tidigare soundbrigade
- Inlägg: 32889
- Blev medlem: 23 augusti 2006, 22:44:11
- Ort: Lilla Paris
- Kontakt:
Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?
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.
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.
-
- EF Sponsor
- Inlägg: 922
- Blev medlem: 26 maj 2014, 12:54:35
- Ort: Karlskoga
Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?
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.
Copy-paste fel på kommentaren. Det är pinne 12 du sätter som output och inte 13 i andra fallet.
Nej, det blir 11 minuter eftersom ventilen är öppen minuter som heter 0,1,2,3,4,5,6,7,8,9 och 10.
Nej, ventilen öppnar när TimeM är större än 10, dvs minuter som heter 11,12 ...
Texten i printen är nog rätt men du stänger ventil 1.
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å.
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.
Kod: Markera allt
if (TimeH=21 && TimeM>10 && TimeM<=20){ //Klockan 21:10 öppnas ventil ett om torrt i markern.
Kod: Markera allt
digitalWrite(13, LOW);
Serial.print(" Ventil två stängd ")
- Jan Almqvist
- Inlägg: 1587
- Blev medlem: 1 oktober 2013, 20:48:26
- Ort: Orust
Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?
Det "giftigaste" är
eftersom du inte jämför TimeH med 21 utan tilldelar TimeH värdet 21. Resultatet blir alltid true eftersom 21 inte är noll.
Kod: Markera allt
if (TimeH=21
Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?
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?
Aj, Ja för att stänga ventil två ska det givetvis vara pin 12 som ska sättas LOW.
Jan Almqvist
, Hur bör jag göra för att komma till rätta med den "giftigaste" ?
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
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.
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
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
-
- EF Sponsor
- Inlägg: 922
- Blev medlem: 26 maj 2014, 12:54:35
- Ort: Karlskoga
Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?
Ja det är ju det där med = igen då.
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.
Kod: Markera allt
if (TimeH==21 && TimeM>=0 && TimeM<=9){
if (TimeH==21 && TimeM>=10 && TimeM<=19){
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.
- Jan Almqvist
- Inlägg: 1587
- Blev medlem: 1 oktober 2013, 20:48:26
- Ort: Orust
Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?
Ett tips är att skriva konstanten till vänster vid jämförelse mellan variabel och konstant:
Om man då skriver ett (1) likhetstecken:
blir det fel vid kompilering.
Kod: Markera allt
if (21==TimeH
Kod: Markera allt
if (21=TimeH
Re: Hjälp med arduinoprojekt för bevattning av kolonilotten?
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.
Alt. läs av sensorn endast strax före bevattningen, och basera båda ventilöppningarna på resultatet.