Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Microcontroller
  5. CYD Cheap Yellow Display (ESP32-2432S028) & MQTT Adapter

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.5k

CYD Cheap Yellow Display (ESP32-2432S028) & MQTT Adapter

Geplant Angeheftet Gesperrt Verschoben Microcontroller
4 Beiträge 4 Kommentatoren 1.4k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • jayjojaysonJ Offline
    jayjojaysonJ Offline
    jayjojayson
    schrieb am zuletzt editiert von jayjojayson
    #1

    Hallo,

    ich habe mir vor einiger Zeit ein CYD bestellt und es funktioniert soweit auch. Mir gefallen die Teile echt gut und sind wirklich sehr billig. Da könnte man viele Möglichkeiten im Smarhomeinsatz finden und realisieren. Nun wollte ich es zum ersten richtigen Einsatz bringen und über MQTT Temperatur und Luftfeuchtigkeit anzeigen lassen. Dazu sollen noch drei Schalter integriert werden die ebenfalls über MQTT angesteuert werden.

    Also habe ich im iobroker erstmal sicherheitshalber eine neue mqtt Instanz angelegt.
    Screenshot 2024-07-01 015146.png

    Anschließend habe ich mir einen code erzeugen lassen und auf das CYD übertragen. Es verbindet sich auch mit meinem Wlan und im iobroker mit dem mqtt Broker. Dort wird mir das CYD angezeigt. Unter Objekte wird ebenfalls bei Informationen das CYD angezeigt. Das Display bleibt aber bis auf den Sicherheitstext (das man weiß, dass was angezeigt wird) dunkel.
    Screenshot 2024-07-01 014546.png

    Ich bekomme es nicht hin, dass mir weitere Werte auf dem Display angezeigt werden. Habe dann einfach mal zwei neue Variablen als String angelegt, weil das so im code gefordert ist, wenn ich es richtig verstehe und versuche diese Werte nun auf das Display zu projizieren. Irgendwas muss bei der Syntax zur Übertragung falsch sein, aber leider reicht mein Wissen dafür nicht aus. Habe heute schon den ganzen Nachmittag und Abend getestet, aber finde keine Lösung. Freue mich daher über jeden Ansatz der mir weiterhelfen könnte. Danke vorab und Grüße. Vielleicht ist das mit CYD auch für andere hier interessant.

    #include <SPI.h>
    #include <Wire.h>
    #include <TFT_eSPI.h>
    #include <XPT2046_Touchscreen.h>
    #include <WiFi.h>
    #include <PubSubClient.h>
    
    // Display and touch configuration
    #define XPT2046_IRQ 36
    #define XPT2046_MOSI 32
    #define XPT2046_MISO 39
    #define XPT2046_CLK 25
    #define XPT2046_CS 33
    
    SPIClass touchscreenSPI(VSPI);
    XPT2046_Touchscreen touchscreen(XPT2046_CS, XPT2046_IRQ);
    TFT_eSPI tft = TFT_eSPI();
    
    // WiFi and MQTT settings
    const char* ssid = "Home-J";
    const char* password = "xxx";
    const char* mqtt_server = "192.1xx.178.176";
    const int mqtt_port = 1889;
    const char* mqtt_topic = "mqtt.1.";
    const char* mqtt_device_name = "CYD";
    const char* mqtt_user = "MqttServiceBox";
    const char* mqtt_pass = "xxx";
    
    WiFiClient espClient;
    PubSubClient client(espClient);
    
    void setup() {
        // Initialize serial communication
        Serial.begin(115200);
        Serial.println("Starting setup...");
    
        // Initialize WiFi
        WiFi.begin(ssid, password);
        while (WiFi.status() != WL_CONNECTED) {
            delay(500);
            Serial.print(".");
        }
        Serial.println("Connected to WiFi");
    
        // Initialize MQTT
        client.setServer(mqtt_server, mqtt_port);
        client.setCallback(mqttCallback);
    
        // Initialize the display
        tft.init();
        tft.setRotation(1);
        tft.fillScreen(TFT_BLACK);
        tft.setTextColor(TFT_WHITE);
        tft.setTextSize(2);
    
        // Display header
        tft.drawString("Sicherheitstext", 10, 10);
    
        // Initialize touchscreen
        touchscreen.begin(touchscreenSPI);
        touchscreen.setRotation(1);
    
        Serial.println("Setup complete.");
    }
    
    void mqttCallback(char* topic, byte* payload, unsigned int length) {
        String message;
        for (int i = 0; i < length; i++) {
            message += (char)payload[i];
        }
        Serial.print("Message arrived: ");
        Serial.println(message);
        
        // Parse the message for temperature and humidity
        if (message.startsWith("Temperatur:")) {
            String temp = message.substring(11);
            tft.fillRect(0, 30, 240, 20, TFT_BLACK);
            tft.drawString("Temperatur: " + temp + " C", 10, 30);
        } else if (message.startsWith("Luftfeuchtigkeit:")) {
            String hum = message.substring(16);
            tft.fillRect(0, 50, 240, 20, TFT_BLACK);
            tft.drawString("Luftfeucht.: " + hum + " %", 10, 50);
        }
    }
    
    void loop() {
        if (!client.connected()) {
            reconnect();
        }
        client.loop();
    
        // Touchscreen handling (if needed)
        if (touchscreen.touched()) {
            // Handle touch events here
        }
    }
    
    void reconnect() {
        while (!client.connected()) {
            Serial.print("Attempting MQTT connection...");
            if (client.connect(mqtt_device_name, mqtt_user, mqtt_pass)) {
                Serial.println("connected");
                client.subscribe(mqtt_topic);
            } else {
                Serial.print("failed, rc=");
                Serial.print(client.state());
                delay(5000);
            }
        }
    }
    
    
    geschildG R 2 Antworten Letzte Antwort
    0
    • jayjojaysonJ jayjojayson

      Hallo,

      ich habe mir vor einiger Zeit ein CYD bestellt und es funktioniert soweit auch. Mir gefallen die Teile echt gut und sind wirklich sehr billig. Da könnte man viele Möglichkeiten im Smarhomeinsatz finden und realisieren. Nun wollte ich es zum ersten richtigen Einsatz bringen und über MQTT Temperatur und Luftfeuchtigkeit anzeigen lassen. Dazu sollen noch drei Schalter integriert werden die ebenfalls über MQTT angesteuert werden.

      Also habe ich im iobroker erstmal sicherheitshalber eine neue mqtt Instanz angelegt.
      Screenshot 2024-07-01 015146.png

      Anschließend habe ich mir einen code erzeugen lassen und auf das CYD übertragen. Es verbindet sich auch mit meinem Wlan und im iobroker mit dem mqtt Broker. Dort wird mir das CYD angezeigt. Unter Objekte wird ebenfalls bei Informationen das CYD angezeigt. Das Display bleibt aber bis auf den Sicherheitstext (das man weiß, dass was angezeigt wird) dunkel.
      Screenshot 2024-07-01 014546.png

      Ich bekomme es nicht hin, dass mir weitere Werte auf dem Display angezeigt werden. Habe dann einfach mal zwei neue Variablen als String angelegt, weil das so im code gefordert ist, wenn ich es richtig verstehe und versuche diese Werte nun auf das Display zu projizieren. Irgendwas muss bei der Syntax zur Übertragung falsch sein, aber leider reicht mein Wissen dafür nicht aus. Habe heute schon den ganzen Nachmittag und Abend getestet, aber finde keine Lösung. Freue mich daher über jeden Ansatz der mir weiterhelfen könnte. Danke vorab und Grüße. Vielleicht ist das mit CYD auch für andere hier interessant.

      #include <SPI.h>
      #include <Wire.h>
      #include <TFT_eSPI.h>
      #include <XPT2046_Touchscreen.h>
      #include <WiFi.h>
      #include <PubSubClient.h>
      
      // Display and touch configuration
      #define XPT2046_IRQ 36
      #define XPT2046_MOSI 32
      #define XPT2046_MISO 39
      #define XPT2046_CLK 25
      #define XPT2046_CS 33
      
      SPIClass touchscreenSPI(VSPI);
      XPT2046_Touchscreen touchscreen(XPT2046_CS, XPT2046_IRQ);
      TFT_eSPI tft = TFT_eSPI();
      
      // WiFi and MQTT settings
      const char* ssid = "Home-J";
      const char* password = "xxx";
      const char* mqtt_server = "192.1xx.178.176";
      const int mqtt_port = 1889;
      const char* mqtt_topic = "mqtt.1.";
      const char* mqtt_device_name = "CYD";
      const char* mqtt_user = "MqttServiceBox";
      const char* mqtt_pass = "xxx";
      
      WiFiClient espClient;
      PubSubClient client(espClient);
      
      void setup() {
          // Initialize serial communication
          Serial.begin(115200);
          Serial.println("Starting setup...");
      
          // Initialize WiFi
          WiFi.begin(ssid, password);
          while (WiFi.status() != WL_CONNECTED) {
              delay(500);
              Serial.print(".");
          }
          Serial.println("Connected to WiFi");
      
          // Initialize MQTT
          client.setServer(mqtt_server, mqtt_port);
          client.setCallback(mqttCallback);
      
          // Initialize the display
          tft.init();
          tft.setRotation(1);
          tft.fillScreen(TFT_BLACK);
          tft.setTextColor(TFT_WHITE);
          tft.setTextSize(2);
      
          // Display header
          tft.drawString("Sicherheitstext", 10, 10);
      
          // Initialize touchscreen
          touchscreen.begin(touchscreenSPI);
          touchscreen.setRotation(1);
      
          Serial.println("Setup complete.");
      }
      
      void mqttCallback(char* topic, byte* payload, unsigned int length) {
          String message;
          for (int i = 0; i < length; i++) {
              message += (char)payload[i];
          }
          Serial.print("Message arrived: ");
          Serial.println(message);
          
          // Parse the message for temperature and humidity
          if (message.startsWith("Temperatur:")) {
              String temp = message.substring(11);
              tft.fillRect(0, 30, 240, 20, TFT_BLACK);
              tft.drawString("Temperatur: " + temp + " C", 10, 30);
          } else if (message.startsWith("Luftfeuchtigkeit:")) {
              String hum = message.substring(16);
              tft.fillRect(0, 50, 240, 20, TFT_BLACK);
              tft.drawString("Luftfeucht.: " + hum + " %", 10, 50);
          }
      }
      
      void loop() {
          if (!client.connected()) {
              reconnect();
          }
          client.loop();
      
          // Touchscreen handling (if needed)
          if (touchscreen.touched()) {
              // Handle touch events here
          }
      }
      
      void reconnect() {
          while (!client.connected()) {
              Serial.print("Attempting MQTT connection...");
              if (client.connect(mqtt_device_name, mqtt_user, mqtt_pass)) {
                  Serial.println("connected");
                  client.subscribe(mqtt_topic);
              } else {
                  Serial.print("failed, rc=");
                  Serial.print(client.state());
                  delay(5000);
              }
          }
      }
      
      
      geschildG Offline
      geschildG Offline
      geschild
      schrieb am zuletzt editiert von geschild
      #2

      @jayjojayson said in CYD Cheap Yellow Display (ESP32-2432S028) & MQTT Adapter:

      Wie ich das sehe machst du in reconnect() ein subscribe mit mqtt_topic = "mqtt.1." , du muss aber das eigentliche topic, nämlich z.B. "Temperatur" oder "Luftfeuchtigkeit" angeben und für jedes einzelne ein subscribe machen.

      1 Antwort Letzte Antwort
      0
      • jayjojaysonJ jayjojayson

        Hallo,

        ich habe mir vor einiger Zeit ein CYD bestellt und es funktioniert soweit auch. Mir gefallen die Teile echt gut und sind wirklich sehr billig. Da könnte man viele Möglichkeiten im Smarhomeinsatz finden und realisieren. Nun wollte ich es zum ersten richtigen Einsatz bringen und über MQTT Temperatur und Luftfeuchtigkeit anzeigen lassen. Dazu sollen noch drei Schalter integriert werden die ebenfalls über MQTT angesteuert werden.

        Also habe ich im iobroker erstmal sicherheitshalber eine neue mqtt Instanz angelegt.
        Screenshot 2024-07-01 015146.png

        Anschließend habe ich mir einen code erzeugen lassen und auf das CYD übertragen. Es verbindet sich auch mit meinem Wlan und im iobroker mit dem mqtt Broker. Dort wird mir das CYD angezeigt. Unter Objekte wird ebenfalls bei Informationen das CYD angezeigt. Das Display bleibt aber bis auf den Sicherheitstext (das man weiß, dass was angezeigt wird) dunkel.
        Screenshot 2024-07-01 014546.png

        Ich bekomme es nicht hin, dass mir weitere Werte auf dem Display angezeigt werden. Habe dann einfach mal zwei neue Variablen als String angelegt, weil das so im code gefordert ist, wenn ich es richtig verstehe und versuche diese Werte nun auf das Display zu projizieren. Irgendwas muss bei der Syntax zur Übertragung falsch sein, aber leider reicht mein Wissen dafür nicht aus. Habe heute schon den ganzen Nachmittag und Abend getestet, aber finde keine Lösung. Freue mich daher über jeden Ansatz der mir weiterhelfen könnte. Danke vorab und Grüße. Vielleicht ist das mit CYD auch für andere hier interessant.

        #include <SPI.h>
        #include <Wire.h>
        #include <TFT_eSPI.h>
        #include <XPT2046_Touchscreen.h>
        #include <WiFi.h>
        #include <PubSubClient.h>
        
        // Display and touch configuration
        #define XPT2046_IRQ 36
        #define XPT2046_MOSI 32
        #define XPT2046_MISO 39
        #define XPT2046_CLK 25
        #define XPT2046_CS 33
        
        SPIClass touchscreenSPI(VSPI);
        XPT2046_Touchscreen touchscreen(XPT2046_CS, XPT2046_IRQ);
        TFT_eSPI tft = TFT_eSPI();
        
        // WiFi and MQTT settings
        const char* ssid = "Home-J";
        const char* password = "xxx";
        const char* mqtt_server = "192.1xx.178.176";
        const int mqtt_port = 1889;
        const char* mqtt_topic = "mqtt.1.";
        const char* mqtt_device_name = "CYD";
        const char* mqtt_user = "MqttServiceBox";
        const char* mqtt_pass = "xxx";
        
        WiFiClient espClient;
        PubSubClient client(espClient);
        
        void setup() {
            // Initialize serial communication
            Serial.begin(115200);
            Serial.println("Starting setup...");
        
            // Initialize WiFi
            WiFi.begin(ssid, password);
            while (WiFi.status() != WL_CONNECTED) {
                delay(500);
                Serial.print(".");
            }
            Serial.println("Connected to WiFi");
        
            // Initialize MQTT
            client.setServer(mqtt_server, mqtt_port);
            client.setCallback(mqttCallback);
        
            // Initialize the display
            tft.init();
            tft.setRotation(1);
            tft.fillScreen(TFT_BLACK);
            tft.setTextColor(TFT_WHITE);
            tft.setTextSize(2);
        
            // Display header
            tft.drawString("Sicherheitstext", 10, 10);
        
            // Initialize touchscreen
            touchscreen.begin(touchscreenSPI);
            touchscreen.setRotation(1);
        
            Serial.println("Setup complete.");
        }
        
        void mqttCallback(char* topic, byte* payload, unsigned int length) {
            String message;
            for (int i = 0; i < length; i++) {
                message += (char)payload[i];
            }
            Serial.print("Message arrived: ");
            Serial.println(message);
            
            // Parse the message for temperature and humidity
            if (message.startsWith("Temperatur:")) {
                String temp = message.substring(11);
                tft.fillRect(0, 30, 240, 20, TFT_BLACK);
                tft.drawString("Temperatur: " + temp + " C", 10, 30);
            } else if (message.startsWith("Luftfeuchtigkeit:")) {
                String hum = message.substring(16);
                tft.fillRect(0, 50, 240, 20, TFT_BLACK);
                tft.drawString("Luftfeucht.: " + hum + " %", 10, 50);
            }
        }
        
        void loop() {
            if (!client.connected()) {
                reconnect();
            }
            client.loop();
        
            // Touchscreen handling (if needed)
            if (touchscreen.touched()) {
                // Handle touch events here
            }
        }
        
        void reconnect() {
            while (!client.connected()) {
                Serial.print("Attempting MQTT connection...");
                if (client.connect(mqtt_device_name, mqtt_user, mqtt_pass)) {
                    Serial.println("connected");
                    client.subscribe(mqtt_topic);
                } else {
                    Serial.print("failed, rc=");
                    Serial.print(client.state());
                    delay(5000);
                }
            }
        }
        
        
        R Offline
        R Offline
        rodnic
        schrieb am zuletzt editiert von
        #3

        @jayjojayson Hallo, wie hast du dir den code erstellen lassen? Welche Entwicklungsumgebung hast du genutzt?

        D 1 Antwort Letzte Antwort
        0
        • R rodnic

          @jayjojayson Hallo, wie hast du dir den code erstellen lassen? Welche Entwicklungsumgebung hast du genutzt?

          D Offline
          D Offline
          Dieter_P
          schrieb am zuletzt editiert von Dieter_P
          #4

          @rodnic said in CYD Cheap Yellow Display (ESP32-2432S028) & MQTT Adapter:

          @jayjojayson Hallo, wie hast du dir den code erstellen lassen? Welche Entwicklungsumgebung hast du genutzt?

          Wenn man nicht so auf Codierumgebungen steht und bei Adam&Eva also mit zB den Display Treibern (justierung) starten möchte, habe ich gute Erfahrung mit OpenHASP gemacht für ein ESP32-3248S035C (https://www.openhasp.com/0.7.0/hardware/sunton/esp32-3248s035/) dass dort "out of the box" erstmal funktioniert und man sich direkt um seine Applikation kümmern kann. Ist zwar ein Nightly/Beta release aber läuft bei mir absolute stabil und gibt es hier komfortabel per Webinstaller (Sunton .......): https://nightly.openhasp.com/

          Da OpenHASP wohl keine IOB Integration besitzt ist die MQTT Integration recht aufwendig. Warnung vorab, der Mqtt-Adapter (Broker&Client) mag OpenHASP und seine Mqtt Kommunikation nicht. Zum Glück aber der Mqtt (Client only) Adapter. Insofern hab ich für das Display extra einen neuen Broker (Mosquitto) spendiert, aber so läuft es.

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          832

          Online

          32.4k

          Benutzer

          81.6k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe