Tutoriel ESP32 43/55 - Station Météo IoT Internet | Kit d'apprentissage IoT ESP32 de SunFounder
Dans ce tutoriel, nous allons construire une station météo connectée à Internet en utilisant l'ESP32 et sa carte d'extension caméra de SunFounder. Ce projet permet à l'ESP32 de récupérer des données météorologiques en temps réel, y compris la température et l'humidité, et de les afficher sur un écran LCD. Cette application met non seulement en valeur les capacités de l'ESP32, mais démontre également comment récupérer et analyser des données à partir d'une API externe.

Au fur et à mesure que nous avançons dans le tutoriel, nous allons câbler les composants, configurer le code et nous assurer que tout fonctionne harmonieusement ensemble. Le résultat final sera une station météo entièrement fonctionnelle qui met à jour ses relevés toutes les 10 secondes, fournissant un affichage clair et concis des conditions météorologiques actuelles (dans la vidéo à 00:30).
Matériel expliqué
Les principaux composants utilisés dans ce projet comprennent le microcontrôleur ESP32, un écran LCD et le câblage nécessaire. L'ESP32 est équipé d'une connexion Wi-Fi et Bluetooth intégrée, ce qui lui permet de se connecter à Internet et de récupérer des données. L'écran LCD affichera les informations météorologiques actuelles, y compris la température et l'humidité.
L'écran LCD que nous utilisons est un affichage de 16x2 caractères, ce qui signifie qu'il peut afficher deux lignes de 16 caractères chacune. Cela suffira pour notre sortie d'informations météorologiques. L'ESP32 communiquera avec l'écran LCD via I2C, ce qui simplifie le câblage en n'utilisant que deux lignes de données.
Détails de la fiche technique
| Fabricant | Espressif |
|---|---|
| Numéro de pièce | ESP32-WROOM-32 |
| Tension logique/IO | 3.3 V |
| Tension d'alimentation | 3,0-3,6 V |
| Courant de sortie (par canal) | 12 mA max |
| Courant de crête (par canal) | 40 mA |
| Directive sur la fréquence PWM | 1 kHz |
| Seuils logiques d'entrée | 0,3 V (bas), 0,7 V (haut) |
| Chute de tension / RDS(on)/ saturation | 0,5 V |
| Limites thermiques | -40 à 85 °C |
| Paquet | QFN48 |
| Notes / variantes | Comprend plusieurs variantes pour différentes applications |
- Assurez-vous que l'ESP32 est alimenté par une source stable de 3,3 V.
- Utilisez une base commune pour tous les composants afin d'éviter les problèmes de communication.
- Vérifiez l'adresse I2C de l'écran LCD à l'aide d'un scanner I2C.
- Surveillez l'état de la connexion Wi-Fi pour éviter les déconnexions lors de la récupération des données.
- Gérer les erreurs de parsing JSON pour renforcer la robustesse dans la récupération des données.
Instructions de câblage

Pour câbler les composants, commencez par connecter l'afficheur LCD à l'ESP32. L'afficheur LCD utilisera l'interface I2C, donc connectez la broche SDA de l'afficheur LCD au GPIO21 sur l'ESP32 et la broche SCL au GPIO22. Assurez-vous de connecter les broches d'alimentation et de masse de l'afficheur LCD aux broches 5V et GND de l'ESP32, respectivement.
Ensuite, assurez-vous que l'ESP32 est alimenté correctement à l'aide de la batterie au lithium fournie ou d'une connexion USB. La batterie offre une portabilité, tandis que la connexion USB est utile pour la programmation et le débogage. Enfin, vérifiez que toutes les connexions sont sécurisées pour éviter tout problème de câblage lâche qui pourrait perturber le fonctionnement.
Exemples de code et guide pas à pas
Dans la phase de configuration de notre programme, nous initialisons la communication série et nous connectons au réseau Wi-Fi en utilisant le SSID et le mot de passe fournis. L'extrait de code suivant gère la connexion Wi-Fi :
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());Ce code garantit que l'ESP32 se connecte au réseau Wi-Fi spécifié avant de procéder à toute récupération de données. Si la connexion échoue, il tentera en permanence de se reconnecter.
Ensuite, nous devons envoyer une requête HTTP GET pour récupérer les données météorologiques. Cela est accompli en utilisant le code suivant :
String serverPath = "http://api.openweathermap.org/data/2.5/weather?q=" + city + "," + countryCode + "&units=metric" + "&APPID=" + openWeatherMapApiKey;
jsonBuffer = httpGETRequest(serverPath.c_str());Ici, nous construisons l'URL pour la requête API, qui inclut la ville, le code du pays et notre clé API.httpGETRequestla fonction est ensuite appelée pour récupérer les données météorologiques.
Enfin, nous analysons la réponse JSON et affichons les données pertinentes sur l'écran LCD :
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(time);
lcd.print(" ");
lcd.print(myObject["weather"][0]["main"]);
lcd.setCursor(0, 1);
lcd.print("T:");
lcd.print(myObject["main"]["temp"]);
lcd.print("\xDF"); // "°" char
lcd.print("C ");
lcd.print("H:");
lcd.print(myObject["main"]["humidity"]);
lcd.print("%");Ce extrait de code met à jour l'affichage LCD avec l'heure actuelle, les conditions météorologiques, la température et l'humidité. Il efface l'affichage précédent et positionne le curseur aux endroits appropriés pour chaque ligne.
Démonstration / À quoi s'attendre
Après un câblage et une programmation réussis, votre station météorologique se connectera au Wi-Fi et commencera à récupérer les données météorologiques toutes les 10 secondes. Vous verrez la température actuelle, l'humidité et les conditions météorologiques affichées sur l'écran LCD. Si l'ESP32 échoue à se connecter au Wi-Fi, il imprimera un message d'erreur sur le moniteur série.
Soyez attentif aux limites d'appels API pour éviter d'être bloqué par le service OpenWeatherMap. Si vous rencontrez des problèmes de récupération de données, vérifiez votre clé API et assurez-vous que votre ville et votre code de pays sont correctement spécifiés (dans la vidéo à 15:45).
Horodatages vidéo
- 00:00 Début
- 2:00 introduction au projet
- 5:04 Compte OpenWeather
- 6:11 Câblage
- 8:05 Code Arduino expliqué
- 14:13 JASON Éléments dans le code
- 20:23 Sélection de la carte ESP32 et du port COM dans l'IDE Arduino
- 22:05 Démonstration de la station météo sur LCD1602
- 23:45 Démonstration de la station météorologique sur LCD2004
Common Course Links
Common Course Files
Ressources et références
-
DocumentationTutoriel ESP32 43/55 - Page doc SunFounder pour Station Météo Internet IoTdocs.sunfounder.com
Fichiers📁
Aucun fichier disponible.