Arduino-gestuurde indoor tuin: Slimme, geautomatiseerde plantenverzorging
Onderdelen en benodigdheden
- Arduino Nano R3 (1×)
- mbientLab Bluetooth naar USB Dongle (1×)
- JLCPCB aangepaste PCB (1×)
Over dit project
Tuinieren in het moderne tijdperk betekent dingen ingewikkelder maken met elektronen, bits en bytes. Microcontrollers en tuinieren is een populair idee – planten hebben eenvoudige in- en outputs die makkelijk te begrijpen zijn. In dit project bouw je een vereenvoudigde indoor tuin met een Arduino-ontwikkelbord.
Ik bied een complete stapsgewijze handleiding voor hardware en software, zodat u uw eigen automatische tuinsysteem kunt maken. De aangepaste PCB van JLCPCB verbetert de uitstraling en maakt solderen foutloos. Het project is in 7 dagen gerealiseerd: 3 dagen hardware, 4 dagen code en Android-app voor Bluetooth-besturing.
Wat u leert
- Componenten kiezen op basis van functionaliteit
- Schakeling ontwerpen en alle componenten verbinden
- Monteren en testen
- Android-app via Bluetooth gebruiken voor handmatige/automatische besturing
Stap 1: Wat is een indoor tuin?
Planten hebben drie basisbehoeftes: licht, water, lucht. Beheers deze vier elementen (lichtintensiteit, watergift, luchtvochtigheid, temperatuur) en u kunt overal en elk seizoen een indoor tuin hebben.
- Licht: Minimaal 6 uur goed licht per dag. Schaduwtest: hand voor raam → geen schaduw = onvoldoende. Aanvullen met groeilampen.
- Water: Afhankelijk van planttype. Dikke bladeren = wateropslag, dunne bladeren = meer water. Kies planten of potten met reservoir als u weinig wilt wateren.
- Lucht: Planten produceren zuurstof en filteren schadelijke gassen. Houd bladeren schoon, zorg voor luchtstroom (ventilator).
Stap 2: Sensoren en actuatoren
Het systeem meet omgevingsparameters en stuurt actuatoren aan:
Sensoren
- Lichtsensor BH1750 (I2C) – Digitale omgevingslichtsensor, bereik 1–65535 lux, hoge resolutie.
- Bodemvochtigheidsensor – Meet weerstand/geleiding tussen twee contacten. Let op: weerstand is geen betrouwbare indicator (afhankelijk van pH, opgeloste stoffen, temperatuur). Contacten corroderen snel. Gebruik liever capacitieve sensoren voor langdurig gebruik.
- Temperatuur & vochtigheid DHT11 – Digitaal, ultraggoedkoop. Capacitieve vochtigheidsensor + thermistor. Alleen elke 2 seconden nieuwe data.
Actuatoren
- Witte LEDs – Voor plantenverlichting (PWM-gedimd).
- Waterpomp – 12V DC pomp voor automatische besproeiing.
- 12V DC koelventilator – Voor verse luchtcirculatie bij hoge temperatuur.
Stap 3: PCB-productie (via JLCPCB)
De PCB heeft een bladvorm en alle labels voor foutloos solderen. Besteld via JLCPCB (grootste PCB-prototypebedrijf China, 2$ voor 5 stuks, 3 dagen levertijd). Gerber-bestanden uploaden, parameters instellen (dikte, kleur, aantal), betalen.
Stap 4: Benodigde componenten (ingredients)
- PCB (van JLCPCB)
- Arduino Nano
- ESP-01 module (WiFi)
- HC-05 of HC-06 Bluetooth module
- BH1750 lichtsensor
- DHT11 temperatuur/vochtigheid sensor
- Bodemvochtigheidsensor
- Waterpomp
- 12V DC ventilator
- Witte LEDs
- Header connectors
Stap 5: Montage
Soldeer componenten volgens de labels op de PCB. Begin met Arduino-connector voor voedingstest. Houd soldeerbout schoon en blinkend voor goede warmteoverdracht. Gebruik beide zijden van de PCB. Na solderen: CNC-lasercutting voor steunstructuur (DXF-bestanden beschikbaar).
Stap 6: Android-app
De app (gratis downloadbaar) verbindt via Bluetooth. In handmatige modus: ventilatoren, lampen, pomp AN/UIT. Sensorwaarden uitlezen via "Get Data" knop. Automatische modus: lichtintensiteit volgt BH1750, pomp reageert op vochtigheid, ventilator op temperatuur >30°C.
Stap 7: Arduino-code en validatie
De code is eenvoudig en goed gecommentarieerd. Belangrijkste functies:
autoPump()– Pompeert als analoge vochtwaarde <sprayCMDlightBrightness()– Verhoogt LED-helderheid totlux≥LightCMDautoFan()– Ventilator AN bij temperatuur >30°C, anders UIT- Bluetooth-commando's: 'o'=auto, 'm'=handmatig, 'f'/'x'=fan, 'l'/'k'=licht, 'w'/'y'=pomp
// Belangrijkste auto-functies (uitgebreide code in project)
void autoPump() {
if (analogRead(analogMoistue) < sprayCMD) {
digitalWrite(Pump, HIGH); delay(1000);
digitalWrite(Pump, LOW); delay(1000);
}
}
void lightBrightness() {
while (lux < LightCMD) {
analogWrite(Light, lightLevelPlus++);
delay(100);
lux = lightMeter.readLightLevel();
}
}
void autoFan() {
analogWrite(Fan, (temperature > 30) ? 255 : 0);
}
Aangepaste onderdelen en behuizingen
DXF-bestanden voor 5 mm MDF lasercutting: dxf_mdf_5mm_s0PEHuez4w.rar
Schema
Schema is geïntegreerd in de PCB-layout (zie JLCPCB bestelling).
Productieproces
- Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
- Bouw een Klassiek Pong-spel op Arduino UNO met OLED-display – Stap-voor-stap Tutorial
- Arduino Audio Frequentie Detector – Meet de luidste geluidspieken met hoge gevoeligheid
- Bouw Je Eigen Arduino Tamagotchi: Een Digitale Huisdier DIY Project
- Slimme Draadloze Lichtschakelaar Controller: Arduino-gebaseerde Remote Switch Manipulator
- Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
- Slimme beweegactiverde waterpistool gebouwd met Arduino Nano
- Bouw een Betrouwbare Arduino Afteltimer met SparkFun 7‑Segment Display
- Arduino Zonnebloem: Bouw een elektronische zon-volgende zonnebloem
- Bouw je eigen RC Porsche-auto met Arduino: Stap-voor-stap handleiding
- Slim Indoor Navigatie Robot Kit voor Arduino Projecten