Slimme plantenmonitoring met Windows 10 IoT, Arduino Due en Raspberry Pi
Onderdelen en benodigdheden
| Arduino Due (ARM, 3,3V logica) | 1 |
| Raspberry Pi 2 Model B | 1 |
| BMP180 barometrische druk/temperatuur/hoogte sensor (I2C) | 1 |
| ADS1115 16-bit ADC (I2C, 4 kanalen) | 1 |
| Bodemvochtsensoren (met comparator module) | 4 |
| Servo's (Tower Pro MG996R) | 2 |
| Relaismodules | 2 |
| Breadboard en jumper-draden | 1 set |
Software en ontwikkelomgeving
- Microsoft Visual Studio 2015 (voor Windows 10 IoT app)
- Arduino IDE (voor Arduino Due firmware)
Over dit project
Projectinleiding
Dit project realiseert een plantenmonitoring- en bewateringssysteem. De hoofdtaken: servos en relais aansturen, bodemvochtdata verzamelen. Omdat de Raspberry Pi geen ingebouwde ADC heeft, gebruik ik een externe ADC (ADS1115) en een Arduino-gateway (Arduino Due) die wél ADC heeft. Voor PWM (servo-aansturing) probeerde ik drie methoden: software PWM, Arduino-gateway, en PWM-capable modules. Ik implementeerde de eerste twee.
De applicatie (Windows 10 IoT)
De app heeft twee modi:
- Automatisch: Detecteert of planten water nodig hebben. Bodemvocht wordt gecategoriseerd in 5 niveaus (1 = nat/groen, 5 = droog/rood). Een timer checkt periodiek: als categorie > drempelwaarde, wateren. Één servo kan ~180° draaien en dus 2 planten besproeien. Plant A&B worden samen gecheckt, C&D in de volgende cyclus.
- Handmatig: Directe bediening van servos en relais via GUI.
Componentdetails
Servo SG90 / MG996R
Servo's vragen hoge GPIO-kloksnelheid en veel stroom. De standaard Windows 10 IoT GPIO-provider (Lightning) had prestatieproblemen. Oplossing: externe 5V voeding voor de servo's (gemeenschappelijke ground, signaal blijft op Pi). Hierdoor werkt het betrouwbaar. Een betere Pi-voeding of software-optimalisatie kan ook helpen.
ADS1115 16-bit I2C ADC
De driver is nog in ontwikkeling (drempelregisters nog niet geïmplementeerd), maar functioneel voor basislezen. Verdient een eigen tutorial.
BMP180 I2C temperatuur/druksensor
Gebaseerd op bestaande driver, aangepast voor Lightning-provider compatibiliteit. Past bij weerstation/plantenmonitoring projecten.
Relais
Eenvoudige GPIO-aansturing, duidelijk uit de broncode.
Fotodiodeschema
LTC1050-versterkerschema met Osram BPW21 fotodiode (geoptimaliseerd voor daglicht). Nuttig voor lichtmeting in vergelijkbare projecten.
Arduino-gateway (Arduino Due)
Gekozen voor 3,3V I2C-bus (geen level shifter nodig). De code is simpel: I2C-slave die sensoren uitleest en commando's uitvoert. Alternatief: level shifter of extra I2C-bus op Arduino Mega 2560 (zonder pull-ups).
Bodemvochtsensoren
Goedkope Chinese versies met comparator-module (digitale uitgang).
Projectsamenvatting
Dit project geeft een basisidee voor geautomatiseerde plantenbewatering en demonstreert herbruikbare technieken:
- I2C-communicatie met Arduino-gateway
- ADC op Raspberry Pi via ADS1115
- PWM/servo-aansturing op Raspberry Pi
Toekomstige plannen
- Azure IoT Hub connectiviteit
- Mobiele app met Xamarin
- Bluetooth in plaats van I2C voor Arduino-communicatie
Code repositories
Schema's
Schakelschema's voor het fotodiodeschema (uit LTC1050 datasheet) en de hoofdschakeling zijn beschikbaar in de projectbestanden.
Productieproces
- Slimme Vuilnisbak: Een Cellulaire IoT-oplossing voor Geautomatiseerd Afvalbeheer
- Bouw een Veilige Gezichtsherkenning-deur met Windows IoT en Raspberry Pi
- Nauwkeurige Temperatuur- & Vochtigheidsmonitoring met SHT15 op Windows 10 IoT Core
- Windows 10 IoT Core Installeren op Raspberry Pi 3 Model B+: Stap-voor-stap Handleiding
- Bouw een Spraak-gecontroleerde Robot met Windows 10 IoT Core op Raspberry Pi 2
- GoPiGo v2 Uitbreiden op Windows 10 IoT Core voor Raspberry Pi 3
- Cloud Monitoring: Extern controlsysteem voor real-time activabeheer
- Geavanceerd AI-aangedreven IoT-systeem voor vroege bosbranddetectie & boomgezondheidsmonitoring
- IoT-ingeschakeld Remote Monitoring Systeem voor Olie- & Dieseltanks
- Ontdek 8 Belangrijkste Voordelen van IoT-aangedreven Vloot Gewichtsmonitoring
- Revolutioneer Zuivelbeheer met IoT-geïntegreerde Melkpeilmonitoring