Jump to content
  • sanniesshop-banner.gif.d86ea02547aa126c899b25f607244aaf.gif sanniesseeds instagram

oude rocker

Arduino Meet En Stuur Project

Recommended Posts

Enthousiast gemaakt door o.a wietefras en Bosrand, ben ik wat spulletjes gaan bestellen op AliExprss.com

 

Ik heb gekozen voor de Mega 2560 en daarbij ook meteen de diverse resistors en sensors etc besteld.

Het plan is, dat ik een leuk projectje ga doen, met veel data verzameling (temp en RV) en aan de hand van die data ook wat sturing ga doen.

Eerst klein en telkens een beetje meer en groter.

 

Omdat, ik een complete noob ben op dit terrein, hoop ik op tips en hulp van jullie kant.

 

Voor diegenen, die hier ook wel interesse in hebben, zou dit een leuke leerzaam topic kunnen worden.

 

http://www.arduino.nu/

  • Like 2

Share this post


Link to post
Share on other sites

Alle begin is moeilijk, maar heb al een hoop kunnen leren, door de volgende

Youtube lessen te volgen.

https://www.youtube.com/channel/UCDGAg1pqcy8IScMqHHTy9Gg

 

Hierna, kun je een beetje begrijpen en aan de slag met je Arduino.

 

Ik ben nu zover, dat ik een temperatuur en luchtvochtigheid meter (DTH22) kan uit lezen.

Ondanks bovenstaande lessen, viel dat in mijn geval nog niet mee,

maar juist door de bovenstaande lessen, heb ik wel het foutje kunnen vinden.

 

In de gedownloade voorbeeld library, zat een foutje kwa baudrate.. :)

 

De volgende stap, die ik wil gaan maken is:

 

Hoe ga ik meerdere DHT22 uitlezen.

Share this post


Link to post
Share on other sites

Ha, success Oude Rocker :)

 

Ik heb voor mijn "Curinator" een hele zooi van die dingen aangesloten op een Arduino zodat ik al mijn weckpotten tijdens het curen kan monitoren op de LV in de potten.

 

Het enige waar je voor moet zorgen is dat iedere datapin van de DHT22 op een andere digitale ingang van de Arduino moet zitten. Dan kun je per DHT22 een aparte variable declareren of een array.

Share this post


Link to post
Share on other sites

Dat is een variabele waar je een hele hoop waardes in kunt opslaan.

 

Als je Excel neemt als analogie, dan is een gewone variabele een enkele cel van een werkblad. Daar kun je 1 waarde in opslaan. Een array is dan een hele kolom (of rij) uit een werkblad. Daar kun je dus een hele serie waardes in kwijt.

 

Zie dit voorbeeldje om meerdere leds aan te sturen: http://arduino.cc/en/Tutorial/Array

 

Ik heb 7 DHT's aan de Arduino en die waardes sla ik op in een array. ik middel de waardes ook over een minuut en geef dan de gemiddelde waarde. Dat geeft een wat vloeiender lijn. Maar laten we het niet ingewikkelde maken dan nodig is :)

 

Stuur me anders even je code via PM (of hier). Dan pas ik het wel even aan dat je er meerdere DHT's op kan aansluiten.

Edited by Wietefras

Share this post


Link to post
Share on other sites

Ga ik doen.

Ik moet nu eerst even een uurtje of 2 weg.

Daarna ga ik verder..

Share this post


Link to post
Share on other sites

Uitlezen is maar de helft van het verhaal. Arduino is juist leuk als je een paar 220V relaistjes er aan knoopt en wat gaat schakelen. Paar doseerpompjes bv. :whistle:

  • Like 2

Share this post


Link to post
Share on other sites

Logisch inderdaad om als eerste te beginnen met het bouwen van een voedingscomputer :whistle:

  • Like 2

Share this post


Link to post
Share on other sites

@Ponix..

Leuk dat je mee komt doen..

 

Maar logisch of niet..

Ik wil beginnen met wat data verzameling en realtime kunnen loggen en uitlezen op de PC.

 

Van daaruit, is voor mij de volgende stap wat aansturing.

Daarbij denk ik dan ook eerst aan wat ventilatie materiaal en mogelijk lichtschakelingen.

 

En ja , ik heb dus al 2 van die 220 relais liggen.

Share this post


Link to post
Share on other sites

gallery_38152_18026_111002.jpg

 

Zo toch gewoon aansluiten?

 

Maar waar ik nog een beetje probleem mee heb,

Is de juiste sketch schrijven.

 

Als bovenstaande aansluitingen goed zijn,

Dan mag je me graag helpen met die sketch.

 

Ik heb nu nog een standaard gebruikt,

maar de weergave en dan vooral de tijd lijkt nergens naar nog.

 

Ik krijg dit te zien:

 

 

dht22_test.ino

LIBRARY VERSION: 0.1.20

 

Type, status, Humidity (%), Temperature © Time (us)

DHT22, OK, 36.6, 22.9, 5196

DHT22, OK, 36.2, 22.8, 5196

DHT22, OK, 36.1, 22.8, 5132

Edited by oude rocker

Share this post


Link to post
Share on other sites

Ja, dat lijkt me wel de juiste aansluiting inderdaad

 

Die tijd is hoeveel microseconden het duurt om de waardes uit de sensor op te halen. Daar heb je inderdaad niet veel aan. Als je een echte tijd wilt hebben zul je er eerst nog een klokje (RTC) op aan moeten sluiten.

 

Ik moet er morgen even op terug komen, vanavond gaat me niet meer lukken.

 

Wat je overigens ook gewoon kan doen is de variabelen en definities herhalen:

 

dus van:

dht DHT;

#define DHT22_PIN 5

 

naar:

dht DHTA;
dht DHTB;
dht DHTC;

#define DHT22_PIN_A 3
#define DHT22_PIN_B 4
#define DHT22_PIN_C 5

 

en dan het uitlezen van de sensor:

 

int chk = DHT.read22(DHT22_PIN);

 

naar:

 

   int chk = DHTA.read22(DHT22_PIN_A);
   int chk = DHTB.read22(DHT22_PIN_;
   int chk = DHTC.read22(DHT22_PIN_C);

 

 

en het afdrukken van de data

// DISPLAY DATA
Serial.print(DHT.humidity, 1);
Serial.print(",\t");
Serial.print(DHT.temperature, 1);
Serial.print(",\t");
Serial.print(stop - start);
Serial.println();

 

naar:

 

// DISPLAY DATA
Serial.print(DHTA.humidity, 1);
Serial.print(",\t");
Serial.print(DHTA.temperature, 1);
Serial.print(",\t");
Serial.print(DHTB.humidity, 1);
Serial.print(",\t");
Serial.print(DHTB.temperature, 1);
Serial.print(",\t");

Serial.print(DHTC.humidity, 1);
Serial.print(",\t");
Serial.print(DHTC.temperature, 1);
Serial.println();

 

Maar dat zou dus netter kunnen met een array en al die controle zooi kan er waarschijnlijk ook wel uit. Je kan het met deze aanpassingen wel alvast proberen. Ik zal morgenavond nog even kijken voor wat beters. Ook met een datalogger lus dat je eens per een instelbare periode een printje krijgt en niet elke 2 seconde.

Edited by Wietefras

Share this post


Link to post
Share on other sites
Logisch inderdaad om als eerste te beginnen met het bouwen van een voedingscomputer

 

Je benaderd dat heel anders, dat zie ik al.

 

Arduino is ontwikkeld om kinderen snel en leuk C++ en electronica te leren, juist omdat heel complexe interactie heel eenvoudig mogelijk is, doordat er allerlei libraries zijn om uit te putten zodat je niet het wiel steeds hoeft uit te vinden.

 

Les 1: uitlezen photo-resistor en de data verwerken

Les 2: aansturen LEDje op basis van de inkomende data uit les 1 en dan meerdere manieren van aansturing uitproberen

 

Als je dus les 1 en 2 doorlopen hebt, dan is een voedingscomputer of een fancontroller het logische vervolg, want een LEDje laten knipperen is redelijk doelloos binnen onze hobby.

 

En je kan het leren/proberen zonder een arduino en/of sensor te kopen http://123d.circuits.io/ Maak je ook niks stuk en kom je niet in het donker te zitten.

Share this post


Link to post
Share on other sites

Bedankt Wietefras,

Ik zie het wel verschijnen..

 

@Ponix

Grappig spul uit die link.

Duur? Moet e-mail adres enzo gaan invullen, misschien dat jij het zo weet.

 

Waar vind ik die les 1 en 2 van jou, waarna je "verwacht" dat ik dan al een voedingscomputer in elkaar kan knutselen?

Share this post


Link to post
Share on other sites

Cool om te zien dat hier nogal wat mee gebeurd. Zelf ben ik ook aan het kijken of er wat met arduino gedaan kan worden. Maar dan echt alles automatisch, behalve het voer mengen (zoals hier de bedoeling).

 

Dus Temperatuur automatisch geregeld (fan en kachel), de luchtvochtigheid (fan en luchtbevochtiger), water meters (ec en Ph) en het water geven.

 

Als hier wat moois in mekaar wordt gezet, wordt dan ook de info gedeeld?

 

Als ik dat nou ook doe, dan hebben we straks iets waar iedereen wat een heeft.

 

Hier in ieder geval een Ec meter die op de arduino zou moeten werken. http://www.octiva.net/projects/ppm/Schematic.jpg

 

Ben erg benieuwd naar de voedingscomputer in ieder geval. Maar daar lijkt mij een Ec meter ook bij te horen. En laat dat nou net de module zijn, die niet voor arduino te koop is, voor zover mij bekend is.

 

Veel geluk met het project! Dit ga ik volgen.. :)

 

Grtz

 

Hannesh

Share this post


Link to post
Share on other sites

Ik heb wel een paar EC modules gevonden hoor. Helaas zijn dat soort dingen wel wat duurder dan je zou willen. Helemaal die electrodes zijn overdreven duur voor zoiets simpels. Een hele EC meter kost minder dan alleen een electrode. Maar goed, zo'n module is dan een paar tientjes met een probe erbij kwam ik op 40 euro. Wel wat prijzig, maar daar kun je toch ook nauwelijks zelf iets voor in elkaar zetten.

 

pH modules en probes heb je wel voor wat minder. Voor 20 a 25 euro heb je wel een setje. Al wordt het met de dalende euro wel steeds duurder allemaal.

 

Het is meer de moeite als je ziet dat een klimaatregeling een paar honderd euro moet kosten en je voor zeg 25 euro aan onderdelen al het zelfde kan doen.

 

 

Logisch inderdaad om als eerste te beginnen met het bouwen van een voedingscomputer

 

Je benaderd dat heel anders, dat zie ik al.

Ja daar ben ik dan blijkbaar een rare in, maar ik ga bij iemand die met een eerste kweek gaat starten ook niet stoer roepen dat het pas zin heeft als hij een opticlimate gebruikt.

Share this post


Link to post
Share on other sites

Ik heb even een simpele loop opgezet die iedere minuut de DHT's uitleest en de waardes op de seriele poort zet:

#define PRINT_PERIOD 60000   // Print de sensor data iedere 60.000 millisecondes (per minuut dus)
unsigned long lNext=0;	   // "Tijdstip" waarop de sensor data afgedrukt moet worden

//==================================================
//DHT declarations
// Connect pin 1 (on the left) of the sensor to +5V
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
#include <dht.h>
dht DHT;
int DHTPins[] = {2, 3, 4, 5, 6, 7, 8 };			 // Op welke pinnen zitten de DHT's
#define DHT_PINCOUNT (sizeof(DHTPins)/sizeof(int))  // Bereken hoeveel pinnen er opgegeven zijn in het lijstje
//DHT declarations end
//==================================================

void setup() {
 lNext=millis();
 Serial.begin(9600);

 // Print de kopregel
 Serial.print("Time");
 for (int i=0; i<DHT_PINCOUNT; i++) {
Serial.print("\tRH");
Serial.print(i+1);
Serial.print("\tTemp");
Serial.print(i+1);
 }
 Serial.println();
}

void loop() {
 // Iedere PRINT_PERIOD lezen we de sensoren uit
 if (millis() >= lNext) {
lNext=lNext + PRINT_PERIOD;
Serial.print(millis()/PRINT_PERIOD);
// Loop alle DHT pinnen af
for (int i=0; i<DHT_PINCOUNT; i++) {
  int chk = DHT.read22(DHTPins[i]);
  if (chk == DHTLIB_OK) {
	// Sensoren uitlezen is gelukt dus geef de waardes weer
	Serial.print("\t");
	Serial.print(DHT.humidity);
	Serial.print("\t");
	Serial.print(DHT.temperature);
  } else {
	// Als het uitlezen niet gelukt is geef dat dan ook aan
	Serial.print("\txx\txx");
  }
}
Serial.println();
 }
 delay(1000);
}

 

In het lijstje van DHTPins zet je neer op welke pinnen de DHT's zitten. Hoeft dus niet perse een opvolgend lijstje te zijn. Je zult wel merken dat bepaalde modules al pinnen gebruiken en dat je dus niet vrij over een hele range aan pinnen kan beschikken. Bijvoorbeeld het ethernet shield gebruikt een hele zooi pinnen die je dan dus niet voor wat anders kan gebruiken.

 

:edit: De "tijd" is in dit geval dus simpelweg het aantal minuten dat de Arduin aan staat. Als je er ook een RTC (real time clock) aan hangt dan kun je die tijd nemen uiteraard.

Edited by Wietefras

Share this post


Link to post
Share on other sites

Geweldig Wietefras.

Hier denk ik wel wat mee te kunnen.

 

Heb vanmiddag, (ik heb weekend) nog liggen rommelen met een RTC.

Maar ook dat krijg ik nog niet zo snel voor elkaar.

Ondanks het zien van een aantal filmpjes hierover op youtube.

 

Er zit een foutje in de library.

 

 

Build-opties gewijzigd, alles wordt opnieuw gebuild

test_klok.ino: In function 'void setup()':

test_klok.ino:20:35: error: expected ')' before ';' token

Fout bij compileren.

 

 

BTW.

Welke batterij doen jullie er in.

Ik heb de DS3231 AT24C32

En daarin heb ik een CR2032 batterij gedaan.

Maar het is net, of die net te groot is.

Hij wil er in met enige pressie, maar heb niet het idee, dat het goed is..

Edited by oude rocker

Share this post


Link to post
Share on other sites

OK, mooi. Succes :)

 

De compiler zegt dat het foutje in de setup functie zit. Dat is in de code van het voorbeeld en niet in de library. Als je een fout krijgt dan springt de compiler ook naar die regel toe. Is er niets aan te zien wat er fout uit ziet? Zo te zien mist er een sluithaakje.

 

Ik heb er ook een CR2032 in zitten.

  • Like 1

Share this post


Link to post
Share on other sites

Hmm je hebt inderdaad gelijk. Er moet een LIR2032 batterij in. Die zijn oplaadbaar. Dat is met de DS1307 ook zo inderdaad. Al heb ik niet gemerkt dat een CR2032 problemen gaf en ze draaien hier toch al een paar jaar :)

 

Ze doen het overigens ook prima zonder batterij. Alleen als de stroom uit valt ben je de tijd kwijt.

 

Makkelijkste is om even die diode eraf te breken. Dat is dat oranje dingetje wat naast de grote chip zit. Ik duwde de diode er met een schroevendraaier zo vanaf.

 

 

Ik heb geprobeerd te achterhalen welk voorbeeld je geprobeerd hebt. Is het deze?:

 

Dan moet je beide bibliotheken installeren voordat het werkt:

https://github.com/PaulStoffregen/Time

https://github.com/JChristensen/DS3232RTC

 

Installeren doe je door de bestanden uit te pakken in de libraries map ergens in de Arduino map of onder je eigen sketch map (waar je programma's worden opgeslagen)

 

Ik had overigens wel nog een rarigheidje dat de Time bibliotheek niet herkend werd als het bestandje library.properties in de map stond. Nadat ik gewoon de nieuwste versie van de Arduino omgeving had geinstalleerd werkte dat wel. Sowieso wel handig, want hij zat steeds te zeuren dat er een nieuwe versie was en dat is ook meteen over :)

Share this post


Link to post
Share on other sites

Ik heb zeker 4/5 filmpje bekeken.

Deze was er niet bij.

En het maakt toch niet uit, dat er zo als in dat filmpje van jou dat er gewerkt wordt met een Nano en ik met de Mega??

 

Dat van die 2 bibliotheken, dat wist ik niet.

Ik zal er morgen eens weer mee gaan stoeien.

 

Nu naar bed, morgen de 1e vroege dienst weer... :(

 

Bedankt trouwens, dat je probeert om me te helpen. Waardeer ik echt :verrygood

Edited by oude rocker

Share this post


Link to post
Share on other sites

Dat met die bibliotheken heeft mij ook al een paar keer genekt in het begin. :P

Wat ook handig is, je foutmelding kopiëren en op google invoeren, soms moet je een paar topics af, maar uiteindelijk vind je dan vaak wel de oorzaak.

 

Als ik je foutmelding zo lees staat er iets niet goed in je code, plaats die hele code hier eens?

En was dat alles wat ie aan foutmelding gaf?

Share this post


Link to post
Share on other sites

Die Nano is vergelijkbaar met de Uno. Het is vooral een wat kleiner bordje, maar verder verassend gelijkwaardig. Voor kleine projectjes zijn die dingetjes heel interessant. Ik gebruik ze bijvoorbeeld voor de fan controller, pH meter, niveau regelaar. Al gebruik ik Pro Mini's, maar dat is alleen maar nog iets kleiner (en goedkoper).

 

Of je twee bibliotheken nodig hebt weet ik niet, want het hangt er vanaf welk voorbeeld je gebruikt. Er zijn ook voorbeelden waarbij 1 bibliotheek voldoende is of zelfs helemaal geen. Maar goed als je iets compileert en hij begint te mekkeren dat ie dingen niet kan vinden dan ben je geheid vergeten om een bibliotheek te installeren. De readme geeft dan wel aan wat je had moeten doen. Die readme lees je overigens nooit van tevoren. Handleidingen en Readme's zijn voor watjes :whistle:

 

Graag gedaan hoor. Vind het ook leuk om te helpen. Kan ook niet alles voor je doen, maar vooral het eerste begin is lastig en dan scheelt het hopelijk wel als iemand even helpt.

 

Het helpt overigens wel als je even zegt welk voorbeeld je gepakt hebt of als het een eigen brouwsel is dat je de code even geeft. Als je alleen zegt dat het niet werkt moet ik ook maar gokken wat er aan de hand is. Dat is net alsof iemand zegt dat zijn plant er beroerd uit ziet en vraagt wat er dan mee mis is zonder foto's te plaatsen :likken:

Share this post


Link to post
Share on other sites

@bosrand

Het is idd nog een crime, met die bibliotheken.

Maar goed uiteindelijk zal het wel een keer gesneden koek worden toch?

En ja, dat was de hele foutcode.

 

@wietefras

Dus, als ik je nu goed begrijp, dan ben je voor ieder projectje een apart "bordje" nodig?

Ik had gedacht, dat je net als je pc, je dat hele ding kan volhangen met allerlei sensors, tot net zolang dat je niet meer poortjes hebt.

Daarom had ik de mega genomen, om lekker veel er aan te kunnen hangen.. :)

 

Ik ga ff helemaal opnieuw beginnen met de RTC

en dan goed opletten, welke bibliotheek ik gebruik.

 

Het helpt overigens wel als je even zegt welk voorbeeld je gepakt hebt of als het een eigen brouwsel is dat je de code even geeft. Als je alleen zegt dat het niet werkt moet ik ook maar gokken wat er aan de hand is. Dat is net alsof iemand zegt dat zijn plant er beroerd uit ziet en vraagt wat er dan mee mis is zonder foto's te plaatsen :likken:

 

Ehum,

Daarom, had ik de foutcode er bij geplakt.

Ik had gedacht, dat dat dan voor jou zou aangeven.......

"Daar zit je fout" :likken:

 

Net als mijn verkeerde denkwijze vwb die bordjes,

Is 1 RTC wel voldoende voor diverse sensors?

 

Ik laat hoop ik vanavond nog weten, dat ik het eindelijk up and running heb... :wave:

Share this post


Link to post
Share on other sites

Met de code bedoelen we je programma code, niet enkel de foutcode.

Dan wordt het een stuk duidelijker om te zien waar de fout mogelijk kan zitten.

 

Je kan inderdaad een aantal verschillende sensoren aan de Arduino hangen, je hoeft niet voor elke sensor een ander bordje te pakken.

Ook is 1 RTC genoeg voor een aantal verschillende sensoren.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...