m (Révocation des modifications de Antonydbzh (discussion) vers la dernière version de Julienrat) (Balise : Révocation) |
|||
(4 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 34 : | Ligne 34 : | ||
{{#annotatedImageLight:Fichier:Item-Capteur de CO2 SENSEAIR S8 Capture decran du 2021-04-02 10-56-35.png|0=872px|hash=|jsondata=|mediaClass=Image|type=frameless|alt=Item-Capteur de CO2 SENSEAIR S8 Imageschema.png|align=center|src=https://www.wikidebrouillard.org/images/7/75/Item-Capteur_de_CO2_SENSEAIR_S8_Capture_decran_du_2021-04-02_10-56-35.png|href=./Fichier:Item-Capteur de CO2 SENSEAIR S8 Capture decran du 2021-04-02 10-56-35.png|resource=./Fichier:Item-Capteur de CO2 SENSEAIR S8 Capture decran du 2021-04-02 10-56-35.png|caption=|size=872px}}<br /> | {{#annotatedImageLight:Fichier:Item-Capteur de CO2 SENSEAIR S8 Capture decran du 2021-04-02 10-56-35.png|0=872px|hash=|jsondata=|mediaClass=Image|type=frameless|alt=Item-Capteur de CO2 SENSEAIR S8 Imageschema.png|align=center|src=https://www.wikidebrouillard.org/images/7/75/Item-Capteur_de_CO2_SENSEAIR_S8_Capture_decran_du_2021-04-02_10-56-35.png|href=./Fichier:Item-Capteur de CO2 SENSEAIR S8 Capture decran du 2021-04-02 10-56-35.png|resource=./Fichier:Item-Capteur de CO2 SENSEAIR S8 Capture decran du 2021-04-02 10-56-35.png|caption=|size=872px}}<br /> | ||
==Code Minimal== | ==Code Minimal== | ||
+ | Attention : l'utilisation de la bibliothèque à évolué. nous avons mis à jour le code le 9 août 2024. Si vous rencontrez des problèmes référez-vous toujours à la bibliothèque. | ||
{| class="wikitable" cellspacing="0" border="0" | {| class="wikitable" cellspacing="0" border="0" | ||
|- | |- | ||
Ligne 41 : | Ligne 42 : | ||
|- | |- | ||
| valign="middle" bgcolor="#999999" align="center" |Création de l’objet | | valign="middle" bgcolor="#999999" align="center" |Création de l’objet | ||
− | | valign="middle" align="left" |AirGradient monCapteur = AirGradient(); | + | | valign="middle" align="left" |AirGradient monCapteur = AirGradient(DIY_BASIC); |
|- | |- | ||
| valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup | | valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup | ||
| valign="middle" bgcolor="#999999" align="center" |Démarrage de l’objet | | valign="middle" bgcolor="#999999" align="center" |Démarrage de l’objet | ||
− | | valign="middle" align="left" |monCapteur. | + | | valign="middle" align="left" |monCapteur.s8.begin(&Serial); // démarrage du capteur |
|- | |- | ||
| valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Loop | | valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Loop | ||
| valign="middle" bgcolor="#999999" align="center" |Utilisation | | valign="middle" bgcolor="#999999" align="center" |Utilisation | ||
− | | valign="middle" align="left" |int CO2 = monCapteur. | + | | valign="middle" align="left" |int CO2 = monCapteur.s8.getCo2(); |
|}Astuce: il est possible RX et TX soient inversé, dans ce cas il vous suffit d'inverser D3 et D4 dans votre code. ATTENTION Valable uniquement pour un wemos ESP8266 | |}Astuce: il est possible RX et TX soient inversé, dans ce cas il vous suffit d'inverser D3 et D4 dans votre code. ATTENTION Valable uniquement pour un wemos ESP8266 | ||
==Exemple== | ==Exemple== | ||
− | <br /><syntaxhighlight lang="arduino" line="1" start="0"> | + | Inspiré de TestCO2.ino de la bibliothèque AirGrandiant.<br /><syntaxhighlight lang="arduino" line="1" start="0"> |
#include <AirGradient.h> // import de la bibliothèque Air Gradient | #include <AirGradient.h> // import de la bibliothèque Air Gradient | ||
− | AirGradient monCapteur = AirGradient(); // Création de l'objet "monCapteur" | + | AirGradient monCapteur = AirGradient(DIY_BASIC); // Création de l'objet "monCapteur" |
void setup(){ | void setup(){ | ||
Serial.begin(9600); // Démarrage de la liaison série | Serial.begin(9600); // Démarrage de la liaison série | ||
− | monCapteur. | + | monCapteur.s8.begin(&Serial); // Démarrage et initialisation de l'objet |
} | } | ||
void loop(){ | void loop(){ | ||
− | int CO2 = monCapteur. | + | int CO2 = monCapteur.s8.getCo2(); // mesure brute du CO2 placée dans la variable "CO2" |
Serial.print("Taux de CO2 : "); | Serial.print("Taux de CO2 : "); | ||
Serial.println(CO2); // Affichage du CO2 en ppm | Serial.println(CO2); // Affichage du CO2 en ppm | ||
Ligne 69 : | Ligne 70 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == Le capteurs en ASCII pour de beaux codes ! == | + | ==Le capteurs en ASCII pour de beaux codes !== |
− | <syntaxhighlight lang="arduino"> | + | Pour bien illustrer vos code !<syntaxhighlight lang="arduino"> |
− | / | + | _________________ |
− | + | / D1 mini \ | |
− | + | |[ ]RST Tx[ ]| -> UART_RxD | |
+ | |[ ]A0 -GPIO Rx[ ]| -> UART_TxD | ||
+ | |[ ]D0-16 5-D1[ ]| | ||
+ | |[ ]D5-14 4-D2[ ]| | ||
+ | |[ ]D6-12 0-D3[ ]| | ||
+ | |[ ]D7-13 2-D4[ ]| | ||
+ | |[ ]D8-15 GND[X]| -> G0 | ||
+ | |[ ]3V3 . 5V[X]| -> G+ | ||
+ | | +---+ | | ||
+ | |_______|USB|_______| | ||
+ | |||
+ | ________________________ | ||
+ | | |° ° ° ° ° °| | | | ||
+ | +5V <- G+ |[X]| ° ° ° ° °/ |[ ]| DVCC_out | ||
+ | GND <- G0 |[X]|° ° ° ° °/ |[X]| UART_RxD -> Tx | ||
+ | Alarm_OC |[ ]|_°_°_°_°| |[X]| UART_TxD -> Rx | ||
+ | PWM 1Khz |[ ]| |[ ]| UART_R/T | ||
+ | | | SenseAir® S8 |[ ]| bCAL_in/CAL | ||
+ | |___|________________|___| | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | |||
+ | <br /> | ||
+ | |||
+ | == A vous de jouer ! == | ||
|*/ | |*/ | ||
Le capteur CO2 Sensair S8, est un capteur NDIR (InfraRouge non Dispersif), le principe de mesure est un principe optique :
Une chambre de mesure est parcourue par un faisceau infrarouge et de l'autre coté de la chambre un capteur ultra sensible mesure les variations d’absorption de la lumière. En fonction des ondes absorbées par la présence de CO2 il en déduit la quantité. Cette mesure utilise le principe de la spectrométrie. (expérience en lien Lumière : dispersion de la lumière )
Selon le Fablab Central Supélec La Fabrique, les capteurs NDIR sont plus fiables et robustes que les capteurs de CO2 utilisant d'autres technologies (chimiques, MOX ...). Plus d'infos http://projetco2.fr/documents/presentation_PM_webinaireco2_v5_bpd.pdf
Document PDF : http://co2meters.com/Documentation/Manuals/DS_SE_0119_CM_0177_Revised8.pdf
Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque AirGradient Air Quality Sensor que vous trouverez dans le catalogue de bibliothèques d'Arduino plus d'infos pour la procédure Importer des bibliothèques dans l'interface Arduino
Attention : l'utilisation de la bibliothèque à évolué. nous avons mis à jour le code le 9 août 2024. Si vous rencontrez des problèmes référez-vous toujours à la bibliothèque.
Avant le Setup | Importation de la bibliothèque | #include <AirGradient.h> |
Création de l’objet | AirGradient monCapteur = AirGradient(DIY_BASIC); | |
Dans le Setup | Démarrage de l’objet | monCapteur.s8.begin(&Serial); // démarrage du capteur |
Dans le Loop | Utilisation | int CO2 = monCapteur.s8.getCo2(); |
0 #include <AirGradient.h> // import de la bibliothèque Air Gradient
1 AirGradient monCapteur = AirGradient(DIY_BASIC); // Création de l'objet "monCapteur"
2
3 void setup(){
4 Serial.begin(9600); // Démarrage de la liaison série
5 monCapteur.s8.begin(&Serial); // Démarrage et initialisation de l'objet
6 }
7
8 void loop(){
9 int CO2 = monCapteur.s8.getCo2(); // mesure brute du CO2 placée dans la variable "CO2"
10 Serial.print("Taux de CO2 : ");
11 Serial.println(CO2); // Affichage du CO2 en ppm
12 delay(5000); // attente de 5 secondes (le temps de mesure du capteur est de 2s)
13 }
_________________
/ D1 mini \
|[ ]RST Tx[ ]| -> UART_RxD
|[ ]A0 -GPIO Rx[ ]| -> UART_TxD
|[ ]D0-16 5-D1[ ]|
|[ ]D5-14 4-D2[ ]|
|[ ]D6-12 0-D3[ ]|
|[ ]D7-13 2-D4[ ]|
|[ ]D8-15 GND[X]| -> G0
|[ ]3V3 . 5V[X]| -> G+
| +---+ |
|_______|USB|_______|
________________________
| |° ° ° ° ° °| | |
+5V <- G+ |[X]| ° ° ° ° °/ |[ ]| DVCC_out
GND <- G0 |[X]|° ° ° ° °/ |[X]| UART_RxD -> Tx
Alarm_OC |[ ]|_°_°_°_°| |[X]| UART_TxD -> Rx
PWM 1Khz |[ ]| |[ ]| UART_R/T
| | SenseAir® S8 |[ ]| bCAL_in/CAL
|___|________________|___|
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 !
Item-Capteur_de_CO2_SENSEAIR_S8_imagegen.png Published
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #
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:
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:
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()'
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)'
.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&)'
.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'
src\main.cpp:7:23: error: 'D4' was not declared in this scope
src\main.cpp:7:26: error: 'D3' was not declared in this scope
src\main.cpp: In function 'void loop()': src\main.cpp:11:23: error: 'class AirGradient' has no member named 'getCO2_Raw'
================================================== [FAILED] Took 7.35 seconds ==================================================[modifier]
pourriez vous m'aider à résoudre ces problème svp merci beaucoup