Mise à jour de 'main.cpp'

This commit is contained in:
JB 2022-10-14 17:47:20 +02:00
parent d8882a6a98
commit f883560d2e
1 changed files with 69 additions and 44 deletions

113
main.cpp
View File

@ -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 <Wire.h>
#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);
}