Automatic smart plant watering kit Arduino Uno

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 41
Geregistreerd: 19 Nov 2017, 05:13

Re: Automatic smart plant watering kit Arduino Uno

Berichtdoor theOracle1984 » 06 Jan 2018, 02:57

Code: Alles selecteren
int relay1 = 3;
int relay2 = 4;
int relay3 = 5;
int relay4 = 6;
int pump = 2;

void setup() {
   // declare relay as output
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);
  pinMode(relay4, OUTPUT);
  // declare pump as output
  pinMode(pump, OUTPUT);
  // declare the ledPin as an OUTPUT:
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
  int command = Serial.read();
 
  if (command == '1') {//pump+relay 1 aan
  digitalWrite(pump, HIGH);
  digitalWrite(relay1, HIGH);
  // let it water the plant for 5 seconds
 delay(5000);}
  else {// turn the pump off
  digitalWrite(pump, LOW);
  digitalWrite(relay1, LOW);}

  if (command == '2') {//pump+relay 2 aan
  digitalWrite(pump, HIGH);
  digitalWrite(relay2, HIGH);
  // let it water the plant for 5 seconds
 delay(5000);}
  else {// turn the pump off
  digitalWrite(pump, LOW);
  digitalWrite(relay1, LOW);}

  if (command == '3') {//pump+relay 3 aan
  digitalWrite(pump, HIGH);
  digitalWrite(relay3, HIGH);}
  // let it water the plant for 5 seconds
  delay(5000);}
  else {// turn the pump off
  digitalWrite(pump, LOW);
  digitalWrite(relay1, LOW);}

 if (command == '4') {//pump+relay 4 aan
  digitalWrite(pump, HIGH);
  digitalWrite(relay4, HIGH);}
  // let it water the plant for 5 seconds
  delay(5000);}
  else {// turn the pump off
  digitalWrite(pump, LOW);
  digitalWrite(relay1, LOW);}

Advertisement

Berichten: 41
Geregistreerd: 19 Nov 2017, 05:13

Re: Automatic smart plant watering kit Arduino Uno

Berichtdoor theOracle1984 » 06 Jan 2018, 03:00

"exit status 1
'command' was not declared in this scope"

wat gaat fout?
bij mijn vorige versie werkte alleen de eerste drie maar de tweede en derde erg sloom...
Nam aan dat dat kwam door de delay? dus hoe of wat anders te doen?

Eigenlijk wou ik dat ik gewoon toets 1 of 2 op het toetsenbord van de aangesloten laptop kon duwen... moet ook kunnen.. maar pffff...

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Automatic smart plant watering kit Arduino Uno

Berichtdoor Koepel » 06 Jan 2018, 13:59

theOracle1984 schreef:wat gaat fout?

Het gaat fout bij de tekst layout, het inspringen, gebruik van nieuwe regels en de plaats waar de accolades '{' en '}' staan.
Druk eens op Ctrl+T, dat scheelt al een beetje.

Zo'n 40 jaar geleden waren er beeldschermen (https://nl.wikipedia.org/wiki/Computerterminal) die maar 24 regels code konden laten zien. Het omhoog en omlaag scrollen was langzaam. Daarom was het voordeliger om veel code op een regel te proppen. Ik ben van mening dat de meeste dat nog niet ontgroeid zijn, en ik hou er zelf ook van om de tekst ruim op te zetten.

De tekst van de code in jouw stijl:
cpp code
if (command == '1') {//pump+relay 1 aan
digitalWrite(pump, HIGH);
digitalWrite(relay1, HIGH);
// let it water the plant for 5 seconds
delay(5000);}
else {// turn the pump off
digitalWrite(pump, LOW);
digitalWrite(relay1, LOW);}


De tekst van de code in mijn stijl:
cpp code
if( command == '1')     // pump+relay 1 aan
{
digitalWrite( pump, HIGH);
digitalWrite( relay1, HIGH);

// let it water the plant for 5 seconds
delay( 5000);
}
else // turn the pump off
{
digitalWrite( pump, LOW);
digitalWrite( relay1, LOW);
}

Welke is beter te lezen ?

Wanneer je de tekst van de code beter en consequent opschrijft, en Ctrl+T gebruikt, dan zie meteen dat je structuur van if-else niet klopt en de accolades niet kloppen.

Dan nog de code zelf. Een delay van 5 seconden maakt dat je 5 seconden niets doet. Dus er wordt 5 seconden ook niet gekeken of er een knop wordt ingedrukt. Dat is te vermijden met millis() of een library. Daarvoor zal echter je sketch vrijwel opnieuw geschreven moeten worden.

Berichten: 41
Geregistreerd: 19 Nov 2017, 05:13

Re: Automatic smart plant watering kit Arduino Uno

Berichtdoor theOracle1984 » 06 Jan 2018, 21:19

hoe zou ik dan beter kunnen beginnen?

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Automatic smart plant watering kit Arduino Uno

Berichtdoor Koepel » 06 Jan 2018, 22:42

Heb je op Ctrl+T gedrukt. En viel je toen op dat de if-else niet klopt ?

Probeer de BlinkWithoutDelay te begrijpen: https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay.

Berichten: 41
Geregistreerd: 19 Nov 2017, 05:13

Re: Automatic smart plant watering kit Arduino Uno

Berichtdoor theOracle1984 » 19 Jan 2018, 03:21

nu wel ja :) erg handig
ik begrijp niet helemaal hoe je t bedoelt? snap ergens het verband wel maar niet hoe ik dat in relais kan gebruiken dan?

ondertussen weer een lading speelgoed via ali ontvangen.. Vooral Wemos D1mini "echt" en "nep" en de set met shields voor wemos..

kan het zijn dat het DS18B20 shield enige graden afwijkt?

het WS2812b shield heb ik de aan de gang, met Adafruit_NeoPixel libary, maar nu dan hahah hij blijft knipperen..
zijn er geen voorbeelden van codes zodat je die kunt besturen? dit led shield zou al een mooi leeslampje kunnen zijn namelijk :)

het BMP180 shield werkte ook, ofja hij las iets uit uiteindelijk haha

relay shield was stuk door verzenden..


heb trouwens wel eindelijk door (snap?) hoe met een arduino een relais aan te sluiten en hoe te besturen.. uiteindelijk veel makkelijker dan het lijkt ja.. proefopstelling gemaakt
(test)lamp, stopcontact, relay op stopcontact.. kippetje..
wacht nu op de SSR en koelribben van Ali..

zelf was ik aan het denken.. stekker waar relais op aangesloten zit, in een Schakelklok in het stopcontact, als extra zekerheid?
dan krijgt alles achter het relais pas na bepaalde tijden stroom..

hoe kan ik het beste een tijdschakeling maken met Arduino? Met een RTC shield of is via WiFi/LAN ook de tijd uit te lezen? of via een Raspberry PI?

--Maar mijn uiteindelijke vraag ging eigenlijk over..
wat is eigenlijk de beste start instelling voor de wemos d1mini?
ik vind veel code waar de wemos op zou kunnen draaien? welke is uit ervaring de betrouwbaarste? van verbinding tot?

Daarnaast heb ik thuis een telfort experia box v8, een airplay extreme, en een lan router.... dus heb en had ik enorme ruzie met static ip adressen
ik had het Lan shield voor de Uno al draaien zonder problemen met een van de iphone apps, (lamp,stopcontact,relais,arduino,LANshield,en via IP adres naar APP) , maar na een tijdje gaat de app uit en vind hij de arduino niet meer.. :(


Bij de opstart van de Wemos D1 mini (nep) was hij (bijna) meteen te vinden als open netwerk.. (Iets met ESP of ASP) daarna werd het via google wat moeilijker uit te zoeken..
Heb uiteindelijk iets erop gezet wat van de wemos een AP maakte wanneer hij geen internet vond (of in t geheugen had) maar nadat hij aangesloten is, is hij niet meer te vinden? Werkt wel nog met led schild erop, maar is niet op wifi te vinden?
ch341ser drivers?

Hoe word de wifi functie van de wemos meestal gebruikt? voor het Arduino Uno/Mega LAN shield vond ik iig nog een IPadresprinter code? voor beide wemos moet ik nu gaan zoeken hoe ik ze uit verborgen netwerk krijg? haha

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Automatic smart plant watering kit Arduino Uno

Berichtdoor Koepel » 19 Jan 2018, 04:14

Router: Ik gebruik in de Arduino altijd DHCP en zet de statische IP adressen in de router. Dan heb ik in de router een handige lijst van alle apparaten.

DS18B20: Hij wijkt niet af. In zijn kunststof behuizing is hij erg gevoelig voor warmte uit de omgeving. Stel dat er op een paar centimeter een chip zit die warm wordt, dan zuigt de DS18B20 die warmte op als een spons. Een ouderwetse thermometer met een glazen buisje en een reservoir doet dat niet.

Schakelklok: Ik zie geen voordeel. Ik zie wel een extra apparaat (schakelklok). Misschien is de schakelklok te goedkoop gemaakt en kan in brand vliegen. Een relais of SSR heeft zelf geen schakeling die stroom van de 230V nodig heeft. Het is alleen maar open of sluiten. Dat maakt het veiliger dan bijvoorbeeld een ventilator met een vertraging of een elektronische schakelklok.

WeMos: Daar weet ik nog te weinig van af. Ik heb begrepen dat er soms een programma op draait zodat de WeMos zelf een AP is, zodat hij ingesteld kan worden via een tablet/smartphone. Als je de Arduino-omgeving er op zet, dan is dat niet nodig, dan kun je dat in de sketch doen. Dus alle wifi en zo staat dan in de sketch zelf. Bij WeMos kun je veel informatie vinden: https://wiki.wemos.cc/tutorials:get_started:get_started_in_arduino

NeoPixels: Je kunt de NeoPixels of de FastLED gebruiken. Daar zullen toch wel voorbeelden bij zitten. Het is voor mij te lang geleden :(

Berichten: 41
Geregistreerd: 19 Nov 2017, 05:13

Re: Automatic smart plant watering kit Arduino Uno

Berichtdoor theOracle1984 » 19 Jan 2018, 23:12

DS18B20: Ah okay ik dacht wel dat de temperatuur omhoog ging omdat er een D1mini aan vast zat.. even wachten op
https://nl.aliexpress.com/item/Dual-Bas ... autifyAB=3

en ze naast elkaar proberen, en/of
https://nl.aliexpress.com/item/Tripler- ... faaf&tpp=1

en met drie naast elkaar, DS18B20 en het DHT of BMP180 shield
Zou dat genoeg afstand zijn?

Schakelklok: Ik bedoel eigenlijk hoe kan ik het SSR relais dadelijk (of het kleine blauwe relais nu) met Arduino of D1mini met tijd schakelen?
Alsin om 9 uur s'morgens aan, 15uur uit?
RTC module erbij voor Arduino Uno? Of kan ik de tijd ophalen via de Wifi van de D1mini? Raspberry Pi? Wat klinkt het simpelste betrouwbaarste?

WeMos: Snap nu zelf.. :shock: wat ik bedoelde met de WeMos instelling van "echte" en "nep" D1 mini haha
-de een is een WAVGAT D1 Mini waar ik via ESPeasy een Open verbinding/netwerk krijgt? ESP_ etc... - of anders gezegd via Laptop of telefoon bij de wifi netwerken kan zoeken of t nog leeft :P
-de ander is een "echte" WeMos D1 Mini waar ik via NodeMcu een Beveiligde verbinding/netwerk krijg? MicroPython- etc..
Is dat omdat het verschillende merken zijn? Of ben ik gewoon een kneus en mis ik iets obvious?

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Automatic smart plant watering kit Arduino Uno

Berichtdoor Koepel » 20 Jan 2018, 23:04

De DTH22 of BMP180 geven geen warmt af, maar een processor of voltage regulator die even verderop zit wel.

Een RTC module is altijd wel handig. De DS3231 is nauwkeurig.
Met een D1 mini kun je natuurlijk de tijd bij een tijd-server ophalen. Dat is ook betrouwbaar.

Ik weet verder niet zoveel van de WeMos en NodeMcu af. Bij Adafruit zetten ze sterk in op MicroPython/CircuitPython, maar of dat echt door zal zetten ? Misschien niet. Ik had gedacht dat LUA een hoge vlucht zou nemen, maar intussen zit ik Python op de Raspberry Pi te doen. Waarschijnlijk blijft het de komende jaren een rommeltje van alles door elkaar.

Vorige

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 14 gasten