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 Analog Wert am Spannungsteiler ungenau vs Arduino Analog Wert Nick2245 1 147 16.06.2019 09:01
Letzter Beitrag: Fips
  ESP32: U8x8 und SoftwareSerial gleichzeitig markusw129 2 157 15.06.2019 12:06
Letzter Beitrag: markusw129
  ESP32 Webserver download mehrerer Dateien Eisvogel 1 209 11.06.2019 10:42
Letzter Beitrag: Tommy56
  Apple II Projekt Umzug von uno -> ESP32 / ESP8266 stevie72 22 1.375 30.05.2019 08:30
Letzter Beitrag: amithlon
  Boot-Schleife beim ESP32 - wie Lösbar? tho.schmidt 9 702 28.05.2019 20:24
Letzter Beitrag: Tommy56
Question ESP32 Daten per Bluetooth auf AppInventor App anzeigen mamo1234 2 441 23.05.2019 14:10
Letzter Beitrag: mamo1234
  ESP32 verbindet nicht mehr mit meiner Fritz Box spok1 12 985 21.05.2019 11:22
Letzter Beitrag: Hilgi
  Interrupt Problem Gandalf 6 689 12.05.2019 14:59
Letzter Beitrag: Tommy56
  MySQL mit ESP32 ohne PHP Waschbärbauch 8 1.267 02.05.2019 16:39
Letzter Beitrag: Tommy56
  Deepsleep und Powerbank sowerum 19 4.399 01.05.2019 12:09
Letzter Beitrag: Markus N.

Gehe zu:


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