Différences entre les pages « Item:Ruban de Led - WS2812B » et « Item:Capteur de particules SDS011 »

 
 
Ligne 1 : Ligne 1 :
 
{{Item
 
{{Item
|Description=Les rubans de LED sont constitués d’une succession de LED RGB adressables, c’est à dire que l’on peut définir la luminosité et la couleur de chaque LED indépendamment. Il existe plusieurs modèles de ruban : couleurs unique, non-adressable, 5 ou 12V, etc. Faites attention au modèle que vous voulez utiliser. Le modèle utilisé ici est le WS2812 RGB. Avec ce modèle, Mais avec les leds, on peut illuminer un ruban, led après led. Pour créer une “animation” par exemple.
+
|Main_Picture=Item-Capteur_de_particules_SDS011_ar-capteur-de-qualite-de-l-air-sds011-27929.jpg
 +
|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=4,10
+
|Cost=34,95
 
|Currency=EUR (€)
 
|Currency=EUR (€)
|ItemLongDescription=Elle doit être alimentée en 5V.
+
|ItemLongDescription='''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.
  
pour l'utiliser, nous installons sur Arduino la bibliothèque FastLED/Fastled  (cela dépend du modèle de ruban, la référence n'étant pas toujours spécifiée, ici WS2812B).
+
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 code minimal'''
+
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
 +
<br />
 +
 
 +
==Bibliothèque : ==
 +
{{#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 ''SDS011-select-serial'' que vous trouverez [https://github.com/sensebox/SDS011-select-serial ici, en cliquant sur ce lien]
 +
 
 +
 
 +
 
 +
'''Câblage :'''
 
<br />
 
<br />
 +
 +
==Code Minimal==
 
{| class="wikitable" cellspacing="0" border="0"
 
{| class="wikitable" cellspacing="0" border="0"
| height="17" bgcolor="#999999" align="left" |
+
| height="17" align="left" bgcolor="#999999" |
| valign="middle" bgcolor="#999999" align="center" |
+
| align="center" valign="middle" bgcolor="#999999" |
| bgcolor="#999999" align="center" |BME280
+
| align="center" bgcolor="#999999" |
 
|-
 
|-
| rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center" |Avant le Setup
+
| rowspan="2" height="60" align="center" valign="middle" bgcolor="#999999" |Avant le Setup
| valign="middle" bgcolor="#999999" align="center" |Importation de la bibliothèque
+
| align="center" valign="middle" bgcolor="#999999" |Importation de la bibliothèque
| valign="middle" align="left" |#include <FastLED.>
+
| align="left" valign="middle" |#include "SdsDustSensor.h"
 
|-
 
|-
| valign="middle" bgcolor="#999999" align="center" |Création de l’objet
+
| align="center" valign="middle" bgcolor="#999999" |Création de l’objet
| valign="middle" align="left" |#define NUM_LEDS * (* indique le nombre de Led à allumer),  #define DATA-PIN 3 (borne de la carte sur laquelle est branchée le ruban de Led, CRGBleds [NUM_LEDS];
+
| align="left" valign="middle" |int rxPin = D1;
 +
 
 +
int txPin = D2;
 +
 
 +
SdsDustSensor sds(rxPin, txPin);
 
|-
 
|-
| valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup
+
| height="17" align="center" valign="middle" bgcolor="#999999" |Dans le Setup
| valign="middle" bgcolor="#999999" align="center" |Démarrage de l’objet
+
| align="center" valign="middle" bgcolor="#999999" |Démarrage de l’objet
| valign="middle" align="left" |FastLED.addLeds<WS2812B, DATA_PIN, RGB>leds, NUM_LEDS);
+
| align="left" valign="middle" |Serial.begin(9600);
 +
 
 +
sds.begin();
 +
 
 +
Serial.println(sds.queryFirmwareVersion().toString());
 +
 
 +
Serial.println(sds.setActiveReportingMode().toString());
 +
 
 +
Serial.println(sds.setContinuousWorkingPeriod().toString());  
 
|-
 
|-
| valign="middle" height="41" bgcolor="#999999" align="center" |Dans le Loop
+
| height="17" align="center" valign="middle" bgcolor="#999999" |Dans le Loop
| valign="middle" bgcolor="#999999" align="center" |Utilisation
+
| align="center" valign="middle" bgcolor="#999999" |Utilisation
| valign="middle" align="left" |FastLED.show() ;
+
| align="left" valign="middle" |PmResult pm = sds.readPm();
|}et voici un exemple :<syntaxhighlight lang="arduino">
+
 
#include <FastLED.h>
+
if (pm.isOk()) {
 +
 
 +
Serial.print("PM2.5 = ");
 +
 
 +
Serial.print(pm.pm25);
 +
 
 +
Serial.print(", PM10 = ");
 +
 
 +
Serial.println(pm.pm10);
  
// How many leds in your strip?
+
Serial.println(pm.toString());
#define NUM_LEDS 1
 
  
// For led chips like WS2812, which have a data line, ground, and power, you just
+
} else {
// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock,
+
 
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
+
Serial.print("Could not read values from sensor, reason: ");
// Clock pin only needed for SPI based chipsets when not using hardware SPI
+
 
#define DATA_PIN D3
+
Serial.println(pm.statusToString());
#define CLOCK_PIN 13
+
 
 +
}
 +
 
 +
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.
 +
 
 +
<br />
 +
 
 +
==Exemple==
 +
<nowiki>#</nowiki>include "SdsDustSensor.h"
 +
 
 +
 
 +
int rxPin = D2;
 +
 
 +
int txPin = D1;
 +
 
 +
SdsDustSensor sds(rxPin, txPin);
  
// Define the array of leds
 
CRGB leds[NUM_LEDS];
 
  
 
void setup() {
 
void setup() {
// Uncomment/edit one of the following lines for your leds arrangement.
 
// ## Clockless types ##
 
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); // GRB ordering is assumed
 
  
// FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS); // GRB ordering is typical
+
Serial.begin(9600);
 +
 
 +
sds.begin();
 +
 
 +
Serial.println(sds.queryFirmwareVersion().toString());
 +
 
 +
Serial.println(sds.setActiveReportingMode().toString());
 +
 
 +
Serial.println(sds.setContinuousWorkingPeriod().toString());  
  
 
}
 
}
 +
  
 
void loop() {
 
void loop() {
// Turn the LED on, then pause
+
 
leds[0] = CRGB::Red;
+
PmResult pm = sds.readPm();
FastLED.show();
+
 
 +
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);
 
delay(500);
// Now turn the LED off, then pause
+
 
leds[0] = CRGB::Black;
+
}<br />
FastLED.show();
 
delay(500);
 
}
 
</syntaxhighlight>
 
 
}}
 
}}
 
{{Tuto Status
 
{{Tuto Status
 
|Complete=Draft
 
|Complete=Draft
 
}}
 
}}

Version du 10 décembre 2020 à 12:34


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

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 :

Item-Capteur de particules SDS011 Sensor.png
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