Capteur de CO2 / Humidité / Temperature (Confinement)
Materiel :
- 1 Linkit One
- 1 Grove Co2 Sensor
- 1 Grove temperature&Humidity Sensor Pro v1.2
- 1 carte micro SD
Spécifications
Capteur de CO2 :
Plage de mesure : 0-2000 parties par million (PPM)Voltage de 4.5 a 6V
Courant maximum de moins de 100 mA, le courant moyen de moins est de 50 mA
Mode de sortie UART
http://www.seeedstudio.com/wiki/Grove_-_CO2_Sensor
350~450 ppm : Environnement extérieur
350~1000 ppm : L'air est frais
1000~2000 ppm : L'air est stagnante et vous vous sentez fatigue
2000~5000 ppm : Maux de tête, sommeil, incapable de vous concentrer et même une légère nausée
>5000 ppm : grave epuisement de l'oxygene, des lesions cerebrales permanentes et meme la mort
Capteur de temperature et Humidité
Plage de mesure :
Humidité de 5% à 99% HR (humidité relative)
Temperature de -40 a 80°C
Voltage de 3.3 a 6V
Temps de réponse entre 6 et 20 secondes
http://www.seeedstudio.com/wiki/Grove_-_Temperature_and_Humidity_Sensor_Pro
Une humidité relative de 70% signifie que l'air contient 70% du maximum de vapeur d'eau qu'il peut absorber à cette température. Ainsi votre confort dépend directement d'un subtil équilibre entre la température de l'air et le pourcentage d'humidité : à 60% d'humidité relative, l'inconfort suscité par l'humidité sera plus grand s'il fait 30°C que s'il en fait 20. En effet, l'air à 30°C étant moins vite saturé, c'est à dire pouvant contenir plus de vapeur d'eau que l'air à 20°C, l'être humain ressentira davantage les effets désagréables de l'humidité à 30°C (même si l'humidité est la même). Inversement, une journée humide semblera plus chaude qu'une journée où la température est plus élevée mais l'air plus sec.
L'humidité relative idéale recommandée
D'une manière générale, une humidité relative située entre 30 et 70% recouvre toutes les fourchettes d'humidité conseillées. En Belgique, il est officiellement recommandé d'avoir une humidité située entre 40 et 70%, tandis que selon des experts français, l'humidité relative conseillée se trouve entre 45 et 65%. Dans le milieu médicale, on recommande un taux entre 40 et 60%, une humidité trop faible pouvant occasionner des complications respiratoires. Ainsi, une humidité relative inférieure à 30% est trop peu pour un logement : les personnes confrontées à un tel environnement devront aérer pour renouveler l'air.
Les valeurs critiques de l'humidité relative
Un taux d'humidité relative idéale se situe donc entre 30% et 70%. En France, l'air ambiant extérieur est à 70-80% de degré d'hygrométrie. Naturellement, cette tendance est une moyenne et dépend de la localisation et de la température. Aux Philippines, l'air est littéralement saturé d'humidité puisqu'il frôle les 100% : les crèmes hydratantes ne sont pas commercialisées dans ces contrées. Si vous avez des fleurs, prévoyez au moins 50% d'hygrométrie pour leur bien-être. En revanche, en hiver, l'humidité relative se situera plutôt entre 30 et 50% afin de prévenir la formation de condensation sur les fenêtres, pour une température moyenne située entre 18 et 24°C.
Le montage
Capteur de CO2 sur prise UART
Capteur d'humidité et temperature sur D2
L'enregistrement des valeurs est directement enregistré sur la carte SD dans un fichier CO2.txt
Les données peuvent être visualisé en temps réel depuis la console série du logiciel arduino quant le Linkit One est connecté a l'ordinateur.
Code source
// Capteur de confinement // temps , Temperature , CO2 , humidité // Enregistrement sur carte SD #include <LSD.h> //Capteur de co2 const unsigned char cmd_get_sensor[] = { 0xff, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79 }; unsigned char dataRevice[9]; int temperature; int CO2PPM; //Capteur d'humidité et temperature #include "DHT.h" #define DHTPIN 2 // what pin we're connected to #define DHTTYPE DHT22 // DHT 22 (AM2302) DHT dht(DHTPIN, DHTTYPE); float tDHT; float hDHT; void setup() { dht.begin(); // initialise le capteur d'humidité Serial1.begin(9600); //démarre la communication avec le capteur de CO2 //Ouvre le port serie et attend qu'il soit ouvert: Serial.begin(115200); Serial.print("Initializing Flash memory..."); LSD.begin(); Serial.println("card initialized."); } void loop() { String dataString = ""; // Déclaration d'une chaine de caractere pour stoquer les données: dht.readHT(&tDHT,&hDHT); // lecture de la temperature de l'humidité if(dataRecieve() && hDHT > 0 ) //Si on a recus des donnée du capteur de CO2 et d'humidité { dataString += millis()/1000; dataString += ","; dataString += String(CO2PPM); dataString += ","; dataString += String(tDHT); dataString += ","; dataString += String(hDHT); Serial.println(dataString); LFile dataFile = LSD.open("CO2.txt", FILE_WRITE); // ouverture du fichier CO2 // Si le fichier est ouvert on ecris les données if (dataFile) { dataFile.println(dataString); dataFile.close(); //Fermeture du fichier } else { Serial.println("erreur d'ouverture du fichier CO2.txt"); } } delay(2000); } bool dataRecieve(void) { byte data[9]; int i = 0; //transmt command data for(i=0; i<sizeof(cmd_get_sensor); i++) { Serial1.write(cmd_get_sensor[i]); } delay(10); //begin reveiceing data if(Serial1.available()) { while(Serial1.available()) { for(int i=0;i<9; i++) { data[i] = Serial1.read(); } } } if((i != 9) || (1 + (0xFF ^ (byte)(data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7]))) != data[8]) { return false; } CO2PPM = (int)data[2] * 256 + (int)data[3]; temperature = (int)data[4] - 40; return true; }