Skip to content

ATTiny85 wakes up from deep sleep on key press and resets a ESP8266, latching the triggering key

Notifications You must be signed in to change notification settings

ingeninge/ATTINY85wecktESP8266

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ATTINY85wecktESP8266

ATTiny85 wakes up from deep sleep on key press and resets a ESP8266, latching the triggering key

ATTINY85 zum Tastenabfragen und Wecken des ESP8266 aus dem DeepSleep. Zwei Taster lösen einen PCI (Pin Change Interrupt) am ATTiny85 aus. Es wird abgefragt, welcher Pin Change den Interrupt ausgelöst hat und eine kosrrespondierende Ausgangsleitung parallel zur Reset Leitung zum ESP, wird auf Low gelegt. Kurz darauf geht die Reset Leitung auf High und der ESP wacht aus dem DeepSleep auf, schaut welcher ATTiny85-Pin betätigt wurde und schickt eine MQTT Nachricht an den Broker. Bei mir wird damit der Wasserhahn auf oder zu gemacht wird. Man kann im Code vom ESP natürlich auch andere Aktionen folgen lassen.

Ich habe nach dieser Lösung gesucht, weil der ESP8266 nur auf einen einzelnen Taster aus dem DeepSleep gewckt werden kann. Ich brauche aber 2 bzw. vielleicht auch mal mehr Tasten oder Ereignisse, die einen ESP8266 aufwecken sollen.

Der ATTiny85 geht nach verrichteter Arbeit übrigens auch in den DeepSleep und die ganze Schaltung kann mit 2 AAA Batterien, längere Zeit betrieben werden. Wie lange weiß ich noch nicht, aber ein zeitgesteuertes Polling von Tasten mit dem ESP8266 geht nicht lange gut. Dafür verbraucht der WLAN-Chip einfach zu viel Strom.

Quelle: https://arduino-projekte.webnode.at/meine-projekte/attiny-im-schlafmodus/wecken-mit-pci/

Um den Code in den ATTiny85 zu brennen, richtet man sich in der Arduino IDE nach der Anleitung von https://wolles-elektronikkiste.de/attiny-mit-arduino-code-programmieren die Bibliothek AttinyCore ein. Bei der Auswahl des Controllers dann ATtiny85 (No Bootloader!) aus, brennt den Bootloader (in Wiklichkeit nur die Fuse Bits) und dann kann man den Code wie gewohnt uploaden.

English: ATTiny85 wakes up from deep sleep on key press and resets a ESP8266, latching the triggering key

ATTINY85 queries input key pressed and wakes up the ESP8266 from the DeepSleep. Two buttons trigger a PCI (Pin Change Interrupt) on the ATTiny85. It is queried which pin change triggered the interrupt and a corresponding output line in parallel to the reset line to the ESP is set to low. Short time after the reset line goes high and the ESP wakes up from deep sleep, the ESP queries the pin state of the ATTiny85 to determine witch key has been pressed. The ESP then sends an MQTT message to the broker. For me, it is used to open or close the faucet. Of course, you can also follow other actions in the code of the ESP.

I was looking for a solution because the ESP8266 can only be woken up from the DeepSleep by a single button. But I need 2 buttons or maybe more buttons or events that are supposed to wake up an ESP8266.

By the way, the ATTiny85 also goes into DeepSleep, and the whole circuit can be operated with 2 AAA batteries for a longer period of time. How long I don't know yet, but time-controlled polling of buttons with the ESP8266 does not work for long. The WLAN chip simply consumes too much power for that.

Source: https://arduino-projekte.webnode.at/meine-projekte/attiny-im-schlafmodus/wecken-mit-pci/

About

ATTiny85 wakes up from deep sleep on key press and resets a ESP8266, latching the triggering key

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages