Station météo de ton quartier
Un ESP32, un capteur BME280, et tes mesures s'affichent sur une page web visible depuis n'importe quel téléphone. Tu publies la météo de chez toi.
Imagine une station par école : on aurait enfin des données météo locales pour Pikine, Rufisque, Mbour…
SunuMake Connecté
Tes objets sur Internet — 5 composants inclus.
Les étapes
- 1
Matériel et installation
1 carte ESP32, 1 capteur BME280 (température + humidité + pression), 4 fils. Dans Arduino IDE : Fichier → Préférences, ajoute l'URL `https://espressif.github.io/arduino-esp32/package_esp32_index.json` dans les URLs supplémentaires. Puis Outils → Gestionnaire de cartes → installe « esp32 by Espressif ». Enfin Outils → Gérer les bibliothèques → installe « Adafruit BME280 ».
- 2
Câble le BME280
Le BME280 utilise le bus I2C, comme le LCD. VCC → 3.3 V (⚠️ PAS 5 V, l'ESP32 fonctionne en 3.3 V). GND → GND. SDA → GPIO 21. SCL → GPIO 22.
- 3
Configure ton Wi-Fi
Dans le code, change `SSID` et `PASS` pour mettre le nom et le mot de passe de TON réseau Wi-Fi. ⚠️ Le Wi-Fi doit être en 2.4 GHz — l'ESP32 ne capte pas le 5 GHz.
- 4
Sélectionne la bonne carte
Outils → Type de carte → ESP32 Dev Module. Outils → Port → choisis le port où ton ESP32 est branché. Téléverse.
- 5
Récupère l'adresse IP
Après le téléversement, ouvre le moniteur série à **115200 bauds**. Tu vois apparaître « Adresse IP : 192.168.x.x ». Note cette adresse.
- 6
Ouvre la page sur ton téléphone
Vérifie que ton téléphone est sur le MÊME Wi-Fi que l'ESP32. Ouvre le navigateur, tape l'adresse IP que tu viens de noter. La page « Station météo SunuMake » s'affiche avec les 3 valeurs en gros et en rose. Rafraîchis pour mettre à jour.
Le programme à téléverser
Copie ce code dans l'IDE Arduino, branche ta carte en USB et clique sur le bouton « Téléverser » (la flèche en haut à gauche).
// Station météo connectée — ESP32 + BME280#include <WiFi.h>#include <WebServer.h>#include <Wire.h>#include <Adafruit_BME280.h>const char* SSID = "TON_WIFI";const char* PASS = "TON_MOT_DE_PASSE";WebServer server(80);Adafruit_BME280 bme;void handleRoot() { float t = bme.readTemperature(); float h = bme.readHumidity(); float p = bme.readPressure() / 100.0; // Pa → hPa String html = "<html><head><meta charset='utf-8'>" "<meta name='viewport' content='width=device-width,initial-scale=1'>" "<title>Station meteo</title>" "<style>body{font-family:sans-serif;text-align:center;padding:40px;" "background:#f8fafc;color:#0f172a}" ".val{font-size:48px;color:#e11d48;font-weight:bold;margin:12px 0}" "h1{color:#e11d48}</style></head>" "<body><h1>Station meteo SunuMake</h1>" "<p>Temperature</p><div class='val'>" + String(t, 1) + " °C</div>" "<p>Humidite</p><div class='val'>" + String(h, 0) + " %</div>" "<p>Pression</p><div class='val'>" + String(p, 0) + " hPa</div>" "</body></html>"; server.send(200, "text/html", html);}void setup() { Serial.begin(115200); Wire.begin(); if (!bme.begin(0x76)) { Serial.println("BME280 introuvable — verifie le cablage."); while (1) delay(1000); } WiFi.begin(SSID, PASS); Serial.print("Connexion Wi-Fi"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.print("Adresse IP : "); Serial.println(WiFi.localIP()); server.on("/", handleRoot); server.begin();}void loop() { server.handleClient();}Comment ça marche ?
L'ESP32 est une carte avec Wi-Fi et Bluetooth intégrés, beaucoup plus puissante qu'une Arduino UNO. Elle peut faire deux choses simultanément : lire des capteurs ET être un mini-serveur web accessible sur le réseau local.
Le BME280 mesure 3 grandeurs à la fois : température, humidité, pression atmosphérique. Il communique en I2C (les fils SDA et SCL). La bibliothèque Adafruit_BME280 lit ces valeurs avec un simple bme.readTemperature().
La magie de ce projet : WebServer server(80) crée un serveur web qui écoute sur le port 80. Quand tu ouvres l'IP sur ton téléphone, le téléphone envoie une requête HTTP à l'ESP32. La fonction handleRoot() génère une page HTML avec les valeurs actuelles et la renvoie. C'est exactement comme ça que fonctionnent Google, Facebook ou ton site préféré — en plus petit.
Limites à connaître : ta page n'est accessible que depuis le Wi-Fi local. Pour la rendre accessible depuis Internet entier, il faudrait soit ouvrir un port sur ta box (peu sûr), soit utiliser un service comme ThingSpeak ou Blynk qui héberge les données pour toi. Sujet pour un projet niveau Connecté avancé.