Klimabox mit Arduino

Arduino Uno

Wer kennt das nicht: dicke Luft zuhause. Was aber tun, wenn man sich nicht nur auf das Gefühl verlassen möchte? Es gibt heute schon eine Reihe guter Messstationen für das Raumklima. Je nach Funktion können diese allerdings sehr teuer werden (beispielsweise wenn man auch den CO2-Anteil in der Raumluft messen möchte), oder die Geräte legen ihre Daten im Internet auf einer Datenbank der Hersteller ab.

Da es mittlerweile Sensoren für alle möglichen Umwelt-Parameter günstig im Internet gibt, dachte ich mir, das Ganze müsste doch auch preisgünstig mit einem Arduino möglich sein. So entstand das Projekt für eine Klimabox.

Die Hardware

Folgende Komponenten habe ich für die Box verwendet:

  • Arduino Uno
  • Datenlogger-Shield (enthät einen Echtzeit-Uhr [RTC] und einen SD-Karten-Leser/Schreiber)
  • DHT22 Temperatur- und Luftfeuchtesensor (plus 10kΩ Widerstand)
  • Seeed Studio Grove Staubsensor
  • BMP085 Barometrischer Drucksensor (I²C Anschluss)
  • Seeed Studio Grove Air Quality Sensor
  • SainSmart 20×4 LCD Display (I²C Anschluss)
  • Druckschalter (zum Anschalten der Displaybeleuchtung)
  • Universalnetzteil, eingestellt auf 7,5V.
Klimabox von oben
Klimabox in Funktion

Das Gehäuse wurde aus dünnen Pressplatten aufgebaut, gewonnen aus der Rückseite von alten Bilderrahmen. Der Einbau der Sensoren bleibt dem eigenen Geschmack überlassen; lediglich beim Staubsensor ist zu beachten, dass er aufrecht stehend montiert wird.

Der elektronische Aufbau gestaltet sich sehr einfach, da für jeden der oben genannten Sensoren eine Anleitung im Internet vom Hersteller oder sogar auf den Arduino-Beispiel-Seiten existiert. Die Spannungsversorgung ist ebenfalls unkritisch, da der Ardunio laut Datenblatt Spannungen zwischen 7V und 12V verträgt.

Klimabox von der Seite
Der Staubsensor, bei welchem die IR Diode zusätzlich mit Klebeband bedeckt wurde.

Die Software

Das Auslesen der einzelnen Sensoren und die Ansteuerung des LCD-Displays sind in den bereits in den bereits oben erwähnten Beispielseiten detailliert beschrieben, so dass die Software im Prinzip einfach entwickelt werden kann. Jedoch gelangt man bei der Menge an angeschlossener Hardware sehr schnell an die Speicherkapazität des Arduino Uno (leider nur 2kB RAM und knapp 30kB Flash für Programme). Daher ist etwas Optimierung notwendig – zum Beispiel Strings konsequent mit „F(<String>)“ im Flash zu halten und nicht in den RAM zu laden. Anleitungen dazu finden sich ebenfalls auf einschlägigen Arduino-Seiten. Alternativ kann natürlich auf den Arduino-Bootloader verzichtet und ein Programm direkt in den Microcontroller geflasht werden. In meinem Fall hat die Arbeit mit der Arduino IDE jedoch noch gut funktioniert.

Mit dem entwickelten Programm lese ich die Werte der Sensoren alle 30sec neu aus, stelle sie auf dem Display dar und logge sie in ein Text-File (CSV-Format). Die von mir eingesetzte 16GB Speicherkarte ist sicher überdimensioniert, andererseits kann man so ziemlich lange Zeiträume aufzeichnen (sicherlich solange die Größe der Files die 4GB-Grenze noch nicht überschreiten).

Zur Auswertung der gespeicherten Klimadaten verwende ich gnuplot-Skripte. Diese sind flexibler als das CSV-File in Excel zu parsen. Anbei ein paar Beispiele für aufgenommene Daten.

Ergebnisse der Druckmessung
Ergebnisse der Druckmessung
Luftfeuchtigkeit
Luftfeuchtigkeit
Luftqualität
Luftqualität

 

Staubkonzentration
Staubkonzentration
Ergebnis der Temperaturmessung
Ergebnis der Temperaturmessung

Man sieht, dass der Luftgüte-Sensor teilweise zwischen den Werten springt. Leider habe ich dies trotz zusätzlicher Spannungsstabilisierung mit Kondensatoren nicht korrigieren können. Vermutlich ist es dem Messprinzip des Sensors geschuldet.

Eine Idee für die Zukunft ist, den Arduino in ein Netzwerk einzubinden und dort die Klimadaten (beispielsweise auf einen lokalen Raspberry Pi Server) auszuwerten. Selbstverständlich ist auch denkbar, weitere Sensoren (beispielsweise für die CO2-Messung) einzubinden.

Wer Interesse an meinem Arduino-Programm hat oder sonstige Fragen und Kommentare, ist wie immer herzlich willkommen.

2 Gedanken zu „Klimabox mit Arduino“

  1. Hallo,

    ich wollte Sie fragen, wie Sie die Werte in dem Diagramm darstellen? Ich benutze das Arduino Uno und ein MQ135 – CO2 Sensor, der mindestens alle 30 Minuten misst. Wie funktioniert das Darstellen der Werte im Diagramm?

    Liebe Grüße.

    1. Hallo,

      Die Werte werden bei mir als kommaseparierte Liste auf die SD-Karte gespeichert (Datum, Uhrzeit und zugehörige Messwerte). Zur Darstellung verwende ich dann gnuplot. Dies kann die Daten in dem Format problemlos einlesen, beliebig darstellen und in vielen Formaten ausgeben. Wenn gewünscht, kann ich Ihnen gern ein gnuplot-Beispiel schicken, mit dem ich die Bilder erstelle. (Einfach kurz eine E-Mail an mich schicken unter michael@fam-haugk.de)

      Liebe Grüße,
      Michael Haugk

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.