From f883560d2eb3021e7124b2e76f18df04f9f3dd30 Mon Sep 17 00:00:00 2001 From: JB Date: Fri, 14 Oct 2022 17:47:20 +0200 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'main.cpp'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 113 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 69 insertions(+), 44 deletions(-) diff --git a/main.cpp b/main.cpp index bfcd315..1a37324 100644 --- a/main.cpp +++ b/main.cpp @@ -1,58 +1,83 @@ +/* +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" -#include "LiquidCrystal_I2C.h" -#define LED_PIN3 -/*int ledR =2; -int ledO =4; -int ledV =5;*/ + +/*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() { -Serial.begin(9600); -Serial.println("SCD30 Example"); -Wire.begin(); -if (airSensor.begin() == false) -{ -Serial.println("Air sensor not detected. Please check wiring. Freezing..."); -while (1) -; -} -pinMode(ledR, OUTPUT); -pinMode(ledO, OUTPUT); -pinMode(ledV, OUTPUT); + /*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() { -int taux_co2; -if (airSensor.dataAvailable()) -{ -taux_co2 = (int)airSensor.getCO2(); -Serial.print("co2(ppm):"); -Serial.print(taux_co2); -Serial.print(" temp(C):"); -Serial.print(airSensor.getTemperature(), 1); -Serial.print(" humidity(%):"); -Serial.print(airSensor.getHumidity(), 1); -Serial.println(); -if (taux_co2 < 800){ -digitalWrite(ledV,HIGH); -digitalWrite(ledO,LOW); -digitalWrite(ledR,LOW); -} -else if (taux_co2 >= 800 && taux_co2 < 1000){ -digitalWrite(ledO,HIGH); -digitalWrite(ledV,LOW); -digitalWrite(ledR,LOW); -} -else if (taux_co2 >= 1000){ -digitalWrite(ledR,HIGH); -digitalWrite(ledO,LOW); -digitalWrite(ledV,LOW); -} -} + 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); } \ No newline at end of file