M5Stick - SGP30 - DHT - MQTT

Auteur avatarbloupy | Dernière modification 8/03/2022 par Bloup

M5Stick - SGP30 - DHT - MQTT Capture d e cran 2022-03-07 a 11.24.23.png
Crowdsourcing 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 un capteur SGP30 (mesure des composés organiques volatils totaux (COVT) et CO2 équivalent (eCO2) ) et un capteur de type DHT (température, humidité) au site AdafruitIO
Licence : Attribution (CC-BY)

Introduction

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 des composés organiques volatils totaux (COVT) et CO2 équivalent (eCO2) et un capteur de type DHT (température, humidité).


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-SGP30-DHT-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 votre localisation si vous n'êtes pas dans le même fuseau horaire.


D'autres projets capteurs avec un M5StickC :

  • Expériences pré-requises
  • Fichiers

Étape 1 - Installation M5Stick-C

Bien 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 ESP32

Étape 2 - Import bibliothèque

Pour notre projet, nous aurons besoin d'ajouter les bibliothèques suivantes via l'interface Arduino :

-> M5SticKC (M5SticKCPlus si vous utilisez ce modèle)

  -> Adafruit_SGP30.h

  -> DHT sensor library


Importer des bibliothèques dans l'interface Arduino

Vous pouvez installer que les bibliothèques ci-dessus.


Étape 3 - Configuration du Wifi

Remplacer 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




Étape 4 - AdafruitIO

Retrouvez 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.

Ligne 157 du programme // Sélectionner les flux que vous voulez faire apparaitre sur votre bureau ioAdafruit. Attention à la limite de données envoyées.
/********* 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 eCO2, TVOC, temp, hum
// 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 temp = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/Temp");
Adafruit_MQTT_Publish hum = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/Hum");
Adafruit_MQTT_Publish eCO2 = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/CO2");
Adafruit_MQTT_Publish TVOC = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/TVOC");


Étape 5 - Branchement des capteurs

-> Capteur SGP30 en grove

  • Vin au 5V
  • GND au G
  • SCL au 33
  • SDA au 32

-> Capteur DHT

  •  Le signal sur G26 du m5stick-C
  •   VCC sur 3V3 pin du m5stick-C
  •   GND sur GND du m5stick-C

D'autres capteurs ici : DataLab - Chapitre 3 - Connecter ses capteurs




Étape 6 - Gestion de l'horloge

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.




Étape 7 - Branchement des capteurs

-> Capteur SGP30 en grove

  • Vin au 5V
  • GND au G
  • SCL au 33
  • SDA au 32

-> Capteur DHT

  •  Le signal sur G26 du m5stick-C
  •   VCC sur 3V3 pin du m5stick-C
  •   GND sur GND du m5stick-C

D'autres capteurs ici : DataLab - Chapitre 3 - Connecter ses capteurs



Étape 8 - Gestion de l'horloge

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.





Dernière modification 8/03/2022 par user:Bloup.

Commentaires

Published