Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Luftqualität messen mit OpenSensors: Arduino & Python Anleitung

Einführung

In diesem Tutorial lernen Sie, wie Sie die Innenraumluftqualität mit einem Arduino, einem Shinyei PPD‑42 Partikelsensor und dem OpenSensors MQTT-Broker überwachen können. Schritt für Schritt zeigen wir, wie Sie Echtzeit-Partikeldaten erfassen und sicher an einen öffentlichen Datenstrom veröffentlichen.

Benötigte Hardware

Projektbasis: DustDuino

Diese Anleitung basiert auf dem DustDuino-Projekt, das den PPD‑42 bereits mit Arduino und WLAN integriert. Wir haben den Schaltplan und den Code für unsere OpenSensors-Installation angepasst.

Verbinden Sie zunächst den Sensor wie in Schritt 2 der DustDuino-Anleitung beschrieben mit dem Arduino. Laden Sie dann den Sketch DustDuinoSerial.ino aus dem GitHub-Repository herunter, öffnen Sie ihn in der Arduino IDE und laden Sie ihn auf den UNO hoch.

Überprüfen Sie im Seriellen Monitor der Arduino IDE, ob der Sensor Daten sendet.

Python-Skript für die MQTT-Übertragung

Als Nächstes verbinden wir die serielle Ausgabe des Arduino mit dem OpenSensors-Broker mithilfe eines schlanken Python-Skripts, das die Mosquitto-Client-Bibliothek nutzt.

Python-Installation testen

Erstellen Sie eine Datei hi.py mit folgendem Inhalt:

print("Hello World")

Führen Sie sie im Terminal aus:

python hi.py

Die Ausgabe Hello World bestätigt, dass Python funktioniert.

Verbindung zu OpenSensors testen

Installieren Sie den Mosquitto Python-Client:

sudo apt-get install python-pip
sudo pip install paho-mqtt

Testen Sie das Publizieren mit diesem minimalen Skript (ersetzen Sie Benutzername und Passwort durch Ihre Zugangsdaten):

import paho.mqtt.client as mqtt
mqttc = mqtt.Client(client_id="939")
mqttc.username_pw_set("Louis", password="AbcDEFgH")
mqttc.connect("mqtt.opensensors.io")
mqttc.publish("/users/Louis/test2", payload="Hello Opensensors!", qos=0, retain=False)
mqttc.disconnect()

Bei erfolgreicher Ausführung erscheint die Nachricht in der OpenSensors-Konsole.

Seriellen Port identifizieren

Ermitteln Sie den Arduino-Port mit:

dmesg | grep tty

Typische Ausgabe:

[ 0.000000] console [tty0] enabled
[ 3522.192687] cdc_acm 7-1:1.0: ttyACM0: USB ACM device

Hier ist /dev/ttyACM0 der zu verwendende serielle Port.

Serielle Daten mit Python lesen

import serial
ser = serial.Serial('/dev/ttyACM0')
while True:
    print(ser.readline())

Sensor-Daten mit MQTT verbinden

Kombinieren Sie den seriellen Leser und den MQTT-Publisher in einem Skript. Das folgende Beispiel veröffentlicht jede Sensordatenzeile im Topic /users/Louis/ODI/airquality jede Sekunde:

import serial
import paho.mqtt.client as mqtt
import time

mqttc = mqtt.Client(client_id="939")
mqttc.username_pw_set("Louis", password="AbcDEFgH")
mqttc.connect("mqtt.opensensors.io")

ser = serial.Serial('/dev/ttyACM0')  # Port ggf. anpassen

while True:
    message = ser.readline()
    print(message)
    mqttc.publish("/users/Louis/ODI/airquality", payload=message, qos=0, retain=False)
    time.sleep(1)

Für die weitere Verarbeitung empfiehlt es sich, die Arduino-Ausgabe vor dem Publizieren als JSON zu formatieren.

Die resultierenden Datenströme können Sie auf OpenSensors unter dem erstellten Topic hier einsehen.

Vollständiges Code-Beispiel

import serial
import paho.mqtt.client as mqtt
import time

mqttc = mqtt.Client(client_id="939")
mqttc.username_pw_set("Louis", password="AbcDEFgH")
mqttc.connect("opensensors.io")

ser = serial.Serial('/dev/ttyACM0')

while True:
    message = ser.readline()
    print(message)
    mqttc.publish("/users/Louis/ODI/airquality", payload=message, qos=0, retain=False)
    time.sleep(1)

Quelle: How to Measure Air Quality on OpenSensors

Herstellungsprozess

  1. Helium-basierter solarbetriebener Luftqualitätssensor: Design- und Deployments-Guide
  2. Versteckte Gesundheitsrisiken durch schlechte Raumluftqualität
  3. Thermistor (NTC) einfach nutzen: Schritt-für-Schritt Arduino-Anleitung
  4. Luftkompressor-Effizienz auf Schiffen steigern: Bewährte Maßnahmen
  5. Lötstopplack-Dicke messen: Ein praktischer Leitfaden
  6. Fortgeschrittene Innenraumluftqualitäts-Monitoring-Systeme mit IoT aufbauen
  7. Wie Lufttrockner funktionieren: Druckluft sauber & effizient halten
  8. Umfassender Leitfaden: Verunreinigungen aus Druckluft entfernen
  9. Silikon-Armbänder: Günstige passive Sammler für präzise Luftqualitätsüberwachung
  10. Fortschrittlicher kohlenstoffbasierter NO₂-Sensor verbessert Innenraumluftüberwachung