PAE 2021 Contrôle de la qualité de l’air

De Learning Lab Environnements Connectés
Sauter à la navigation Sauter à la recherche

15/03/2021 :

Lecture datasheet senseair s8 residence, recherche microcontrolleur utilisé -> esp32 application -> sensirion my ambiance, transmition bluetooth

Apparemment cartes PSOC,

DIagramme des exigences:

définir une valeur limite (voir différents paliers) 
connection bluetooth car on veut la qualité de l’air dans la pièce dans laquelle nous sommes

Le taux idéal à l'intérieur d'un logement est d'environ 1000 ppm.

Au-delà d'une concentration de 1400 ppm, le CO2 peut générer des maux de tête et une perte de concentration. Voici les seuils de pollution CO2 correspondant aux couleurs des jauges :

Blanc / Très bon : Jusqu'à 800 ppm

Jaune / Bon : 800-1200 ppm

Orange / Moyen : 1200-1400 ppm

Rouge / Mauvais : 1400-2000 ppm.

Utilisation carte ESP32


diagramme des exigeances

alt alt

22/03/21 :

alt

Liens: https://github.com/experimental-platform/example-co2

package arduino programmation ESP32 : https://dl.espressif.com/dl/package_esp32_index.json

https://learn.sparkfun.com/tutorials/bi-directional-logic-level-converter-hookup-guide/all

https://components101.com/microcontrollers/esp32-devkitc


penser à mettre au propre le cablage (senseair S8, ESP32 devkit, bi-directionnal logic level converter)

docu communication UART: https://www.circuitbasics.com/how-to-set-up-uart-communication-for-arduino/


Pas de convertisseur de puissance pour l’instant, on passe donc par une carte Arduino pour les premiers tests


travail avant la session de la semaine prochaine

- Documentation sur la connexion uart avec arduino

- Cablage avec un step up 3.3 to 5 v (sur ciruito.io si possible)

- Ecriture du code pour la transmission uart

- recherche sur la connexion bluetooth avec la carte.


Organisation du travail

Hardware

alt

Software

Communication carte/capteur

relation maitre/esclave ainsi il faut donner les ordres au capteur via des trames de 7 octets.

alt

Trame pour réaliser la lecture de la RAM du capteur : {0xfe, 0x44, 0x00, 0x08, 0x02, 0x9f, 0x25}

Ps : Il n'existe pas de documentation pour cette fonction sur internet.

Programme

Calcul du CRC

int ModRTU_CRC(byte sensor_data[], byte n1) {
 int ij;
 //Calc the raw_msg_data_byte CRC code
 uint16_t crc = 0xFFFF;
 String crc_string = "";
 // for (int pos = 0; pos < raw_msg_data.length()/2; pos++) {
 for (int pos = 0; pos < n1; pos++) {
   crc ^= (uint16_t)sensor_data[pos]; // XOR byte into least sig. byte of crc
   for (int ij = 8; ij != 0; ij--) { // Loop over each bit
     if ((crc & 0x0001) != 0) { // If the LSB is set
       crc >>= 1; // Shift right and XOR 0xA001
       crc ^= 0xA001;
     }
     else { // Else LSB is not set
       crc >>= 1; // Just shift right
     }
   }
 }
 Serial.print("\n"); // Note, this number has low and high bytes swapped, so use it accordingly (or swap bytes)
 Serial.print(" CRC HEX VALUE = ");
 Serial.println(crc, HEX);
 crc_string = String(crc, HEX);
 return crc;
}