Arduino-gestuurde GrowBox-controller – Open-source firmware & hardwarehandleiding
Onderdelen en benodigdheden
| Arduino Mega 2560 | 1 |
| Arduino Ethernet Shield 2 | 1 |
| DHT22 Temperatuursensor | 2 |
| Adafruit Waterproof DS18B20 Digitale temperatuursensor | 2 |
| Arduino 4 Relais Shield | 1 |
| Seeed Grove - RTC | 1 |
Benodigde tools en machines
- Solderbout (standaard)
Apps en online diensten
- EmonCMS
Over dit project
De Arduino GrowBox Controller is beschikbaar op GitHub. Ik heb eindelijk de firmware die ik de afgelopen jaren voor mijn GrowBox heb ontwikkeld gedeeld, onder GPL3-licentie.
Op mijn website heb ik al gedeeld hoe ik mijn GrowBox heb gebouwd, de aanpassingen die ik in de tijd maakte en foto's van groeiende planten.
Dankzij de Arduino Mega 2560 Rev.3 biedt deze open-source firmware een kleine webserver voor configuratie, data-overdracht naar een EmonCMS-instantie en datalogging naar SD-kaart. CSV-logbestanden zijn downloadbaar via de webpagina van de GrowBox Controller.
De Arduino GrowBox Controller gebruikt DHT22-sensoren voor temperatuur- en vochtigheidsmetingen, zowel binnen als buiten de box. DS18B20-sensoren worden ook gebruikt voor het monitoren van de temperatuur van een bemonsteringspot en de grond.
De Ethernet Shield maakt externe configuratie mogelijk, evenals datavisualisatie en logdownload. Dit maakt een 20x4 LCD-display overbodig, maar nuttig als je je telefoon of tablet niet wilt aanzetten.
EmonCMS-integratie met de Arduino GrowBox Controller stelt ons in staat om een historie bij te houden en trends te monitoren, van overal. Als je EmonCMS al gebruikt voor energiemonitoring-toepassingen, kun je dit er ook in integreren.
Sinds vorig jaar kweek ik alleen peperplanten, maar tijdens 2018 kweekte ik tomaten, courgettes, peperplanten (niet de pittige!), aubergines, watermeloenen en meloenen om in mijn moestuin te planten. Een vroege start, omdat waar ik woon de zomer kort is en ik niet vanaf zaad in het veld kon beginnen. Ook, tomaten eten in juni is geweldig!
Geïmplementeerde functies op Arduino GrowBox Controller
Laten we eens kijken wat deze controller kan!
Omgevingsparameters controleren
GrowBox-temperatuurregeling
Het is mogelijk om verwarmingsterugdraden in te stellen:
- Minimale temperatuur: Onder deze drempel wordt de verwarming geactiveerd
- Maximale temperatuur: Boven deze drempel wordt de verwarming uitgeschakeld
Vochtigheidsdrempels
Het is mogelijk om luchtvochtigheidsdrempels in te stellen:
- Minimale vochtigheid: %RH Onder deze drempel wordt de luchtbevochtiger geactiveerd
- Maximale vochtigheid: %RH Boven deze drempel wordt de luchtbevochtiger uitgeschakeld
Grond/zandtemperatuur
- Minimale grondtemperatuur: De controller kan verwarming activeren als de grondtemperatuur onder deze drempel ligt (als de interne temperatuur ook onder de minimumdrempel ligt)
- Maximale grondtemperatuur: De controller schakelt verwarming ook uit als de interne temperatuur verwarming vereist. Dit is om pot- en wortelschade te voorkomen
Verlichtingsregeling
- Starthour: uur waarop de controller de lampen aan zal zetten
- Startminuut: minuut waarop de controller de lampen aan zal zetten
- Stophour: uur waarop de controller de lampen uit zal zetten
- Stopminuut: minuut waarop de controller de lampen uit zal zetten
Als we de lampen om 6:30 aan willen zetten en om 22:30 uit, stellen we in:
- Starthour: 6
- Startminuut: 30
- Stophour: 22
- Stopminuut: 30
Netwerk
Deze sectie betreft lokale netwerkparameters.
- IP-adres: Statisch IP-adres naar keuze
- Subnetmasker: Jouw subnetmasker
- Gateway: IP-adres van je gateway
- DHCP: Aanvinken als je DHCP nodig hebt. Bovenstaande configuratie wordt dan genegeerd.
Ventilatoren
Sommige lampen worden heet in growboxen, dus we kunnen verschillende programma's instellen voor "nacht" en "dag".
Ventilatoren - Licht AAN
- Duur: duur in minuten
- Interval: interval tussen activeringen, in uren
Ventilatoren - Licht UIT
- Duur: duur in minuten
- Interval: interval tussen activeringen, in uren
Real-Time Clock
Stel je lokale tijd in, om nauwkeurige logs toe te staan en het programma te herstarten in geval van stroomuitval.
Frequentie van acquisitie en logging
Ik heb ervoor gekozen om deze twee parameters gescheiden te houden, omdat de controller snel kan reageren (snelle acquisitiefrequentie) maar we niet al die data nodig hebben, dus de loggingfrequentie is langzaam. Met een snellere loggingfrequentie krijgen we grotere CSV-bestanden, meer data-overdracht naar EmonCMS en langzamere downloadtijd.
- Sample Rate: bemonsteringssnelheid, in seconden. Controller kan sneller reageren
- Transmissie- en Log-snelheid: minuten tussen CSV-update en EmonCMS-dataoverdracht
PCB voor Arduino GrowBox Controller
Ik ben begonnen met het ontwerpen van een "shield" voor Arduino Mega, zodat je Ethernet shield, relais en sensoren eenvoudig kunt verbinden. Ik gebruikte Eagle, en de bronnen zijn beschikbaar op GitHub.
Volgende stappen
Dit is het derde jaar dat ik mijn peperplanten (en andere groenten) kweek, maar ik mis nog enkele functies die ik in de toekomst wil integreren:
- PID voor verwarming, door gebruik te maken van een solid state relay (SSR) om het verwarmingselement te besturen en de energie-efficiëntie en temperatuurregeling te verbeteren
- MQTT, om dit apparaat te integreren in huishoudautomatiseringssystemen of IoT-platforms zoals ThingsBoard.io
- NTP om de real-time clock in te stellen en fouten te voorkomen
- Voorverwarmen: start verwarming voordat de lampen uitgaan om de temperatuurstabiliteit te verhogen
- Irrigatie met bemonsteringspotsensor.
Ik hoop dat je van dit project geniet!
Deel je kwekerijervaring!
Code
Arduino GrowBox Controller
Arduino Firmware voor GrowBox Controller: https://github.com/Yarosia/Arduino-GrowBox-Controller
Schema's
Arduino GrowBox Shield
Eagle schema en PCB voor de shield (nog niet gefreesd): https://github.com/Yarosia/Arduino-GrowBox-Controller
Productieproces
- Professionele gids voor bitmap-animatie op de ILI9341 2,4″ TFT Touchscreen Shield
- Web-gestuurd DMX-verlichtingssysteem – Arduino Master Controller
- Bluetooth-gecontroleerde Arduino Spybot bouwen
- DIY Arduino USB Gaming Controller – Bouw Je Eigen High-Performance Gamepad
- Unopad: Naadloze Arduino MIDI-controller voor Ableton Live
- Bouw een Android-bestuurd extern voertuig met Raspberry Pi Motor Shield
- Arduino-gebaseerde Vacuum Fluorescent Display (VFD) Controller Kit
- Alexa-ingeschakelde Arduino Thuiscontroller: Slimme Automatisering Made Simple
- Draadloze Arduino Programmeer Shield met HC-05 Bluetooth – Geen USB Nodig
- Arduino FM Radio met RDA5807M – RDS, Presets & OLED Display
- Hoogwaardige 2,8″ TFT Shield voor Arduino Nano – 320×240 SPI Display