Moniteur de Température et Horloge Temps Réel Arduino avec Écran TFT 3.2"
Composants et Fournitures
| Composant | Quantité |
|---|---|
| Arduino Due | 1 |
| Écran TFT Couleur 3.2" | 1 |
| Module RTC DS3231 | 1 |
| Connecteurs mâles, fils | 1 |
Applications et Services en Ligne
- Arduino IDE
À Propos du Projet
Introduction
Chers amis, bienvenue dans un nouveau tutoriel ! C'est Nick de educ8s.tv et aujourd'hui nous allons voir comment développer cette horloge temps réel et moniteur de température ! C'est parti !
Il y a quelques semaines, j'ai testé cet écran TFT couleur 3.2" pour Arduino avec l'Arduino Mega et le Due. L'écran fonctionne bien, et j'ai construit un projet simple avec. C'est un moniteur de température et une horloge temps réel. En haut, on voit la date et l'heure actuelles, la température actuelle, et en bas, l'Arduino enregistre la température minimale et maximale mesurée. J'ai aussi essayé de concevoir une interface utilisateur basique avec de simples formes. Tout fonctionne bien, c'est un projet très facile et utile à construire. Voyons comment faire !
Étape 1 : Obtenir Tous les Composants
Les pièces nécessaires :
- Arduino Due
- Écran TFT Couleur 3.2"
- Module RTC DS3231
- Connecteurs mâles
- Fils
Le coût du projet est d'environ 22€. Environ 13€ pour l'Arduino Due, 7€ pour l'écran et 2€ pour le module RTC.
Étape 2 : Le Module Horloge Temps Réel DS3231
Le module DS3231 est, comme son nom l'indique, une horloge temps réel. Grâce à sa batterie, il peut garder l'heure pendant des ans grâce à sa consommation minimale.
Le DS3231 est une horloge temps réel I2C à faible coût, extrêmement précise, avec un oscillateur à cristal compensé en température (TCXO) et cristal intégrés. Il intègre une entrée batterie et maintient une heure précise quand l'alimentation principale est coupée. L'intégration du résonateur cristal améliore la précision à long terme et réduit le nombre de pièces en fabrication.
Le RTC maintient secondes, minutes, heures, jour, date, mois et année. La date de fin de mois est automatiquement ajustée pour les mois de moins de 31 jours, incluant les corrections d'année bissextile. L'horloge fonctionne en format 24h ou 12h avec indicateur AM/PM. Deux alarmes programmables et une sortie d'onde carrée programmable sont fournies. Adresse et données sont transférées en série via un bus I2C bidirectionnel.
Le module coûte environ 2€ avec la batterie !
Nous l'utiliserons pour garder l'heure et obtenir les relevés de température !
Étape 3 : L'Écran TFT Couleur 3.2" (HX8357C ou HX8357B)
J'ai toujours voulu un grand écran pour mes projets Arduino. Il y a quelques semaines, j'ai acheté cet écran TFT 3.2" pour Arduino Mega et Due car le prix est si tentant ! Moins de 10€ pour un écran TFT couleur 3.2". À ce prix, on ne peut pas se tromper.
L'écran a une résolution de 480x320 pixels et un adaptateur carte SD au dos. Je n'ai pas encore utilisé la fonctionnalité carte SD. J'essaierai plus tard. Si vous regardez bien, l'écran utilise aussi un régulateur 3.3V donc il fonctionne avec des niveaux logiques 5V et 3.3V.
L'écran existe en deux variantes : contrôleur HX8357C ou HX8357B. Heureusement, on peut utiliser la même bibliothèque pour les deux.
Bibliothèque Écran : Après téléchargement, ouvrez le fichier User_Setup.h, commentez la ligne 13 et décommentez la ligne 14 si votre écran utilise le pilote HX8357C comme le mien.
Étape 4 : Connecter les Composants
J'utilise l'Arduino Due pour ce projet, bien que je puisse utiliser l'Arduino Mega légèrement moins cher mais plus lent. Le Due est beaucoup plus rapide et a beaucoup plus de mémoire, c'est pourquoi je le préfère.
D'abord, connectons toutes les pièces. J'utilise ces connecteurs mâles pour connecter le module RTC à l'Arduino Due. Il faut 4 broches : deux pour l'alimentation et deux pour l'interface I2C. On les plie comme ceci et on connecte l'une au 3.3V de l'Arduino Due, l'autre au GND, et les deux autres aux broches SDA et SCL. Avec des fils femelles, on connecte le module à la carte. C'est tout.
Maintenant, on peut fixer l'écran sur la carte. Vous n'avez pas à connecter ces deux broches à l'Arduino, je les laisse flottantes.
Maintenant, on peut alimenter le projet. Comme vous voyez, ça marche ! C'est si facile ! Passons au logiciel.
Étape 5 : Le Code du Projet
Nous utilisons deux bibliothèques :
- Bibliothèque Écran (TFT_HX8357_Due)
- Bibliothèque DS3231 (Sodaq_DS3231)
Installez-les et le projet compilera sans erreur !
La première chose est de régler l'heure sur le module RTC si ce n'est pas déjà fait. Entrez la date et l'heure actuelles dans la fonction setRTCTime :
void setRTCTime(){
DateTime dt(2016, 4, 4, 13, 56, 30, 1); // Année, Mois, Jour, Heure, Minutes, Secondes, JourSemaine
rtc.setDateTime(dt);
}
Décommentez l'appel de la fonction dans setup() :
void setup(){
rtc.begin();
tft.init();
tft.setRotation(1);
tft.fillScreen(0xC618);
delay(100);
printUI();
setRTCTime();
}
Téléversez le programme. L'heure est maintenant réglée. Mais ensuite, il faut recommenter l'appel de setRTCTime et téléverser à nouveau :
void setup(){
rtc.begin();
tft.init();
tft.setRotation(1);
tft.fillScreen(0xC618);
delay(100);
printUI();
//setRTCTime();
}
Le code est simple. On affiche l'interface utilisateur puis on affiche la date, l'heure et la température.
void loop(){
float temperature = rtc.getTemperature();
getAndPrintTime();
printTemperature(temperature);
if(temperature > maxTemperature) {
maxTemperature = temperature;
updateMaxTemperature();
}
if(temperature < minTemperature) {
minTemperature = temperature;
updateMinTemperature();
}
delay(1000);
}
Code complet téléchargeable sur le site du projet : https://educ8s.tv/arduino-real-time-clock-32/
Étape 6 : Réflexions Finales
Comme vous voyez, avec quelques lignes de code et à très faible coût, on peut construire un projet très utile. Je vais continuer à travailler dessus pour en faire une station météo avancée, avec plus de capteurs, graphiques et capacités WiFi.
L'Arduino Due étant très rapide et ayant beaucoup de mémoire, je pense qu'il est la carte idéale pour ce projet. Qu'en pensez-vous ? Comment voulez-vous le voir évoluer ?
Postez vos commentaires ou idées ci-dessous !
Code
Extraits de code disponibles. Bibliothèques sur GitHub :
Processus de fabrication
- Créer des effets audio pilotés par capteurs avec le kit Satellite CCRMA
- Horloge Arduino temps réel pour les heures de prière islamiques
- Horloge à mots précise : affichage de l'heure en mots à la minute près
- Station météo interactive Nextion HMI avec Arduino Mega et capteurs
- Horloge numérique TM1637 avec réglage heure/alarme – Prototype Arduino Nano
- Construire un voltmètre DIY avec Arduino et écran Nokia 5110
- Afficher Température, Humidité et Pression BME280 sur Écran Tactile Nextion
- Arduino et MPU6050 : Contrôle précis de servo-moteur avec SG90 et MG996R
- Construire un Réveil Fiable avec RTC DS1302 et Arduino UNO