AirOwl : Surveillance de la qualité de l'air en temps réel pour une respiration plus saine
Composants et fournitures
![]() |
|
× | 1 | |||
|
× | 1 | ||||
![]() |
|
× | 1 | |||
![]() |
|
× | 10 | |||
![]() |
|
× | 3 |
Applications et services en ligne
![]() |
|
|||
|
À propos de ce projet
AirOwl est un dispositif de surveillance de la qualité de l'air en temps réel. Il récupère les données du capteur et les affiche sur l'application Blynk via le BLE de l'Arduino/Genuino 101. Un projet pour savoir ce que nous respirons !
Les activités humaines affectent l'environnement. Nous avons donc créé un appareil pour connaître l'environnement ambiant et agir en conséquence.
L'image ci-dessous montre l'AirOwl en fonctionnement sur Arduino 101.

La qualité de l'air se juge par 3 facteurs :
1) Application Blynk (BLE)

2) Couleur des yeux d'AirOwl

- Yeux verts : environnement sain.
- Yeux bleus : attention nécessaire.
- Yeux rouges : danger.
3) Moniteur série

Pour les schémas et la conception, visitez : GitHub
Après avoir câblé selon les schémas, téléversez le code (en supposant les bibliothèques installées).
Pour plus d'infos : docs.blynk.cc
Configuration de Blynk :
- Installez Blynk depuis Play Store / App Store.
- Créez un compte.
- Créez un nouveau projet dans Blynk.
- Sélectionnez la carte et donnez un nom au projet.
- Cliquez sur « Create ». La clé d'authentification est envoyée par email.
- Dans l'espace de travail, cliquez sur « + » et ajoutez BLE et 3 Jauges (Gauge).
- Configurez chaque jauge sur les broches virtuelles V1, V2, V3.
- L'espace de travail final ressemble à ceci :
- Gardez l'Arduino 101 alimenté, activez le Bluetooth sur l'espace de travail (Bluetooth mobile ON).
- Lancez la simulation. Les données apparaîtront dans la fenêtre Blynk.











Pour prototypage sur breadboard, voici le schéma :

Les données sont aussi visibles sur le moniteur série.

Schéma du PCB :

Fichier board :

Vue 3D du PCB :

Tous les fichiers sont sur le GitHub : https://github.com/anithp/AirOwl_Genuino101
Maintenant vous pouvez utiliser AirOwl et savoir ce que vous respirez. Merci :)
Code
- Air_owl
Air_owl C/C++
/* Copyright (C) 2017 Anith Patel and Sohil Patel. Permission accordée sous licence GNU FDL 1.3 ou ultérieure. */ #include<BlynkSimpleCurieBLE.h> #include<CurieBLE.h> #define BLYNK_SERIAL Print // écriture données pour Blynk byte data[24];//voir datasheet capteur poussière unsigned int PM1 = 0; unsigned int PM25 = 0; unsigned int PM10 = 0; unsigned int count = 0; const int PIN1 = 3; const int PIN2 = 5; const int PIN3 = 6; char auth[] = "Auth key"; // collez la clé d'auth Blynk BLEPeripheral blePeripheral; void setup() { blePeripheral.setLocalName("Airowl"); blePeripheral.setDeviceName("Airowl"); blePeripheral.setAppearance(384); Blynk.begin(blePeripheral, auth); blePeripheral.begin(); Serial1.begin(9600); // UART Serial.begin(9600); pinMode(PIN1, OUTPUT); pinMode(PIN2, OUTPUT); pinMode(PIN3, OUTPUT); } void loop() { Blynk.run(); blePeripheral.poll(); Serial.println("Concentration of PM1 is:"); Serial.println(PM1/count); Serial.println("Concentration of PM25 is:"); Serial.println(PM25/count); Serial.println("Concentration of PM10 is:"); Serial.println(PM10/count); delay(500); WriteData(); if ((PM1+PM25+PM10)/3 <= 100){ LedColor(0, 255, 0); delay(500); } else if ((PM1+PM25+PM10)/3 <= 300 && (PM1+PM25+PM10)/3 > 100){ LedColor(255, 0, 0); delay(500); } else{ LedColor(0, 0, 255); delay(500); } } void LedColor(int red, int blue, int green){ analogWrite(PIN1, red); analogWrite(PIN2, blue); analogWrite(PIN3, green); } void getWinsenData(void) { byte i = 0; int checksum = 0; Serial1.flush(); while (Serial1.available()) { data[i] = Serial1.read(); if (i <= 21) { checksum += data[i]; } if (i == 23) { if (checksum == ((256 * data[22]) + data[23])) { if (data[0] == 66) { if (data[1] == 77) { if (i == 23) { PM1 += ((data[4] * 256) + data[5]); PM25 += ((data[6] * 256) + data[7]); PM10 += ((data[8] * 256) + data[9]); count++; Serial1.flush(); break; } } } } else { break; } } i++; delay(10); } } void WriteData() { getWinsenData(); Blynk.virtualWrite(V1, PM1/count); Blynk.virtualWrite(V2, PM25/count); Blynk.virtualWrite(V3, PM10/count); delay(1000); }
Pièces personnalisées et boîtiers
AirOwl
https://github.com/IndiaOpenDataAssociation/AirOwl
Schémas
AirOwl Genuino 101
https://github.com/anithp/AirOwl_Genuino101
Processus de fabrication
- Maintenance prédictive : débloquer l'efficacité et réduire les risques grâce aux insights data-driven
- 7 bibliothèques React essentielles que tout développeur devrait maîtriser
- Débloquez la vraie valeur de votre entreprise : Guide pour PME manufacturières
- Pieds de Gabarit (Jig Feet Buttons) : Fonctionnement et Avantages pour la Fabrication
- Moteurs AC vs DC : Différences Clés et Comment Choisir le Bon
- Maîtriser la fabrication PCB : conseils essentiels pour un prototypage réussi
- Financement Équipement 101 : Économiser, Réduire les Risques, Sécuriser votre Entreprise
- Guide essentiel des pompes immergées : caractéristiques, fonctionnement et installation
- Pompes centrifuges expliquées : caractéristiques clés, applications et avantages




