Een project van ons groepje voor school.
Het is een geautomatiseerde anemostaat(dat witte ding). De server, links met het blauwe ethernetshield, meet de temperatuur, de luchtvochtigheid en het CO2 gehalte in de lucht. De CO2 waarde wordt met een PI regeling omgezet naar een hoek voor de servomotor om de schijf open te draaien. De sensorwaarden worden via ethernet naar een database op een pc gestuurd. Deze database is ook door de andere anemostaten te benaderen. Ook worden de waarden elke 2 seconden doorgestuurd naar de afstandsbediening, rechts op de foto.
De server is opgebouwd rond een ATmega328. Links op de PCB zit de voeding, het 8-pins ic is een DS1307 RTC en in het midden zit natuurlijk de ATmega328. De sensoren die eraan hangen zijn de SHT71 voor de luchtvochtigheid en temperatuur en de CDM4161A voor het gehalte aan CO2. De haakse header bovenaan is voor de comminucatie met de afstandsbediening via een RX/TX verbinding. De bluetooth modulen die we hadden, waren helaas niet geschikt om als master te werken, anders hadden we de communicatie draadloos gemaakt. Natuurlijk was ik degene die niet doorhad dat de comminucatie met het ethernetshield via de ISCP connector liep en daarom hebben we nog een PCB ertussen gemaakt om de pinnen D10-D13 door te lussen naar de ISCP header. De ATmega bevat ook alle parameters en setpoints in zijn EEPROM.
De afstandsbediening is ook opgebouwd rond een ATmega328. We hebben een los PCB'tje gemaakt met de knoppen, zodat die even hoog liggen als het LCD display. Rechts op de PCB zit de voeding, het IC daar links van is een PCF8574 I2C expander die het LCD aanstuurt in 4-bits mode en het grote IC is natuurlijk de ATmega zelf. Het kleine PCB'je dat er rechts op gestoken zit, is de one button on/off maar dan opgebouwd met een BS170 en een IRF9530. De afstandsbediening kan dus uitgeschakeld worden, terwijl de server de anemostaat aan blijft sturen. Zodra de afstandsbediening aan gaat. Roept die alle waarden en parameters op vanuit de server. Als dat gelukt is, gaat de controller verder aan en wordt het home scherm weergegeven zoals hieronder te zien is. Hierop staan de tijd, de datum, de temperatuur van de afstandbediening(die bevat nog een LM35) de connectie status met de database en de voedingsspanning in procenten(de controller is bedacht om op een accu te werken).
De controller bevat een uitgebreid menu met alle waarden en instel menu's door middel van geneste statemachines en zit als volgt in elkaar:
- Home
- Luchtvochtigheid
- Temperatuur
- CO2 waarde
- Afzuig percentage
- Ventilator percentage
- Extra menu
- Interval tussen twee metingen
- Prioriteit
- Inhoud van de ruimte
- Snelheid om af te zuigen
Om tussen de hoofdpunten te wisselen, kun je op de Up en Down knoppen drukken. Met enter ga je het achterliggende menu in en met up en down kun je de waarde verhogen en met enter de waarde bevestigen en versturen. De controller kent ook een auto modus, en gaat elke 10 seconden dat er geen knop is ingedrukt naar het volgende hoofdpunt. Als de controller meer dan 2 minuten niet is bedient, gaat eerst het backlight uit en na nog 2 minuten gaat de controller helemaal uit. Met de one button on/off is het backlight ook aan en uit te zetten.
De datebase die op de PC draait, is een Acces database die aangestuurd wordt met SQl commando's. De SQL commando's worden vanuit de arduino verstuurd en ontvangen door een programma op de pc die de commando's doorgeeft aan de database. De commando's kunnen variëren tussen het updaten van de sensorwaarden, de parameters ophalen en de parameters wegschrijven.
De anemostaat is zogezegd omgebouwd en uitgerust met een servo motor. Er zijn 2 schrijven met gaten erin die over elkaar heen kunnen vallen. Als de gaten recht tegenover elkaar zitten, is de afzuiging maximaal en als de gaten 25° verschoven zijn, zijn de gaten dicht en is er weinig afzuiging(er is altijd ene klein beetje afzuiging).
Als laatste hebben we ook een Android app geschreven. Deze app kan de sensor data ontvangen en in een grafiek plaatsen(er kan ook data uit de geschiedenis gehaald worden). Ook kunnen de parameters opgeroepen worden en aangepast worden. Deze app staat ook in de Play Store:)
Volgens mij ben ik nu zelfs nog features vergeten;)
De PCB's zijn ontworpen in EAGLE(dubbelzijdig) en gemaakt op school(we hebben alleen geen goede beschermlak en de PCB's zijn ondertussen al aan het oxideren:(), de anemostaat is ontworpen in SOlidWorks en geprint met een 3D printer en de database en android app zijn in Delphi geschreven.