Parcourir le wiki

Published  +
Crowdsourcing pour tous : Programmation etCrowdsourcing pour tous : Programmation et visualisation de capteurs fixes pour permettre aux citoyen.nes de produire diverses mesures dans un programme de santé environnement. Programme pour envoyer des données en MQTT entre un M5Stick-C avec les capteurs SensAirS8 et un capteur BME280 (température, humidité, pression) au site AdafruitIOre, humidité, pression) au site AdafruitIO  +
Easy  +
Arduino  +, Computing  +  et Life Sciences  +
1  +
hour(s)  +
https://lab.debrouillonet.org/g.apremont/m5stick-co2-bme280-mqtt/-/blob/main/M5Stick-test-CO2-BM280-Date-IOAdafruit.zip  +  et https://lab.debrouillonet.org/g.apremont/m5stick-co2-bme280-mqtt/-/blob/main/M5StickCPlus-test-CO2-BM280-Date-BATT-IOAdafruit.zip  +
L’air constitue le premier des éléments néL’air constitue le premier des éléments nécessaires à la vie. Chaque jour, un être humain adulte inhale 10 000 à 20 000 litres d’air en fonction de sa morphologie, de ses activités. En plus de l’oxygène (O2) et le diazote (N2), qui représentent en moyenne 99 % de sa composition, cet air que nous respirons contient aussi des polluants, sous forme gazeuse, liquide ou solide d’origine naturelle (embruns marins, poussières, pollens…) ou résultant d’activités humaines (trafic routier, production d’énergie, industrie, agriculture…). La pollution de l'air a des effets significatifs et multiples sur la santé et l'environnement. La pénétration de ces polluants dans l’organisme peut avoir des conséquences sur la santé à court et long terme. La qualité de l'air et la pollution de l'air sont donc des enjeux majeurs pour la santé. '''Ici, nous allons programmer un M5StickC pour obtenir une meilleure connaissance de la qualité de l’air avec mesure du pourcentage de CO2 et la mesure de particules en suspension.''' '''Le programme est à télécharger dans l'onglet "Fichiers".''' Il vous suffira de le télécharger, de le décompresser et de mettre le dossier contenant 2 fichiers (M5Stick-test-CO2-BM280-Date-IOAdafruit.ino + time_zones.h) dans le dossier de croquis de Arduino.Lorsque vous ouvrirez ce projet dans Arduino, vous vous retrouverez avec un croquis à 2 onglets : ''M5Stick-test-CO2-PM-Date-IOAdafruit'' et ''time_zones.h'' Ce 2ème onglet permet d'afficher la date et l'heure sur l'écran. Vous pouvez aller à l'étape 7 pour voir comment modifier ce fichier si vous n'êtes pas dans le même fuseau horaire. Vous avez en plus à votre disposition un autre lien pour télécharger le code pour un M5StickCplus. Celui-ci inclut en plus la gestion de la batterie : indication du % en charge et décharge et mise en veille si le niveau est trop faible. Une petite description en étape 9. '''D'autres projets capteurs avec un M5StickC :''' *CO2 + DHT [[M5Stick - SensAirS8 - DHT - MQTT]] *CO2 + Particules en suspension [[M5Stick_-_CO2-_capteur_de_particules_-_MQTT]] *SGP30 + DHT [[M5Stick_-_SGP30_-_DHT_-_MQTT]]  
Attribution (CC-BY)  +
M5Stick_-_CO2-_BME280-_MQTT_Capture_d_e_cran_2022-03-03_a_13.36.25.png  +
Bien entendu, il faut avoir installé ArduiBien entendu, il faut avoir installé Arduino [[Installer l'environnement Arduino sur votre système]] '''Importer de nouvelles cartes dans l'interface Arduino''' '''1-Ajout d'un catalogue de cartes dans l'interface de développement Arduino''' [[Importer de nouvelles cartes dans l'interface Arduino]] -> Préférences -> URL de gestionnaire de cartes supplémentaires https://dl.espressif.com/dl/package_esp32_index.json '''2-Ajout de la carte''' -> Outils -> Type de carte -> Gestionnaire de carte -> Rechercher et installer ESP32t; Gestionnaire de carte -> Rechercher et installer ESP32  +, Pour notre projet, nous aurons besoin d'ajPour notre projet, nous aurons besoin d'ajouter les bibliothèques suivantes via l'interface Arduino : -> M5SticKC (M5SticKCPlus si vous utilisez ce modèle) -> EspSoftwareSerial -> Grove BME280 [[Item:BME280]] -> AirGradient_Air_Quality_Sensor -> Adafruit_MQTT [[Importer des bibliothèques dans l'interface Arduino]] Vous pouvez installer que les bibliothèques ci-dessus.Importer des bibliothèques dans l'interface Arduino]] Vous pouvez installer que les bibliothèques ci-dessus.  +, Pour pouvoir utiliser les 2 capteurs (DHT Pour pouvoir utiliser les 2 capteurs (DHT et SensAIrS8) en même temps, il va falloir modifier le fichier '''''AirGradient.cpp''''' qui se trouve dans la bibliothèque AirGradient_Air_Quality_Sensor fraichement installer. Pour le modifier, il faut aller dans votre dossier Arduino -> libraries -> AirGradient_Air_Quality_Sensor Ouvrir le fichier AirGradient.cpp avec un éditeur de texte. Pour ne pas supprimer les lignes, nous allons tout simplement mettre certaines lignes en commentaire. Pour se faire il suffit de mettre '''//''' en début de ligne. -> Trouver PMS_Init(D5,D6); (Ligne 60) mettre cette ligne en commentaire '''''//PMS_Init(D5,D6)'''''; -> Trouver CO2_Init(D4,D3); (Ligne 569) mettre en commentaire '''''// CO2_Init(D4,D3);''''' -> Trouver Wire.begin(); (Ligne45) mettre en commentaire '''''//Wire.begin();'''''re.begin(); (Ligne45) mettre en commentaire '''''//Wire.begin();'''''  +, <nowiki>Remplacer dans le code "LENORemplacer dans le code "LENOMDETABOX " par le nom de votre réseau WIFI et le "LEMDPDETABOX" par votre clé Wifi.
/************************* Configuration pour le Wifi ************************/
const char* ssid = "LENOMDETABOX "; // Nom de votre réseau WIFI
const char* password = "LEMDPDETABOX"; // Clef Wifi

DETABOX"</span><span class="p">;</span> <span class="c1">// Clef Wifi</span><br /></pre></div><br/></nowiki>  +
, <nowiki>Retrouvez toutes les informaRetrouvez toutes les informations sur les 2 pages suivantes

[[Créer un compte chez AdafruitIO pour envoyer des données dans le web]]

[[Envoyer des données sur le WEB grâce à MQTT]]

Remplacer "Username" avec votre nom d'utilisateur sur io.adafruit et "ActiveKey" la clef généré sur AdafruitIO.
/*********** Configuration pour utiliser MQTT Adafruit ************/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883

// Suivre ce tuto pour récupérer les infos nécessaires https://www.wikidebrouillard.org/wiki/Cr%C3%A9er_un_compte_chez_AdafruitIO_pour_envoyer_des_donn%C3%A9es_dans_le_web
#define AIO_USERNAME "Username" //Votre nom d'utilisateur sur io.adafruit
#define AIO_KEY "ActiveKey" //Votre clef AdafruitIO

/************ Création des objets pour l'horloge ********************/
const char* ntpServer = "pool.ntp.org";
const char* location = "Europe/Paris"; // voir dans l'onglet time_zones.h si vous n'êtes pas sur le même fuseau horaire

/************ Création des objets MQTT et Wifi ********************/
WiFiClient client; // Création d'un objet client wifi, nécessaire pour initier la connexion avec le serveur Adafruit MQTT.
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); // Création de l'objet mqtt nécessaire à la connexion avec le serveur

/************ Création des flux de données ***********/
// Création des objets PM1.0, PM2.5 PM10 et CO2
// Renseigner les chemins de vos flux de données "/feeds/******
// voir tuto https://www.wikidebrouillard.org/wiki/Envoyer_des_donn%C3%A9es_sur_le_WEB_gr%C3%A2ce_%C3%A0_MQTT

Adafruit_MQTT_Publish CO2 = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/CO2");
Adafruit_MQTT_Publish temp = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/temperature");
Adafruit_MQTT_Publish hum = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/humidite");
Adafruit_MQTT_Publish pression = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/pression");
gt;AIO_USERNAME</span> <span class="s">"/feeds/humidite"</span><span class="p">);</span><br /><span class="n">Adafruit_MQTT_Publish</span> <span class="n">pression</span> <span class="o">=</span> <span class="n">Adafruit_MQTT_Publish</span><span class="p">(</span><span class="o">&</span><span class="n">mqtt</span><span class="p">,</span> <span class="n">AIO_USERNAME</span> <span class="s">"/feeds/pression"</span><span class="p">);</span><br /></pre></div></nowiki>  
, -> Capteur BME-BMP280 en grove * VCC-&-> Capteur BME-BMP280 en grove * VCC->VOUT * GND->G * SDA_PIN->32 * SCL_PIN->33 -> Capteur CO2 -> Étape un peu de soudure Dans l'étape 1 de la page [[Un capteur de CO2 avec UIFLOW et M5STICK]], un peu de soudure pour pouvoir connecter simplement votre capteur de CO2 au M5Stick. * G+ au 5V * G0 au GND * TX au 26 * RX au 36 La calibration du capteur se fait avec le bouton du M5StcikC déjà intégré. '''D'autres capteurs ici :''' [[DataLab - Chapitre 3 - Connecter ses capteurs]]Lab - Chapitre 3 - Connecter ses capteurs]]  +, Vous pouvez remplacer '''''"Europe/Paris"''''' sur la ligne -> const char* location = "'''''Europe/Paris'''''"; par une autre localisation. Il suffit de récupérer dans l'onglet '''''time_zones.h''''', la destination de votre choix.  +, Avant de téléverser le programme dans votrAvant de téléverser le programme dans votre carte électronique, vous devez vous assurer que le bon type de carte est sélectionné (ici '''M5Stick-C''') et que le bon port COM est sélectionné. Pour se faire, il vous suffit d'aller dans l'onglet "'''''Outils'''''" # Puis "'''''Type de carte'''''"-> "'''''Gestionnaire de carte'''''"-> "'''''ESP32 Arduino'''''" -> "'''''M5Stick-C'''''" (Sélectionner la carte avec laquelle vous travaillez) # Choisir le Port sur lequel est branché votre carte Il ne vous reste plus qu'à téléverser. Vous pouvez suivre l'avancée du processus en ouvrant la console et/ou regarder ce qui se passe sur l'écran du M5Stick-C. regarder ce qui se passe sur l'écran du M5Stick-C.  +  et <nowiki>Indication du % de la batterIndication du % de la batterie en charge et décharge plus mise en veille si la batterie est trop faible.
#include 

/*************** Gestion Batterie ***********************/
float b, c = 0; // b = batterie interne, c si en charge
int batterie = 0; //valeur batterie en %


void setup() {
M5.begin();
M5.Lcd.setRotation(3);
}

void loop() {

M5.Lcd.setCursor(190, 10);
M5.Lcd.setTextSize(1.5);
c = M5.Axp.GetVapsData() * 1.4 / 1000;
b = M5.Axp.GetVbatData() * 1.1 / 1000;
batterie = ((b - 3.0) / 1.2) * 100;

if (c >= 4.5) {
M5.Lcd.setTextColor(TFT_YELLOW, BLACK);
M5.Lcd.print("CHG:"); //Indique CHG en jaune si cable USB branché
}
else {
M5.Lcd.setTextColor(GREEN, BLACK);
M5.Lcd.print("BAT:"); //Indique BAT en vert si M5 non branché
}

if (batterie > 100)
batterie = 100;
else if (batterie < 100 && batterie > 9)
M5.Lcd.print("");
else if (batterie < 9)
M5.Lcd.print("");
if (batterie < 10)
M5.Axp.DeepSleep(); // Si la batterie est trop faible = mise en veille

M5.Lcd.print(batterie);
M5.Lcd.print("%"); // % de batterie

}
class="k">if</span> <span class="p">(</span><span class="n">batterie</span> <span class="o"><</span> <span class="mi">10</span><span class="p">)</span><br /> <span class="n">M5</span><span class="p">.</span><span class="n">Axp</span><span class="p">.</span><span class="n">DeepSleep</span><span class="p">();</span> <span class="c1">// Si la batterie est trop faible = mise en veille</span><br /><br /> <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="n">batterie</span><span class="p">);</span><br /> <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="s">"%"</span><span class="p">);</span> <span class="c1">// % de batterie</span><br /><br /><span class="p">}</span><br /></pre></div></nowiki>  
Installation M5Stick-C  +, Import bibliothèque  +, Modification d'une bibliothèque pour la gestion de plusieurs capteurs sur le M5Stick-C  +, Configuration du Wifi  +, AdafruitIO  +, Branchement des capteurs  +, Gestion de l'horloge  +, Envoyer le programme dans le M5Stick-C  +  et Gestion de la batterie  +
Possède une requête« Possède une requête (Has query) » est une propriété prédéfinie qui représente les méta-informations (sous la forme d'un sous-objet) des requêtes individuelles et est fournie par MédiaWiki Sémantique.
Date de modification« Date de modification (Modification date) » est une propriété prédéfinie qui correspond à la date de la dernière modification d’un sujet et est fournie par MédiaWiki Sémantique.
11:59:54, 14 mars 2022  +
⧼cs-comments⧽Cette propriété est une propriété spéciale dans ce wiki.
0  +
Créateur de la pageCette propriété est une propriété spéciale dans ce wiki.
I did itCette propriété est une propriété spéciale dans ce wiki.
0  +
FavorisCette propriété est une propriété spéciale dans ce wiki.
0  +