Feinstaub Messstation

In diesem kleinen Projekt soll eine Messsation gebaut werden, die den Feinstaubgehalt (PM10, PM2.5), Temperatur und Luftfeuchtigkeit an die openSenseMap überträgt.


Materialien

Grundlagen

Feinstaub kann in verschiedenen Partikelgrößen gemessen werden. Standardmäßig werden Partikel mit einer Größe von unter 10µm oder 2.5µm gemessen. Der Messwert, den der Sensor ausgibt, entspricht dann der Konzentration in µg/m^3. Die Temperatur wird in Grad Celsius und die Luftfeuchtigkeit in %rF ausgegeben. Der Feinstaubsensor reagiert sehr stark auf erhöhte Luftfeuchtigkeit, daher sollte immer, wenn der Feinstaubgehalt bestimmt wird, auch die Temperatur und die Luftfeuchtigkeit gemessen werden, um die Messwerte korrekt einordnen zu können.

Aufbau

Verbinde im ersten Schritt das Wifi Bee mit dem XBee Steckplatz 1. Anschließend verbindest du mit dem senseBox Kabel das Display und den Temperatur- und Luftfeuchtigkeitssensor mit einem der I2C/Wire Steckplätzen. Der Feinstaubsensor wird mit dem entsprechenden Kabel an einen UART/Serial Anschluss angeschlossen.

Programmierung

Nach dem Aufbau muss die Feinstaubmessstation noch programmiert werden.

Schritt 1: Hier wirst du lernen, wie das Display angeschlossen und angesteuert wird.
block

Das OLED-Display

Anschluss: I2C/Wire
Das OLED-DISPLAY hat eine Auflösung von 128x64 Pixeln und wird über den I2C/Wire Anschluss angeschlossen. Um das Display zu verwenden, muss es im Setup() initialisiert werden.
block

Anzeige auf dem Display

Dieser Block startet die Ausgabe auf dem Display. Ziehe in die Klammer deine Ausgabewerte.
block

Anzeigen von Text

Mit diesem Block kannst du dir Text und Messwerte auf dem Display anzeigen lassen. Die Schriftfarbe ist standardmäßig auf Weiß eingestellt, da das Display einen schwarzen Hintergrund hat. Du kannst neben der Schriftfarbe auch die Schriftgröße ändern. In Schriftgröße 1 ist ein Buchstabe oder eine Zahl 8 Pixel hoch und du kannst dir insgesamt in 8 Zeilen auf dem Display verschiedene Texte anzeigen lassen. In Schriftgröße 2 sind die Buchstaben oder Zahlen 16 Pixel hoch. Mit den X- und Y-Werten gibst du an, wo auf dem Display etwas angezeigt wird.
block

Display löschen

Verwende diesen Block um den Inhalt des Displays zu löschen. Es empfiehlt sich, am Anfang oder Ende der Endlosschleife das Display zu löschen, um ein korrektes Anzeigen von z.B. Messwerten zu gewährleisten.
Aufgabe Schritt 1:

Lasse dir einen Text auf dem Display anzeigen.

Schritt 2: Hier wirst du lernen, wie die Sensoren ausgelesen werden können.

Die Blöcke für das Auslesen der Sensoren findest du unter senseBox Sensoren. Die Sensoren haben verschiedene Ausgabewerte, die du jeweils in dem Dropdown Menü auswählen kannst. Verwende für jeden Messwert eine eigene Variable um diesen zu speichern und später wieder aufrufen zu können.

block

Variablen

In dem Menü Variablen findest du alle Blöcke, die du benötigst, um mit Variablen zu arbeiten. Verwende für jeden Sensor eine neue Variable. Du kannst in dem Dropdown Menü des Variablen Blocks deine aktuelle Variable umbenennen oder eine neue erstellen. Verbinde den Sensorblock mit der Variable um den Messwert der Variable zuzuordnen.
block

Temperatur und Luftfeuchtigkeitssensor

Anschluss: I2C/Wire
Dieser Block gibt dir den Messwert des Temperatur und Luftfeuchtigkeitssensor. Im Dropdown Menü kannst du den jeweiligen Messwert auswählen. Dropdown:
  • Temperatur
  • Luftfeuchtigkeit
block

Feinstaubsensor

Anschluss: UART/Serial
Dieser Block gibt dir den Messwert des Feinstaubsensor . Im Dropdown Menü kannst du den jeweiligen Messwert auswählen. Dropdown (Messwert):
  • PM10
  • PM2.5
Dropdown:
  • Serial1
  • Serial2
Aufgabe Schritt 2

Lese alle Messwerte der Sensoren aus und speichere diese als Variable. Lasse dir anschließend alle Messwerte auf dem Display anzeigen.

Schritt 3: Hier wirst du lernen, wie du eine Wlan Verbindung herstellst und die Messwerte an die openSenseMap überträgst.

Für die Übertragung an die openSenseMap benötigst du neben deinen Zugangsdaten für das Wlan auch eine BoxID und Sensor ID's für die einzelnen Messwerte und Sensoren. Registriere eine neue senseBox auf der openSenseMap um die entsprechenden ID's zu erhalten.

block

Wlan Verbindung herstellen

Anschluss: XBEE1
Verwende diesen Block im Setup() um eine Wlan Verbindung herzustellen. Trage den entsprechenden Netzwerknamen (SSID) und das Passwort ein. Eine einfache Möglichkeit, die Datenübertragung auch außerhalb von Gebäude herzustellen ist die Nutzung deines Handys und die Funktion einen Wlan Hotspot zu erstellen.
block

Messintervall

Damit das Übertragen der Messwerte nicht jede Sekunde erfolgt, sondern erst nach einem gewissen Zeitintervall, kannst du diesen Block verwenden. Trage dazu die Zeit in Millisekunden ein.
block

Übertragen der Messwerte an die openSenseMap

Um Messwerte über das Internet zu übertragen, erstelle zunächst eine neue Messstation auf der openSenseMap Bei der Registrierung musst du angeben, ob es sich um eine stationäre oder mobile Station (benötigt GPS) handelt. Des Weiteren wirst du gefragt, welche Sensoren und welche Messwerte du an die Plattform senden möchstest. Du kannst diese Parameter immer wieder ändern, falls du möchtest. Wichtig ist, dass du die BoxID kopierst und in diesen Block einfügst. Damit werden die Messwerte deiner senseBox zugeordnet.
block

Messwerte übertragen

Verwende diesen Block, wenn du eine stationäre senseBox registriert hast. Für jeden Messwert benötigst du jeweils einen eigenen Block, denn jeder Sensor/Messwert erhält zusätzlich zur BoxID eine spezifische und einmalige SensorID. Kopiere die jeweilige Sensor ID aus der Übersicht deiner Registrierung und hänge einen Messwert an, der übertragen werden soll. Ziehe diesen Block in die Schleife des Blocks, der eine Verbindung zur openSenseMap herstellt.
Aufgabe

Kombiniere die Schritte 1 bis 3 und erstelle einen Programmcode, der folgende Funktion hat:

  • Auslesen der Sensoren und speichern als Variablen
  • Anzeige der Messwerte auf dem Display
  • Übertragen der Messwerte über Wlan an die openSenseMap

results matching ""

    No results matching ""