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. Keypad und Led an ESP8266 umziehen auf ESP32

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

Keypad und Led an ESP8266 umziehen auf ESP32

Geplant Angeheftet Gesperrt Verschoben Microcontroller
8 Beiträge 2 Kommentatoren 665 Aufrufe 2 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.
  • S Abwesend
    S Abwesend
    Shadowhunter23
    schrieb am zuletzt editiert von
    #1

    Hallo,

    aktuell arbeite ich mit zwei Wemos D1 mini. Auf dem einen läuft das Script siehe Spoiler. Auf dem zweiten Wemos D1 mini lauft espeasy um damit per https://www.letscontrolit.com/wiki/index.php/GPIO 6 Leds an und auszuschalten. Die Eingabe der Zahlen wird in einem Blockly von hier https://www.youtube.com/watch?v=wA2XRDtUhYs verarbeitet.

    Wird eine Zahl / Raute / Stern am Keypad eingegeben wird per request die jeweiligen Leds eingeschalten oder ausgeschalten (4 weiße, 1 grüne und 1 rote Led ) :
    http://espeasy_ip/control?cmd=PWM,12,50 an
    http://espeasy_ip/control?cmd=gpio,12,0 aus

    Jetzt würde ich gerne von den zwei Wemos D1 mini auf einen ESP32 wechseln. Dann fehlt mir aber die PWM Funktion um die Leds zu steuern. Gibt es jemand der mir helfen würde den Code für den PWM request einzubauen?

    #include <ESP8266WiFi.h>
    #include <Keypad.h>
    #include <PubSubClient.h>
    
    // SSID eintragen
    const char* ssid = "ssid";
    // WLAN Passwort
    const char* password = "password";
    
    // MQTT Server IP
    const char* mqttServer = "broker_ip";
    // MQTT PORT
    const int mqttPort = 1883;
    // MQTT User
    const char* mqttUser = "User";
    // MQTT Passwort
    const char* mqttPassword = "password";
    
    //Hostname für WIFI und MQTT (so wird der ESP dann angezeigt)
    #define hostid "Keypad" 
    
    // MQTT Hauptpfad Konfigurieren
    #define geraet "Keypad/" 
    
    // ab hier muss nichts geändert werden
    
    WiFiClient espClient;
    PubSubClient client(espClient);
    
    const byte ROWS = 4; //four rows
    const byte COLS = 3; //four columns
    
    char keys[ROWS][COLS] = {
      {'1','2','3'},
      {'4','5','6'},
      {'7','8','9'},
      {'*','0','#'}
    };
    
    // For Arduino Microcontroller
    //byte rowPins[ROWS] = {9, 8, 7, 6}; 
    //byte colPins[COLS] = {5, 4, 3, 2}; 
    
    // For ESP8266 Microcontroller
    byte rowPins[ROWS] = {D1, D2, D3, D4}; 
    byte colPins[COLS] = {D5, D6, D7}; 
    
    // For ESP32 Microcontroller
    //byte rowPins[ROWS] = {23, 22, 3, 21}; 
    //byte colPins[COLS] = {19, 18, 5, 17};
    
    Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
    
    void setup(){
    Serial.begin(115200);
    
      WiFi.hostname(hostid);
      WiFi.begin(ssid, password);
     
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.println("Connecting to WiFi..");
      }
      Serial.println("Connected to the WiFi network");
     
      client.setServer(mqttServer, mqttPort);
      client.setCallback(callback);
     
      while (!client.connected()) {
        Serial.println("Connecting to MQTT...");
     
        if (client.connect(hostid, mqttUser, mqttPassword )) {
     
          Serial.println("connected");  
          Serial.println("IP address: ");
          Serial.println(WiFi.localIP());
     
        } else {
     
          Serial.print("failed with state ");
          Serial.print(client.state());
          delay(2000);
     
        }
      }
     
      client.publish(geraet "Key", "Hello from ESP8266");
      client.subscribe(geraet "Key");
    }
    
    void callback(char* topic, byte* payload, unsigned int length) {
     
      Serial.print("Message arrived in topic: ");
      Serial.println(topic);
     
      Serial.print("Message:");
      for (int i = 0; i < length; i++) {
        Serial.print((char)payload[i]);
      }
     
      Serial.println();
      Serial.println("-----------------------");
     
    }
    
    void loop() {
    
    client.loop();
    while (!client.connected()) {
    Serial.print("Attempting connected to the WiFi network...");
    Serial.println();
    if (client.connect(hostid, mqttUser, mqttPassword )) {
    Serial.println("connected");
    }
      else{
       delay(5000);
      }
    }
    
      char key = keypad.getKey();
    
      if (key == '0'){
        Serial.println(key);
        client.publish(geraet "Key", "0");
      }
      if (key == '1'){
        Serial.println(key);
        client.publish(geraet "Key", "1");
      }
      if (key == '2'){
        Serial.println(key);
        client.publish(geraet "Key", "2");
      }
      if (key == '3'){
        Serial.println(key);
        client.publish(geraet "Key", "3");
      }
      if (key == '4'){
        Serial.println(key);
        client.publish(geraet "Key", "4");
      }
      if (key == '5'){
        Serial.println(key);
        client.publish(geraet "Key", "5");
      }
      if (key == '6'){
        Serial.println(key);
        client.publish(geraet "Key", "6");
      }
      if (key == '7'){
        Serial.println(key);
        client.publish(geraet "Key", "7");
      }
      if (key == '8'){
        Serial.println(key);
        client.publish(geraet "Key", "8");
      }
      if (key == '9'){
        Serial.println(key);
        client.publish(geraet "Key", "9");
      }
      if (key == '*'){
        Serial.println(key);
        client.publish(geraet "Key", "*");
      }
      if (key == '#'){
        Serial.println(key);
        client.publish(geraet "Key", "#");
      }
    
    }
    

    Proxmox 9 HA-Cluster mit 3x HP prodesk 400 G6 i5
    Bei einem downvote bitte melden, es könnte sein, dass dieser ungewollt ist!

    D 1 Antwort Letzte Antwort
    0
    • S Shadowhunter23

      Hallo,

      aktuell arbeite ich mit zwei Wemos D1 mini. Auf dem einen läuft das Script siehe Spoiler. Auf dem zweiten Wemos D1 mini lauft espeasy um damit per https://www.letscontrolit.com/wiki/index.php/GPIO 6 Leds an und auszuschalten. Die Eingabe der Zahlen wird in einem Blockly von hier https://www.youtube.com/watch?v=wA2XRDtUhYs verarbeitet.

      Wird eine Zahl / Raute / Stern am Keypad eingegeben wird per request die jeweiligen Leds eingeschalten oder ausgeschalten (4 weiße, 1 grüne und 1 rote Led ) :
      http://espeasy_ip/control?cmd=PWM,12,50 an
      http://espeasy_ip/control?cmd=gpio,12,0 aus

      Jetzt würde ich gerne von den zwei Wemos D1 mini auf einen ESP32 wechseln. Dann fehlt mir aber die PWM Funktion um die Leds zu steuern. Gibt es jemand der mir helfen würde den Code für den PWM request einzubauen?

      #include <ESP8266WiFi.h>
      #include <Keypad.h>
      #include <PubSubClient.h>
      
      // SSID eintragen
      const char* ssid = "ssid";
      // WLAN Passwort
      const char* password = "password";
      
      // MQTT Server IP
      const char* mqttServer = "broker_ip";
      // MQTT PORT
      const int mqttPort = 1883;
      // MQTT User
      const char* mqttUser = "User";
      // MQTT Passwort
      const char* mqttPassword = "password";
      
      //Hostname für WIFI und MQTT (so wird der ESP dann angezeigt)
      #define hostid "Keypad" 
      
      // MQTT Hauptpfad Konfigurieren
      #define geraet "Keypad/" 
      
      // ab hier muss nichts geändert werden
      
      WiFiClient espClient;
      PubSubClient client(espClient);
      
      const byte ROWS = 4; //four rows
      const byte COLS = 3; //four columns
      
      char keys[ROWS][COLS] = {
        {'1','2','3'},
        {'4','5','6'},
        {'7','8','9'},
        {'*','0','#'}
      };
      
      // For Arduino Microcontroller
      //byte rowPins[ROWS] = {9, 8, 7, 6}; 
      //byte colPins[COLS] = {5, 4, 3, 2}; 
      
      // For ESP8266 Microcontroller
      byte rowPins[ROWS] = {D1, D2, D3, D4}; 
      byte colPins[COLS] = {D5, D6, D7}; 
      
      // For ESP32 Microcontroller
      //byte rowPins[ROWS] = {23, 22, 3, 21}; 
      //byte colPins[COLS] = {19, 18, 5, 17};
      
      Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
      
      void setup(){
      Serial.begin(115200);
      
        WiFi.hostname(hostid);
        WiFi.begin(ssid, password);
       
        while (WiFi.status() != WL_CONNECTED) {
          delay(500);
          Serial.println("Connecting to WiFi..");
        }
        Serial.println("Connected to the WiFi network");
       
        client.setServer(mqttServer, mqttPort);
        client.setCallback(callback);
       
        while (!client.connected()) {
          Serial.println("Connecting to MQTT...");
       
          if (client.connect(hostid, mqttUser, mqttPassword )) {
       
            Serial.println("connected");  
            Serial.println("IP address: ");
            Serial.println(WiFi.localIP());
       
          } else {
       
            Serial.print("failed with state ");
            Serial.print(client.state());
            delay(2000);
       
          }
        }
       
        client.publish(geraet "Key", "Hello from ESP8266");
        client.subscribe(geraet "Key");
      }
      
      void callback(char* topic, byte* payload, unsigned int length) {
       
        Serial.print("Message arrived in topic: ");
        Serial.println(topic);
       
        Serial.print("Message:");
        for (int i = 0; i < length; i++) {
          Serial.print((char)payload[i]);
        }
       
        Serial.println();
        Serial.println("-----------------------");
       
      }
      
      void loop() {
      
      client.loop();
      while (!client.connected()) {
      Serial.print("Attempting connected to the WiFi network...");
      Serial.println();
      if (client.connect(hostid, mqttUser, mqttPassword )) {
      Serial.println("connected");
      }
        else{
         delay(5000);
        }
      }
      
        char key = keypad.getKey();
      
        if (key == '0'){
          Serial.println(key);
          client.publish(geraet "Key", "0");
        }
        if (key == '1'){
          Serial.println(key);
          client.publish(geraet "Key", "1");
        }
        if (key == '2'){
          Serial.println(key);
          client.publish(geraet "Key", "2");
        }
        if (key == '3'){
          Serial.println(key);
          client.publish(geraet "Key", "3");
        }
        if (key == '4'){
          Serial.println(key);
          client.publish(geraet "Key", "4");
        }
        if (key == '5'){
          Serial.println(key);
          client.publish(geraet "Key", "5");
        }
        if (key == '6'){
          Serial.println(key);
          client.publish(geraet "Key", "6");
        }
        if (key == '7'){
          Serial.println(key);
          client.publish(geraet "Key", "7");
        }
        if (key == '8'){
          Serial.println(key);
          client.publish(geraet "Key", "8");
        }
        if (key == '9'){
          Serial.println(key);
          client.publish(geraet "Key", "9");
        }
        if (key == '*'){
          Serial.println(key);
          client.publish(geraet "Key", "*");
        }
        if (key == '#'){
          Serial.println(key);
          client.publish(geraet "Key", "#");
        }
      
      }
      

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

      @shadowhunter23

      Mehrere Collection Releases von ESPeasy gibt es ja für den ESP32 hast du schon mal geschaut ob dieses PlugIn für das Keypad dort bereits integriert ist wie hier für eine IO Erweiterung per I2C beschrieben?

      PWM kann am ESP ja fast jeder GPIO und der Befehl kann dann direkt per Regel ausgelöst werden.

      Erscheint mir aber nicht so, dass das Plugin P061 von ESPEASY für den ESP32 schon fertig/nutzbar ist. Frage aber besser Mal dort im Forum. Dort kennt man sicher den genauen Status und kann ja nicht schaden, wenn die Entwickler von den Bedarf wissen.

      S 2 Antworten Letzte Antwort
      0
      • D Dieter_P

        @shadowhunter23

        Mehrere Collection Releases von ESPeasy gibt es ja für den ESP32 hast du schon mal geschaut ob dieses PlugIn für das Keypad dort bereits integriert ist wie hier für eine IO Erweiterung per I2C beschrieben?

        PWM kann am ESP ja fast jeder GPIO und der Befehl kann dann direkt per Regel ausgelöst werden.

        Erscheint mir aber nicht so, dass das Plugin P061 von ESPEASY für den ESP32 schon fertig/nutzbar ist. Frage aber besser Mal dort im Forum. Dort kennt man sicher den genauen Status und kann ja nicht schaden, wenn die Entwickler von den Bedarf wissen.

        S Abwesend
        S Abwesend
        Shadowhunter23
        schrieb am zuletzt editiert von Shadowhunter23
        #3

        @dieter_p

        Ich will mein Script schon weiter verwenden und dort das ein- ausschalten der LEDs integrieren. Von espeasy möchte ich ja eigentlich weg.

        Ich hab jetzt mal PCF8574 Port Expander bestellt. Vielleicht ist es doch einfacher alles mit espeasy zu machen.

        Proxmox 9 HA-Cluster mit 3x HP prodesk 400 G6 i5
        Bei einem downvote bitte melden, es könnte sein, dass dieser ungewollt ist!

        1 Antwort Letzte Antwort
        0
        • D Dieter_P

          @shadowhunter23

          Mehrere Collection Releases von ESPeasy gibt es ja für den ESP32 hast du schon mal geschaut ob dieses PlugIn für das Keypad dort bereits integriert ist wie hier für eine IO Erweiterung per I2C beschrieben?

          PWM kann am ESP ja fast jeder GPIO und der Befehl kann dann direkt per Regel ausgelöst werden.

          Erscheint mir aber nicht so, dass das Plugin P061 von ESPEASY für den ESP32 schon fertig/nutzbar ist. Frage aber besser Mal dort im Forum. Dort kennt man sicher den genauen Status und kann ja nicht schaden, wenn die Entwickler von den Bedarf wissen.

          S Abwesend
          S Abwesend
          Shadowhunter23
          schrieb am zuletzt editiert von Shadowhunter23
          #4

          @dieter_p
          Danke für den Hinweis. Ich hab jetzt das Keypad per Expander am espeasy am laufen. :)
          Jetzt kann ich die Leds direkt an den ESP32 anklemmen und komme weg von den zwei ESP8266.

          Proxmox 9 HA-Cluster mit 3x HP prodesk 400 G6 i5
          Bei einem downvote bitte melden, es könnte sein, dass dieser ungewollt ist!

          D 1 Antwort Letzte Antwort
          0
          • S Shadowhunter23

            @dieter_p
            Danke für den Hinweis. Ich hab jetzt das Keypad per Expander am espeasy am laufen. :)
            Jetzt kann ich die Leds direkt an den ESP32 anklemmen und komme weg von den zwei ESP8266.

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

            @shadowhunter23
            Klingt top und prima wenn es klappt.
            Welches Build von ESPEASY hast Du auf dem ESP32 benutzt wo das Plugin 61 drin ist?

            S 2 Antworten Letzte Antwort
            0
            • D Dieter_P

              @shadowhunter23
              Klingt top und prima wenn es klappt.
              Welches Build von ESPEASY hast Du auf dem ESP32 benutzt wo das Plugin 61 drin ist?

              S Abwesend
              S Abwesend
              Shadowhunter23
              schrieb am zuletzt editiert von Shadowhunter23
              #6

              @dieter_p
              Gleich beim ersten collection_A
              Die Eingabe ist etwas verzögert gegen über meinen Sketch aber es funktioniert. Man muss schon gefühlt 2 Sekunden auf der Taste bleiben bis der Scancode ankommt.

              Proxmox 9 HA-Cluster mit 3x HP prodesk 400 G6 i5
              Bei einem downvote bitte melden, es könnte sein, dass dieser ungewollt ist!

              1 Antwort Letzte Antwort
              1
              • D Dieter_P

                @shadowhunter23
                Klingt top und prima wenn es klappt.
                Welches Build von ESPEASY hast Du auf dem ESP32 benutzt wo das Plugin 61 drin ist?

                S Abwesend
                S Abwesend
                Shadowhunter23
                schrieb am zuletzt editiert von
                #7

                @dieter_p

                Mein Gehäuse. Jetzt noch den Sichtschutz konstruieren.

                4ebc6b17-ecdf-4f25-8f5a-55feeadfc273-image.png

                Proxmox 9 HA-Cluster mit 3x HP prodesk 400 G6 i5
                Bei einem downvote bitte melden, es könnte sein, dass dieser ungewollt ist!

                1 Antwort Letzte Antwort
                0
                • S Abwesend
                  S Abwesend
                  Shadowhunter23
                  schrieb am zuletzt editiert von
                  #8

                  Und fertig:
                  IMG_20231124_121500.jpg

                  Proxmox 9 HA-Cluster mit 3x HP prodesk 400 G6 i5
                  Bei einem downvote bitte melden, es könnte sein, dass dieser ungewollt ist!

                  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

                  769

                  Online

                  32.5k

                  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