Le siège social utilise un esp 32 Developer Board qui prend en charge à la fois le Wi-Fi et Blue Tooth. Un écran TFT de 1,8 pouce avec 128 x 160 pixels est utilisé pour l’affichage, qui a également un lecteur de carte SD installé. Enfin, un encoder Rotary avec un interrupteur est utilisé pour l’entrée. Dans les messages suivants, nous allons élargir ce panneau de contrôle avec un menu et avec des fonctions d’installation. Ce panneau de contrôle peut bien sûr également être utilisé comme point de départ pour d’autres applications où l’affichage, l’entrée et la carte SD sont nécessaires.
J’ai décidé de mettre le panneau de contrôle sur le panneau serré et non sur le tableau. Cela a l’avantage d’une stabilité plus élevée et permet au panneau de contrôle d’être installé plus tard dans un boîtier.
Le panneau de commande fini ressemble alors à ceci :
Liste des pièces utilisées:
- ESP 32 Dev Module
- Écran TFT de 1,8 pouce
- Plaque de grille de trou 70mm x 50mm
- Bandes de prise et en-têtes d’épingle
Plan de câblage :
Attention!!
Un changement important au port SW de l’encoder rotary est désormais relié à GPIO14 et au port SW jusqu’à GPIO15. Le changement était nécessaire car GPIO0 et GPIO2 ne devraient pas être utilisés!
L’attention du plan de câblage est reflétée du côté de l’affichage du sandwich, c’est-à-dire l’étiquette broche pour l’ESP32!
Ce qui suit est le début du programme. Le logo est affiché sur l’écran et le lecteur de carte SD est initialisé. Il détecte si une carte SD est dans le lecteur et affiche le résultat en conséquence.
Le programme nécessite deux bibliothèques :
La Bibliothèque Adafruit GFX
et la bibliothèque Adafruit ST7735
#include "adafruit_st7735.h" Bibliothèque spécifique au matériel
Intégration des bibliothèques de polices
#include’a pas de temps à faire/FreeSans9pt7b.h.gt; Font pour Logo
#include 'lt;Fonts/FreeSansBold9pt7b.h’gt; Font pour Logo
#include "spi.h"Lt;SPI.h.gt;
#include sd.hLt;SD.h.gt;
Définition des broches utilisées
#define TFT_CS 5 Ligne de sélection de puces pour l’affichage TFT
#define TFT_RST 22 Ligne de réinitialisation pour TFT
#define TFT_DC 21 Ligne de données/commande pour TFT
#define SD_CS 16 Ligne de sélection de puce pour la carte SD
tft instance
Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_RST);
Fonction pour afficher le texte sur l’écran dans une couleur spécifique
affichage videTexte (char texte , couleur uint16_t)
tft.setTextColor (couleur);
tft.setTextWrap (vrai); rupture automatique de ligne est activée
tft.print (texte);
}
Fonction pour afficher le texte à tout moment (x,y) sur
Affichage. La couleur peut être sélectionnée
affichage videTexte(uint16_t x, uint16_t y, char texte, uint16_t couleur)
tft.setCursor (x, y);
displayText(texte, couleur);
}
Fonction pour afficher le logo en haut de l’écran
affichage videLogo ()
Fond de remplissage
tft.fillRect (0.0.127.30.ST7735_YELLOW);
Cadres de dessin
tft.drawRect(1 125 28 ST7735_BLUE);
Font pour le mot HOME gras
tft.setFont (et FreeSansBold9pt7b);
Curseurs de positionnement
tft.setCursor (7,20);
Texte de sortie en noir
tft.setTextColor (ST7735_BLACK);
tft.print ("HOME");
Font pour le mot contrôle pas audacieux
tft.setFont (et FreeSans9pt7b);
Texte de sortie en rouge
tft.setTextColor (ST7735_RED);
tft.print ("Control");
Reset police par défaut
tft.setFont(NULL);
}
configuration vide()
Serial.begin(115200);
tft initialiser et fond noir
tft.initR (INITR_BLACKTAB);
tft.fillScreen (ST7735_BLACK);
Afficher le logo
displayLogo ();
Initialiser la carte SD et afficher le résultat
si (! SD.begin (SD_CS))
displayText(20,60," No SD-Card", ST7735_YELLOW);
- autre
displayText(20,60," SD-Card OK", ST7735_GREEN);
}
}
boucle vide()
}
3 commentaires
Andreas Wolter
Der Schaltplan wurde ausgetauscht.
Grüße.
Volker
Hallo,
vielen Dank für die Anleitung.
Könnt ihr bitte die Grafiken so einstellen, dass die Schrift lesbar ist.
Das wäre sehr hilfreich.
Danke :)
Volker
Frank
Hallo Herr Lechner,
können Sie bitte den Verdrahtungsplan so darstellen das man die Pinnummern lesen kann,
mein ESP32 hat eine etwas andere Belegung ,deshalb kann ich mich nicht nach den Verbindungslinien
richten.
mit freundlichen Grüßen
Frank