diff --git a/SCD30-6-JUIN-2.ino b/SCD30-6-JUIN-2.ino new file mode 100644 index 0000000000000000000000000000000000000000..956b42c221d651e1a89c2fc470e5b07822fe2ab1 --- /dev/null +++ b/SCD30-6-JUIN-2.ino @@ -0,0 +1,163 @@ +// 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); + } + +}