Real-time Waterkwaliteit Monitoring Systeem met Arduino & GPRS/GPS
Onderdelen en benodigdheden
| Onderdeel | Aantal | Opmerkingen |
|---|---|---|
| Arduino UNO | 1 | Hoofdcontroller (origineel: Genuino 101) |
| A7 GPRS/GPS Module | 1 | Combineert GPRS data + GPS in één module |
| Waterkwaliteit Sensoren | 1 set | Temperatuur, pH, opgeloste zuurstof, troebelheid |
Benodigde tools en machines
- Soldeerbout – Voor printplaat montage
Software en online diensten
- Microsoft Azure – Website hosting (gratis voor studenten)
- Arduino IDE – Programmeeromgeving
Over dit project
Inleiding
September 2016: een waterzuiveringsinstallatie moest dichtgaan omdat vervuild water binnenstroomde. Het waterbedrijf kon de bron niet lokaliseren → ernstige storing watervoorziening.
Mijn universitaire cursus vereist een systeem dat een maatschappelijk probleem oplost. Een geautomatiseerd waterkwaliteit monitoring systeem zou het vinden van de vervuilingsbron vergemakkelijken!
Systeemoverzicht
4 sensoren aangesloten op Arduino (origineel Genuino 101). Allemaal stroom-uitgang sensoren → interfacing schakeling nodig. Arduino verzamelt periodiek metingen, haalt GPS coördinaten op, en uploadt databundel via GPRS naar database. Gebruikers bekijken resultaten via website.
Sensorproeven
Drie stroom-uitgang sensoren van Global Water (van begeleidende docent): temperatuur, pH, opgeloste zuurstof. Helaas: zuurstofsensor defect.
Vierde sensor: troebelheidssensor – spanningsuitgang evenredig aan zwevende deeltjes.
Sensoren interfaccen met Arduino
Een weerstand zet de stroomuitgang om in meetbare spanning.
A7 GPRS en GPS Module
Gekozen voor A7: goedkoper dan SIM900, en combineert GPRS + GPS in één pakket!
Maar goedkoper heeft nadelen:
- GPS antenne die meegeleverd wordt is geen echte GPS antenne → zelf kopen
- Ondersteunt standaard alleen 115200 baud UART.zelfs na softwarematige baudrate wijziging springt het na power cycle terug naar 115200. SoftwareSerial op 115200 is heel onbetrouwbaar. 2 dagen uitgetest voor dit probleem. Oplossing: baudrate wijzig functie in Arduino code geïmplementeerd.
- Nieuwe module → eigen bibliotheek geschreven (bronnen: SIM900, Adafruit GPS). Rommelig maar werkend.
Schakeling voor module aansturing: RESET pin en PWR_KEY pin. PWR_KEY min. 2s HIGH voor opstarten. RESET naar GND voor reset, anders pull-up naar 5V. Eerst resetten, dan opstarten voor zekere start.
Voeding
Speciale aandacht: stroom-uitgang sensoren vereisen minimaal 10V (hoger dan onze geliefde 5V). Voor remote demonstratie: Li-Ion batterijen.
2 Li-Ion in serie = 7,4-8,4V. Een buck converter naar 5V (Arduino + A7), een boost converter naar 11V (water sensoren). Prototypedoeleinden: niet lange looptijd nodig.
De printplaat
Systeem op prototype printplaat. Past met Arduino in behuizing.
Behuizing
Docent gaf oude behuizing met gaten geboord door eerdere studenten voor water sensor projecten. Perfect!
Let op sensor connectors: GX16 type (gevonden na zoektocht). Zeer veelzijdig, zeker nuttig voor toekomstige projecten!
Website
Deel dat weken kostte vanaf nul. Nul kennis van servers/websites – tijdens project PHP, SQL, JavaScript, CSS, HTML geleerd.
Gehost op Microsoft Azure (gratis student tier, voldoende). Database via ClearDB (Azure partner, ook gratis tier).
Code in repo, maar voeg credentials toe in username_password.php.
log.php– dumpt Arduino data in database- Hoofdpagina: Google Maps met markers op meetlocaties
- Overige PHP: database access tools
Website reactie traag, gehackt samen – verbetervoorstellen welkom! :)
Broncode
Water Quality Monitoring System op GitHub
Website codes in /Website, Arduino sketches en A7 bibliotheek in /Arduino
Schema's
Schema's voor het complete systeem.
Productieproces
- Raspberry Pi-gestuurd Aquaponica Systeem: Bouwgids & Code
- Luchtkwaliteit meten met OpenSensors: Een Arduino & Python Handleiding
- Slim Binnenklimaat- & Afvalmonitoringssysteem met Raspberry Pi en Arduino
- K30 CO2-sensor: Real-time binnenluchtkwaliteitmonitoring met Arduino
- SERENA: Een Aangepast Arduino Mega 2560 Alarmsysteem Met TFT LCD Touchscreen
- Slimme beweegactiverde waterpistool gebouwd met Arduino Nano
- Contactloze temperatuurgate voor snelle, accurate screening
- Real-time Bosbrandbewakingssysteem met SMS-alarmen
- Slimme Kelder Ventilatiesysteem: Arduino-gestuurde Vochtcontrole
- Slim Temperatuurmonitoring Systeem voor Scholen: Nauwkeurig, Real-time en Beveiligd
- IoT-ingeschakelde Luchtkwaliteitsmonitoring: Veiligheid, Productiviteit en Duurzaamheid Verhogen