Inhaltsverzeichnis:

Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4: 15 Schritte (mit Bildern)
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4: 15 Schritte (mit Bildern)

Video: Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4: 15 Schritte (mit Bildern)

Video: Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4: 15 Schritte (mit Bildern)
Video: Aqara TVOC Luftqualitätssensor im Test - Die Qualität der Luft immer im Blick! 2024, Juli
Anonim
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4

Santiago, Chile hat während eines Winter-Umweltnotstands das Privileg, in einem der schönsten Länder der Welt zu leben, aber leider sind es nicht nur Rosen. Chile leidet während der Wintersaison stark unter Luftverschmutzung, hauptsächlich aufgrund von Partikeln wie Staub und Smog.

Aufgrund des kalten Wetters ist die Luftverschmutzung im Süden hauptsächlich auf holzbasierte Kalafaktoren zurückzuführen und in Santiago (der Haupthauptstadt im Zentrum des Landes) gemischt aus Industrie, Autos und seiner einzigartigen geografischen Lage zwischen 2 riesigen Bergketten.

Heutzutage ist Luftverschmutzung ein großes Problem auf der ganzen Welt und in diesem Artikel werden wir untersuchen, wie man einen kostengünstigen hausgemachten Luftqualitätsmonitor auf Basis eines Raspberry Pi entwickelt. Wenn Sie mehr über die Luftqualität erfahren möchten, besuchen Sie bitte das Projekt „World Air Quality Index“.

Lieferungen

  • Raspberry Pi 4
  • 1SDS011 - Hochpräziser PM2.5-Lasersensor zur Luftqualitätserkennung
  • Kunststoff-Box

Schritt 1: Feinstaub (PM): Was ist das? Wie kommt es in die Luft?

Feinstaub (PM): Was ist das? Wie kommt es in die Luft?
Feinstaub (PM): Was ist das? Wie kommt es in die Luft?

Um die Umweltverschmutzung oder Luftverschmutzung zu verstehen, müssen wir also die damit verbundenen Partikel untersuchen, die auch als Feinstaub bekannt sind. Wenn wir uns die Grafiken im vorherigen Abschnitt ansehen, können wir feststellen, dass PM2,5 und PM10 erwähnt wurden. Lassen Sie uns einen kurzen Überblick darüber geben.

PM steht für Feinstaub (auch Partikelverschmutzung genannt): die Bezeichnung für ein Gemisch aus festen Partikeln und Flüssigkeitströpfchen in der Luft. Einige Partikel wie Staub, Schmutz, Ruß oder Rauch sind groß oder dunkel genug, um mit bloßem Auge gesehen zu werden. Andere sind so klein, dass sie nur mit einem Elektronenmikroskop entdeckt werden können. Partikel gibt es in einer Vielzahl von Größen. Partikel mit einem Durchmesser von weniger als oder gleich 10 Mikrometern sind so klein, dass sie in die Lunge gelangen und möglicherweise ernsthafte Gesundheitsprobleme verursachen können. Zehn Mikrometer sind weniger als die Breite eines einzelnen menschlichen Haares.

Zur Partikelbelastung gehören Grobstaubpartikel (PM10): einatembare Partikel mit Durchmessern von in der Regel 10 Mikrometer und kleiner. Quellen sind Zerkleinerungs- oder Schleifvorgänge und Staub, der von Fahrzeugen auf Straßen aufgewirbelt wird. Feine Partikel (PM2,5): feine einatembare Partikel mit Durchmessern von in der Regel 2,5 Mikrometer und kleiner. Feine Partikel werden bei allen Arten von Verbrennungen erzeugt, einschließlich Kraftfahrzeugen, Kraftwerken, Holzverbrennung in Wohnhäusern, Waldbränden, landwirtschaftlichen Verbrennungen und einigen industriellen Prozessen

Schritt 2: Warum ist es wichtig, sich um diese Partikel zu kümmern?

Warum ist es wichtig, sich um diese Partikel zu kümmern?
Warum ist es wichtig, sich um diese Partikel zu kümmern?

Wie von GERARDO ALVARADO Z. in seiner Arbeit an der Universität Chile beschrieben, waren Studien über Episoden hoher Luftverschmutzung im Maas-Tal (Belgien) im Jahr 1930, Donora (Pennsylvania) im Jahr 1948 und London im Jahr 1952 die ersten dokumentierten Quellen, die die Sterblichkeit in Verbindung brachten mit Partikelkontamination (Préndez, 1993). Fortschritte bei der Untersuchung der Auswirkungen von Luftverschmutzung auf die Gesundheit des Menschen haben ergeben, dass durch einatembare Partikel, abhängig von deren Penetration und Ablagerung in verschiedenen Bereichen des Atmungssystems und der biologischen Reaktion auf abgelagerte Stoffe, Gesundheitsrisiken entstehen.

Die dicksten Partikel, etwa 5 µm, werden durch die gemeinsame Wirkung der Flimmerhärchen des Nasengangs und der Schleimhaut, die die Nasenhöhle und die Luftröhre bedeckt, gefiltert. Partikel mit einem Durchmesser zwischen 0,5 und 5 µm können sich in den Bronchien und sogar in den Lungenbläschen ablagern, werden jedoch nach wenigen Stunden von den Flimmerhärchen der Bronchien und Bronchiolen eliminiert. Partikel, die kleiner als 0,5 µm sind, können tief eindringen, bis sie sich in den Lungenbläschen ablagern und Wochen bis Jahre verbleiben, da kein mukoziliärer Transportmechanismus vorhanden ist, der die Elimination erleichtert. Die folgende Abbildung zeigt die Penetration der Partikel in die Atemwege in Abhängigkeit von ihrer Größe.

Daher ist es sehr wichtig, beide Arten von Partikeln (PM2,5 und PM10) zu erkennen, und die gute Nachricht ist, dass beide von einem einfachen und nicht teuren Sensor, dem SDS011, gelesen werden können.

Schritt 3: Der Partikelsensor - SDS011

Der Partikelsensor - SDS011
Der Partikelsensor - SDS011
Der Partikelsensor - SDS011
Der Partikelsensor - SDS011

Die Überwachung der Luftqualität ist eine bekannte und etablierte Wissenschaft, die bereits in den 80er Jahren begann. Damals war die Technologie noch recht begrenzt und die Lösung zur Quantifizierung der Luftverschmutzung aufwendig und sehr teuer.

Glücklicherweise werden heutzutage mit den neuesten und modernsten Technologien die für die Überwachung der Luftqualität verwendeten Lösungen nicht nur präziser, sondern auch schneller in der Messung. Die Geräte werden immer kleiner und kosten viel günstiger als je zuvor.

In diesem Artikel konzentrieren wir uns auf einen Partikelsensor, der die Staubmenge in der Luft erkennen kann. Während die erste Generation gerade die Trübung erkennen konnte, können neuere Sensoren wie der SDS011 von INOVAFIT, einem Spin-off der Universität Jinan (in Shandong), nun PM2,5 und PM10 erkennen.

Mit seiner Größe ist der SDS011 wahrscheinlich einer der besten Sensoren in Bezug auf Genauigkeit und Preis (unter 40,00 USD). Spezifikationen

  • Messwerte: PM2,5, PM10
  • Bereich: 0–999,9 μg /m³
  • Versorgungsspannung: 5V (4,7–5,3V)
  • Stromverbrauch (Arbeit): 70mA±10mA
  • Stromverbrauch (Ruhemodus Laser & Lüfter): < 4mA
  • Lagertemperatur: -20 bis +60C
  • Arbeitstemperatur: -10 bis +50C
  • Luftfeuchtigkeit (Lagerung): max. 90%
  • Luftfeuchtigkeit (Arbeit): max. 70% (Kondensation von Wasserdampf verfälscht Messwerte)
  • Genauigkeit: 70 % für 0,3 μm und 98% für 0,5 μm
  • Größe: 71x70x23 mm
  • Zertifizierung: CE, FCC, RoHS

Beim SD011 wird die Leiterplatte als eine Seite des Gehäuses verwendet, um die Kosten zu senken. Die Empfängerdiode wird auf der PCB-Seite montiert (dies ist zwingend erforderlich, da jegliches Rauschen zwischen der Diode und dem LNA vermieden werden sollte). Der Emitterlaser ist auf der Kunststoffbox montiert und über ein flexibles Kabel mit der Leiterplatte verbunden.

Kurz gesagt, Nova Fitness SDS011 ist ein professioneller Laserstaubsensor. Der am Sensor montierte Lüfter saugt automatisch Luft an. Der Sensor verwendet ein Laserlichtstreuungsprinzip*, um den Wert von in der Luft schwebenden Staubpartikeln zu messen. Der Sensor liefert hochpräzise und zuverlässige Messwerte der PM2,5- und PM10-Werte. Jede Änderung in der Umgebung kann fast augenblicklich beobachtet werden kurze Reaktionszeit unter 10 Sekunden. Der Sensor im Standardmodus meldet den Messwert im 1-Sekunden-Intervall.

* Laserstreuungsprinzip: Lichtstreuung kann induziert werden, wenn Partikel durch den Erfassungsbereich gehen. Das Streulicht wird in elektrische Signale umgewandelt und diese Signale werden verstärkt und verarbeitet. Die Anzahl und der Durchmesser der Partikel können durch Analyse erhalten werden, da die Signalwellenform bestimmte Beziehungen zum Durchmesser der Partikel aufweist.

Schritt 4: Aber wie kann der SDS011 diese Partikel erfassen?

Aber wie kann der SDS011 diese Partikel einfangen?
Aber wie kann der SDS011 diese Partikel einfangen?
Aber wie kann der SDS011 diese Partikel einfangen?
Aber wie kann der SDS011 diese Partikel einfangen?

Wie bereits erwähnt, ist das von SDS011 verwendete Prinzip die Lichtstreuung oder besser Dynamic Light Scattering (DLS), eine Technik in der Physik, mit der das Größenverteilungsprofil kleiner Partikel in Suspension oder Polymeren in Lösung bestimmt werden kann. Im Rahmen der DLS werden zeitliche Schwankungen üblicherweise mit Hilfe der Intensitäts- oder Photonen-Autokorrelationsfunktion (auch Photonenkorrelationsspektroskopie oder quasielastische Lichtstreuung genannt) analysiert. Bei der Zeitbereichsanalyse fällt die Autokorrelationsfunktion (ACF) normalerweise ab einer Verzögerungszeit von Null ab, und eine schnellere Dynamik aufgrund kleinerer Partikel führt zu einer schnelleren Dekorrelation der gestreuten Intensitätsspur. Es hat sich gezeigt, dass die Intensitäts-ACF die Fourier-Transformierte des Leistungsspektrums ist und daher die DLS-Messungen im Spektralbereich gleich gut durchgeführt werden können.

Oben eine hypothetische dynamische Lichtstreuung von zwei Proben: Größere Partikel (wie PM10) oben und kleinere Partikel (wie PM2.5) unten. Und wenn wir in unseren Sensor schauen, können wir sehen, wie das Lichtstreuprinzip umgesetzt wird.

Das von der Diode erfasste elektrische Signal geht zum rauscharmen Verstärker und wird von diesem über einen ADC in ein digitales Signal und über einen UART nach außen umgewandelt.

Um mehr über SDS011 über eine echte wissenschaftliche Erfahrung zu erfahren, werfen Sie bitte einen Blick auf die Arbeit von Konstantinos et al. aus dem Jahr 2018, Entwicklung und Vor-Ort-Prüfung eines kostengünstigen tragbaren Systems zur Überwachung von PM2,5-Konzentrationen.

Schritt 5: Showtime

Show Time!
Show Time!
Show Time!
Show Time!

Lassen Sie uns bei all dieser Theorie eine Pause einlegen und uns darauf konzentrieren, wie man Feinstaub mit einem Raspberry Pi und dem SDS011-Sensor misst

Die HW-Anbindung ist in der Tat sehr einfach. Der Sensor wird mit einem USB-Adapter verkauft, um die Ausgangsdaten seines 7-poligen UART mit einem der Standard-USB-Anschlüsse des RPi zu verbinden.

SDS011 Pinbelegung:

  • Pin 1 - nicht verbunden
  • Pin 2 - PM2,5: 0–999μg/m³; PWM-Ausgang
  • Stift 3–5V
  • Pin 4 - PM10: 0–999 μg/m³; PWM-Ausgang
  • Pin 5 - GND
  • Pin 6 - RX-UART (TTL) 3.3V
  • Pin 7 - TX-UART (TTL) 3.3V

Für dieses Tutorial verwende ich zum ersten Mal einen brandneuen Raspberry-Pi 4. Aber natürlich funktioniert auch jedes Vorgängermodell.

Sobald Sie den Sensor an einen der RPi-USB-Ports anschließen, hören Sie automatisch den Sound seines Lüfters. Das Rauschen ist ein wenig nervig, also vielleicht solltest du den Stecker ziehen und warten, bis du alles mit SW eingestellt hast.

Die Kommunikation zwischen Sensor und RPi erfolgt über ein serielles Protokoll. Details zu diesem Protokoll finden Sie hier: Laser Dust Sensor Control Protocol V1.3. Aber für dieses Projekt ist es am besten, eine Python-Schnittstelle zu verwenden, um den zu entwickelnden Code zu vereinfachen. Sie können Ihre eigene Benutzeroberfläche erstellen oder eine im Internet verfügbare verwenden, wie die von Frank Heuer oder Ivan Kalchev. Wir werden den letzten verwenden, der sehr einfach ist und gut funktioniert (Sie können das Skript sds011.py von seinem GitHub oder meinem herunterladen).

Die Datei sds011.py muss sich im selben Verzeichnis befinden, in dem Sie Ihr Skript erstellen.

Während der Entwicklungsphase werde ich ein Jupyter Notebook verwenden, aber Sie können jede beliebige IDE verwenden (Thonny oder Geany zum Beispiel, die Teil des Raspberry Pi Debian-Pakets sind, sind beide sehr gut).

Beginnen Sie mit dem Importieren von sds011 und erstellen Sie Ihre Sensorinstanz. SDS011 bietet eine Methode zum Lesen vom Sensor mithilfe eines UART.

aus sds011 importieren *

Sensor = SDS011("/dev/ttyUSB0")

Sie können Ihren Sensor mit dem Befehl sleep ein- oder ausschalten:

pmt_2_5, pmt_10 = sensor.query()

Warten Sie vor der Messung mindestens 10 Sekunden zur Stabilisierung und mindestens 2 Sekunden, um eine neue zu starten (siehe Code oben).

Und das ist alles, was Sie in Bezug auf die SW wissen müssen, um den Sensor zu verwenden. Aber gehen wir tiefer in die Luftqualitätskontrolle ein! Wenn Sie zu Beginn dieses Artikels die Websites erkundet haben, die Informationen darüber geben, wie gut oder schlecht die Luft ist, sollten Sie erkennen, dass Farben mit diesen Werten verbunden sind. Jede Farbe ist ein Index. Der bekannteste davon ist der AQI (Air Quality Index), der in den USA und mehreren anderen Ländern verwendet wird.

Schritt 6: Luftqualitätsindex - AQI

Luftqualitätsindex - AQI
Luftqualitätsindex - AQI
Luftqualitätsindex - AQI
Luftqualitätsindex - AQI
Luftqualitätsindex - AQI
Luftqualitätsindex - AQI

Der AQI ist ein Index zur Meldung der täglichen Luftqualität. Es sagt Ihnen, wie sauber oder verschmutzt Ihre Luft ist und welche damit verbundenen gesundheitlichen Auswirkungen für Sie bedenklich sein könnten. Der AQI konzentriert sich auf gesundheitliche Auswirkungen, die innerhalb weniger Stunden oder Tage nach dem Einatmen verschmutzter Luft auftreten können.

Die EPA (die United States Environmental Protection Agency) beispielsweise berechnet den AQI nicht nur für die Partikelbelastung (PM2,5 und PM10), sondern auch für die anderen großen Luftschadstoffe, die vom Clean Air Act reguliert werden: bodennahes Ozon, Kohlenmonoxid, Schwefeldioxid und Stickstoffdioxid. Für jeden dieser Schadstoffe hat die EPA nationale Luftqualitätsstandards zum Schutz der öffentlichen Gesundheit festgelegt. Siehe obiges Bild mit zugehörigen AQI-Werten, Farben und Gesundheitsmeldung.

Wie bereits erwähnt, beziehen sich diese AQI-Werte und Farben auf jeden einzelnen Schadstoff, aber wie können die von den Sensoren erzeugten Werte damit in Verbindung gebracht werden? Eine zusätzliche Tabelle verbindet sie alle wie oben gezeigt.

Aber natürlich macht es keinen Sinn, eine solche Tabelle zu verwenden. Am Ende ist es ein einfacher mathematischer Algorithmus, der die Berechnung durchführt. Dazu importieren wir die Bibliothek zur Umrechnung zwischen AQI-Wert und Schadstoffkonzentration (µg/m³): python-aqi.

Installieren Sie die Bibliothek mit PIP und machen Sie einen Test (siehe Code oben)

pip installieren python-aqi

Und wie sieht es mit Chile aus?

In Chile wird ein ähnlicher Index verwendet, der ICAP: Air Quality Index for Breathable Particles. Ein Oberstes Dekret 59 vom 16. März 1998 des Generalsekretärs des Ministeriums der Präsidentschaft der Republik legt in seinem Artikel 1 Buchstabe g) fest, dass die Niveaus, die die ICA für atmungsaktives Partikelmaterial, ICAP, definieren.

Die Werte variieren zwischen den Abschnitten linear, der Wert 500 entspräche dem Grenzwert, über dem bei diesen Konzentrationen ein Risiko für die Bevölkerung bestünde. Gemäß den ICAP-Werten haben sich Kategorien etabliert, die die Konzentrationsniveaus von MP10 qualifizieren, denen Menschen ausgesetzt waren.

Schritt 7: Daten lokal protokollieren

Daten lokal protokollieren
Daten lokal protokollieren
Daten lokal protokollieren
Daten lokal protokollieren
Daten lokal protokollieren
Daten lokal protokollieren

An dieser Stelle haben wir alle Werkzeuge, um Daten vom Sensor zu erfassen und sie auch in einen besser lesbaren Wert umzuwandeln, den AQI-Index.

Lassen Sie uns eine Funktion erstellen, um diese Werte zu erfassen. Wir werden 3 Werte nacheinander erfassen, indem wir den Durchschnitt daraus bilden:

def get_data(n=3):

sensor.sleep(sleep=False) pmt_2_5 = 0 pmt_10 = 0 time.sleep(10) für i im Bereich (n): x = sensor.query() pmt_2_5 = pmt_2_5 + x[0] pmt_10 = pmt_10 + x[1] time.sleep(2) pmt_2_5 = round(pmt_2_5/n, 1) pmt_10 = round(pmt_10/n, 1) sensor.sleep(sleep=True) time.sleep(2) return pmt_2_5, pmt_10 Oben sehen Sie das Testergebnis. Lassen Sie uns auch eine Funktion ausführen, um die numerischen Werte von PM in den AQI-Index umzuwandeln

def conv_aqi(pmt_2_5, pmt_10):

aqi_2_5 = aqi.to_iaqi(aqi. POLLUTANT_PM25, str(pmt_2_5)) aqi_10 = aqi.to_iaqi(aqi. POLLUTANT_PM10, str(pmt_10)) zurück aqi_2_5, aqi_10 über dem Ergebnis eines Tests mit beiden Funktionen. Aber was tun mit ihnen? Die einfachste Antwort ist, eine Funktion zum Speichern der erfassten Daten zu erstellen und sie in einer lokalen Datei zu speichern

def save_log():

mit open("IHR WEG HIER/air_quality.csv", "a") als log: dt = datetime.now() log.write("{}, {}, {}, {}, {}\n". format(dt, pmt_2_5, aqi_2_5, pmt_10, aqi_10)) log.close() Mit einer einzigen Schleife können Sie regelmäßig Daten in Ihrer lokalen Datei protokollieren, zum Beispiel jede Minute

während(wahr):

pmt_2_5, pmt_10 = get_data() aqi_2_5, aqi_10 = conv_aqi(pmt_2_5, pmt_10) try: save_log() außer: print ("[INFO] Fehler beim Logging von Daten") time.sleep(60) Alle 60 Sekunden werden der Zeitstempel plus die Daten an diese Datei „angehängt“, wie wir oben sehen können.

Schritt 8: Senden von Daten an einen Cloud-Dienst

Senden von Daten an einen Cloud-Dienst
Senden von Daten an einen Cloud-Dienst

An dieser Stelle haben wir gelernt, wie man Daten vom Sensor erfasst und in einer lokalen CSV-Datei speichert. Jetzt ist es an der Zeit zu sehen, wie diese Daten an eine IoT-Plattform gesendet werden. In diesem Tutorial verwenden wir ThingSpeak.com.

„ThingSpeak ist eine Open-Source-Anwendung für das Internet der Dinge (IoT) zum Speichern und Abrufen von Daten von Dingen mithilfe von REST- und MQTT-APIs. ThingSpeak ermöglicht die Erstellung von Sensorprotokollierungsanwendungen, Standortverfolgungsanwendungen und einem sozialen Netzwerk von Dingen mit Statusaktualisierungen.“

Zunächst müssen Sie ein Konto bei ThinkSpeak.com haben. Befolgen Sie als Nächstes die Anweisungen zum Erstellen eines Kanals und notieren Sie seine Kanal-ID und den Schreib-API-Schlüssel.

Beim Erstellen des Kanals müssen Sie auch festlegen, welche Informationen in jedes der 8 Felder hochgeladen werden, wie oben gezeigt (in unserem Fall werden nur 4 davon verwendet).

Schritt 9: MQTT-Protokoll und ThingSpeak-Verbindung

MQTT-Protokoll und ThingSpeak-Verbindung
MQTT-Protokoll und ThingSpeak-Verbindung

MQTT ist eine Publish/Subscribe-Architektur, die in erster Linie entwickelt wurde, um bandbreiten- und leistungsbeschränkte Geräte über drahtlose Netzwerke zu verbinden. Es ist ein einfaches und leichtes Protokoll, das über TCP/IP-Sockets oder WebSockets ausgeführt wird. MQTT über WebSockets kann mit SSL gesichert werden. Die Publish/Subscribe-Architektur ermöglicht das Pushen von Nachrichten an die Clientgeräte, ohne dass das Gerät den Server ständig abfragen muss.

Der MQTT-Broker ist der zentrale Kommunikationspunkt und für den Versand aller Nachrichten zwischen den Absendern und den rechtmäßigen Empfängern verantwortlich. Ein Client ist ein beliebiges Gerät, das eine Verbindung zum Broker herstellt und Themen veröffentlichen oder abonnieren kann, um auf die Informationen zuzugreifen. Ein Thema enthält Routinginformationen für den Broker. Jeder Client, der Nachrichten senden möchte, veröffentlicht sie zu einem bestimmten Thema, und jeder Client, der Nachrichten empfangen möchte, abonniert ein bestimmtes Thema. Der Broker liefert alle Nachrichten mit dem passenden Thema an die entsprechenden Clients.

ThingSpeak™ verfügt über einen MQTT-Broker unter der URL mqtt.thingspeak.com und Port 1883. Der ThingSpeak-Broker unterstützt sowohl MQTT-Publishing als auch MQTT-Abonnement.

In unserem Fall verwenden wir das MQTT Publish.

Schritt 10: MQTT-Veröffentlichung

MQTT-Veröffentlichung
MQTT-Veröffentlichung

Lassen Sie uns zunächst die Eclipse Paho MQTT Python-Clientbibliothek installieren, die die Versionen 3.1 und 3.1.1 des MQTT-Protokolls implementiert

sudo pip install paho-mqtt

Als Nächstes importieren wir die Paho-Bibliothek:

import paho.mqtt.publish als veröffentlichen

und initiieren den Thingspeak-Kanal und das MQTT-Protokoll. Diese Verbindungsmethode ist die einfachste und erfordert die geringsten Systemressourcen:

channelID = "IHRE KANAL-ID"

apiKey = "IHR SCHREIBSCHLÜSSEL" topic = "channels/" + channelID + "/publish/" + apiKey mqttHost = "mqtt.thingspeak.com" Jetzt müssen wir unsere „Nutzlast“definieren

tPayload = "field1=" + str(pmt_2_5)+ "&field2=" + str(aqi_2_5)+ "&field3=" + str(pmt_10)+ "&field4=" + str(aqi_10)

Und das ist es! Wir sind bereit, Daten in die Cloud zu senden! Lassen Sie uns die vorherige Schleifenfunktion neu schreiben, um auch den ThingSpeak-Teil davon einzuschließen.

# Alle 1 Minute alle Daten an ThingSpeak senden

while(True): pmt_2_5, pmt_10 = get_data() aqi_2_5, aqi_10 = conv_aqi(pmt_2_5, pmt_10) tPayload = "field1=" + str(pmt_2_5)+ "&field2=" + str(aqi_2_5)+ "&field3=" + (pmt_10)+ "&field4=" + str(aqi_10) try: publish.single(topic, payload=tPayload, hostname=mqttHost, port=tPort, tls=tTLS, transport=tTransport) save_log() außer: print ("[INFO] Fehler beim Senden von Daten") time.sleep(60) Wenn alles in Ordnung ist, müssen die Daten auch auf Ihrem Kanal auf thingspeak.com erscheinen, wie oben gezeigt.

Schritt 11: Das endgültige Skript

Es ist wichtig darauf hinzuweisen, dass Jupyter Notebook ein sehr gutes Werkzeug für die Entwicklung und Berichterstellung ist, aber nicht, um einen Code für die Produktion zu erstellen. Was Sie jetzt tun sollten, ist, den relevanten Teil des Codes zu nehmen und ein.py-Skript zu erstellen und es auf Ihrem Terminal auszuführen.

Zum Beispiel „ts_air_quality_logger.py“, die Sie mit dem folgenden Befehl ausführen sollten:

Python 3 ts_air_quality_logger.py

Dieses Skript sowie das Jupyter Notebook und die sds011.py finden Sie in meinem Repository unter RPi_Air_Quality_Sensor.

Beachten Sie, dass dieses Skript nur zum Testen geeignet ist. Am besten verwenden Sie keine Verzögerungen innerhalb der letzten Schleife (die den Code in "Pause" setzen), sondern verwenden Sie Timer. Oder für eine echte Anwendung ist es am besten, die Schleife nicht zu verwenden, sondern das Linux so programmieren zu lassen, dass das Skript regelmäßig mit crontab ausgeführt wird.

Schritt 12: Den Monitor nach draußen bringen

Den Monitor nach draußen bringen
Den Monitor nach draußen bringen
Den Monitor nach draußen bringen
Den Monitor nach draußen bringen
Den Monitor nach draußen bringen
Den Monitor nach draußen bringen
Den Monitor nach draußen bringen
Den Monitor nach draußen bringen

Sobald mein Raspberry Pi Luftqualitätsmonitor funktionierte, baute ich den RPi in einer Plastikbox zusammen, hielt den Sensor draußen und platzierte ihn außerhalb meines Hauses.

Es wurden zwei Erfahrungen gemacht.

Schritt 13: Benzinmotor-Verbrennung

Verbrennung von Benzinmotoren
Verbrennung von Benzinmotoren
Verbrennung von Benzinmotoren
Verbrennung von Benzinmotoren

Der Sensor wurde etwa 1 m vom Gasraum der Lambretta entfernt platziert und der Motor eingeschaltet. Der Motor lief ein paar Minuten und ging dann aus. Aus der obigen Protokolldatei das Ergebnis, das ich erhalten habe. Es ist interessant zu bestätigen, dass PM2,5 der gefährlichste Partikel war, der aus dem Motor resultierte.

Schritt 14: Holzverbrennung

Holzverbrennung
Holzverbrennung
Holzverbrennung
Holzverbrennung

Wenn wir uns die Protokolldatei ansehen, stellen wir fest, dass die Sensordaten momentan "außerhalb des Bereichs" waren und von der AQI-Konvertierungsbibliothek nicht gut erfasst wurden, daher ändere ich den vorherigen Code, um damit umzugehen:

def conv_aqi(pmt_2_5, pmt_10):

try: aqi_2_5 = aqi.to_iaqi(aqi. POLLUTANT_PM25, str(pmt_2_5)) aqi_10 = aqi.to_iaqi(aqi. POLLUTANT_PM10, str(pmt_10)) return aqi_2_5, aqi_10 außer: return 600, 600, 600 Diese Situation kann im Feld passieren, was in Ordnung ist. Denken Sie daran, dass Sie tatsächlich den gleitenden Durchschnitt verwenden sollten, um den AQI wirklich zu erhalten (mindestens stündlich, aber normalerweise täglich).

Schritt 15: Fazit

Abschluss
Abschluss

Wie immer hoffe ich, dass dieses Projekt anderen helfen kann, ihren Weg in die spannende Welt der Elektronik und Datenwissenschaft zu finden!

Für Details und den endgültigen Code besuchen Sie bitte mein GitHub-Depot: RPi_Air_Quality_Sensor.

Saludos aus dem Süden der Welt!

Wir sehen uns bei meinem nächsten instructable!

Dankeschön, Marcelo

Empfohlen: