// Code pour faire fonctionner capteur et les 3 leds ensemble avec les conditions #include <Adafruit_SCD30.h> #include <SPI.h> #include <SD.h> #include <Wire.h> #include <SPI.h> Adafruit_SCD30 scd30; File myFile; const int L1 = 7; //rouge const int L2 = 3; //jaune const int L3 =2 ; //vert void save_co2() { myFile = SD.open("CO2.txt", FILE_WRITE); myFile.println(scd30.CO2); myFile.close(); } void setup(void) { pinMode(L1,OUTPUT); pinMode(L2,OUTPUT); pinMode(L3,OUTPUT); Serial.begin(115200); while (!Serial) delay(10); // will pause Zero, Leonardo, etc until serial console opens Serial.println("Adafruit SCD30 test!"); // Try to initialize! if (!scd30.begin()) { Serial.println("Failed to find SCD30 chip"); while (1) { delay(10); } } Serial.println("SCD30 Found!"); // if (!scd30.setMeasurementInterval(10)){ // Serial.println("Failed to set measurement interval"); // while(1){ delay(10);} // } Serial.print("Measurement Interval: "); Serial.print(scd30.getMeasurementInterval()); Serial.println(" seconds"); // Initialisation de la carte SD Serial.print("Initializing SD card..."); if (!SD.begin(10)) { Serial.println("initialization failed!"); digitalWrite(L1,HIGH); delay(200); digitalWrite(L1,LOW); delay(200); digitalWrite(L1,HIGH); delay(200); digitalWrite(L1,LOW); delay(200); digitalWrite(L1,HIGH); delay(200); digitalWrite(L1,LOW); delay(200); digitalWrite(L1,HIGH); delay(200); digitalWrite(L1,LOW); delay(200); digitalWrite(L1,HIGH); delay(200); digitalWrite(L1,LOW); delay(200); digitalWrite(L1,HIGH); delay(200); digitalWrite(L1,LOW); while (1); } Serial.println("initialization done."); digitalWrite(L3,HIGH); delay(200); digitalWrite(L3,LOW); delay(200); digitalWrite(L3,HIGH); delay(200); digitalWrite(L3,LOW); delay(200); digitalWrite(L3,HIGH); delay(200); digitalWrite(L3,LOW); delay(200); digitalWrite(L3,HIGH); delay(200); digitalWrite(L3,LOW); delay(200); digitalWrite(L3,HIGH); delay(200); digitalWrite(L3,LOW); delay(200); digitalWrite(L3,HIGH); delay(200); digitalWrite(L3,LOW); myFile = SD.open("CO2.txt", FILE_WRITE); myFile.println(" "); myFile.println("----------- NOUVELLE MESURE -------------"); myFile.close(); } void loop() { if (scd30.dataReady()){ Serial.println("Data available!"); if (!scd30.read()){ Serial.println("Error reading sensor data"); return; } Serial.print("Temperature: "); Serial.print(scd30.temperature); Serial.println(" degrees C"); Serial.print("Relative Humidity: "); Serial.print(scd30.relative_humidity); Serial.println(" %"); Serial.print("CO2: "); Serial.print(scd30.CO2, 3); Serial.println(" ppm"); Serial.println(""); save_co2(); } else { //Serial.println("No data"); } delay(100); //programmation des LEDS if (scd30.CO2 > 1000){ //rouge digitalWrite(L1,HIGH); digitalWrite(L2,LOW); digitalWrite(L3,LOW); } else if(scd30.CO2 < 800 and scd30.CO2 > 300) { //vert digitalWrite(L1,LOW); digitalWrite(L2,LOW); digitalWrite(L3,HIGH); } else if(scd30.CO2 <300) { //stabilisation en attendant la calibration du capteur digitalWrite(L1,LOW); digitalWrite(L2,LOW); digitalWrite(L3,LOW); delay(2000); } else { //jaune digitalWrite(L1,LOW); digitalWrite(L2,HIGH); digitalWrite(L3,LOW); } }