« Item:Capteur de particules SDS011 » : différence entre les versions

Aucun résumé des modifications
Aucun résumé des modifications
Ligne 64 : Ligne 64 :
| 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
Ligne 72 : Ligne 71 :


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.queryFirmwareVersion().toString());  


Serial.println(sds.setActiveReportingMode().toString()); // ensures sensor is in 'active' reporting mode
Serial.println(sds.setActiveReportingMode().toString());


Serial.println(sds.setContinuousWorkingPeriod().toString()); // ensures sensor has continuous working period - default but not recommended
Serial.println(sds.setContinuousWorkingPeriod().toString());  
 
}
<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()) {
if (pm.isOk()) {
Ligne 106 : Ligne 97 :


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());
Serial.println(pm.toString());


} else {
} 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.print("Could not read values from sensor, reason: ");
Ligne 122 : Ligne 109 :


delay(10000);
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 faut peut être que vous inversiez Rx et TX en D1 et D2 si cela ne fonctionne pas, sur votre carte.
Ligne 129 : Ligne 114 :
<br />
<br />


== Exemple ==
==Exemple==
<nowiki>#</nowiki>include "SdsDustSensor.h"
<nowiki>#</nowiki>include "SdsDustSensor.h"


int rxPin = D2;
int rxPin = D2;
Ligne 137 : Ligne 123 :


SdsDustSensor sds(rxPin, txPin);
SdsDustSensor sds(rxPin, txPin);


void setup() {
void setup() {
Ligne 144 : Ligne 131 :
sds.begin();
sds.begin();


Serial.println(sds.queryFirmwareVersion().toString()); // prints firmware version
Serial.println(sds.queryFirmwareVersion().toString());  


Serial.println(sds.setActiveReportingMode().toString()); // ensures sensor is in 'active' reporting mode
Serial.println(sds.setActiveReportingMode().toString());  


Serial.println(sds.setContinuousWorkingPeriod().toString()); // ensures sensor has continuous working period - default but not recommended
Serial.println(sds.setContinuousWorkingPeriod().toString());  


}
}


void loop() {
void loop() {
Ligne 165 : Ligne 153 :


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());
Serial.println(pm.toString());


} else {
} 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.print("Could not read values from sensor, reason: ");
Ligne 179 : Ligne 163 :


}
}


delay(500);
delay(500);


}
}<br />
<br />
}}
}}
{{Tuto Status
{{Tuto Status
|Complete=Draft
|Complete=Draft
}}
}}

Version du 10 décembre 2020 à 10:34


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

34,95EUR (€)


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 :

Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque SDS011-select-serial que vous trouverez ici, en cliquant sur ce lien


Câblage :

Code Minimal

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

int txPin = D2;

SdsDustSensor sds(rxPin, txPin);

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

sds.begin();

Serial.println(sds.queryFirmwareVersion().toString());

Serial.println(sds.setActiveReportingMode().toString());

Serial.println(sds.setContinuousWorkingPeriod().toString());

Dans le Loop Utilisation 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());

}

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.


Exemple

#include "SdsDustSensor.h"


int rxPin = D2;

int txPin = D1;

SdsDustSensor sds(rxPin, txPin);


void setup() {

Serial.begin(9600);

sds.begin();

Serial.println(sds.queryFirmwareVersion().toString());

Serial.println(sds.setActiveReportingMode().toString());

Serial.println(sds.setContinuousWorkingPeriod().toString());

}


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

}


delay(500);

}

Commentaires

Draft