Station météo interactive Nextion HMI avec Arduino Mega et capteurs
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino Mega 2560 | 1 |
| Shield prototype Arduino Mega | 1 |
| Écran Nextion HMI 2,4" | 1 |
| Lecteur de carte SD | 1 |
| Capteur température/humidité DHT22 | 1 |
| Capteur atmosphérique BME280 (température, humidité, pression) | 1 |
| Module RTC DS3231 | 1 |
| Récepteur 433MHz RXB6 (superhétérodyne) | 1 |
| Résistance 10 kΩ | 1 |
| Résistance 475 Ω | 1 |
| Timer NE555 | 1 |
| Alimentation AC-DC 5V | 1 |
Outils nécessaires
- Fer à souder
Applications et services en ligne
- Arduino IDE
- Nextion Editor - Pour concevoir les interfaces graphiques
À propos du projet
Pourquoi Nextion ? Économiser les ressources de l'Arduino
Les interfaces graphiques riches consomment beaucoup de mémoire (bibliothèques graphiques, stockage d'images sur carte SD). L'Arduino a des ressources limitées. L'écran Nextion change la donne : il gère lui-même les graphiques, communique via série simple, et ne demande pas plus de ressources qu'un LCD monochrome. Une station météo complète avec historique et graphiques devient possible sur Arduino Mega 2560 (pas sur Uno, mémoire insuffisante).
L'idée principale
Partant de capteurs météo externes existants (type Oregon THGN123N), on crée une unité centrale qui :
- Reçoit les données sans fil (température, humidité, pression)
- Affiche les mesures en temps réel avec graphismes attractifs
- Enregistre l'historique sur carte SD avec horodatage
- Trace des graphiques d'évolution
- Prévoit la météo selon les variations de pression
Innovation : le fond d'écran entier change selon la météo (pas juste une petite icône).
Gestion des écrans Nextion (contrainte : pas de transparence)
Le firmware Nextion ne gère pas la transparence. Solution : créer des écrans complets pour chaque combinaison météo/jour-nuit, avec fonds d'écran intégrés et zones de texte aux arrière-plans assortis. 8 écrans nécessaires :
- Ensoleillé jour / nuit
- Nuageux jour / nuit
- Pluvieux jour / nuit
- Neigeux jour / nuit
Tous partagent les mêmes noms de widgets (température, humidité, pression). L'Arduino sélectionne l'écran approprié puis met à jour les valeurs.
Écran principal : organisation des données
Ligne supérieure : capteur intérieur (température, humidité), pression atmosphérique, date/heure. La pression étant identique dedans/dehors, un seul capteur (BME280) dans l'unité centrale suffit.
Gauche : capteur extérieur principal (température, humidité). Son ID est configurable via l'écran de réglage (attendre ~2 min que tous les capteurs émettent).
Droite : défilement de tous les capteurs (ID, température, humidité). Supporte jusqu'à 4 capteurs externes. Si un seul capteur externe, l'intérieur s'affiche aussi à droite.
Le module RTC DS3231 fournit l'heure précise pour : horodatage SD, prévision jour/nuit, gestion luminosité écran.
Autres écrans
- Lever/coucher de soleil & âge de la lune (taper sur la date)
- Réglages (taper sur l'heure) : ID capteur principal, heures jour/nuit, luminosité
- Historique graphique (taper sur température ou pression)
Écran d'historique : deux modes
Taper sur le graphique pour basculer : 1 jour ou 8 jours.
- Barre gauche : sélection du capteur (ID 0 = intérieur)
- Barre haute : type de données (pression, température, humidité)
Écran de configuration
- Choix du capteur externe principal
- Heures de transition jour/nuit (luminosité)
- Niveau de luminosité écran
Prévention des blocages : watchdog matériel
Un circuit watchdog externe basé sur un NE555 réinitialise l'Arduino via la broche A2 si aucun signal n'est reçu pendant 2-3 minutes. Réutilisable dans d'autres projets.
Conclusion
Station météo à l'affichage riche, stable depuis plus de 6 mois.
Code source
Weather_nextion.ino sur GitHub
Schéma complet
Processus de fabrication
- Créer un jeu Pong classique sur Arduino UNO avec écran OLED – Tutoriel étape par étape
- Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
- Moniteur de Température et Horloge Temps Réel Arduino avec Écran TFT 3.2"
- Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
- Connecter un module GPS NEO‑6M à l'Arduino Mega : Guide pas à pas
- Construire un voltmètre DIY avec Arduino et écran Nokia 5110
- Afficher Température, Humidité et Pression BME280 sur Écran Tactile Nextion
- Kit de Formation Arduino Complet : Mega 2560, Capteurs, Moteurs et PCB Personnalisé
- Construire l'application Fridgeye avec un écran Nextion : guide étape par étape