CleanAir

Aus HRW FabLab MediaWiki
Wechseln zu: Navigation, Suche

CleanAir ist ein System zum Überwachen und Beeinflussen der Luftqualität in Räumen. Es misst verschiedene Werte der Luft und reagiert bei kritischen Werten z.B. durch Öffnen des Fensters. Der Nutzer kann die Werte außerdem über eine App für Android und iOS kontrollieren.

CleanAir
CleanAir Gehause.jpeg

Entwickler

Alex Heiming, Marvin Nolte, Patrick Hannig, Lars Dubrau

Quellcode

App Arduino

Verwendete Programmiersprachen/Frameworks

Arduino C Flutter

Eingesetzte Software

Arduino IDE, Android Studio Xcode

Idee[Bearbeiten]

Zur Zeit sind immer mehr Menschen durch das Coronavirus gezwungen, im Home-Office zu arbeiten. Gerade dort ist es wichtig, für eine gute Luftqualität zu sorgen, um ergonomische Gesichtspunkte und das konzentrierte Arbeiten gewährleisten zu können. Durch gezielte Überwachung der Luftqualität ist es außerdem möglich, Krankheitserreger in der Luft zu minimieren.
Mit CleanAir soll ein komfortabler Weg geschafft werden, nicht nur die Qualität der Luft zu überwachen, sondern auch auf Veränderungen automatisch zu reagieren. Beispielsweise soll das Fenster geöffnet werden, wenn es zu warm im Zimmer wird.

Umsetzung[Bearbeiten]

Bewertung der Luftqualität[Bearbeiten]

Bei der Bewertung der Luftqualität wurde sich an empfohlenen Werten für ein Büro orientiert. Ermittelt werden folgende Werte: Temperatur, Luftfeuchtigkeit und der Giftgasgehalt in der Luft. Für jeden dieser Werte wurden Bereiche definiert, in denen diese sich bewegen sollten.

Grenzwerte
Parameter Minimaler Wert Maximaler Wert
Temperatur 18°C 22°C
Luftfeuchtigkeit 40% 60%
Giftgasgehalt 0ppm 700ppm

Berechnung des Overall-Luft-Scores[Bearbeiten]

Um den aktuellen Status der Luftqualität auf einen Blick erfassen zu können, wird ein Overall-Luft-Score berechnet, der alle Parameter berücksichtigt und unterschiedlich gewichtet.
Zur Berechnung des Scores wird zunächst die Abweichung jedes tatsächlichen Wertes vom optimalen Wert ermittelt, welche maximal 10 beträgt. Daraus berechnet sich der Luftscore wie folgt:
Luftscore = 10 - ((Abweichung Temperatur * 3) + Abweichung Luftfeuchtigkeit + Abweichung Giftgasgehalt) / 5
Wie man sieht, wird die Temperatur mit am stärksten gesichtet, dass bedeutet hier verändert eine Änderung den Luftscore am stärksten.

Hardware[Bearbeiten]

Verkabelung im inneren des Gehäuses

Als Grundlage für die Sensoren und Aktoren diente der TTGO ESP32. Dieser verfügt bereits über ein WLAN-Modul, sodass eine Verbindung zum MQTT-Broker problemlos möglich ist.

Sensoren[Bearbeiten]

Der ESP32 misst verschiedene Werte in der Luft, dazu zählen die Temperatur, Luftfeuchtigkeit und der Giftgasgehalt, da es sich dabei um die ausschlaggebenden Werte zur Bewertung der Luftqualität handelt.
Für die Temperatur wurde der Sensor BME280 verwendet, welcher per I2C-Verbindung ausgelesen werden kann. Hierbei ist die Abweichung der Messgeräte sehr gering, laut Hersteller besitzt die Temperatur eine Genauigkeit von 0.25°C und die Luftfeuchtigkeit eine Genauigkeit von 3%.
Für den Giftgasgehalt wurde der Sensor MQ-135 verwendet. Dieser Sensor erkennt den Gehalt verschiedener ungesunder Gase in der Luft und gibt deren Gehalt as Prozentwert zurück. Dabei besitzt er eine Genauigkeit von 3% und kann direkt am Pin ausgelesen werden.

Aktoren[Bearbeiten]

Da der Servomotor zum Öffnen des Fenster recht kräftig sein muss, wurde ein Servomotor mit Metallgetriebe verwendet. Dieser wird mit einem Metallgehäuse geliefert, welches die Montage am Fenster erleichtert. Er besitzt ein Drehmoment von 25 kg/cm und ist somit in der Lage kleinere Fenster zu öffnen.

Verkabelung[Bearbeiten]

Schaltung als Bild

Zur vereinfachten Darstellung ein Plan der Verkabelung als Bild. Auf dem Bild findet man den Anschlussplan und die genaue Verkabelung der einzelnen Sensoren und Aktoren.

Kostenaufstellung[Bearbeiten]

Verwendete Komponenten
Beschreibung Preis € Anzahl
TTGO ESP32 7,00 1
BME Sensor 7,99 1
MQ-135 Sensor 5,29 1
Servomotor mit Metallgetriebe (Longrunner) 25,00 1
Jumper Kabel 0,17 X
Breadboard 4,00 1

Gehäuse[Bearbeiten]

Das Gehäuse wurde aus einer 9mm breiten Sperrholzplatte und einer 3mm breiten Plastikplatte gefertigt.
Um das Gehäuse nachzubauen, werden jeweils zwei Holzelemente mit den Seitenlängen 7,5 x 17,5 cm (Boden und Deckel), 4,5 x 17,5 cm (Seitenträger) und zwei Plastikausschnitte mit den Seitenlängen 4,5 x 5,5 cm (Vorder- und Rückseite) benötigt.

App[Bearbeiten]

Homescreen der App

Die App wurde mit dem Framework Flutter programmiert. Der Vorteil dieses Frameworks ist, dass man mit einer Codebasis die App für Android und auch iOS bauen kann. Es gibt zwei Bildschirme in der App:

  • Homescreen: Hier werden die aktuell empfangenen Werte des Sensors sowie der berechnete Overall-Luftscore angezeigt
  • Einstellungen: Hier kann die eigene Sensor-ID eingestellt werden, um zu entscheiden von welchem Sensor Daten empfangen werden sollen

Bibliotheken[Bearbeiten]

Für die App wurden im wesentlichen zwei Bibliotheken benutzt. Um eine Verbindung zum MQTT-Broker herstellen zu können und Werte abrufen zu können, wurde die Bibliothek universal_mqtt_client verwendet. Zum Darstellen der Werte in Diagrammen wurde die Bibliothek customgauge verwendet. Diese ermöglicht die Darstellung in individuell anpassbaren Diagrammen.

Funktionsweise[Bearbeiten]

Beim Start der App landet der Nutzer sofort im Homescreen. Hier wird überprüft, ob der Nutzer bereits eine Sensor-ID gespeichert hat. Zum dauerhaften Speichern der ID auf dem Gerät werden die Shared Preferences verwendet. Hat ein Nutzer noch keine ID gespeichert, wird ein entsprechender Hinweis angezeigt, sonst startet die App mit dem Abruf der Topics des MQTT-Brokers.