Teil 1 – Essentielle Luftqualitätsüberwachung in der Werkstatt: Eine Anleitung mit ESP8266, BME280 und SDS011

In der heutigen digitalen Ära wächst das Bewusstsein für die Umwelt und die Notwendigkeit, diese zu überwachen, stetig. Die Luftqualitätsüberwachung in der Werkstatt ist nicht nur eine Frage der Gesundheit, sondern auch der Produktivität und Sicherheit. In Werkstätten, wo mit verschiedenen Materialien gearbeitet wird, können Schadstoffe in die Luft gelangen, die ohne geeignete Überwachungssysteme oft unbemerkt bleiben. In diesem Beitrag führe ich dich durch ein DIY-Projekt, bei dem wir mithilfe des ESP8266-Mikrocontrollers, des BME280-Sensors und des SDS011-Sensors ein effektives Luftqualitätsüberwachungssystem erstellen werden.

Dieses Projekt nutzt die Leistungsfähigkeit von VSCode und PlatformIO auf einem Ubuntu-System und bietet eine kostengünstige Lösung zur Überwachung und Verbesserung der Luftqualität in deiner Werkstatt. Lass uns in die faszinierende Welt der IoT-Luftqualitätsüberwachung eintauchen und gemeinsam eine sicherere Arbeitsumgebung schaffen!

Verwendete Hardware:

Einführung in den ESP8266: Mehr als nur ein Mikrocontroller

Der ESP8266 ist ein kostengünstiger Mikrocontroller mit integriertem Wi-Fi, der in den letzten Jahren in der DIY- und Maker-Community große Popularität erlangt hat. Ursprünglich von Espressif Systems entwickelt, revolutionierte dieser kleine Chip die Welt der Heimautomatisierung, IoT (Internet der Dinge) und eingebetteten Systeme durch seine einfache Handhabung und den niedrigen Preis.

Einige Hauptmerkmale des ESP8266 sind:

  • Integriertes Wi-Fi: Dies ermöglicht es dem ESP8266, Daten über das Internet zu senden und zu empfangen, wodurch er ideal für IoT-Projekte ist.
  • GPIO-Pins: Mit diesen Pins kann der ESP8266 mit anderen elektronischen Komponenten interagieren, von einfachen LED-Leuchten bis hin zu komplexeren Sensoren.
  • Geringer Stromverbrauch: Der ESP8266 ist für batteriebetriebene Anwendungen optimiert und verfügt über verschiedene Schlafmodi, die den Stromverbrauch minimieren.
  • Flexibilität: Er kann mit verschiedenen Programmiersprachen und Entwicklungsumgebungen programmiert werden, einschließlich Lua, MicroPython und natürlich der Arduino-IDE.

Das wirklich Beeindruckende am ESP8266 ist seine Fähigkeit, als eigenständiger Mikrocontroller oder als Wi-Fi-Modul für einen leistungsfähigeren Mikrocontroller zu fungieren. Diese Vielseitigkeit hat zu einer Vielzahl von Anwendungen geführt, von einfachen Projekten wie der Steuerung von LED-Leuchten über das Internet bis hin zu komplexeren Anwendungen wie Wetterstationen, Heimautomatisierungssystemen und, wie in unserem Fall, Luftqualitätsüberwachungssystemen.

Für Anfänger und erfahrene Entwickler gleichermaßen bietet der ESP8266 eine attraktive Plattform, um innovative Ideen in die Realität umzusetzen, ohne die Bank zu sprengen. Es ist diese Kombination aus Leistungsfähigkeit, Vielseitigkeit und Kosteneffizienz, die ihn zu einer bevorzugten Wahl für viele DIY-Projekte macht.

Sensoren der Luftqualitätsüberwachung in der Werkstatt

Die Überwachung der Luftqualität erfordert präzise und zuverlässige Messinstrumente. In unserem Projekt setzen wir auf zwei bewährte Sensoren: den BME280 und den SDS011. Beide Sensoren bieten unterschiedliche, aber ergänzende Datenpunkte zur Überwachung der Umweltbedingungen in deiner Werkstatt. Lass uns einen näheren Blick auf diese beiden Schlüsselkomponenten werfen.

BME280

Der BME280 ist ein vielseitiger Sensor, der von der Firma Bosch Sensortec entwickelt wurde. Er ist in der Lage, drei verschiedene Umweltbedingungen zu messen:

  • Luftfeuchtigkeit: Eine wichtige Größe, insbesondere in Werkstätten, in denen Holz oder andere feuchtigkeitsempfindliche Materialien verarbeitet werden.
  • Temperatur: Dies hilft nicht nur dabei, das allgemeine Klima in der Werkstatt zu überwachen, sondern kann auch dazu beitragen, potenzielle Hitzequellen oder Kältebrücken zu identifizieren.
  • Luftdruck: Weniger kritisch für die meisten Werkstätten, aber nützlich, um Änderungen in der Höhe oder im Wetter zu überwachen.

Die Hauptvorteile des BME280 sind seine hohe Präzision, sein kompaktes Design und sein geringer Stromverbrauch, was ihn ideal für IoT-Projekte macht.

SDS011

Der SDS011 ist ein spezialisierter Sensor zur Messung von Luftpartikeln und wird oft in Projekten zur Überwachung der Luftqualität verwendet. Er kann feine Staubpartikel in zwei Kategorien erfassen:

  • PM2.5: Partikel mit einem Durchmesser von weniger als 2,5 Mikrometern, die tief in die Lungen eindringen und gesundheitliche Probleme verursachen können.
  • PM10: Größere Partikel, die hauptsächlich aus Staub, Pollen und anderen größeren Schwebeteilchen bestehen.

Für Werkstätten, in denen Schleifen, Schneiden oder andere Aktivitäten, die Staub erzeugen, durchgeführt werden, ist der SDS011 besonders wertvoll. Er hilft dabei, sicherzustellen, dass die Luft sauber bleibt und Gesundheitsrisiken minimiert werden.

Zusammen bieten der BME280 und der SDS011 eine umfassende Übersicht über die Luftbedingungen in deiner Werkstatt, sodass du informierte Entscheidungen treffen und eine sicherere Arbeitsumgebung gewährleisten können.

WHO-Aktualisierung 2021: Neue Grenzwerte für Feinstaubbelastung im Fokus

Die Weltgesundheitsorganisation (WHO) aktualisierte 2021 ihre Richtlinien für die Luftqualität, wobei sie sowohl jährliche Mittelwerte als auch Tageshöchstwerte für Feinstaub festlegte. Im Kontext der Luftqualitätsüberwachung in der Werkstatt wird es immer wichtiger, diese Werte zu kennen und zu kontrollieren. Für PM2,5 empfiehlt die WHO einen jährlichen Mittelwert von 5 µg/m³ und einen 24-Stunden-Mittelwert von 15 µg/m³. Für PM10 liegt der empfohlene jährliche Mittelwert bei 15 µg/m³ und der 24-Stunden-Mittelwert bei 45 µg/m³.

Wie führt man eine korrekte Messung im Rahmen der Luftqualitätsüberwachung in der Werkstatt durch?

  • Atemzone: Der wichtigste Messpunkt ist die Atemzone, d.h. der Bereich, in dem Menschen atmen. Für stehende Erwachsene liegt dieser Bereich typischerweise in einer Höhe von etwa 1,0 bis 1,7 Metern über dem Boden.
  • Mehrere Stellen: Es ist ratsam, Messungen an verschiedenen Stellen durchzuführen, um ein vollständiges Bild von der Feinstaubverteilung im Raum zu erhalten.
  • Vermeiden von Extremen: Messungen direkt am Boden oder direkt unter der Decke sind oft nicht repräsentativ für die Exposition von Personen.
  • Dynamische Messungen: Hierbei wird die Feinstaubkonzentration während bestimmter Tätigkeiten oder zu verschiedenen Tageszeiten gemessen, um Spitzenbelastungen zu erkennen.

Abschließend sollte man den Feinstaub in der Atemzone und an verschiedenen Orten im Raum messen, um ein genaues Bild von der Exposition der Menschen zu bekommen.

Verbindung des ESP8266 mit Sensoren

  1. Verbindung von ESP8266 und BME280:
    • Stromversorgung: Verbinde den VCC-Pin des BME280 mit dem 3.3V-Pin des ESP8266. Der GND-Pin des BME280 wird mit einem GND-Pin des ESP8266 verbunden.
    • Datenübertragung: Für den Informationsaustausch schließe den SDA-Pin des BME280 an den GPIO4 und den SCL-Pin des BME280 an den GPIO5 des ESP8266 an.
  2. Integration von ESP8266 und SDS011:
    • Stromversorgung: Beachte, dass der SDS011 eine 5V-Stromquelle benötigt. Hierfür verbinde den 5V-Pin des SDS011 mit dem VIN-Pin des ESP8266.
    • Kommunikation: Der TXD-Pin des SDS011 geht an den GPIO14-Pin des ESP8266 und der RXD-Pin des SDS011 an den GPIO12-Pin.
Projekteaufbau: Verbinden ESP8266 mit BME280 und SDS011
Projekteaufbau: Verbinden ESP8266 mit BME280 und SDS011

Hinweise:

  • Spannung beachten: Der BME280 funktioniert optimal mit 3,3V, während der SDS011 5V benötigt.
  • Die hier verwendeten GPIO-Pins dienen lediglich als Beispiel. Je nach dem spezifischen Projekt könnten andere Pins besser geeignet sein.

Verbindung und Ausgabe der Daten

Nachdem die Hardwarekomponenten erfolgreich miteinander verbunden wurden, ist der nächste Schritt die Implementierung der Software, um die Daten korrekt zu erfassen und auszugeben. Für diesen Zweck nutze ich VSCode in Kombination mit PlatformIO, um die Verbindung und Programmierung des ESP8266 durchzuführen. Wenn du mehr darüber erfahren möchtest, wie du VSCode und PlatformIO für solche Anwendungen nutzen kannst, ist das allerdings nicht der Schwerpunkt dieses Artikels. Ich habe jedoch einen weiteren Artikel verfasst, der sich speziell mit diesem Thema befasst, auf den ich dich gerne verweise.

Den Artikel findest du hier.

Der Code initiiert die Verbindung zu den Sensoren und startet die serielle Kommunikation. In PlatformIO kannst du über das „Monitoring“ die Ausgaben sehen. Für mehr Details siehe dir bitte den kommentierten Quellcode an.

// Einbinden der Standard-Arduino-Bibliothek
#include <Arduino.h>
// Einbinden der Bibliothek für den SDS011 Feinstaubsensor
#include "SdsDustSensor.h"            
// Einbinden der Bibliothek für den BME280 Temperatur-, Druck- und Feuchtigkeitssensor
#include <Adafruit_BME280.h>

// Definition der Pins für die serielle Kommunikation mit dem SDS011
// Bitte daran denken, dass der rxPin am SDS011 auf den txPin vom 8266 muss!
int rxPin = D5;                       
int txPin = D6;                       

// Initialisierung des SDS011 Sensors
SdsDustSensor sds(D5,D6);             

// Initialisierung des BME280 Sensors
Adafruit_BME280 bme;                  

void setup() {
  // Startet die Hardware-Serielle Kommunikation mit einer Baudrate von 115200
  Serial.begin(115200);               
  // Kurze Verzögerung, um sicherzustellen, dass alles richtig initialisiert ist
  delay(10);
  // Startet die I2C-Kommunikation mit SDA-Pin D2 und SCL-Pin D1
  Wire.begin(D2, D1);                
  
  // Überprüft, ob ein BME280 Sensor gefunden werden kann
  if (!bme.begin(0x76)) {            
      // Gibt eine Fehlermeldung aus, wenn kein BME280 gefunden wird
      Serial.println("Could not find a valid BME280 sensor, check wiring!");
      // Endlosschleife, um das Programm zu stoppen
      while (1);
  }

  // Startet die Kommunikation mit dem SDS011 Sensor
  sds.begin();                       
  // Fragt die Firmware-Version des SDS011 ab und gibt sie aus
  Serial.println(sds.queryFirmwareVersion().toString());        
  // Setzt den Berichtsmodus des SDS011 auf "aktiv"
  Serial.println(sds.setActiveReportingMode().toString());      
  // Setzt die Arbeitsperiode des SDS011 auf "kontinuierlich"
  Serial.println(sds.setContinuousWorkingPeriod().toString());  
}

void loop() {
  // Abfrage des PM-Werts vom SDS011
  PmResult pm = sds.queryPm();       
  
  // Überprüft, ob die PM-Werte korrekt gelesen wurden
  if (pm.isOk()) {
    // Gibt die PM-Werte aus
    Serial.print("PM 2.5 = ");
    Serial.println(pm.pm25);
    Serial.print("PM 10 = ");
    Serial.println(pm.pm10);

    // Liest die Werte vom BME280 Sensor
    float temperature = bme.readTemperature();          
    float pressure = bme.readPressure() / 100.0F;         
    float humidity = bme.readHumidity();                

    // Gibt die BME280-Werte aus
    Serial.print("Temp° = ");
    Serial.println(temperature);
    Serial.print("Humidity = ");
    Serial.println(humidity);
    Serial.print("Pressure = ");
    Serial.println(pressure);
    // Trennlinie für bessere Lesbarkeit
    Serial.println("#########################################");   

   } else {
    // Fehlermeldung, wenn PM-Werte nicht korrekt gelesen wurden
    Serial.print("Could not read values from sensor, reason: ");
    Serial.println(pm.statusToString());
  }

  // Wartet 30 Sekunden (30000 Millisekunden) bevor der nächste Zyklus beginnt
  delay(30000);                      
}

Ausblick: Daten effizient nutzen

Bis jetzt hast du gelernt, wie du mit Hardwarekomponenten und der richtigen Software Daten von Umweltsensoren erfassen und die Luftqualitätsüberwachung in der Werkstatt verbessern kannst. Aber wie kannst du diese Daten eigentlich sinnvoll nutzen? Das bloße Ausgeben der Werte mit Serial.println() ist zwar interessant, reicht aber für die meisten Anwendungen nicht aus.

In einem meiner nächsten Artikel werde ich dir zeigen, wie du mithilfe von NodeJS deine gesammelten Daten in einer MongoDB-Datenbank speichern kannst. Dadurch wird nicht nur eine längerfristige Aufbewahrung und Analyse deiner Daten für die Luftqualitätsüberwachung in der Werkstatt möglich, sondern du legst auch den Grundstein für anspruchsvollere Projekte. Denk dabei an Dashboards zur Luftqualitätsüberwachung oder Benachrichtigungssysteme, wenn bestimmte Werte überschritten werden.

Bleib also gespannt und entdecke bald, wie du das Maximum aus deinen Daten herausholen kannst! Es lohnt sich, diesen technischen und spannenden Schritt in der Datenverarbeitung und -speicherung mit mir zu gehen.

Hier geht es zu Teil 2 dieser Serie!

Hilfreiche Links

Beitrage der gleichen Kategorie

Gosund SP 111

Tasmota (Theo-Arends-Sonoff-MQTT-OTA) ist eine kostenfreie Open Source Firmware die als Alternative auf IoT Geräten mit ESP8266 Chip installiert werden kann. Der Vorteil dieser Open Source Firmware ist die Transparenz und Anpassung der Konfiguration nach eigenen Zwecken. Während die Geräte von Sonoff, Gosund oder auch Zigbee mit einer sehr restriktiven und mit Vorbehalt behafteten Firmware ausgeliefert […]

0 Kommentare

Bitte tragt euren Namen ein.
Bitte tragt eure Email-Adresse ein.
Top