Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Mesure du taux de CO₂ : découvrir le facteur de somnolence

Composants et fournitures

ComposantQuantité
Andium Anduino WiFi (shield WiFi pour Arduino)1
Arduino Due1
Capteur CO₂ NDIR (type Cozir)1

Applications et services en ligne

À propos de ce projet

Motivation

Avez‑vous déjà eu du mal à rester éveillé en réunion l'après‑midi ? Bâillements incontrôlables ? Endormissement pendant des cours de 3 heures ? Ce n'est pas forcément faute de sommeil. Une mauvaise ventilation et un taux élevé de CO₂ peuvent être la cause de votre somnolence !

Ce capteur NDIR CO₂ (Cozir) mesure précisément le CO₂ via une interface série UART simple. Les anciens capteurs NDIR consommaient beaucoup et nécessitaient un préchauffage. Celui‑ci utilise une LED infrarouge et un détecteur IR, fonctionne en 3,3 V et consomme < 1,5 mA en moyenne. Il exploite la dispersion optique infrarouge – consultez la datasheet Cozir pour les détails techniques impressionnants.

Mise en route

Matériel nécessaire :

Le capteur a 10 broches mais seulement 4 à câbler :

Important : Croisez bien Rx/Tx. N'utilisez pas DIO0/DIO1 (Serial) si vous voulez garder le moniteur série. J'utilise Serial1 pour le capteur (3 autres UART disponibles sur le Due).

Pour tester le capteur seul : connectez‑le à un PC via un adaptateur USB‑série 3,3 V, ouvrez PuTTY (9600 bauds, 8N1), activez l'envoi de CR+LF. Envoyez des commandes ASCII.

Attention : Le capteur est en logique 3,3 V TTL. Utilisez un level shifter si votre source est en 5 V.

Calibration du capteur

Deux méthodes :

  1. Gaz connu (azote) : Saturez le capteur en azote (0 ppm CO₂) pour un zéro parfait.
  2. Air frais : Sortez à l'air libre, lancez le sketch exemple et décommentez calibrateFreshAir(); dans setup(). Cela envoie la commande « G » au capteur qui se calibre sur ~450 ppm (moyenne atmosphérique). Même si l'air urbain est légèrement plus chargé, la marge est acceptable car les seuils de perception physiologique sont dans les milliers de ppm.

Sketch de test (extrait) :

char buffer[20] = {0}; int c = 0;
void setup() {
  Serial.begin(9600); while(!Serial){};
  Serial1.begin(9600); while(!Serial1){};
  Serial.println("Begin reading CO2 Levels");
  // setOperatingMode(CZR_POLLING);
  // calibrateFreshAir();
}
void loop() {
  delay(10000);
  c = Request("Z");
  Serial.print("CO2 : "); Serial.println(c); Serial.println("");
}
int Request(char* s) { /* ... envoie commande, lit réponse sur Serial1, parse le ppm ... */ }
void Command(char* s) { Serial1.print(s); Serial1.print("\r\n"); }
uint16_t calibrateFreshAir() { return Request("G"); }
void setOperatingMode(uint8_t mode) { sprintf(buffer, "K %u", mode); Command(buffer); }

Définissez CZR_POLLING (0x02) pour le mode interrogation. Après calibration réussie, passez à la publication cloud.

Publication des métriques CO₂ vers le cloud (Adafruit IO)

Si vous n'avez pas encore connecté AnduinoWiFi à Adafruit IO, consultez le projet dédié. Voici le sketch pour publier le CO₂ chaque minute :

#include <WiFi101.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
#include "AnduinoLCD.h"

#define WLAN_SSID "VOTRE_SSID"
#define WLAN_PASS "VOTRE_MOT_DE_PASSE"
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "VOTRE_USER_AIO"
#define AIO_KEY "VOTRE_CLE_AIO"

WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Adafruit_MQTT_Publish carbonDioxide = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/co2");
AnduinoLCD LCD = AnduinoLCD(ST7735_CS_PIN, ST7735_DC_PIN, 13);

#define CZR_STREAMING 0x01
#define CZR_POLLING 0x02
char buffer[20] = {0};
static int co2 = 0, co2Prev = 0;

void setup() {
  Serial.begin(115200); delay(3000);
  Serial1.begin(9600);
  connectToWiFi(); connectToAdafruit();
  LCD.begin(); LCDinit();
  // setOperatingMode(CZR_POLLING); calibrateFreshAir();
}
void loop() {
  if(! mqtt.ping(3)) { if(! mqtt.connected()) connect(); }
  co2 = Request("Z");
  // Publication MQTT
  char b[20]; String str = String(co2);
  for(int i=0;i

C'est tout !

Ce capteur est ultra‑sensible : on peut presque suivre l'occupation d'une pièce via le CO₂, même bien ventilée. De quoi prouver à votre prof que ce n'est pas les équations différentielles qui vous endorment, mais la ventilation ! Déplacez le cours à la plage !

Bibliothèque Anduino

Bibliothèque Arduino pour le shield Andium (Anduino). Transforme votre Arduino en AndiumNode. GitHub

Processus de fabrication

  1. Sensirion lance SCD40 : capteur CO₂ et RH/T ultra-miniaturisé
  2. Intégration de données de capteurs sur Raspberry Pi : Guide pratique complet
  3. Construire des capteurs d'objets personnalisés pour LEGO Mindstorms EV3 : Yeux DIY basés sur la lumière
  4. Connecter directement un capteur ultrasonique Lego Mindstorms NXT à un Raspberry Pi
  5. Connecter un capteur ultrasonique HC‑SR04 à un Raspberry Pi – Guide pratique
  6. Intégrer le radar pulsé Acconeer A111 à un Raspberry Pi : Guide pratique
  7. Améliorer le service client en rayon : stratégies avancées pour la visibilité et l'efficacité
  8. L'alimentation sans fil RF propulse l'adoption universelle des réseaux de capteurs
  9. Capteur RapidPlex : 5 questions essentielles sur le test SARS-CoV-2 à domicile