/* Mesure du taux de CO2, de la température et de l'humidité avec le capteur Sensirion SCD30 Affichage de ces mesures dans le moniteur série Leds verte, orange et rouge s'allument en fonction du taux de CO2 Led verte allumée => taux de CO2 < 800 Led orange allumée => 800 < taux de CO2 < 1000 Led verte allumée => 1000 < taux de CO2 */ /*Appel des bibliothèques*/ #include #include "SparkFun_SCD30_Arduino_Library.h" /*Déclaration des variables pour les leds rouge, orange et verte*/ int ledR =5; int ledO =18; int ledV =19; /*Déclaration des variables pour les mesures*/ int taux_co2; float temperature; float humidite; /*Création de l'objet "airSensor" avec la bibliothèque SCD30*/ SCD30 airSensor; void setup() { /*Initialisations du moniteur série et de la connexion avec le capteur*/ Serial.begin(9600); Wire.begin(); if (airSensor.begin() == false) { Serial.println("Air sensor not detected. Please check wiring. Freezing..."); while (1); } /*Configuration des broches des leds*/ pinMode(ledR, OUTPUT); pinMode(ledO, OUTPUT); pinMode(ledV, OUTPUT); } void loop() { if (airSensor.dataAvailable()) //"Si le capteur fonctionne, alors ..." { /*Prises de mesures et attributions dans les variables*/ taux_co2 = airSensor.getCO2(); temperature = airSensor.getTemperature(); humidite = airSensor.getHumidity(); /*Affichage sur le moniteur série*/ Serial.print("co2(ppm):"); Serial.print(taux_co2); Serial.print(" temp(C):"); Serial.print(temperature); Serial.print(" humidité(%):"); Serial.println(humidite); /*Allumage des leds en fonction du taux de CO2*/ if (taux_co2 < 800) { digitalWrite(ledV,HIGH); digitalWrite(ledO,LOW); digitalWrite(ledR,LOW); } else if (taux_co2 >= 800 && taux_co2 < 1000) { digitalWrite(ledV,LOW); digitalWrite(ledO,HIGH); digitalWrite(ledR,LOW); } else if (taux_co2 >= 1000) { digitalWrite(ledV,LOW); digitalWrite(ledO,LOW); digitalWrite(ledR,HIGH); } } delay(500); }