Bonsoir,
Je crée ce topic car j'ai besoin d'aide pour calibrer mes capteurs à CO2.
En effet, je suis en possession de 2 capteurs de chez DFROBOT : le SEN0159 et le SEN0219 .
Pour les utiliser, j'ai utilisé une librairie que j'ai trouvé sur GitHub (GitHub - solvek/CO2Sensor: Arduino library for modules based on CO2 sensors TGS-4161 or MG-811) ce qui m'a donné ce code :
(Relevé de taux de CO2 puis enregistrement sur une carte SD)
#include <SD.h>
#include "CO2Sensor.h"
// Variables utilisées pour la carte SD
const int sdCardPinChipSelect = 10; // Le lecteur de carte SD sera branché sur la pin 10 pour le CS (chip select), 11/12/13 pour le MOSI/MISO/SCK du bus SPI
const char* nomDuFichier = "donnees.csv"; // Format 8.3 (c'est à dire 8 lettres maximum pour le nom, et optionnellement 3 pour l'extension)
File monFichier;
// Variables utilisées pour le MG-811
CO2Sensor co2Sensor(A0, 0.99, 100);
// Autres variables
const long delaiIntervalleDeMesures = 2000;
unsigned long t;
// Intervalle de mesure/enregistrement (exprimé en millis secondes)
// ========================
// Initialisation programme
// ========================
void setup() {
// Initialisation de la liaison série (pour retourner les infos au moniteur série de l'ordi)
Serial.begin(9600);
Serial.println("=== Initialized ===");
// ----------------------------------------------------------------------------
// Vérification : est-ce que la carte SD est bien accessible depuis l'arduino ?
// ----------------------------------------------------------------------------
Serial.print(F("Initialisation de la carte SD..."));
if (!SD.begin(sdCardPinChipSelect)) {
Serial.println();
Serial.println();
Serial.println(F("Échec de l'initialisation du lecteur de SD card. Vérifiez :"));
Serial.println(F("1. que la carte SD soit bien insérée"));
Serial.println(F("2. que votre câblage soit bon"));
Serial.println(F("3. que la variable 'sdCardPinChipSelect' corresponde bien au branchement de la pin CS de votre carte SD sur l'Arduino"));
Serial.println(F("Et appuyez sur le bouton RESET de votre Arduino une fois le pb résolu, pour redémarrer ce programme !"));
while (true);
}
Serial.println(F(" réussie !"));
Serial.println();
// ----------------------------------------------------------------------------
// Initialisation du MG-811
// ----------------------------------------------------------------------------
t = millis();
// ----------------------------------------------------------------------------
// Initialisation du MG-811
// ----------------------------------------------------------------------------
co2Sensor.calibrate();
}
// =================
// Boucle principale
// =================
void loop() {
int CO2 = co2Sensor.read();
// Affichage des valeurs sur le moniteur série de l'IDE Arduino
Serial.print("CO2 concentration: ");
Serial.print(CO2);
Serial.println("ppm");
Serial.print("Temps depuis le début de l'expérience: ");
Serial.print(t);
Serial.println("s");
// Enregistrement de ces données sur la carte SD
monFichier = SD.open(nomDuFichier, FILE_WRITE);
if (monFichier) {
monFichier.print(t);
monFichier.print(";");
monFichier.println(CO2);
monFichier.close(); // L'enregistrement des données se fait au moment de la clôture du fichier
Serial.println(F("Enregistrement réussi en carte SD"));
}
else {
Serial.println(F("Erreur lors de la tentative d'ouverture du fichier en écriture, sur la carte SD"));
}
// Change la boucle (temps)
t = t + 2;
// Temporisation de X secondes
Serial.println();
delay(delaiIntervalleDeMesures);
}
J'utilise le même code pour les 2 capteurs et j'ai des relevés.
Maintenant le problème c'est que je dois les calibrer et je ne sais pas comment faire parce que la fiche du GitHub me dit de modifier le paramètre a tel que a = v + b où b est une constante (ici il choisit 600) et v une valeur en mV (car si j'ai bien compris une valeur de V compris entre 0V et 5V correspond à un taux de CO2 en ppm et faut la référence en mV pour 400ppm) mais je ne sais pas comment lire obtenir v ou sinon il y a des indications de calibrations pour chaque capteur et je ne sais pas comment faire.
Pourriez vous me guider dans la calibration de mes capteurs ? Merci.