Introduction: Aquatemp

In het eerste jaar NMCT werd op het einde van het tweede semester een project van ons verwacht. We konden kiezen uit een aantal mogelijkheden of zelf een voorstel doen. Zelf koos ik er voor om een project te maken dat het water binnen een aquarium monitort. Ik koos er voor om vooral de temperatuur en de pH te controleren. Deze 2 waarden zijn immers de meest belangrijke binnen een aquarium. Na verloop van tijd werd er voor gekozen om een alarm toe te voegen. Dit alarm zou afgaan als het waterniveau te laag bleek te zijn. Op deze manier kan een lek in het aquarium vroegtijdig opgespoord worden. Natuurlijk kan dit project ook andere doeleinden nuttigen. Zo kan Aquatemp perfect geïnstalleerd worden in een zwembad of buitenvijver. Enkele lichte aanpassingen zullen dan wel nodig zijn aan dit prototype.

Step 1: Onderdelen

De eerste stap bestaat uit het vinden van de juiste sensoren voor het beoogde doeleind. Zelf heb ik gekozen voor een one-wire sensor om de temperatuur te meten. Eerst ging ik een vochtigheidssensor gebruiken om het waterniveau te berekenen, maar toen ik wat verder zocht vond ik een sensor die het waterniveau perfect meet. Ook heb ik mij een pH-sensor aangeschaft. Bij de pH meter moet er wel nog een bordje aangekocht worden om te kunnen communiceren met de raspberry pi. Hieronder bevindt zich een volledige lijst met al mijn onderdelen. Ook moet er gezocht worden naar een behuizing om de pi en alle andere onderdelen in onder te brengen. Zelf heb ik gekozen om dit niet te doen omdat dit slechts een prototype is. Ook heb ik er voor gekozen om niets vast te schroeven omdat sommige onderdelen niet waterdicht zijn en eventueel beschadigd zouden kunnen geraken. Zelf kan je dit natuurlijk in werken in een mooie case/doos.

Onderdelen:

-1-wire sensoren Ds18B20

-Raspberry pi 3b

-Logo_PHSensor v1.1 (pH sensor board)

-pH sensor (pH sensor zelf)

-Analoge waterniveau meter --> Voor zowel de pH meter, het pH senorboard als de waterniveau meter raad ik de website www.bitsandparts.eu aan.

-Jumper cables voor de pi

-Een breadbord (voldoende groot)

-Adafruit T-Cobbler Plus

-mcp3008

Step 2: Ontwerpen En Maken Van De Website

Ik ben begonnen met een ontwerp te maken van mijn beoogde website. Op deze website is het voor de gebruiker mogelijk om de verschillende meetresultaten te zien. Eerst werden er wireframes gemaakt om een idee te scheppen van de website. Vervolgens werden deze wireframes in photoshop bewerkt om een mooier en kleurrijker resultaat te bekomen. Vervolgens begon het programmeer werk. Ik heb gebruik gemaakt van pycharm en flask om mijn website te programmeren. Tijdens het programmeren zelf heb ik wel enkele toegevingen moeten doen. Zo zag ik dat het programmeren van ronde knoppen toch iets te ingewikkeld was voor mijn kennis van http en css. Wel werd er met behulp van een javascript enkele dropdown vensters gemaakt.

Step 3: Schakelen Van De Verschillende Onderdelen

Ikzelf maakte gebruik van een breadbord om mijn verschillende onderdelen te schakelen. Dit omdat ik dan vlot aanpassingen zou kunnen maken. Ik begon met het schakelen van de one-wire temperatuursensor. Deze gebruikt de 3V3 die de raspberry pi kan leveren. De signaal draad verbinden we met GPIO pin 4 van de raspberry. Na het veranderen van enkele instellingen binnen de pi kunnen we de one-wire sensor gebruiken. Vervolgens schakelen we de waterniveau sensor en de pH meter met behulp van een mcp 3008. Het schakelen van de mcp 3008 kan je terugvinden in de foto's.

Step 4: Het Maken Van Een Database

Eerst werd er een voorstudie uitgevoerd. In deze voorstudie werd gekeken hoe mijn database er precies zou uitzien. Ik ben tot de conclusie gekomen dat 2 tabellen voldoende waren voor dit project. Een tabel aquarium waar ik de verschillende sensorwaarden en tijdstippen bijhoud. En ook een tabel sensor waar ik het type sensor bijhoud. De relatie bedraagt 1 op veel. Zo kan een aquarium verschillende sensoren hebben, maar een sensor kan slecht 1 enkel aquarium hebben.

Step 5: Code Schrijven

Vervolgens begon ik aan het deel waar ik het minst goed in ben. Het schrijven van de code. Eerst schreef ik de code voor de one-wire temperatuursensor. Deze werkt via GPIO pin 4 van de raspberry pi. Vervolgens heb ik mijn code geschreven voor de mcp3008 en de daarmee overeenkomende waterniveau en pH meter. Zelf heb ik heel wat problemen ondervonden met het schrijven van deze code. Ook is mijn mcp3008 in het proces gebroken. Ik heb nog een nieuwe besteld maar deze is jammer genoeg niet op tijd geleverd. Dit zorgde er voor dat ik verdere aanpassingen aan mijn project niet heb kunnen testen. De code die dus getoond wordt in de afbeeldingen kan foutief zijn.