Projekt HOMEControl Teil 2 Die Zentrale - AZ-Delivery

Die Zentrale verwendet ein ESP 32 Developer Board das sowohl WLAN als auch Blue Tooth unterstützt. Zur Anzeige wird ein 1,8 Zoll TFT Display mit 128 x 160 Bildpunkten, das außerdem einen SD-Card Reader eingebaut hat, verwendet. Zur Eingabe kommt schließlich ein Rotary-Encoder mit Schalter zur Anwendung. In den folgenden Beiträgen werden wir diese Zentrale mit einem Menü und mit Setup Funktionen erweitern. Diese Zentrale kann natürlich auch als Ausgangspunkt für andere Anwendungen verwendet werden, bei denen Display, Eingabe und SD-Card benötigt werden.

Ich habe mich entschlossen die Zentrale fest zu verdrahten und nicht über Steckbrett. Das hat den Vorteil einer höheren Stabilität und ermöglicht es die Zentrale später in ein Gehäuse einzubauen.

Die fertige Zentrale sieht dann so aus:

Liste der verwendeten Bauteile:

Verdrahtungsplan:

ACHTUNG!!

Wichtige Änderung der Anschluss CLK des Rotary-Encoders ist jetzt mit GPIO14 und der Anschluss SW jetzt mit GPIO15 verbunden. Die Änderung war notwendig, da GPIO0 und GPIO2 nicht verwendet werden sollten!

Schaltplan

 ESP32

 

Im folgenden der Beginn des Programms. Am Display wird das Logo angezeigt und der SD-Card Reader wird initialisiert. Es wird erkannt ob eine SD-Karte im Reader steckt und das Ergebnis entsprechend Angezeigt.

 Das Programm benötigt zwei Bibliotheken:

Die Adafruit GFX Library


und die Adafruit ST7735 Library


 

 

#include // Core graphics library
#include // Hardware-specific library
//Einbindung von Font Bibliotheken
#include <Fonts/FreeSans9pt7b.h> //Font für Logo
#include <Fonts/FreeSansBold9pt7b.h> //Font für Logo

#include <SPI.h>
#include <SD.h>

//Definition der verwendeten Pins
#define TFT_CS 5 // Chip select line for TFT display
#define TFT_RST 22 // Reset line for TFT
#define TFT_DC 21 // Data/command line for TFT

#define SD_CS 16 // Chip select line for SD card


//tft instance
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

//Funktion zum Anzeigen eines Textes am Display in einer bestimmten Farbe
void displayText(char *text , uint16_t color) {
tft.setTextColor(color);
tft.setTextWrap(true); //automatischer Zeilenumbruch wird aktiviert
tft.print(text);
}

//Funktion zum Anzeigen eines Textes an einem beliebigen Punkt (x,y) auf
//dem Display. Die Farbe kann gewählt werden
void displayText(uint16_t x, uint16_t y, char *text , uint16_t color) {
tft.setCursor(x, y);
displayText(text,color);
}

//Funktion zum Anzeigen des Logos ganz oben am Display
void displayLogo() {
//Hintergrund füllen
tft.fillRect(0,0,127,30,ST7735_YELLOW);
//Rahmen zeichnen
tft.drawRect(1,1,125,28,ST7735_BLUE);
//Font für das Wort HOME fett
tft.setFont(&FreeSansBold9pt7b);
//Cursor positionieren
tft.setCursor(7,20);
//Text in schwarz ausgeben
tft.setTextColor(ST7735_BLACK);
tft.print("HOME");
//Font für das Wort Control nicht fett
tft.setFont(&FreeSans9pt7b);
//Text in rot ausgeben
tft.setTextColor(ST7735_RED);
tft.print("Control");
//Font auf default zurücksetzen
tft.setFont(NULL);
}

void setup() {
Serial.begin(115200);
//tft initialisieren und schwarzer Hintergrund
tft.initR(INITR_BLACKTAB);
tft.fillScreen(ST7735_BLACK);
//Logo anzeigen
displayLogo();
//SD-Karte initialisieren und Ergebnis anzeigen
if (!SD.begin(SD_CS)) {
displayText(20,60,"Keine SD-Card",ST7735_YELLOW);
} else {
displayText(20,60,"SD-Card OK",ST7735_GREEN);
}

}

void loop() {
}

 

DisplaysEsp-32Projekte für fortgeschritteneSmart home

3 comments

Andreas Wolter

Andreas Wolter

Der Schaltplan wurde ausgetauscht.
Grüße.

Volker

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

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

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery