Item:Capteur de particules SDS011 : Différence entre versions

 
(12 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 3 : Ligne 3 :
 
|Description=Capteur basé sur un laser SDS011 PM2.5/PM10 permettant de tester avec précision et fiabilité la qualité de l'air
 
|Description=Capteur basé sur un laser SDS011 PM2.5/PM10 permettant de tester avec précision et fiabilité la qualité de l'air
 
|Categories=Matériel
 
|Categories=Matériel
|Cost=34,95
+
|Cost=20
 
|Currency=EUR (€)
 
|Currency=EUR (€)
 
|ItemLongDescription='''Principe:'''
 
|ItemLongDescription='''Principe:'''
Ligne 15 : Ligne 15 :
 
Le capteur est livré sans cordon de raccordement mais peut être utilisé avec des cordons de prototypages M/F par exemple.
 
Le capteur est livré sans cordon de raccordement mais peut être utilisé avec des cordons de prototypages M/F par exemple.
  
Une librairie Arduino sous licence GPL est disponible en téléchargement .
+
Une librairie Arduino sous licence GPL est disponible en téléchargement .  
  
'''Librairie à télécharger:'''
+
Librairie Nova_SDS011 Sensor
 
 
Nova Fitness SDS011 Dust Sensors Library
 
 
 
by Pawel Kolodziejczyk 
 
 
 
En option:
 
  
 
Le capteur SDS011 peut également être utilisé sur un PC via un convertisseur USB vers UART TTL inclus.
 
Le capteur SDS011 peut également être utilisé sur un PC via un convertisseur USB vers UART TTL inclus.
Ligne 54 : Ligne 48 :
  
 
==Bibliothèque : ==
 
==Bibliothèque : ==
Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque ''SDS011-select-serial'' que vous trouverez [https://github.com/sensebox/SDS011-select-serial ici, en cliquant sur ce lien]
+
{{#annotatedImageLight:Fichier:Item-Capteur de particules SDS011 Sensor.png|0=751px|hash=|jsondata=|mediaClass=Image|type=frameless|align=center|src=https://www.wikidebrouillard.org/images/4/4d/Item-Capteur_de_particules_SDS011_Sensor.png|href=./Fichier:Item-Capteur de particules SDS011 Sensor.png|resource=./Fichier:Item-Capteur de particules SDS011 Sensor.png|caption=|size=751px}}Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque ''sds-dust-sensors-arduino-library'' que vous trouverez [https://github.com/lewapek/sds-dust-sensors-arduino-library ici, en cliquant sur ce lien]
  
  
<u>https://github.com/lewapek/sds-dust-sensors-arduino-library</u>
+
==Câblage==
 +
{{#annotatedImageLight:Fichier:Item-Capteur de particules SDS011 Dust sensor .jpg|0=600px|hash=|jsondata=|mediaClass=Image|type=frameless|alt=Item-Capteur de particules SDS011 Dust sensor .jpg|align=left|src=https://www.wikidebrouillard.org/images/b/bd/Item-Capteur_de_particules_SDS011_Dust_sensor_.jpg|href=./Fichier:Item-Capteur de particules SDS011 Dust sensor .jpg|resource=./Fichier:Item-Capteur de particules SDS011 Dust sensor .jpg|caption=|size=600px}}{{#annotatedImageLight:Fichier:Item-Capteur de particules SDS011 Branchements.png|0=538px|hash=|jsondata=|mediaClass=Image|type=frameless|align=center|src=https://www.wikidebrouillard.org/images/b/b4/Item-Capteur_de_particules_SDS011_Branchements.png|href=./Fichier:Item-Capteur de particules SDS011 Branchements.png|resource=./Fichier:Item-Capteur de particules SDS011 Branchements.png|caption=|size=538px}}{{#annotatedImageLight:Fichier:Item-Capteur de particules SDS011 IMG 20201210 121324 resized 20201210 121436561.jpg|0=500px|hash=|jsondata=|mediaClass=Image|type=frameless|alt=Item-Capteur de particules SDS011 IMG 20201210 121324 resized 20201210 121436561.jpg|align=center|src=https://www.wikidebrouillard.org/images/9/9b/Item-Capteur_de_particules_SDS011_IMG_20201210_121324_resized_20201210_121436561.jpg|href=./Fichier:Item-Capteur de particules SDS011 IMG 20201210 121324 resized 20201210 121436561.jpg|resource=./Fichier:Item-Capteur de particules SDS011 IMG 20201210 121324 resized 20201210 121436561.jpg|caption=|size=500px}}
  
'''Câblage :'''
 
<br />
 
  
 
==Code Minimal==
 
==Code Minimal==
 
{| class="wikitable" cellspacing="0" border="0"
 
{| class="wikitable" cellspacing="0" border="0"
| height="17" align="left" bgcolor="#999999" |
 
| align="center" valign="middle" bgcolor="#999999" |
 
| align="center" bgcolor="#999999" |
 
 
|-
 
|-
 
| rowspan="2" height="60" align="center" valign="middle" bgcolor="#999999" |Avant le Setup
 
| rowspan="2" height="60" align="center" valign="middle" bgcolor="#999999" |Avant le Setup
 
| align="center" valign="middle" bgcolor="#999999" |Importation de la bibliothèque
 
| align="center" valign="middle" bgcolor="#999999" |Importation de la bibliothèque
 
| align="left" valign="middle" |#include "SdsDustSensor.h"
 
| align="left" valign="middle" |#include "SdsDustSensor.h"
<br />
 
 
|-
 
|-
 
| align="center" valign="middle" bgcolor="#999999" |Création de l’objet
 
| align="center" valign="middle" bgcolor="#999999" |Création de l’objet
| align="left" valign="middle" |int rxPin = D1;
+
| align="left" valign="middle" |int rxPin = D5;
  
int txPin = D2;
+
int txPin = D6;
  
 
SdsDustSensor sds(rxPin, txPin);
 
SdsDustSensor sds(rxPin, txPin);
<br />
 
 
|-
 
|-
 
| height="17" align="center" valign="middle" bgcolor="#999999" |Dans le Setup
 
| height="17" align="center" valign="middle" bgcolor="#999999" |Dans le Setup
 
| align="center" valign="middle" bgcolor="#999999" |Démarrage de l’objet
 
| align="center" valign="middle" bgcolor="#999999" |Démarrage de l’objet
| align="left" valign="middle" |void setup() {
+
| align="left" valign="middle" |Serial.begin(9600);
 
 
Serial.begin(9600);
 
  
 
sds.begin();
 
sds.begin();
 
Serial.println(sds.queryFirmwareVersion().toString()); // prints firmware version
 
 
Serial.println(sds.setActiveReportingMode().toString()); // ensures sensor is in 'active' reporting mode
 
 
Serial.println(sds.setContinuousWorkingPeriod().toString()); // ensures sensor has continuous working period - default but not recommended
 
 
}
 
<br />
 
 
|-
 
|-
 
| height="17" align="center" valign="middle" bgcolor="#999999" |Dans le Loop
 
| height="17" align="center" valign="middle" bgcolor="#999999" |Dans le Loop
 
| align="center" valign="middle" bgcolor="#999999" |Utilisation
 
| align="center" valign="middle" bgcolor="#999999" |Utilisation
| align="left" valign="middle" |void loop() {
+
| align="left" valign="middle" |PmResult pm = sds.readPm();
 
 
PmResult pm = sds.readPm();
 
 
 
if (pm.isOk()) {
 
  
 
Serial.print("PM2.5 = ");
 
Serial.print("PM2.5 = ");
Ligne 113 : Ligne 86 :
  
 
Serial.println(pm.pm10);
 
Serial.println(pm.pm10);
 
// if you want to just print the measured values, you can use toString() method as well
 
 
Serial.println(pm.toString());
 
 
} else {
 
 
// notice that loop delay is set to 0.5s and some reads are not available
 
 
Serial.print("Could not read values from sensor, reason: ");
 
 
Serial.println(pm.statusToString());
 
 
}
 
 
delay(10000);
 
 
}
 
 
|}
 
|}
Astuce:  il faut peut être que vous inversiez Rx et TX en D1 et D2 si cela ne fonctionne pas, sur votre carte.
+
Astuce:  il est possible RX et TX soient inverser, dans ce cas il vous suffit d'inverser D5 et D6 dans votre code.<br />
  
 +
==Exemple==
 +
<br /><syntaxhighlight lang="arduino" line="1">
 +
#include "SdsDustSensor.h"
  
 
+
int rxPin = D5;
'''Exemple :'''
+
int txPin = D6;
 
 
 
 
<nowiki>#</nowiki>include "SdsDustSensor.h"
 
 
 
int rxPin = D1;
 
 
 
int txPin = D2;
 
 
 
 
SdsDustSensor sds(rxPin, txPin);
 
SdsDustSensor sds(rxPin, txPin);
  
 
void setup() {
 
void setup() {
 +
 
 +
  Serial.begin(9600);
 +
  sds.begin();
  
Serial.begin(9600);
+
  Serial.println(sds.queryFirmwareVersion().toString());
 
+
  Serial.println(sds.setActiveReportingMode().toString());
sds.begin();
+
  Serial.println(sds.setContinuousWorkingPeriod().toString());  
 
 
Serial.println(sds.queryFirmwareVersion().toString()); // prints firmware version
 
 
 
Serial.println(sds.setActiveReportingMode().toString()); // ensures sensor is in 'active' reporting mode
 
 
 
Serial.println(sds.setContinuousWorkingPeriod().toString()); // ensures sensor has continuous working period - default but not recommended
 
 
 
 
}
 
}
  
 
void loop() {
 
void loop() {
 +
 
 +
  PmResult pm = sds.readPm();
 +
  if (pm.isOk()) {
 +
    Serial.print("PM2.5 = ");
 +
    Serial.print(pm.pm25);
 +
    Serial.print(", PM10 = ");
 +
    Serial.println(pm.pm10);
 +
    Serial.println(pm.toString());
 +
  }
 +
  else {
 +
    Serial.print("Could not read values from sensor, reason: ");
 +
    Serial.println(pm.statusToString());
 +
  }
  
PmResult pm = sds.readPm();
+
  delay(500);
 
 
if (pm.isOk()) {
 
 
 
Serial.print("PM2.5 = ");
 
 
 
Serial.print(pm.pm25);
 
 
 
Serial.print(", PM10 = ");
 
 
 
Serial.println(pm.pm10);
 
 
 
// if you want to just print the measured values, you can use toString() method as well
 
 
 
Serial.println(pm.toString());
 
 
 
} else {
 
 
 
// notice that loop delay is set to 0.5s and some reads are not available
 
 
 
Serial.print("Could not read values from sensor, reason: ");
 
 
 
Serial.println(pm.statusToString());
 
 
 
 
}
 
}
 
+
</syntaxhighlight><br />
delay(10000);<blockquote></blockquote>
 
 
}}
 
}}
 
{{Tuto Status
 
{{Tuto Status
|Complete=Draft
+
|Complete=Published
 
}}
 
}}

Version actuelle datée du 10 décembre 2020 à 16:12


Item-Capteur de particules SDS011 ar-capteur-de-qualite-de-l-air-sds011-27929.jpg

Capteur de particules SDS011

Capteur basé sur un laser SDS011 PM2.5/PM10 permettant de tester avec précision et fiabilité la qualité de l'air

20EUR (€)


Description longue

Principe:

Ce capteur est basé sur un laser SDS011 PM2.5/PM10 permettant de tester avec précision et fiabilité la qualité de l'air.

Ce laser fiable, rapide et précis mesure le taux de particules dans l'air compris entre 0,3 et 10 µm.

Il communique avec un microcontrôleur compatible via une sortie UART.

Le capteur est livré sans cordon de raccordement mais peut être utilisé avec des cordons de prototypages M/F par exemple.

Une librairie Arduino sous licence GPL est disponible en téléchargement .

Librairie Nova_SDS011 Sensor

Le capteur SDS011 peut également être utilisé sur un PC via un convertisseur USB vers UART TTL inclus.


Caractéristiques :

Alimentation: 4,7 à 5,3 Vcc
Consommation:
- au travail: 70 mA ±10mA
- au repos: < 4 mA 
Plage de mesure: 0 à 999,9 µg/m³
Résolution: 0,3 µg/m³
Fréquence d'échantillonage: 1 Hz
Température de service: -10 à 50 °C
Humidité de service: 70 % RH maxi
Pression atmosphérique: 86 KPa à 110 KPa
Dimensions: 71 x 70 x 23 mm


Bibliothèque :

Item-Capteur de particules SDS011 Sensor.png
Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque sds-dust-sensors-arduino-library que vous trouverez ici, en cliquant sur ce lien


Câblage

Item-Capteur de particules SDS011 Dust sensor .jpg
Item-Capteur de particules SDS011 Branchements.png
Item-Capteur de particules SDS011 IMG 20201210 121324 resized 20201210 121436561.jpg


Code Minimal

Avant le Setup Importation de la bibliothèque #include "SdsDustSensor.h"
Création de l’objet int rxPin = D5;

int txPin = D6;

SdsDustSensor sds(rxPin, txPin);

Dans le Setup Démarrage de l’objet Serial.begin(9600);

sds.begin();

Dans le Loop Utilisation PmResult pm = sds.readPm();

Serial.print("PM2.5 = ");

Serial.print(pm.pm25);

Serial.print(", PM10 = ");

Serial.println(pm.pm10);

Astuce: il est possible RX et TX soient inverser, dans ce cas il vous suffit d'inverser D5 et D6 dans votre code.

Exemple


 1 #include "SdsDustSensor.h"
 2 
 3 int rxPin = D5;
 4 int txPin = D6;
 5 SdsDustSensor sds(rxPin, txPin);
 6 
 7 void setup() {
 8   
 9   Serial.begin(9600);
10   sds.begin();
11 
12   Serial.println(sds.queryFirmwareVersion().toString());
13   Serial.println(sds.setActiveReportingMode().toString());
14   Serial.println(sds.setContinuousWorkingPeriod().toString()); 
15 }
16 
17 void loop() {
18   
19   PmResult pm = sds.readPm();
20   if (pm.isOk()) {
21     Serial.print("PM2.5 = ");
22     Serial.print(pm.pm25);
23     Serial.print(", PM10 = ");
24     Serial.println(pm.pm10);
25     Serial.println(pm.toString());
26   } 
27   else {
28     Serial.print("Could not read values from sensor, reason: ");
29     Serial.println(pm.statusToString());
30   }
31 
32   delay(500);
33 }

Commentaires

Published