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

Software

Communication carte/capteur

Programme

Calcul du CRC

// Compute the MODBUS RTU 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;

}