Créer votre capteur de pollution de l'air

image principale Créer votre capteur de pollution de l'air

Difficulté:

Ce tutoriel très simple vous montre comment créer votre premier capteur de particules fines. Grâce au microcontrôleur Arduino, vous pouvez afficher sur un écran la qualité de l'air ambiant. Une batterie vous permet de créer un dispositif portable pour effectuer des mesures dans différents espaces.

Ce tuto vous est proposé par l'association Aircarto à l'origine d'un projet ouvert, collaboratif et citoyen de mesure de la pollution de l'air. Nous proposons des ateliers de montage de capteurs géo-localisé et connecté ainsi qu'une plateforme d'échange d'information lié à la pollution de l'air (cartographie participative). Plus d'information sur notre site aircarto.fr

Matériel :

Budget : 20€

  • 1 mini breadboard
  • 1 Capteur particules fines SDS011
  • 1 Ecran I2C LCD 1602
  • 1 Pile 18650
  • 1 Arduino Uno
  • 1 Battery Shield for 18650
  • 10 Câbles duponts (mâle-mâle)
  • 20 Câbles duponts (mâle-femelle)

Etape 1 : Connecter votre Arduino à votre ordinateur

Pour faire fonctionner un Arduino il faut charger un code depuis son ordinateur vers le microcontrolleur via un câble USB. Pour cela on va utiliser le logiciel "Arduino IDE". Celui-ci peut être télécharger en utilisant ce lien (sélectionner à droite la version qui correspond à votre système d'exploitation).

Tutoriel détaillé pour l'installation de Arduino IDE sur un PC Windows et sur un MAC OS X .

Une fois le logiciel Arduino installé vous pouvez le brancher l'Arduino Uno à votre ordinateur. La LED "ON" devrait s'allumer. Pour vérifier que tout fonctionne bien nous allons charger sur l'Arduino notre premier code.

1. Ouvrir le logiciel Arduino

2. Dans outils -> type de carte: sélectionner "Arduino Uno"

3. Dans outils -> Port: sélectionner le port USB correspondant au port que vous avez utilisé pour brancher votre Arduino (sur windows aller sur Paramètres -> Appareils Bluetooth et autres pour voir sur quel port se trouve votre Arduino)

4. Dans Fichier -> Exemples ->  Basics: sélectionner le programme "Blink" 

5. Une fois le programme ouvert, appuyer sur le bouton Vérifier (le vu) puis sur le bouton Téléverser (la flèche).

6. Si tout ce passe bien, la LED "L" sur votre Arduino va se mettre à clignoter au rythme de 1sec allumée et 1 sec éteinte.

Vous avez charger votre premier programme sur votre microcontrolleur Arduino, bravo! 

Etape 2 : Brancher le capteur de particules fines à l'Arduino

Nous allons désormais brancher le capteur de particules fines SDS011 à l'Arduino et afficher les informations provenant du capteur sur l'écran de votre ordinateur.

Connexion Arduino - SDS011:

1. Avant d'effectuer les branchements il est préférable d'éteindre votre Arduino en le débranchant de votre ordinateur.

2. Le capteur SDS011 possède 7 pins mais seulement 3 nous serons utile pour assurer son alimentation (5v et GND) et pour récupérer les données (TX). Voir photo. A l'aide des câbles dupont, nous allons donc brancher la pin 5V du SDS011 à l'une des deux pins 5v de l'Arduino, pareil pour le GND. Enfin, la pin TX du SDS011 se branche sur la pin numérotée 10 de votre Arduino.

Arduino <--> SDS011
5v          <--> 5v
GND      <--> GND
10          <--> TX

3. Une fois les branchements effectués vous pouvez brancher votre Arduino à votre ordinateur. Si tout ce passe bien vous devriez entendre et voir le ventilateur du capteur tourner.

Affichage des mesures:

1. Pour communiquer avec le SDS011 et afficher les mesures nous allons avoir besoin d'une bibliothèque spécifique. Sur Arduino une bibliothèque est un petit fichier que nous allons ajouter à notre code et qui va nous simplifier notre programme. Ici nous allons devoir installer la bibliothèque "SDS011 sensor Library". Pour cela il faut aller dans le menu Outils puis cliquer sur Gérer les bibliothèques.

2. Dans le gestionnaire de bibliothèques effectuer une recherche en tapant "SDS011" puis installer la bibliothèque "SDS011 sensor Library" de R. Zschiegner.

3. Une fois la bibliothèque installée vous pouvez vous rendre dans le menu Fichier -> Exemples -> SDS011 sensor Library puis ouvrir le fichier SDS011_exemple.

4. Avant de charger le programme sur votre Arduino il faut indiquer sur quel pin nous avons brancher le TX du SDS011. Pour cela il suffit de modifier une ligne du code:

my_sds.begin(D1,D2);  ---> doit être changé par----> my_sds.begin(10,11);

5. Vous pouvez désormais Vérifier et Téléverser votre code sur l'arduino.

6. Pour pouvoir accéder aux données envoyées par le SDS011, il faut se rendre sur le moniteur de série. Celui-ci est accessible en cliquant sur la petite loupe en haut à droite.

7. Sur le moniteur de série vous devriez voir apparaître les données sous ce format:

P2.5: 2.30
P10:  3.90
P2.5: 2.30
P10:  4.00
P2.5: 2.20
P10:  3.90
....

Si rien ne s'affiche, vérifier que vous avez bien sélectionné "9600 baud" grâce au menu en bas à droite disponible dans le moniteur de série.

A noter que P2.5 représente la quantité de particules fines(PM) inférieures à 2,5 micromètres et que p10 représente la quantité de PM inférieures à 10 micromètres. Les mesures données sont en µg/m³.

**********

Seuil préconisé par l'OMS pour la concentration atmosphérique en particules fines de taille inférieure à 10 micromètres (PM10): pas plus de 20 μg/m3.

Etape 3 : Brancher l'écran LCD

Les données provenant du SDS011 sont disponibles sur l'écran de notre ordinateur, or nous souhaitons plutôt les afficher sur un petit écran externe: l'écran I2C LCD 1602.

Il s'agit d'un écran à cristaux liquides (LCD) bon marché permettant l'affichage de 16 caractères sur 2 lignes (16x02) et qui se branche à l'Arduino via le protocole I2C.

1. Débrancher l'Arduino de votre ordinateur.

2. On retrouve sous l'écran 4 pins qui nous permettrons de communiquer avec l'Arduino. Les pins VCC (5v) et GND assurent l'alimentation électrique et vont donc se brancher aux pins 5V et GND de l'Arduino. Les pins SDA et SCL assurent la communication en I2C et vont se connecter aux pins A4 (pour SDA) et A5 (pour SCL) de l'Arduino.

Arduino <--> écran LCD
5v          <--> VCC
GND      <--> GND
A4          <--> SDA
A5          <--> SCL

3. Vous pouvez rebrancher votre Arduino et voir l'écran LCD s'allumer.

4. Pour afficher un message sur l'écran il nous faut une nouvelle bibliothèque: "LiquidCrystal I2C". Comme pour le SDS011, vous trouverez la bibliothèque "LiquidCrystal I2C" dans le gestionnaire de bibliothèques (outils -> gérer les bibliothèques).

5. Une fois la bibliothèque installée, vous pouvez charger le code "HelloWorld" qui se trouve dans Fichier -> Exemples -> LiquidCrytal I2C

6. Pour faire fonctionner ce code avec notre écran il faut modifier trois lignes:

LiquidCrystal_I2C lcd(0x27,20,4);  ---à remplacer par---> LiquidCrystal_I2C lcd(0x27,16,2);

lcd.setCursor(3,0); ---> à remplacer par --> lcd.setCursor(0,0);

lcd.print("Hello, world!"); --> à remplacer par ---> lcd.print("Ca marche!");

**** optionel: vous pouvez supprimer les six lignes suivantes

lcd.setCursor(2,1);
lcd.print("Ywrobot Arduino!");
lcd.setCursor(0,2);
lcd.print("Arduino LCM IIC 2004");
lcd.setCursor(2,3);
lcd.print("Power By Ec-yuan!");

******

7. Vous pouvez Vérifier et Téléverser le programme. Si vous ne voyez pas ou mal le texte sur l'écran il faut peut-être régler le contraste. Cela se fait manuellement avec un tournevis grâce en tournant la petite vis qui se trouve à l'arrière de l'écran.

Etape 4 : Ecran + Capteur

Nous allons désormais connecter l'écran et le capteur SDS011 à l'Arduino. Pour ceci nous allons devoir utiliser une breadboard (table de prototypage) et modifier le code.

Connexions:

1. Sur l'Arduino Uno il n'y a qu'une seule pin 5v, pour alimenter le capteur et l'écran nous allons donc utiliser la breadboard. Placez la breadboard à la verticale et utilisez une ligne pour le + (5V) et une autre pour le - (GND).

2. Connecter le + et le - du capteur et de l'écran sur la breadboard à coté du + et du - de l'Arduino. Ainsi nos deux composants sont alimentés en parallèle.

3. Les connexions pour la communication sont les mêmes:

Arduino <--> SDS011
10          <--> TX

Arduino <--> écran LCD
A4          <--> SDA
A5          <--> SCL

4. Branchez votre Arduino et vous devriez voir l'écran s'allumer ainsi que le ventilateur de capteur se mettre à tourner.

Programmation:

1. Désormais nous allons devoir combiner les deux programme que nous avions utilisé précédemment. Pour cela nous allons créer un nouveau fichier (fichier->nouveau).

2. Dans la nouvelle fenêtre supprimez les lignes de codes déjà présentes:

void setup() {
// put your setup code here, to run once:
}


void loop() {
// put your main code here, to run repeatedly:
}

3. Dans la fenêtre vide copier et coller le code suivant:

******** code à copier ci-dessous **********

//Aircarto

#include <Wire.h>
#include <LiquidCrystal_I2C.h>  //bibliothèque pour l'écran LCD
#include <SDS011.h>             //bibliothèque pour le capteur SDS011

LiquidCrystal_I2C lcd(0x27,16,2);

float p10,p25;
int error;

SDS011 my_sds;

void setup()
{
Serial.begin(9600);
my_sds.begin(10,11);

lcd.init();                      
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("AirCarto.fr");     //Message d'intro ligne 1
lcd.setCursor(0,1);
lcd.print("Atelier capteur"); //message d'intro ligne 2
delay(1000);
}

void loop()
{
error = my_sds.read(&p25,&p10);
if (! error) {
Serial.println("P2.5: "+String(p25));
Serial.println("P10:  "+String(p10));
lcd.setCursor(0,0);
lcd.print("PM2.5: "+String(p25,1) +" ugm3");
lcd.setCursor(0,1);
lcd.print("PM10:  "+String(p10,1)+" ugm3");
}
delay(200);
}

********** code à copier ci-dessus *********

4. Vérifier, enregistrer le code et téléverser sur votre Arduino.

Etape 5 :

Votre capteur envoie les données à votre Arduino qui se charge des les afficher sur l'écran LCD. Tout fonctionne mais votre dispositif n'est pas tout à fait autonome, il nécessite d'être branché à votre ordinateur pour fonctionner. Pour assurer l'alimentation électriques de nos composants vous pouvez utiliser la batterie et son support de recharge.

Première option:

1. Déposer la batterie dans son socle.

2. Brancher le câble USB de l'Arduino sur la batterie et déplacer le bouton sur on.

Deuxième option (nécessite un fer à souder):

1. Débrancher l'Arduino de votre ordinateur.

2. Souder deux câbles dupont sur le coté du support de la batterie (un pour le 5v un autre pour le GND).

3. Relier le + (5V) et le - (GND) de la batterie à la breadboard. Ainsi la batterie alimente l'Arduino, l'écran et la capteur.

Etape 6 : Conclusion

Bravo! Vous avez monté et programmé votre premier capteur de pollution de l'air. Cette première version peut bien entendu être améliorée:

- Ajout d'un module pour carte SD afin d'enregistrer les données

- Utilisation d'un Arduino WIFI pour envoyer les données sur le net

- Ajouter un capteur de température et d'humidité

- Ajouter un buzzer qui alerte lorsque la qualité de l'air est mauvaise

- Créer un boîtier pour y mettre les composants

- Ajouter une puce GPS afin de géo-localiser les données

- etc

Si la mesure de la pollution et le partage des données liée à la qualité de l'air vous intéresse n'hésitez pas à nous contacter ou consulter notre site aircarto.fr. Nous organisons aussi régulièrement des ateliers de construction de capteurs à Lyon et à Marseille.

Merci d'avoir suivi ce tuto jusqu'au bout.

L'équipe d'Aircarto.

Super Tutoriel ! 

Merci beaucoup pour ce partage ! Nous allons le mettre en place dans notre atelier (nous fabriquons des étagères modulaires en bois). Et nous allons voir comment cela se comporte. L'idée étant de mesurer l'impact de nos machines sur la qualité de l'air dans l'atelier. 

A très bientôt

Roman

www.get-quark.com

Hello!

Attention que le capteur SDS011 doit idéalement être installer dans l'autre sens selon le fabricant.


iooner

Bonjour, Qui a modifier ce projet pour rendre l'affichage plus grand et visible à une dizaine de métres dans la rue, avec 3 smileys pour l'affichage de la qualité de l'air ?
Cdt

Bonjour, c'est plutôt + 50€ que 20€..

Bonjour, le tutoriel à été publié en 2020. Avec le covid et l'inflation les prix des composants électroniques ont en effet augmenté. 

Bonjour, le tutoriel à été publié en 2020. Avec le covid et l'inflation les prix des composants électroniques ont en effet augmenté. 

Bonjour, le tutoriel à été publié en 2020. Avec le covid et l'inflation les prix des composants électroniques ont en effet augmenté. 

Ces tutoriels devraient vous plaire

vignette L’imprimante 3D pour 60€: EWaste
L’imprimante 3D pour 60€: EWaste
vignette Construire son Bartop Arcade de A à Z
Construire son Bartop Arcade de A à Z
vignette Arduino Uno - Capteur d'humidité au sol.
Arduino Uno - Capteur d'humidité au sol.
avaatar AirCarto

AirCarto

Suivre

Vues: 11369
Mis en favoris: 21

Découvrez d'autres tutoriels de

AirCarto

Fabriquer son capteur de CO2 et de particules fines - ModuleAir

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers