ESP32/ESP8266 : envoyer les lectures du capteur BME280 à InfluxDB

ESP32/ESP8266 : envoyer les lectures du capteur BME280 à InfluxDB

Dans ce guide, vous apprendrez à envoyer des lectures de capteurs BME280 à InfluxDB à l’aide des cartes ESP32 ou ESP8266. InfluxDB est une base de données de séries chronologiques. Chaque enregistrement de la base de données est associé à un horodatage, ce qui le rend idéal pour les projets d’enregistrement de données IoT et de domotique. InfluxDB fournit également des outils de tableau de bord pour visualiser les données dans différents formats tels que des graphiques, des jauges, des histogrammes, etc.

ESP32 ESP8266 NodeMCU Envoyer les lectures du capteur BME280 à InfluxDB

À la fin de ce didacticiel, vous serez en mesure de créer un tableau de bord comme indiqué ci-dessous pour afficher toutes les lectures de vos capteurs au fil du temps.

ESP32 ESP8266 Relevés de capteur Tableau de bord InfluxDB

Pour démarrer avec InfluxDB, lisez l’un des guides suivants :

Qu’est-ce qu’InfluxDB ?

influxdb ce que c'est

InfluxDB est une base de données de séries chronologiques (TSDB) hautes performances open source qui peut stocker de grandes quantités de données par seconde. Chaque point de données que vous soumettez à la base de données est associé à un horodatage particulier. Il est donc idéal pour les projets d’enregistrement de données IoT, tels que le stockage des données des capteurs de votre station météo.

Tu peux courir InfluxDB dans InfluxDB Cloudou localement sur votre ordinateur portable ou Raspberry Pi.

« Pourquoi utiliser InfluxDB Cloud ? Il s’agit d’une plate-forme de surveillance en temps réel rapide, élastique et sans serveur, d’un moteur de tableau de bord, d’un service d’analyse et d’un processeur d’événements et de métriques. »

https://www.influxdata.com/products/influxdb-cloud/

Pour une introduction plus approfondie à InfluxDB, consultez les tutoriels suivants avant de continuer :

  • ESP32 : Premiers pas avec InfluxDB
  • ESP8266 : Premiers pas avec InfluxDB

Créer un compte InfluxDB

Si vous n’avez pas de compte InfluxDB, suivez les étapes suivantes. Si vous avez déjà un compte, vous pouvez passer à la section suivante.

Si vous souhaitez exécuter InfluxDB localement sur un Raspberry Pi, suivez d’abord le tutoriel suivant : Installez InfluxDB 2 sur Raspberry Pi. Ensuite, passez à la Chargement de données dans InfluxDB section.

1) Aller à https://cloud2.influxdata.com/signup et créez un compte InfluxDB.

Créer un compte InfluxDB

2) Sélectionnez l’endroit où vous souhaitez enregistrer vos données. J’ai sélectionné l’option Google Cloud, mais vous pouvez sélectionner l’une des autres options. Sélectionnez la région, elle doit être la plus proche de votre emplacement. Ensuite, entrez quelque chose dans le champ Nom de l’entreprise et acceptez les conditions avant de continuer.

InfluxDB sélectionne le fournisseur

3) Sélectionnez le forfait InfluxDB. Pour cet exemple, nous utiliserons le plan gratuit. Pour la plupart de nos projets IoT, le plan gratuit fonctionne très bien.

Plan de sélection InfluxDB

4) Après avoir sélectionné le plan, vous serez redirigé vers la page de démarrage.

Tableau de bord de démarrage InfluxDB Cloud

Chargement de données dans InfluxDB

5) Cliquez sur l’icône Charger les données et sélectionnez Sources.

InfluxDB Charger les sources Dara

6) Faites défiler vers le bas jusqu’à ce que vous trouviez l’option Arduino dans la section Bibliothèques clientes.

Client Arduino de chargement de données InfluxDB

Cliquez sur Initialiser le client.

InfluxDB Cloud Arduino initialiser le client

La page qui s’ouvre vous permet de créer des compartiments, et elle montre également un exemple de code pour interfacer les cartes ESP8266 ou ESP32 avec InfluxDB.

Création d’un compartiment InfluxDB

7) Créez un nouveau compartiment pour stocker vos données. Cliquez sur + Créer un compartiment pour créer un nouveau compartiment pour cet exemple. Vous pouvez utiliser les paramètres par défaut ou les personnaliser.

InfluxDB Cloud Création d'un bucket ESP8266

Obtenir l’URL InfluxDB et le jeton API

8) Obtenez votre URL InfluxDB* et d’autres détails dont vous aurez besoin plus tard. Faites défiler jusqu’à l’extrait de profil Configurer InfluxDB. Ensuite, copiez INFLUXDB_URL, INFLUXDB_TOKEN, INFLUXDB_ORG et INFLUXDB_BUCKET.

Arduino Configurer le profil InfluxDB

* Si vous exécutez InfluxDB localement sur un Raspberry Pi, l’URL sera l’adresse IP du Raspberry Pi sur le port 8086. Par exemple 192.168.1.106:8086.

Jetons d’API

Si vous avez suivi les étapes précédentes, le cloud InfluxDB a déjà créé pour vous un jeton d’API que vous pourriez trouver dans l’extrait présenté à l’étape précédente. Si vous accédez à l’icône Charger les données et sélectionnez Jetons d’API, vous trouverez le jeton d’API généré précédemment.

1680891196 859 ESP32ESP8266 envoyer les lectures du capteur BME280 a

Sur cette page, vous pouvez générer un nouveau jeton d’API si nécessaire.

À ce moment, vous devriez avoir enregistré les éléments suivants :

  • URL du serveur InfluxDB
  • Organisation InfluxDB
  • Nom du compartiment InfluxDB
  • Jeton d’API

ESP32/ESP8266 Envoyer les lectures du capteur à InfluxDB

Dans cette section, nous allons programmer les cartes ESP32 et ESP8266 pour envoyer les lectures de température, d’humidité et de pression BME280 à InfluxDB.

Pièces requises

Pour ce projet, vous avez besoin des pièces suivantes* :

* vous pouvez également tester le projet avec des valeurs aléatoires au lieu des lectures de capteur, ou vous pouvez utiliser n’importe quel autre capteur que vous connaissez.

Vous pouvez utiliser les liens précédents ou accéder directement à MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !

1680891196 600 ESP32ESP8266 envoyer les lectures du capteur BME280 a

Diagramme schématique

Dans ce didacticiel, nous enverrons les lectures du capteur BME280 à InfluxDB. Vous devez donc câbler le capteur BME280 à votre carte. Suivez l’un des diagrammes schématiques suivants.

ESP32 avec BME280

Nous allons utiliser la communication I2C avec le module de capteur BME280. Câblez le capteur aux broches ESP32 SCL (GPIO 22) et SDA (GPIO 21) par défaut, comme indiqué dans le schéma suivant.

Circuit de schéma de câblage de pression d'humidité de capteur ESP32 BME280

Vous ne connaissez pas le BME280 avec l’ESP32 ? Lisez ce tutoriel : ESP32 avec capteur BME280 utilisant Arduino IDE (pression, température, humidité).

ESP8266 avec BME280

Nous allons utiliser la communication I2C avec le module de capteur BME280. Pour cela, câblez le capteur aux broches ESP8266 SDA (GPIO 4) et SCL (GPIO 5), comme indiqué dans le schéma suivant.

ESP8266 NodeMCU BME280 Capteur Température Humidité Pression Schéma de câblage Circuit

Vous ne connaissez pas le BME280 avec l’ESP8266 ? Lisez ce tutoriel : ESP8266 avec BME280 en utilisant Arduino IDE (pression, température, humidité).

Installation des bibliothèques

Pour ce projet, vous devez installer les bibliothèques suivantes :

Installation – Arduino IDE

Si vous utilisez Arduino IDE, suivez les étapes suivantes pour installer la bibliothèque.

  1. Allez dans Sketch > Inclure la bibliothèque > Gérer les bibliothèques
  2. Recherchez InfluxDB et installez la bibliothèque ESP8266 Influxdb de Tobias Shürg.
Installer la bibliothèque InfluxDB Arduino IDE

Remarque : nous utilisons les cartes ESP8266 version 3.0.1 et les cartes ESP32 version 2.0.1. Vérifiez la version de vos cartes dans Outils > Carte > Gestionnaire de cartes. Ensuite, recherchez ESP8266 ou ESP32 et mettez à niveau vers l’une de ces versions. (J’ai trouvé quelques problèmes avec les dernières versions 3.0.2 et 2.0.2)

  1. Suivez les mêmes instructions pour installer la bibliothèque Adafruit BME280 et la bibliothèque de capteurs unifiés Adafruit.

Installation – Code VS

Si vous utilisez VS Code avec l’extension PlatformIO, commencez par créer un projet Arduino pour votre carte ESP32 ou ESP8266.

Ensuite, cliquez sur l’icône PIO Home, puis sélectionnez l’onglet Bibliothèques. Recherchez « influxdb ». Sélectionnez l’ESP8266 Influxdb de Tobias Schürg.

Installer la bibliothèque InfluxDB VS Code

Suivez la même procédure pour la bibliothèque Adafruit BME280 et la bibliothèque Adafruit Unified Sensor.

Votre fichier plaformio.ini devrait ressembler à ceci (nous avons également ajouté une ligne pour changer le débit en bauds du moniteur série à 115200).

monitor_speed = 115200
lib_deps = 
	tobiasschuerg/ESP8266 [email protected]^3.12.0
	adafruit/Adafruit BME280 [email protected]^2.2.2
	adafruit/Adafruit Unified [email protected]^1.1.5

Envoyer les relevés de capteur à InfluxDB—Code

Copiez le code suivant dans l’IDE Arduino ou dans le fichier main.cpp si vous utilisez VS Code avec l’extension PlatformIO. Le code est compatible avec les cartes ESP32 et ESP8266.

Ce code est basé sur cet exemple de bibliothèque. Nous avons apporté quelques modifications pour inclure les lectures du capteur BME280.

/*
  Rui Santos
  Complete project details at our blog: https://Raspberryme.com/
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*/
// Based on this library example: https://github.com/tobiasschuerg/InfluxDB-Client-for-Arduino/blob/master/examples/SecureBatchWrite/SecureBatchWrite.ino

#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#if defined(ESP32)
  #include <WiFiMulti.h>
  WiFiMulti wifiMulti;
  #define DEVICE "ESP32"
#elif defined(ESP8266)
  #include <ESP8266WiFiMulti.h>
  ESP8266WiFiMulti wifiMulti;
  #define DEVICE "ESP8266"
  #define WIFI_AUTH_OPEN ENC_TYPE_NONE
#endif

#include <InfluxDbClient.h>
#include <InfluxDbCloud.h>

// WiFi AP SSID
#define WIFI_SSID "REPLACE_WITH_YOUR_SSID"
// WiFi password
#define WIFI_PASSWORD "REPLACE_WITH_YOUR_PASSWORD"
// InfluxDB v2 server url, e.g. https://eu-central-1-1.aws.cloud2.influxdata.com (Use: InfluxDB UI -> Load Data -> Client Libraries)
#define INFLUXDB_URL "REPLACE_WITH_YOUR_DATABASE_URL"
// InfluxDB v2 server or cloud API authentication token (Use: InfluxDB UI -> Load Data -> Tokens -> <select token>)
#define INFLUXDB_TOKEN "REPLACE_WITH_YOUR_TOKEN"
// InfluxDB v2 organization id (Use: InfluxDB UI -> Settings -> Profile -> <name under tile> )
#define INFLUXDB_ORG "REPLACE_WITH_YOUR_ORG"
// InfluxDB v2 bucket name (Use: InfluxDB UI -> Load Data -> Buckets)
#define INFLUXDB_BUCKET "SENSOR"
// Set timezone string according to https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html
// Examples:
//  Pacific Time:   "PST8PDT"
//  Eastern:        "EST5EDT"
//  Japanesse:      "JST-9"
//  Central Europe: "CET-1CEST,M3.5.0,M10.5.0/3"
#define TZ_INFO "WET0WEST,M3.5.0/1,M10.5.0"

// InfluxDB client instance with preconfigured InfluxCloud certificate
InfluxDBClient client(INFLUXDB_URL, INFLUXDB_ORG, INFLUXDB_BUCKET, INFLUXDB_TOKEN, InfluxDbCloud2CACert);
// InfluxDB client instance without preconfigured InfluxCloud certificate for insecure connection 
//InfluxDBClient client(INFLUXDB_URL, INFLUXDB_ORG, INFLUXDB_BUCKET, INFLUXDB_TOKEN);

// Data point
Point sensorReadings("measurements");

//BME280
Adafruit_BME280 bme; // I2C

float temperature;
float humidity;
float pressure;

// Initialize BME280
void initBME(){
  if (!bme.begin(0x76)) {
    Serial.println("Could not find a valid BME280 sensor, check wiring!");
    while (1);
  }
}

void setup() {
  Serial.begin(115200);

  // Setup wifi
  WiFi.mode(WIFI_STA);
  wifiMulti.addAP(WIFI_SSID, WIFI_PASSWORD);

  Serial.print("Connecting to wifi");
  while (wifiMulti.run() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  
  //Init BME280 sensor
  initBME();
  
  // Add tags
  sensorReadings.addTag("device", DEVICE);
  sensorReadings.addTag("location", "office");
  sensorReadings.addTag("sensor", "bme280");

  // Accurate time is necessary for certificate validation and writing in batches
  // For the fastest time sync find NTP servers in your area: https://www.pool.ntp.org/zone/
  // Syncing progress and the time will be printed to Serial.
  timeSync(TZ_INFO, "pool.ntp.org", "time.nis.gov");

  // Check server connection
  if (client.validateConnection()) {
    Serial.print("Connected to InfluxDB: ");
    Serial.println(client.getServerUrl());
  } else {
    Serial.print("InfluxDB connection failed: ");
    Serial.println(client.getLastErrorMessage());
  }
}

void loop() {
  // Get latest sensor readings
  temperature = bme.readTemperature();
  humidity = bme.readHumidity();
  pressure = bme.readPressure()/100.0F;

  // Add readings as fields to point
  sensorReadings.addField("temperature", temperature);
  sensorReadings.addField("humidity", humidity);
  sensorReadings.addField("pressure", pressure);

  // Print what are we exactly writing
  Serial.print("Writing: ");
  Serial.println(client.pointToLineProtocol(sensorReadings));
  
  // Write point into buffer
  client.writePoint(sensorReadings);

  // Clear fields for next usage. Tags remain the same.
  sensorReadings.clearFields();

  // If no Wifi signal, try to reconnect it
  if (wifiMulti.run() != WL_CONNECTED) {
    Serial.println("Wifi connection lost");
  }

  // Wait 10s
  Serial.println("Wait 10s");
  delay(10000);
}

Afficher le code brut

Avant de télécharger le code sur votre tableau, vous devez insérer vos informations d’identification réseau, l’URL de la base de données, le jeton, l’organisation et le nom du compartiment. N’oubliez pas non plus d’insérer votre fuseau horaire. Consultez ce document pour rechercher votre fuseau horaire dans le bon format.

Comment fonctionne le code

Commencez par inclure les bibliothèques requises et définissez le nom DEVICE en fonction de la carte sélectionnée (ESP32 ou ESP8266).

#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#if defined(ESP32)
  #include <WiFiMulti.h>
  WiFiMulti wifiMulti;
  #define DEVICE "ESP32"
#elif defined(ESP8266)
  #include <ESP8266WiFiMulti.h>
  ESP8266WiFiMulti wifiMulti;
  #define DEVICE "ESP8266"
  #define WIFI_AUTH_OPEN ENC_TYPE_NONE
#endif

#include <InfluxDbClient.h>
#include <InfluxDbCloud.h>

Insérez vos informations d’identification réseau sur les variables suivantes afin que les cartes ESP32 ou ESP8266 puissent se connecter à Internet en utilisant votre réseau local.

// WiFi AP SSID
#define WIFI_SSID "REPLACE_WITH_YOUR_SSID"
// WiFi password
#define WIFI_PASSWORD "REPLACE_WITH_YOUR_PASSWORD"

Insérez l’URL du serveur InfluxDB sur les lignes suivantes :celui que vous avez obtenu à cette étape:

// InfluxDB v2 server url, e.g. https://eu-central-1-1.aws.cloud2.influxdata.com (Use: InfluxDB UI -> Load Data -> Client Libraries)
#define INFLUXDB_URL "REPLACE_WITH_YOUR_INFLUXDB_URL"

Remarque : si vous exécutez InfluxDB localement sur un Raspberry Pi, l’URL sera l’adresse IP du Raspberry Pi sur le port 8086. Par exemple 192.168.1.106:8086.

Insérez votre jeton InfluxDB—enregistré à cette étape:

#define INFLUXDB_TOKEN "REPLACE_WITH_YOUR_INFLUXDB_TOKEN"

Ajoutez le nom de votre organisation InfluxDB—vérifier cette étape.

#define INFLUXDB_ORG "REPLACE_WITH_YOUR_INFLUXXDB_ORGANIZATION_ID"

Enfin, ajoutez le nom de votre compartiment InfluxDB :

#define INFLUXDB_BUCKET "REPLACE_WITH_YOUR_BUCKET_NAME"

Définition de votre fuseau horaire

Vous devez définir votre fuseau horaire en conséquence pour ces consignes. Le moyen le plus simple est de vérifiez ce tableau et copiez votre fuseau horaire à partir de là. Dans mon cas, c’est le fuseau horaire de Lisbonne :

#define TZ_INFO "WET0WEST,M3.5.0/1,M10.5.0"

Client InfluxDB

Maintenant que vous disposez de tous les paramètres requis, vous pouvez créer une instance InfluxDBClient. Nous créons un client sécurisé qui utilise un certificat préconfiguré—en savoir plus sur la connexion sécurisée.

InfluxDBClient client(INFLUXDB_URL, INFLUXDB_ORG, INFLUXDB_BUCKET, INFLUXDB_TOKEN, InfluxDbCloud2CACert);

Indiquer

Ensuite, nous créons une instance Point appelée sensorReadings. Le point sera appelé mesures sur la base de données. Plus tard dans le code, nous pouvons nous référer à ce point (sensorReadings) pour ajouter des balises et des champs.

Point sensorReadings("measurements");

Remarque : Un ensemble de données dans une ligne de base de données est appelé point. Chaque point a une mesure, un jeu de balises, une clé de champ, une valeur de champ et un horodatage.

Variables BME280

Créez une instance Adafruit_BME280 appelée bme sur les broches ESP I2C par défaut.

Adafruit_BME280 bme; // I2C

Créez des variables pour enregistrer les relevés de température, d’humidité et de pression.

float temperature;
float humidity;
float pressure;

fonction initBME()

La fonction initBME() initialise le capteur BME280. Nous l’appellerons plus tard dans le setup() pour initialiser le capteur.

// Initialize BME280
void initBME(){
  if (!bme.begin(0x76)) {
    Serial.println("Could not find a valid BME280 sensor, check wiring!");
    while (1);
  }
}

installation()

Dans setup(), initialisez le moniteur série à des fins de débogage.

Serial.begin(115200);

Initialisez le Wi-Fi.

// Setup wifi
WiFi.mode(WIFI_STA);
wifiMulti.addAP(WIFI_SSID, WIFI_PASSWORD);

Serial.print("Connecting to wifi");
while (wifiMulti.run() != WL_CONNECTED) {
  Serial.print(".");
  delay(500);
}
Serial.println();

Appelez la fonction initBME() pour initialiser le capteur BME280.

//Init BME280 sensor
initBME();

Ajoutez des balises à vos données à l’aide de addTag(). Nous ajoutons le nom de l’appareil, le nom du capteur et l’emplacement du capteur. Vous pouvez ajouter d’autres balises qui pourraient être utiles pour votre projet spécifique.

sensorReadings.addTag("device", DEVICE);
sensorReadings.addTag("location", "office");
sensorReadings.addTag("sensor", "bme280");

Synchroniser l’heure, nécessaire à la validation du certificat.

timeSync(TZ_INFO, "pool.ntp.org", "time.nis.gov");

Vérifiez la connexion au serveur InfluxDB et imprimez les éventuels messages d’erreur en cas d’échec de la connexion :

// Check server connection
if (client.validateConnection()) {
  Serial.print("Connected to InfluxDB: ");
  Serial.println(client.getServerUrl());
} else {
  Serial.print("InfluxDB connection failed: ");
  Serial.println(client.getLastErrorMessage());
}

boucle()

Dans la boucle (), nous enverrons les lectures du capteur à InfluxDB toutes les 10 secondes.

Nous obtenons des relevés de température, d’humidité et de pression :

temperature = bme.readTemperature();
humidity = bme.readHumidity();
pressure = bme.readPressure()/100.0F;

Et nous ajoutons ces lectures en tant que champs à notre point (ligne de données de la base de données).

// Add readings as fields to point
sensorReadings.addField("temperature", temperature);
sensorReadings.addField("humidity", humidity);
sensorReadings.addField("pressure", pressure);

Imprimez dans le Serial Monitor ce que nous écrivons au point :

Serial.println(client.pointToLineProtocol(sensorReadings));

Enfin, pour réellement ajouter le point à la base de données, nous utilisons la méthode writePoint() sur l’objet InfluxDBClient et passons en argument le point que nous souhaitons ajouter : client.writePoint(sensorReadings).

client.writePoint(sensorReadings);

Effacez les champs pour être prêt à être utilisé dans la boucle suivante.

sensorReadings.clearFields();

De nouvelles données sont écrites dans la base de données toutes les 10 secondes.

Serial.println("Wait 10s");
delay(10000);

Démonstration—Visualisation de vos données

Après avoir inséré tous les paramètres requis sur le code, vous pouvez le télécharger sur votre carte ESP32/ESP8266. Si vous obtenez une erreur lors de la compilation, vérifiez les points suivants :

  • vérifiez que vous avez une carte ESP32/ESP8266 sélectionnée dans Outils > Carte.
  • Vérifiez la version d’installation de vos cartes ESP32/ESP8266 dans Outils > Carte > Gestionnaire de cartes > ESP8266 ou ESP32. Sélectionnez la version 3.0.1 pour ESP8266 ou la version 2.01 pour ESP32 si vous rencontrez des problèmes avec d’autres versions.

Après avoir téléchargé le code sur votre carte, ouvrez le moniteur série à un débit en bauds de 115200. Appuyez sur le bouton RESET embarqué ESP pour redémarrer la carte. Il devrait imprimer quelque chose de similaire sur le Serial Monitor :

ESP envoie les lectures du capteur BME280 à InfluxDB

Maintenant, rendez-vous sur votre compte InfludDB et rendez-vous dans le Data Explorer en cliquant sur l’icône correspondante.

explorateur de données influxDB

Maintenant, vous pouvez visualiser vos données. Commencez par sélectionner le seau que vous voulez. Ensuite, nous devons ajouter des filtres pour sélectionner nos données. Sélectionnez la mesure dans le champ _measurement, l’appareil et l’emplacement. Ensuite, vous pouvez sélectionner les valeurs de température, d’humidité ou de pression. Vous pouvez également sélectionner toutes les lectures si vous souhaitez toutes les tracer sur le même graphique.

Après avoir fait la requête, cliquez sur le bouton SOUMETTRE. Cela affichera vos données dans le format choisi. Dans le coin supérieur gauche, vous pouvez sélectionner différentes manières de visualiser les données. Vous pouvez également cliquer sur le bouton PERSONNALISER pour changer la couleur de la série.

ESP32 ESP8266 Explorateur de données InfluxDB

Vous pouvez créer un tableau de bord pour afficher plusieurs visualisations de données dans différents formats (jauges, histogramme, statistique unique, etc.) ou différentes données sur la même page. Par exemple, plusieurs graphiques pour afficher la température, l’humidité et la pression, et des cases pour afficher les mesures actuelles.

Création d’un tableau de bord

Cliquez sur l’icône Tableau de bord.

1680891197 723 ESP32ESP8266 envoyer les lectures du capteur BME280 a

Puis sur Créer un tableau de bord > Nouveau tableau de bord.

Ajouter une cellule. Effectuez la requête pour obtenir vos données et sélectionnez la visualisation souhaitée. Donnez un nom à la cellule, par exemple, Température du bureau (ESP32). Vous pouvez également cliquer sur le bouton Personnaliser pour personnaliser le graphique (nous vous suggérons de sélectionner différentes couleurs pour la température, l’humidité et la pression). Enfin, cliquez sur l’icône ✓ dans le coin supérieur droit pour ajouter la visualisation sous forme de cellule à votre tableau de bord.

Cellule du tableau de bord de température InfluxDB ESP

Répétez le même processus pour les autres lectures (humidité et pression). Vous pouvez également ajouter une seule statistique pour afficher les valeurs actuelles de chaque lecture.

J’ai l’ESP32 et l’ESP8266 exécutant le même code simultanément, j’ai donc créé un tableau de bord qui affiche les lectures de chaque carte.

ESP32 ESP8266 Relevés de capteur Tableau de bord InfluxDB

Vous pouvez déplacer vos cellules vers différentes positions et organiser le tableau de bord d’une manière qui vous convient. Vous pouvez également personnaliser la façon dont les données sont actualisées et le nombre de points de données que vous souhaitez voir (jusqu’aux 30 derniers jours).

Conclusion

Dans ce didacticiel, vous avez appris à envoyer plusieurs lectures de capteurs à InfluxDB. InfluxDB ajoute un horodatage à toutes les lignes de données (point).

À titre d’exemple, nous avons utilisé un capteur BME280, mais vous pouvez facilement modifier l’exemple pour utiliser n’importe quel autre capteur ou ajouter d’autres capteurs. Vous pouvez également exécuter cet exemple sur plusieurs tableaux pour surveiller la température, l’humidité et la pression à différents endroits. N’oubliez pas d’ajouter différentes balises pour identifier les lieux ou les tableaux.

Nous espérons que vous avez trouvé ce tutoriel utile. Quels autres projets aimeriez-vous voir utiliser InfluxDB ? Faites le nous savoir dans la section « Commentaires ».

Apprenez-en plus sur l’ESP32 et l’ESP8266 avec nos ressources :

Merci d’avoir lu.

Cette vidéo vous emmène dans l’histoire de Raspberry Pi :

YouTube video

  • YUNIQUE FRANCE Capteur numérique BME280-5V de précision – Module pour pression barométrique, température et humidité I2C/SPI 5V pour DIY
    Multifonction 3-en-1 : mesure soigneusement la pression barométrique, l'humidité et la température. Haute précision : capteur numérique pour des relevés détaillés et fiables. Communication flexible : compatible avec I2C et SPI pour une intégration facile dans les projets DIY. Large gamme d'utilisation : idéal pour les stations météorologiques, les systèmes HVAC et la surveillance environnementale. Alimentation 5 V : s'adapte à différents niveaux de tension pour une utilisation polyvalente.
  • ARCELI BME280 Module de capteur barométrique numérique 5 V, IIC I2C Module capteur de température et d'humidité Module de pression pour Arduino Raspberry Pi
    Module de capteur haute performance : le module de capteur de température, d'humidité et de pression atmosphérique BME280-5 V est conçu avec la dernière technologie pour fournir des lectures de haute précision pour une surveillance précise des conditions environnementales. Compatibilité polyvalente : le module est compatible avec les interfaces I2C et SPI, ce qui en fait une option flexible pour l'intégration dans une variété de projets. Taille compacte : avec sa petite taille et son design léger, le module capteur BME280-5V est parfait pour une utilisation dans des appareils mobiles compacts tels que les smartphones, tablettes, montres intelligentes et portables. Large plage de fonctionnement : ce module de capteur peut être utilisé dans différentes conditions, y compris des températures de -40 °C à +85 °C, des plages d'humidité de 0 à 100 % et une pression atmosphérique de 300 à 1100 hPa. Haute précision : le module se caractérise par une grande précision dans la mesure de la température, de l'humidité et de la pression atmosphérique, avec de faibles erreurs pour des lectures fiables. Il dispose également d'une haute résolution pour des mesures précises.
  • Capteur de température et d'humidité BMP280 Composants électroniques 100% avec marquage Clair
    Prend en charge une haute précision de test, le capteur de pression atmosphérique peut être plus pratique pour votre utilisation. Le champ d'application comprend une température de -40 à +85 °C, une humidité de 0 à 100 % et une pression de 300 à 1100 hPa. Multifonction, le capteur peut détecter la pression atmosphérique, la température et l'humidité de nombreuses façons. Le capteur de pression atmosphérique de petite taille maintient clairement chaque interface pour une installation pratique et simple. Fabriqué en carton synthétique de haute qualité, le capteur d'humidité offre une grande fiabilité et une excellente stabilité à long terme.