Comment mesurer la qualité de l'air sur OpenSensors
Comment mesurer la qualité de l'air de l'Open Data Institute à l'aide d'un Arduino et d'un Shinyei PPD-42.
Introduction
Ainsi, tout en pensant à une bonne démonstration pour la plate-forme Opensensors, nous avons pensé pourquoi ne pas voir à quel point notre lieu de travail est pollué en connectant un capteur pour publier un flux de données continu sur le courtier de messagerie Opensensors. Pour cela, nous avons besoin d'un capteur facile à prendre en main et à utiliser, nous avons opté pour le Shinyei PPD-42. Nous allons l'utiliser pour mesurer le nombre de petites particules potentiellement dangereuses dans l'air, avec un arduino connecté à un PC Linux (ou Raspberry PI).
Pour exécuter ce mini-projet, vous aurez besoin de :
- Shinyei PPD-42
- Arduino UNO
- Ordinateur avec Linux installé (vous pouvez utiliser un Raspberry PI)
Nous basons cette analyse sur un projet appelé DustDuino qui utilise le capteur Shinyei PPD-42 avec un arduino et un module wifi. Vérifiez le ici. Nous avons utilisé ce projet comme référence lors de la configuration du capteur et de l'écriture du code Arduino.
Tout d'abord, nous suivons l'étape 2 des instructions pour connecter le capteur à l'Arduino. Ensuite, nous téléchargeons le code à partir du référentiel github des projets en ouvrant le lien pour le code DustDuinoSerial.ino en sélectionnant raw et en enregistrant cette page.
En l'ouvrant dans l'IDE Arduino, nous le téléchargeons maintenant sur notre Arduino UNO en connectant l'Arduino et en appuyant sur télécharger.
Vous pouvez vérifier que les données arrivent en utilisant le moniteur série de l'IDE Arduino.
Nous devons ensuite trouver comment envoyer le message série entrant au courtier de messages Opensensors.
Pour ce faire, nous avons choisi d'écrire un script Python. Nous avons utilisé le module Python Mosquitto. Je vais supposer que vous avez déjà installé Python, car il est pré-packagé sur la plupart des versions de Linux. Si vous ne l'avez pas déjà, vous devrez installer pip pour télécharger et configurer le module python Mosquitto. Sur Ubuntu ou Debian, cela peut être fait avec la commande suivante :
sudo apt-get install python-pip
Une fois pip installé, nous pouvons installer le module client python Mosquitto à l'aide de la commande suivante :
sudo pip install paho-mqtt
Vous pouvez découvrir comment utiliser le module python en parcourant le site Web que nous avons lié ci-dessus. Écrire et compiler python est vraiment facile.
Bonjour Python World
Ouvrez votre éditeur de texte en clair préféré. Entrez la ligne :
imprimer "Hello World"
Enregistrez-le sous hi.py. Ensuite, dans le terminal, accédez à votre document et entrez la commande :
python hi.py
Vous devriez voir votre réponse "Hello World". C'est aussi simple que cela.
Bonjour Opensensors
Pour utiliser le module python du client Mosquitto, nous pouvons exécuter le code suivant pour tester la publication. Vous devrez remplacer mon nom d'utilisateur « Louis » (en conservant les marques vocales) et mon mot de passe par vos coordonnées :
La bibliothèque Mosquitto dont nous avons besoin pour communiquer avec le courtier de messages Opensensors :
importer paho.mqtt.client en tant que mqtt
Initialisez l'option client avec notre ID client de notre appareil :
mqttc =mqtt.Client(client_id="939")
Définissez notre nom d'utilisateur et mot de passe :
mqttc.username_pw_set("Louis", password="AbcDEFgH")
Connectez-vous au serveur Opensensors :
mqttc.connect("mqtt.opensensors.io")
Publiez un message pour dire bonjour :
mqttc.publish("/users/Louis/test2", payload="Bonjour Opensensors!", qos=0, keep=False)
Déconnecter :
mqttc.disconnect();
Succès, vous devriez maintenant avoir un capteur fonctionnel 🙂
Ensuite, nous devons faire fonctionner la série. Pour savoir à quoi ressemble votre port série arduino, nous avons exécuté la commande suivante dans le terminal :
dmesg | grep tty
La sortie était quelque chose comme ça…
[ 0.000000] console [tty0] activée[ 3522.192687] cdc_acm 7-1:1.0 :ttyACM0 :périphérique USB ACM
La deuxième ligne contient les détails de notre Ardiuno. Le ttyACM0 est le nom du périphérique et ‘/dev/ttyACM0’ est le port série.
Pour ouvrir et lire le port série Python, c'est vraiment facile. Vous pouvez lancer un petit test pour vérifier si cela fonctionne en utilisant le code suivant :
Pour communiquer avec l'Arduino, nous devons utiliser la bibliothèque série :
import serialser =serial.Serial('/dev/ttyACM0') # ouvre le premier port série tandis que True:print ser.readline() # imprime chaque ligne qu'il lit à partir de la série
Enfin, il ne nous reste plus qu'à assembler les deux pièces. Voici le code que nous avons utilisé :
importer serialimport paho.mqtt.client en tant que mqttimport timemqttc =mqtt.Client(client_id="939")mqttc.username_pw_set("Louis", password="AbcDEFgH") mqttc.connect("mqtt.opensensors.io")ser =serial.Serial('/dev/ttyACM0') # ouvre le premier port sériewhile True:message=ser.readline() print messagemqttc.publish("/users/Louis/ ODI/airquality", payload=message, qos=0, keep=False)time.sleep(1) ;
En exécutant cela, nous publiions les données de nos capteurs sur Opensensors !
NOUS recommandons d'ajuster le code Arduino pour sortir les données au format JSON. Cela facilitera la lecture et l'ajout de fonctionnalités.
Vous pouvez consulter le sujet sur la production de données ouvertes que nous avons créé ici !
Code
importer serialimport paho.mqtt.client en tant que mqttimport timemqttc =mqtt.Client(client_id="939")mqttc.username_pw_set("Louis", password="AbcDEFgH")mqttc.connect ("opensensors.io")ser =serial.Serial('/dev/ttyACM0') # ouvre le premier port sériewhile True:message=ser.readline() print messagemqttc.publish("/users/Louis/ODI/airquality", payload=message, qos=0, keep=False)time.sleep(1) ;
Source :Comment mesurer la qualité de l'air sur OpenSensors
Processus de fabrication
- Capteur de qualité de l'air à l'hélium
- Est-il facile d'utiliser une thermistance ? !
- Comment augmenter l'efficacité du compresseur d'air
- Comment mesurer l'épaisseur du masque de soudure
- Comment l'IdO facilite le développement du SMQ intérieur ?
- Comment fonctionnent les sécheurs d'air ?
- Comment éliminer les contaminants dans l'air comprimé
- Utiliser des bracelets en silicone pour mesurer la qualité de l'air
- Capteur de qualité de l'air à base de carbone