Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Mesurer la qualité de l'air avec OpenSensors : Guide Arduino et Python

Apprenez à surveiller la qualité de l'air intérieur grâce à un Arduino, un capteur de particules Shinyei PPD‑42 et le courtier MQTT OpenSensors. Ce tutoriel pas à pas montre comment collecter des données particulaires en temps réel et les publier de manière sécurisée sur un flux de données public.

Introduction

Pour ce projet, nous recherchions un moyen simple mais puissant d'évaluer la qualité de l'air sur notre lieu de travail. Nous avons choisi le capteur Shinyei PPD‑42 pour son coût abordable et sa facilité d'utilisation, et l'avons associé à un Arduino UNO et un hôte Linux (par exemple, Raspberry Pi). Le capteur diffuse la concentration de petites particules présentant des risques pour la santé, et nous publions ces données en continu sur le courtier de messagerie OpenSensors.

Matériel nécessaire

Ce guide s'inspire du projet DustDuino, qui intègre déjà le PPD‑42 avec Arduino et Wi‑Fi. Nous avons adapté son schéma de câblage et son code pour fonctionner avec notre configuration OpenSensors.

Premièrement, connectez le capteur à l'Arduino comme décrit à l'étape 2 des instructions DustDuino. Téléchargez ensuite le sketch DustDuinoSerial.ino depuis le dépôt GitHub, ouvrez-le dans l'IDE Arduino et téléversez-le sur l'UNO.

Vérifiez que le capteur envoie des données en ouvrant le moniteur série de l'IDE Arduino.

Ensuite, nous relierons la sortie série de l'Arduino au courtier OpenSensors à l'aide d'un script Python léger exploitant la bibliothèque cliente Mosquitto.

Premiers pas avec Python

Pour confirmer que Python est prêt sur votre machine, créez un fichier nommé hi.py avec le contenu suivant :

print("Hello World")

Exécutez-le depuis un terminal :

python hi.py

Vous devriez voir Hello World affiché dans la console.

Connexion à OpenSensors

Installez le client Python Mosquitto si ce n'est pas déjà fait :

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

Testez la publication vers OpenSensors avec ce script minimal (remplacez Louis et le mot de passe par vos identifiants) :

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()

Après exécution réussie, le message apparaîtra dans la console OpenSensors.

Pour connecter le port série de l'Arduino, identifiez le périphérique avec :

dmesg | grep tty

La sortie typique ressemble à :

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

Ici, /dev/ttyACM0 est le port série à utiliser.

Lisez les données série avec Python :

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

Intégration de la sortie du capteur avec MQTT

Combinez le lecteur série et l'éditeur MQTT dans un seul script. L'exemple ci-dessous publie chaque ligne de données du capteur sur le sujet /users/Louis/ODI/airquality chaque seconde :

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')  # ajustez si votre port diffère

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

Pour faciliter le traitement ultérieur, envisagez de formater la sortie de l'Arduino en JSON avant la publication.

Explorez le flux de données résultant sur OpenSensors en visitant le sujet que vous avez créé ici.

Exemple de code complet

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')  # ouvrir le premier port série

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

Source : How to Measure Air Quality on OpenSensors

Processus de fabrication

  1. Capteur de qualité de l'air solaire basé sur Helium : Guide de conception et déploiement
  2. Utiliser une thermistance facilement : Guide étape par étape Arduino
  3. Optimiser le rendement des compresseurs d'air à bord : stratégies éprouvées
  4. Mesure de l'épaisseur du masque de soudure : Guide pratique
  5. Exploiter l'IoT pour construire des systèmes avancés de surveillance de la qualité de l'air intérieur
  6. Comment fonctionnent les sécheurs d'air : garder l'air comprimé propre et efficace
  7. Guide complet pour éliminer les contaminants de l'air comprimé
  8. Bracelets en silicone : échantillonneurs passifs abordables pour surveillance précise de la qualité de l'air
  9. Capteur NO₂ avancé à base de carbone pour une surveillance de la qualité de l'air intérieur améliorée