Dans le blog d'aujourd'hui, nous souhaitons programmer le module AZ-Touch afin qu'il puisse être utilisé comme calendrier de l'Avent avec des dictons ou des blagues quotidiennes pour rendre votre période d'avant Noël plus variée.
Dans ce cas, le contenu derrière chaque « porte » n’est pas du chocolat, mais peut être personnalisé par vous selon vos envies pour créer un calendrier de l’Avent personnel.
Matériel
Tout ce dont vous avez besoin est :
un Ensemble tactile AZ (2,8" recommandé)
et un Kit de développement ESP32 C
Pour que vous puissiez mettre en œuvre le projet avec succès, il vous suffit désormais d'utiliser l'AZ-Touch, comme dans le Instructions décrit, assemblez et branchez la carte du microcontrôleur dans les barrettes de prises.
Logiciel
Le calendrier de l'Avent doit d'abord afficher le numéro de la porte, puis le texte enregistré après avoir touché l'écran.
Depuis le ESP32 Salle 32 à propos 4 Mo S'il dispose d'une mémoire flash, les 24 textes peuvent être stockés directement dans le programme.
Chauffeur
Si c'est la première fois que vous programmez un ESP32 dans l'IDE Arduino, copiez le lien suivant dans l'IDE Arduino à l'adresse :
Fichier->Préférences->URL du gestionnaire de cartes supplémentaires : https://dl.espressif.com/dl/package_esp32_index.json
et installez le package ESP32 dans l'administration de la carte.
Le pilote (CP2102) de cette carte est déjà installé par le système d'exploitation.
Bibliothèques
Ensuite, les bibliothèques requises doivent être installées :
TFTeSPI est nécessaire pour contrôler l’affichage.
Client NTP fournit toujours la date actuelle via un serveur NTP.
Les bibliothèques peuvent être téléchargées au format .zip en utilisant les liens ci-dessus et ajoutées dans l'IDE Arduino sous Sketch> Inclure la bibliothèque> Ajouter une bibliothèque .ZIP…. Alternativement, cela peut facilement être fait en utilisant le gestionnaire de bibliothèque intégré à l'IDE Arduino.
Coder
Vient ensuite la programmation étape par étape du microcontrôleur.
Pour commencer, nous avons besoin d'un programme qui affiche le numéro de la porte actuelle au milieu de l'écran.
Pour que la bibliothèque puisse communiquer avec l'afficheur, une configuration dans la bibliothèque est nécessaire.
La bibliothèque TFTeSPI a la particularité que toute la configuration est effectuée dans un seul fichier. Ce fichier UserSetup.h doit avoir la configuration suivante pour l'ensemble AZ-Touch :
|
#define USER_SETUP_INFO "User_Setup" |
Pour ne pas avoir à copier complètement le contenu, vous pouvez également ici télécharger.
Passons maintenant à la méthode réelle, qui devrait afficher le numéro au milieu de l'écran :
(Dans les extraits d'exemple suivants, l'intégration de la bibliothèque et la création d'objets via le constructeur sont manquantes. Celles-ci ont été omises pour plus de clarté. Utilisez le programme final pour les tests !)
|
void showNumber(int number) { |
Explication :
Au début, le nombre transmis au programme est converti en chaîne de caractères (chaîne) converti (casting).
L'affichage est ensuite préparé en réglant les pixels sur noir, la couleur de la police sur rouge et la police sur 8.
Ensuite, les coordonnées sont calculées. La coordonnée X est constituée de la différence entre la moitié de la largeur d'affichage et la moitié de la largeur du texte. La position y est décrite par la différence entre la moitié de la hauteur de l'écran et la moitié de la hauteur de la police.
Enfin, le numéro est placé à la position calculée via le println() commande affichée.
Le numéro de porte peut désormais être affiché en grand sur l'écran. Ensuite, nous voulons déterminer la date via le programme afin de pouvoir toujours afficher la porte actuelle.
Un module RTC offre ici une option répandue. Cependant, ceux-ci doivent être réglés manuellement à l'aide du logiciel et peuvent présenter des inexactitudes après un certain temps.
Puisque nous utilisons un ESP32 dans le projet, la fonction WLAN peut facilement être utilisée pour interroger l'heure et la date actuelles via un serveur dit NTP. Celui-ci Serveur de protocole de temps réseau sont basés sur des horloges en temps réel, telles que les horloges atomiques.
Pour la requête simplifiée, le Client NTP La bibliothèque peut être utilisée.
|
int day, mon; |
Explication :
L'heure est d'abord mise à jour par le serveur. Après ceci temps Objet lu et inséré Structure converti.
Le jour et le mois sont ensuite lus à partir de cette structure et stockés dans les variables globales correspondantes.
Maintenant ils suivent configuration() fonction et le boucle() Routine :
|
void setup() { |
Explication :
Dans configuration() l'initialisation a lieu interface série, des Affichages, des Wi-Fi et des tempsClients (NTP).
Dans le boucle() En règle générale, la date est d'abord interrogée et, selon les cas, soit un compte à rebours jusqu'à l'Avent est affiché, soit si le mois correspond à décembre et que le jour est compris entre 1 et 24, le numéro de porte correspondant est affiché. showNumber() Fonction.
L'écran tactile est doté d'une broche d'interruption qui passe à LOW lorsqu'elle est enfoncée. Cela signifie que toucher l'écran peut être fait facilement avec un sans logiciel supplémentaire lecture numérique() la requête peut être vérifiée.
Après avoir touché, le contenu à l'écran sera avec le texte d'un tableau Éléments de chaîne rempli. Ici, afin que des textes plus longs puissent être affichés, le point de départ a été fixé à 0:0, c'est-à-dire le coin supérieur gauche. Le saut de ligne se poursuit alors automatiquement sur la ligne suivante.
Vous pouvez réaliser l'intégralité du projet ici télécharger.
Pour le charger sur le microcontrôleur, dans l'IDE Arduino, sélectionnez :
Outils > Carte > esp32 > Modules de développement ESP32
et puis le bon port série.
Si plusieurs ports apparaissent, débranchez le microcontrôleur et reconnectez-le, le nouveau port qui apparaît est celui du microcontrôleur.
Pour les utilisateurs avancés :
Pouvez-vous préinstaller le générateur de signal dans l'AZ-Touch pour jouer de la musique de Noël en attendant qu'un écran soit touché ?
CONSEIL : utilisez-les Commandes de tonalité à la broche 21. [tone(21, 1000, 100);]
Pour les mélodies complexes, le Bibliothèque TinyRTTTL une solution simple.
Conclusion :
Dans ce projet, vous avez construit un calendrier de l'Avent à partir d'un module AZ-Touch, qui peut vous montrer chaque jour des dictons de Noël, des blagues ou des textes personnalisés.
Il est maintenant temps de collecter du contenu pour chaque jour !
Bien entendu, vous disposez encore d'une marge de manœuvre supplémentaire pour apporter des modifications créatives au logiciel, ce qui rendra le calendrier de l'Avent encore plus personnel ! :)
Amusez-vous à le reproduire :)






