Ik zit nou al een paar maanden met het idee om een arduino-project te starten wat een grower zou kunnen helpen. Ik heb momenteel een temperatuur en hygrometer die netjes de laag- hoog en huidige temperatuur en luchtvochtigheid weergeeft maar ik ben ook erg benieuwd naar het verloop van de T en LV. Hoe tof zou het zijn dat je vanaf je smartphone je dames op je werk in de gaten kan houden?
Arduino is een platform waarmee dat heel goed kan. Even in het kort: Arduino is in het leven geroepen om mensen zo laagdrempelig mogelijk kennis te laten maken met elektronica. Het is een feite een mini-computer waaraan je verschillende sensoren en apparaten kan aansluiten. hoe alles met elkaar reageert kan je zelf bepalen door een programmacode te uploaden naar zo een board.
620fe644-8cfa-4523-aacc-3f05e85a039b.jpg
Zo een arduino kan op zichzelf eigenlijk helemaal niets, je zal echt gebruik moeten maken van de sensoren en een stukje code om er wat mee te kunnen. Laten we er eens een temperatuur/hygrometer op plakken via een breadboard en meteen een LCD aansluiten.
b5bb75d7-93e2-47bc-97f6-ba4ffc5ed6e1.jpg
Het geheel ziet er nu zo uit:
0e6efd04-b5a3-413d-b5cf-ca4971262228.jpg
Tijd voor een stukje code. Ik ben allesbehalve een bekwaamde programmeur en heb hier zeker wat tijd in gestoken om het werkend te krijgen, alle begin is moeilijk.
En dan het uiteindelijke resultaat hieronder. Ik heb nog een grotere LCDdisplay liggen die ik uiteindelijk wil gebruiken.
eeced8cd-4194-4db8-9a87-8c5c8728f34b.jpg
Natuurlijk is dit slechts een prototype. Er zijn nog tal van verbeteringen wat ik door wil voeren, zodra ik tijd en zin heb ga ik er weer verder aan spijkeren. Het is uiteindelijk het plan dat je op afstand in een grafiek terug kan zien wat op welke tijdstippen de temperatuur en luchtvochtigheid waren, of de lampen aan stonden en hoe hard de afzuiging draait. Misschien nog verder in de toekomst dat je ook waardes kan instellen zoals gewenste temperatuur. Als de temperatuur te laag wordt zou ik een relais kunnen aanspreken waar een kachel op staat, bij een te hoge temperatuur misschien een ventilator bij de inlaat.
Aan de andere kant, mijzelf kennende vind ik het tegen die tijd allang niet meer boeiend.
Even een rundown van de gemaakte kosten. Kan je goedkoper een kant-en-klare oplossing vinden die niet stroomgevoerd is via een USB-kabel? Vast wel, maar dit is leerzaam en misschien zelfs leuk als je het toe laat. Daarnaast kan je ook alles schrappen en een ander project beginnen. Het leuke van de lage kosten per onderdeel is dat je ook niet bang hoeft te zijn om iets naar de klote te helpen, ik heb alles in drievoud besteld bij onze favoriete webwinkel in het verre oosten.
Vragen? Opmerkingen? Misschien een originele naam voor wat dit ook mag zijn? Laat het me gerust weten!
Arduino is een platform waarmee dat heel goed kan. Even in het kort: Arduino is in het leven geroepen om mensen zo laagdrempelig mogelijk kennis te laten maken met elektronica. Het is een feite een mini-computer waaraan je verschillende sensoren en apparaten kan aansluiten. hoe alles met elkaar reageert kan je zelf bepalen door een programmacode te uploaden naar zo een board.
620fe644-8cfa-4523-aacc-3f05e85a039b.jpg
Zo een arduino kan op zichzelf eigenlijk helemaal niets, je zal echt gebruik moeten maken van de sensoren en een stukje code om er wat mee te kunnen. Laten we er eens een temperatuur/hygrometer op plakken via een breadboard en meteen een LCD aansluiten.
b5bb75d7-93e2-47bc-97f6-ba4ffc5ed6e1.jpg
Het geheel ziet er nu zo uit:
0e6efd04-b5a3-413d-b5cf-ca4971262228.jpg
Tijd voor een stukje code. Ik ben allesbehalve een bekwaamde programmeur en heb hier zeker wat tijd in gestoken om het werkend te krijgen, alle begin is moeilijk.
Code:
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // XXX LIBRARIES LADEN XXX // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX #include <LiquidCrystal_I2C.h> // Library LCD Display laden #include <Wire.h> // Library I2C interface laden #include <TimeLib.h> // Library Tijd laden #include <DHT.h> // Library temperatuursensor laden #include <BH1750.h> // Library lichtsensor laden // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // XXX DE BOEL INITIALIZEREN XXX // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX BH1750 lightMeter(0x5C); LiquidCrystal_I2C lcd(0x27,4,16); // set the LCD address to 0x27 for a 16 chars and 2 line display DHT dht; // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // XXX DE SETUP LUS XXX // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void setup() { dht.setup(2); // data pin 8 lcd.init(); // initialiseer display lcd.backlight(); // zet verlichting aan Serial.begin(9600); // Console starten Serial.println(); Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)\tLowtemp \t Higtemp"); if (lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE)) { Serial.println(F("BH1750 Advanced begin")); } else { Serial.println(F("Error initialising BH1750")); } } // EINDE SETUP LUS // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // XXX WAARDES INITIALIZEREN EN INSTELLEN XXX // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX int lowtemp = 99; int higtemp = 00; int lowhum = 99; int highum = 00; // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // XXX BEGIN EINDELOZE LUS XXX // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void loop() { int lux = lightMeter.readLightLevel(); // lichtwaarde instellen int curtemp = dht.getTemperature(); // temperatuur instellen int curhum = dht.getHumidity(); // vochtigheid instellen // Debug naar console Serial.print(dht.getStatusString()); Serial.print("\t"); Serial.print(curhum, 1); Serial.print("\t\t"); Serial.print(curtemp, 1); Serial.print("\t\t"); Serial.print(dht.toFahrenheit(curtemp), 1); Serial.print("\t"); Serial.print(lowtemp, 1); Serial.print("\t\t"); Serial.println(higtemp, 1); // Oude meetwaardes met nieuwe meetwaardes vergelijken en // daar waar nodig overschrijven. if (curtemp > higtemp) higtemp = curtemp; if (curtemp < lowtemp) lowtemp = curtemp; if (curhum > highum) highum = curhum; if (curhum < lowhum) lowhum = curhum; // Alles op het LCD scherm spugen .... lcd.clear(); // scherm leegmaken lcd.setCursor(0,0); // cursor positioneren lcd.print("TL:"); // de temps weergeven lcd.print(lowtemp); lcd.print(" TC:"); lcd.print(curtemp); lcd.print(" TH:"); lcd.print(higtemp); lcd.setCursor(0,1); // vochtigheid weergeven lcd.print("HL:"); lcd.print(lowhum); lcd.print(" HC:"); lcd.print(curhum); lcd.print(" HH:"); lcd.print(highum); lcd.setCursor(0,2); // lichtwaarde weergeven lcd.print("Lux:"); lcd.print(lux); lcd.setCursor(0,3); // hoe lang de boel aan staat lcd.print("Uptime:"); lcd.print(day()); lcd.print("D"); lcd.print(dag); lcd.print("H"); lcd.print(minute()); lcd.print("M"); lcd.print(second()); lcd.print("S"); delay(1000); // wacht 1 seconde } // einde lus, begin weer opnieuw
En dan het uiteindelijke resultaat hieronder. Ik heb nog een grotere LCDdisplay liggen die ik uiteindelijk wil gebruiken.
eeced8cd-4194-4db8-9a87-8c5c8728f34b.jpg
Natuurlijk is dit slechts een prototype. Er zijn nog tal van verbeteringen wat ik door wil voeren, zodra ik tijd en zin heb ga ik er weer verder aan spijkeren. Het is uiteindelijk het plan dat je op afstand in een grafiek terug kan zien wat op welke tijdstippen de temperatuur en luchtvochtigheid waren, of de lampen aan stonden en hoe hard de afzuiging draait. Misschien nog verder in de toekomst dat je ook waardes kan instellen zoals gewenste temperatuur. Als de temperatuur te laag wordt zou ik een relais kunnen aanspreken waar een kachel op staat, bij een te hoge temperatuur misschien een ventilator bij de inlaat.
Aan de andere kant, mijzelf kennende vind ik het tegen die tijd allang niet meer boeiend.
Even een rundown van de gemaakte kosten. Kan je goedkoper een kant-en-klare oplossing vinden die niet stroomgevoerd is via een USB-kabel? Vast wel, maar dit is leerzaam en misschien zelfs leuk als je het toe laat. Daarnaast kan je ook alles schrappen en een ander project beginnen. Het leuke van de lage kosten per onderdeel is dat je ook niet bang hoeft te zijn om iets naar de klote te helpen, ik heb alles in drievoud besteld bij onze favoriete webwinkel in het verre oosten.
Vragen? Opmerkingen? Misschien een originele naam voor wat dit ook mag zijn? Laat het me gerust weten!
Comment