INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
ESP32 mittels Keypad-Interrupt aus Deepsleep aufwachen lassen
16.04.2019, 16:45
Beitrag #1
ESP32 mittels Keypad-Interrupt aus Deepsleep aufwachen lassen
Hallo,

ich möchte gerne einen ESP32 - sobald eine Taste auf einem Keypad gedrückt wurde - aus dem Deepsleep aufwachen lassen.

Soweit die Theorie - doch leider klappt es bei mir nicht und ich komme zur Zeit nicht weiter. Vielleicht hat ja jemand von euch eine Idee zur Lösung...
Nachfolgend noch zwei Sketches, die soweit funktionieren und praktisch "zusammengefügt" werden müssten...

Keypad-Sketch:

Code:
#include <Keypad.h>

const byte ROWS = 4; // Four rows
const byte COLS = 3; // Three columns
// Define the Keymap
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'#','0','*'}
};
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = { A4, A5, A14, A13 };
// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = { A17, A16, A10 };

// Create the Keypad
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

#define ledpin A12

void setup()
{
  pinMode(ledpin,OUTPUT);
  digitalWrite(ledpin, HIGH);
  delay(2000);
  digitalWrite(ledpin,LOW);
  Serial.begin(115200);
}

void loop()
{
  char key = kpd.getKey();
  if(key)  // Check for a valid key.
  {
    switch (key)
    {
      case '*':
        digitalWrite(ledpin, LOW);
        break;
      case '#':
        digitalWrite(ledpin, HIGH);
        break;
      default:
        Serial.println(key);
    }
  }
}

Deepsleep External WakeUp (EXT0):
Code:
RTC_DATA_ATTR int bootCount = 0;

/*
  Method to print the reason by which ESP32
  has been awaken from sleep
*/
void print_wakeup_reason() {
  esp_sleep_wakeup_cause_t wakeup_reason;

  wakeup_reason = esp_sleep_get_wakeup_cause();

  Serial.println("");
  Serial.println("");
  Serial.println("");
  Serial.println("EXT0 Test");

  switch (wakeup_reason)
  {
    case 1  : Serial.println("Wakeup caused by external signal using RTC_IO"); break;
    case 2  : Serial.println("Wakeup caused by external signal using RTC_CNTL"); break;
    case 3  : Serial.println("Wakeup caused by timer"); break;
    case 4  : Serial.println("Wakeup caused by touchpad"); break;
    case 5  : Serial.println("Wakeup caused by ULP program"); break;
    default : Serial.println("Wakeup was not caused by deep sleep"); break;
  }
}

void setup() {
  Serial.begin(115200);
  delay(50); //Take some time to open up the Serial Monitor

  //Increment boot number and print it every reboot
  ++bootCount;
  Serial.println("Boot number: " + String(bootCount));

  //Print the wakeup reason for ESP32
  print_wakeup_reason();

  /*
    First we configure the wake up source
    We set our ESP32 to wake up for an external trigger.
    There are two types for ESP32, ext0 and ext1 .
    ext0 uses RTC_IO to wakeup thus requires RTC peripherals
    to be on while ext1 uses RTC Controller so doesnt need
    peripherals to be powered on.
    Note that using internal pullups/pulldowns also requires
    RTC peripherals to be turned on.
  */
  Serial.println(esp_sleep_enable_ext0_wakeup(GPIO_NUM_0, 1)); //1 = High, 0 = Low


  //Go to sleep now
  Serial.println("Going to sleep now");
  esp_deep_sleep_start();
  Serial.println("This will never be printed");
}

void loop() {
  //This is not going to be called
}


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.04.2019, 20:13
Beitrag #2
RE: ESP32 mittels Keypad-Interrupt aus Deepsleep aufwachen lassen
Kann mir keiner helfen?
Habe bei weiteren Recherchen noch folgendes gefunden --> http://forum.arduino.cc/index.php?topic=...#msg639100
Ist das vielleicht zielführend?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ESP32 BIN von Arduino aufspielen Positiv 7 326 14.04.2019 18:13
Letzter Beitrag: Positiv
  ESP32 Batteriestatus Aredon 9 487 13.04.2019 21:44
Letzter Beitrag: Aredon
  ESP32 Cam Mafri 21 1.264 04.04.2019 08:36
Letzter Beitrag: Mafri
  ESP32 defekt tho.schmidt 13 1.125 30.03.2019 23:10
Letzter Beitrag: tho.schmidt
  ESP8266 / ESP32 und TCP Grave 2 571 21.03.2019 10:57
Letzter Beitrag: biologist
  esp32 Schrittmotor mit Webgui astrakid 5 777 12.03.2019 19:44
Letzter Beitrag: Fips
Question Durchschnitt anzeigen lassen lynes1 1 504 07.03.2019 12:51
Letzter Beitrag: Fips
  ESP32 Ethernet shrimps 20 3.946 27.02.2019 15:12
Letzter Beitrag: ardu_arne
  Deepsleep und Powerbank sowerum 15 2.297 19.02.2019 14:53
Letzter Beitrag: Hilgi
  ESP aus DeepSleep aufwachen lassen bei Datenübertragung jalu4601 5 1.070 13.02.2019 19:16
Letzter Beitrag: Fips

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste