Table des matières:

Station météo WiFi ESP32 avec capteur BME280 : 7 étapes (avec photos)
Station météo WiFi ESP32 avec capteur BME280 : 7 étapes (avec photos)

Vidéo: Station météo WiFi ESP32 avec capteur BME280 : 7 étapes (avec photos)

Vidéo: Station météo WiFi ESP32 avec capteur BME280 : 7 étapes (avec photos)
Vidéo: Station météo avec un écran TFT 480x320, carte Mega2560, module RTC, capteur DHT11 (première partie) 2024, Juillet
Anonim
Image
Image
Station météo WiFi ESP32 avec capteur BME280
Station météo WiFi ESP32 avec capteur BME280
Station météo WiFi ESP32 avec capteur BME280
Station météo WiFi ESP32 avec capteur BME280

Chers amis, bienvenue dans un autre tutoriel ! Dans ce tutoriel, nous allons créer un projet de station météo compatible WiFi ! Nous allons utiliser pour la première fois la nouvelle et impressionnante puce ESP32 avec un écran Nextion.

Dans cette vidéo, nous allons faire cela. C'est encore un autre projet de station météo que je connais, mais cette fois nous utilisons la nouvelle puce ESP32 ! Nous utilisons également le nouveau capteur BME280 qui mesure la température, l'humidité et la pression barométrique. Lorsque nous mettons le projet sous tension, il se connecte au réseau WiFi et va récupérer les prévisions météorologiques pour ma position sur le site Web openweathermap. Ensuite, il affichera les prévisions sur cet écran tactile Nextion de 3,2 pouces avec les lectures du capteur ! Les relevés sont mis à jour toutes les deux secondes et les prévisions météo toutes les heures ! Comme vous pouvez le voir, dans ce projet, nous utilisons les dernières technologies disponibles pour un maker aujourd'hui ! Si vous êtes un vétéran du bricolage, vous pouvez construire ce projet en cinq minutes.

Si vous êtes débutant, vous devez regarder quelques vidéos avant de tenter ce projet. Vous pouvez trouver des liens vers ces vidéos dans ce Instructable, ne vous inquiétez pas.

Commençons!

Étape 1: Obtenez toutes les pièces

Obtenez toutes les pièces
Obtenez toutes les pièces

Afin de construire ce projet, nous avons besoin des pièces suivantes:

  • Une carte ESP32 ▶
  • Un capteur BME280 I2C ▶
  • Un écran Nextion 3.2" ▶
  • Une petite planche à pain ▶
  • Quelques fils ▶

Le coût du projet est d'environ 30$.

Au lieu de l'ESP32, nous pourrions utiliser la puce ESP8266 moins chère, mais j'ai décidé d'utiliser l'ESP32 pour acquérir de l'expérience et voir ce qui fonctionne et ce qui ne l'est pas.

Étape 2: L'ESP32

Image
Image
L'ESP32
L'ESP32

C'est le premier projet que je construis avec la nouvelle puce ESP32.

Si vous ne la connaissez pas, la puce ESP32 est le successeur de la populaire puce ESP8266 que nous avons utilisée à plusieurs reprises dans le passé. L'ESP32 est une bête ! Il propose deux 32 cœurs de traitement qui fonctionnent à 160MHz, une quantité massive de mémoire, le WiFi, le Bluetooth et bien d'autres fonctionnalités pour un coût d'environ 7$ ! Des trucs incroyables !

Veuillez regarder l'examen détaillé que j'ai préparé pour ce forum. J'ai joint la vidéo sur ce Instructable. Cela aidera à comprendre pourquoi cette puce changera notre façon de faire les choses pour toujours !

Étape 3: L'affichage Nextion

Image
Image
Capteur BME280
Capteur BME280

De plus, c'est le premier projet que je construis avec un écran tactile Nextion.

Les écrans Nextion sont un nouveau type d'écrans. Ils ont leur propre processeur ARM à l'arrière qui est chargé de piloter l'affichage et de créer l'interface utilisateur graphique. Ainsi, nous pouvons les utiliser avec n'importe quel microcontrôleur et obtenir des résultats spectaculaires.

J'ai préparé un Instructable détaillé sur cet écran Nextion qui explique en détail comment ils fonctionnent, comment les utiliser et leurs inconvénients. Vous pouvez le lire en cliquant ici:

Étape 4: Capteur BME280

Capteur BME280
Capteur BME280

Le BME280 dans un nouveau grand capteur de Bosch.

Jusqu'à présent, j'utilisais le capteur BMP180 qui peut mesurer la température et la pression barométrique. Le capteur BME280 peut mesurer la température, l'humidité et la pression barométrique ! À quel point cela est cool! Nous n'avons besoin que d'un capteur pour construire une station météo complète !

En plus de cela, le capteur est de très petite taille et très facile à utiliser. Le module que nous allons utiliser aujourd'hui utilise l'interface I2C, ce qui facilite la communication avec Arduino. Nous n'avons qu'à connecter l'alimentation et deux autres fils pour le faire fonctionner.

Il existe déjà de nombreuses librairies développées pour ce capteur donc nous pouvons l'utiliser dans nos projets très facilement ! Le coût du capteur est d'environ 5$. Vous pouvez l'obtenir ici

REMARQUE: Nous avons besoin du capteur BME280. Il existe également un capteur BMP280 qui ne propose pas de mesure d'humidité. Attention à bien commander le capteur dont vous avez besoin.

Étape 5: connexion des pièces

Connexion des pièces
Connexion des pièces
Connexion des pièces
Connexion des pièces
Connexion des pièces
Connexion des pièces

La connexion des pièces est simple comme vous pouvez le voir sur le schéma de principe.

Étant donné que le capteur BME280 utilise l'interface I2C, nous n'avons besoin de connecter que deux fils pour communiquer avec ESP32. J'ai attaché le capteur aux broches 26 et 27. En théorie, chaque broche numérique de la carte ESP32 peut être utilisée avec des périphériques I2C. En pratique cependant, j'ai découvert que certaines broches ne fonctionnaient pas car elles sont réservées à d'autres usages. Les broches 26 et 27 fonctionnent très bien !

Pour envoyer des données à l'écran, il suffit de connecter un fil à la broche TX0 de l'ESP32. J'ai dû plier la broche comme ceci pour connecter le fil femelle de l'écran car la carte ESP32 est trop grande pour cette maquette.

Après avoir connecté les pièces, nous devons charger le code sur l'ESP32 et nous devons charger l'interface graphique sur l'écran Nextion. Si vous rencontrez des problèmes pour télécharger le programme sur la carte ESP32, maintenez le bouton BOOT enfoncé après avoir appuyé sur le bouton de téléchargement de l'IDE Arduino.

Pour charger l'interface graphique sur l'écran Nextion, copiez le fichier WeatherStation.tft que je vais partager avec vous sur une carte SD vide. Insérez la carte SD dans la fente pour carte SD à l'arrière de l'écran. Ensuite, allumez l'écran et l'interface graphique sera chargée. Retirez ensuite la carte SD et rebranchez l'alimentation.

Après avoir chargé avec succès le code, le projet se connectera au réseau WiFi, il obtiendra les prévisions météorologiques du site Web openweathermap.org et affichera les lectures du capteur. Voyons maintenant le côté logiciel du projet.

Étape 6: Le code du projet

Le code du projet
Le code du projet
Le code du projet
Le code du projet
Le code du projet
Le code du projet

Pour analyser les données météorologiques, nous avons besoin de l'excellente bibliothèque Arduino JSON. Nous avons également besoin d'une bibliothèque pour le capteur.

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32 ? Arduino JSON:

Voyons maintenant le code.

Dans un premier temps, nous devons définir le SSID et le mot de passe de notre réseau WiFi. Ensuite, nous devons entrer l'APIKEY gratuite du site Web operweathermap.org. Pour créer votre propre clé API, vous devez vous inscrire sur le site Web. L'obtention des données et prévisions météorologiques actuelles est gratuite, mais le site Web offre plus d'options si vous êtes prêt à payer un peu d'argent. Ensuite, nous devons trouver l'identifiant de notre emplacement. Trouvez votre emplacement et copiez l'ID qui se trouve à l'URL de votre emplacement.

Saisissez ensuite l'identifiant de votre ville dans la variable CityID. Entrez également l'altitude de votre ville dans cette variable. Cette valeur est nécessaire pour des lectures précises de la pression barométrique du capteur.

const char* ssid = "votreSSID";const char* mot de passe = "votreMotDePasse"; Chaîne CityID = "253394"; //Sparte, Grèce String APIKEY = "votreAPIkey"; #define ALTITUDE 216.0 // Altitude à Sparte, Grèce

Nous sommes maintenant prêts à passer à autre chose.

Dans un premier temps, nous initialisons le capteur, et nous nous connectons au réseau WiFi. Ensuite, nous demandons des données météorologiques au serveur.

Nous obtenons une réponse avec les données météo au format JSON. Avant d'envoyer les données à la bibliothèque JSON, je supprime manuellement certains caractères qui me posaient problème. Ensuite, la bibliothèque JSON prend le relais, et nous pouvons facilement enregistrer les données dont nous avons besoin dans des variables. Après avoir conservé les données dans des variables, il suffit de les afficher à l'écran et d'attendre une heure avant de demander de nouvelles données au serveur. La seule information que je présente est la météo, mais vous pouvez afficher plus d'informations si vous le souhaitez. Tout est enregistré ici dans des variables. Ensuite, nous lisons la température, l'humidité et la pression barométrique du capteur et nous envoyons les données à l'écran Nextion.

Pour mettre à jour l'affichage, nous envoyons simplement quelques commandes au port série comme ceci:

void showConnectingIcon(){ Serial.println(); Commande de chaîne = "weatherIcon.pic=3"; Serial.print(commande); endNextionCommand(); }

L'interface graphique Nextion se compose d'un arrière-plan, de quelques zones de texte et d'une image qui change en fonction des prévisions météorologiques. Veuillez regarder le didacticiel d'affichage Nextion pour plus d'informations. Vous pouvez rapidement concevoir votre propre interface graphique si vous le souhaitez et y afficher plus de choses.

Comme toujours, vous pouvez trouver le code du projet joint à ce Instructable

Étape 7: Réflexions finales et améliorations

Réflexions finales et améliorations
Réflexions finales et améliorations

Comme vous pouvez le voir, un créateur expérimenté peut aujourd'hui créer des projets passionnants en quelques heures avec quelques lignes de code et seulement trois parties ! Un projet comme celui-ci aurait été impossible à réaliser il y a encore deux ans !

Bien sûr, ce n'est que le début du projet. J'aimerais y ajouter de nombreuses fonctionnalités, comme des graphiques, des fonctionnalités tactiles qui manquent maintenant, peut-être un écran plus grand et bien sûr un beau boîtier imprimé en 3D. Je vais également concevoir une interface graphique et des icônes plus esthétiques. J'ai des idées très fraîches à mettre en œuvre !

J'aimerais avoir votre avis sur le projet d'aujourd'hui. Quel type de fonctionnalités voulez-vous que j'ajoute au projet ? Aimez-vous son apparence? Comment voulez-vous le voir évoluer ? Veuillez poster vos idées dans la section commentaires ci-dessous; J'aime lire vos pensées!

Concours sans fil
Concours sans fil
Concours sans fil
Concours sans fil

Finaliste du concours sans fil

Conseillé: