Item:Capteur de CO2 SENSEAIR S8


Item-Capteur de CO2 SENSEAIR S8 imagegen.png

Capteur de CO2 SENSEAIR S8

Capteur Infrarouge de CO2 (NDIR) utilisé dans le projet CO2

25EUR (€)


Description longue

Principe:


Caractéristiques :


Bibliothèque :

Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque AirGradient Air Quality Sensor que vous trouverez dans la bibliothèque


Item-Capteur de CO2 SENSEAIR S8 Image.png

Câblage


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 ededed

Commentaires

erreur
Abder|Publié le 8 août 2024 à 20:58|
00

bonjour le code proposé me met pleine d'erreurs qui apparaît sur vscode avant de connecter le microcontrôleur Wemos mini message d'erreurs sur vscode:

*  Exécution de la tâche dans le dossier senseair S8 : C:\Users\louki\.platformio\penv\Scripts\platformio.exe run 

Processing esp01_1m (platform: espressif8266; board: esp01_1m; framework: arduino)


Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp01_1m.html PLATFORM: Espressif 8266 (4.2.1) > Espressif Generic ESP8266 ESP-01 1M HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash PACKAGES:

- framework-arduinoespressif8266 @ 3.30102.0 (3.1.2) 
- tool-esptool @ 1.413.0 (4.13) 
- tool-esptoolpy @ 1.30000.201119 (3.0.0) 
- toolchain-xtensa @ 2.100300.220621 (10.3.0)

LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 40 compatible libraries Scanning dependencies... Dependency Graph |-- ESPAsyncWebServer-esphome @ 3.2.2 |-- AirGradient Air Quality Sensor @ 3.1.4 Building in release mode Compiling .pio\build\esp01_1m\src\main.cpp.o Generating LD script .pio\build\esp01_1m\ld\local.eagle.app.v6.common.ld Compiling .pio\build\esp01_1m\lib400\ESPAsyncTCP-esphome\AsyncPrinter.cpp.o Compiling .pio\build\esp01_1m\lib400\ESPAsyncTCP-esphome\ESPAsyncTCP.cpp.o Compiling .pio\build\esp01_1m\lib400\ESPAsyncTCP-esphome\ESPAsyncTCPbuffer.cpp.o Compiling .pio\build\esp01_1m\lib400\ESPAsyncTCP-esphome\SyncClient.cpp.o Compiling .pio\build\esp01_1m\lib400\ESPAsyncTCP-esphome\tcp_axtls.c.o Compiling .pio\build\esp01_1m\libc5f\Hash\Hash.cpp.o Compiling .pio\build\esp01_1m\libd48\ESP8266WiFi\BearSSLHelpers.cpp.o Compiling .pio\build\esp01_1m\libd48\ESP8266WiFi\CertStoreBearSSL.cpp.o src\main.cpp:3:38: error: no matching function for call to 'AirGradient::AirGradient()'

   3 | AirGradient monCapteur = AirGradient(); // Création de l'objet "monCapteur"
     |                                      ^

In file included from src\main.cpp:2: .pio\libdeps\esp01_1m\AirGradient Air Quality Sensor\src/AirGradient.h:26:3: note: candidate: 'AirGradient::AirGradient(BoardType)'

  26 |   AirGradient(BoardType type);
     |   ^8 août 2024 à 20:58 (CEST)8 août 2024 à 20:58 (CEST)

.pio\libdeps\esp01_1m\AirGradient Air Quality Sensor\src/AirGradient.h:26:3: note: candidate expects 1 argument, 0 provided .pio\libdeps\esp01_1m\AirGradient Air Quality Sensor\src/AirGradient.h:24:7: note: candidate: 'constexpr AirGradient::AirGradient(const AirGradient&)'

  24 | class AirGradient {
     |       ^8 août 2024 à 20:58 (CEST)8 août 2024 à 20:58 (CEST)

.pio\libdeps\esp01_1m\AirGradient Air Quality Sensor\src/AirGradient.h:24:7: note: candidate expects 1 argument, 0 provided .pio\libdeps\esp01_1m\AirGradient Air Quality Sensor\src/AirGradient.h:24:7: note: candidate: 'constexpr AirGradient::AirGradient(AirGradient&&)' .pio\libdeps\esp01_1m\AirGradient Air Quality Sensor\src/AirGradient.h:24:7: note: candidate expects 1 argument, 0 provided src\main.cpp: In function 'void setup()': src\main.cpp:7:14: error: 'class AirGradient' has no member named 'CO2_Init'

   7 |   monCapteur.CO2_Init(D4,D3); // Démarrage et initialisation de l'objet, définition des broches RX (D4) et TX (D3) du Wemos
     |              ^8 août 2024 à 20:58 (CEST)~~

src\main.cpp:7:23: error: 'D4' was not declared in this scope

   7 |   monCapteur.CO2_Init(D4,D3); // Démarrage et initialisation de l'objet, définition des broches RX (D4) et TX (D3) du Wemos
     |                       ^~

src\main.cpp:7:26: error: 'D3' was not declared in this scope

   7 |   monCapteur.CO2_Init(D4,D3); // Démarrage et initialisation de l'objet, définition des broches RX (D4) et TX (D3) du Wemos
     |                          ^~

src\main.cpp: In function 'void loop()': src\main.cpp:11:23: error: 'class AirGradient' has no member named 'getCO2_Raw'

  11 | int CO2 =  monCapteur.getCO2_Raw(); // mesure brute du CO2 placée dans la variable "CO2"
     |                       ^8 août 2024 à 20:58 (CEST)Abder (discussion) 8 août 2024 à 20:58 (CEST)
      • [.pio\build\esp01_1m\src\main.cpp.o] Error 1
================================================== [FAILED] Took 7.35 seconds ==================================================[modifier]
*  Arrêt du processus de terminal "C:\Users\louki\.platformio\penv\Scripts\platformio.exe 'run'". Code de sortie : 1. 
*  Le terminal sera réutilisé par les tâches, appuyez sur une touche pour le fermer. 

pourriez vous m'aider à résoudre ces problème svp merci beaucoup

Antony Le Goïc-Auffret|Publié le 9 août 2024 à 10:02|

Salut Abder, nous utilisons ici le logiciel Arduino. Cependant une des erreurs qui apparait dans ton message se reproduit. Il semble que l'utilisation de la bibliothèque AirGradiant ait changé. pour les erreurs des broches D3 et D4 tu peux mttre plutot leur GPIO (0 pour D3 et 2 pour D4). pour la dernière erreur, il s'agir d'une évolution de la bibliothèque AirGradiant : "class AirGradient' has no member named 'getCO2_Raw". Ce n'est plus "int CO2 = monCapteur.getCO2_Raw();" qu'il faut utiliser mais : "int CO2 = monCapteur.s8.getCo2();" (avec un o minuscule).

Voir : https://github.com/airgradienthq/arduino/blob/master/examples/TestCO2/TestCO2.ino Bon bricolage !

Draft