ESP WakeUP pin a nasledná akcia
- tiimsvk
- Dárce - Donátor
- Příspěvky: 801
- Registrován: 06. květen 2021, 07:03
- Dal poděkování: 72 poděkování
- Dostal poděkování: 65 poděkování
ESP WakeUP pin a nasledná akcia
Ahojte mám jednoduchú otázku a predpokladám, že je ťažška odpoveď na to
Mám esp32 s deep sleep a wake pinom
Tlačidlo, ktoré keď stlačim zobú esp32.
Ja by som chcel aby toto tlačidlo bolo pouzitelné aj na inú akciu napriklad zapnutie svetla. to znamená, že po stlačení tlačidla sa zobudí esp32 a nasledne sa zapne svetlo.
Nepotrebujem to ale aktivovať iba jedným tlačidlom ale na zariadení mam 3ks a každe ovláda iné zariadenie ale mali by tieto tlačidla aj zobudiť modul.
Problém je, že nedokážem napísať kód, ktorý detekuje, ktorým tlačidlom sa zariadenie zobudiloa naledne by poslal lubovolnu akciu.
Viete poradiť?
Mám esp32 s deep sleep a wake pinom
Tlačidlo, ktoré keď stlačim zobú esp32.
Ja by som chcel aby toto tlačidlo bolo pouzitelné aj na inú akciu napriklad zapnutie svetla. to znamená, že po stlačení tlačidla sa zobudí esp32 a nasledne sa zapne svetlo.
Nepotrebujem to ale aktivovať iba jedným tlačidlom ale na zariadení mam 3ks a každe ovláda iné zariadenie ale mali by tieto tlačidla aj zobudiť modul.
Problém je, že nedokážem napísať kód, ktorý detekuje, ktorým tlačidlom sa zariadenie zobudiloa naledne by poslal lubovolnu akciu.
Viete poradiť?
-
- Moderátor
- Příspěvky: 901
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 107 poděkování
- Dostal poděkování: 210 poděkování
Re: ESP WakeUP pin a nasledná akcia
base.yaml a fonty zde: https://github.com/pulimento/TTGO-T-Dis ... ome-sample
Vyřešil jsem to takto, vezmi to jen jako koncept. Bylo by asi vhodné začít on_boot lambdu testováním co jej vlastně probudilo přes esp_sleep_get_wakeup_cause() a pouze v případě že ESP_SLEEP_WAKEUP_EXT1 tak počítat který pin. Ale vzhledem k tomu že mne jiné budíky nezajímají tak je to asi jedno.
Kód: Vybrat vše
esphome:
name: wakeuptest
on_boot:
priority: 900
then:
lambda: |-
id(wake_up_pin) = ((log(esp_sleep_get_ext1_wakeup_status()))/log(2));;
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON); //INTERNAL PD
<<: !include base.yaml
esp32:
board: featheresp32
framework:
type: arduino
globals:
- id: wake_up_pin
type: uint64_t
restore_value: no
initial_value: '0'
deep_sleep:
run_duration: 20s
sleep_duration: 10min
esp32_ext1_wakeup:
pins:
- 25
- 27
mode: ANY_HIGH
wakeup_pin_mode: KEEP_AWAKE
id: deep_sleep_1
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "SQgkn9j23ki8fiG8fWO9kNiXb4ZID0fbXMjxxLLB0uo="
ota:
password: "58ff98b3d759d79c62c8964001c798cb"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Wakeuptest Fallback Hotspot"
password: "QSd3UqMR6j7m"
captive_portal:
### CUSTOM!!
spi:
clk_pin: GPIO18
mosi_pin: GPIO19
time:
- platform: homeassistant
id: esptime
binary_sensor:
- platform: status
name: "Node Status"
id: system_status
- platform: gpio
pin:
number: GPIO25
inverted: True
mode: INPUT_PULLDOWN
name: "vstup GPIO25"
id: vstup_GPIO25
- platform: gpio
pin:
number: GPIO27
inverted: True
mode: INPUT_PULLDOWN
name: "vstup GPIO27"
id: vstup_GPIO27
# We can still control the backlight independently
switch:
- platform: gpio
pin: GPIO4
name: "Backlight"
id: backlight
sensor:
- platform: adc
pin: 34
attenuation: 11db
name: VBatt
id: vcc
update_interval: 60s
- platform: template
name: batterylevel
id: batterylevel
unit_of_measurement: '%'
update_interval: 60s
lambda: |-
// I know infering the battery from voltage only is misleading, but I'll take it. Considering linear decay (again, i'll take it), max=2.23, min=1.38
return ((id(vcc).state * 118) - 162);
- platform: template
name: "Kdo mne budi"
id: kdo_mne_budi
accuracy_decimals: 0
lambda: |-
return (id(wake_up_pin));
# TODO brightness
display:
- platform: st7789v
model: TTGO TDisplay 135x240
backlight_pin: GPIO4
cs_pin: GPIO5
dc_pin: GPIO16
reset_pin: GPIO23
rotation: 270°
#brightness: 0.5
update_interval: 5s
lambda: |-
if (id(vcc).has_state()) {
it.printf(4, 4, id(font_arial_12), id(color_teal_blue), "%.2f VBat (%.2f %%)", id(vcc).state, id(batterylevel).state);
}
it.print(212, 4, id(font_slkscr_8), id(color_teal_blue), "MICRO");
it.print(190, 120, id(font_slkscr_8), id(color_teal_blue), "TV CAMA");
if (id(kdo_mne_budi).has_state()) {
int tlacitko = id(kdo_mne_budi).state;
if (tlacitko == 25) {
it.printf(16, 18, id(font_bebas_56), id(color_green), "%d ZELENA", tlacitko);
} else if (tlacitko == 27) {
it.printf(16, 18, id(font_bebas_56), id(color_blue), "%d MODREJ", tlacitko);
} else {
it.printf(16, 18, id(font_bebas_48), id(color_red), "%d ", tlacitko);
}
}
plus reference https://docs.espressif.com/projects/esp ... modes.html
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
- tiimsvk
- Dárce - Donátor
- Příspěvky: 801
- Registrován: 06. květen 2021, 07:03
- Dal poděkování: 72 poděkování
- Dostal poděkování: 65 poděkování
Re: ESP WakeUP pin a nasledná akcia
Dik to je presne to co potrebujem hned ako bude cas budem testovať.
-
- Moderátor
- Příspěvky: 901
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 107 poděkování
- Dostal poděkování: 210 poděkování
Re: ESP WakeUP pin a nasledná akcia
Jen doplním
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON); //INTERNAL PD nechává aktivní RTC power domain - tzn v sleepu jsou aktivní pulldown a pullup rezistory takže nepotřebuješ dávat externí.
input pulldown je nastavený u tlačítek v kódu
a tlačítka jsou spínána přes rezistor na +3.3V
V honbě za co nejnižší spotřebou ve sleepu bude velmi užitečná dokumentace: https://docs.espressif.com/projects/esp ... modes.html
Vypínání wifi, ram, flash, izolování gpio - nevím o co vše se postará ESPHome a co (a jestli) bude třeba přes lamda.
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON); //INTERNAL PD nechává aktivní RTC power domain - tzn v sleepu jsou aktivní pulldown a pullup rezistory takže nepotřebuješ dávat externí.
input pulldown je nastavený u tlačítek v kódu
a tlačítka jsou spínána přes rezistor na +3.3V
V honbě za co nejnižší spotřebou ve sleepu bude velmi užitečná dokumentace: https://docs.espressif.com/projects/esp ... modes.html
Vypínání wifi, ram, flash, izolování gpio - nevím o co vše se postará ESPHome a co (a jestli) bude třeba přes lamda.
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
- tiimsvk
- Dárce - Donátor
- Příspěvky: 801
- Registrován: 06. květen 2021, 07:03
- Dal poděkování: 72 poděkování
- Dostal poděkování: 65 poděkování
Re: ESP WakeUP pin a nasledná akcia
No keby som vedel programovacii jazyk a anglictinu tak by som velmi rad sskusal
Na začiatok začnem tym tvojim kodom a uvidime co sa stane
EDIT:
Všimol som si že v tom kode máš aj bateriu v dvoch senzoroch ja to pouzivam tak ze mam vsetko v senzore adc takto:
Na začiatok začnem tym tvojim kodom a uvidime co sa stane
EDIT:
Všimol som si že v tom kode máš aj bateriu v dvoch senzoroch ja to pouzivam tak ze mam vsetko v senzore adc takto:
Kód: Vybrat vše
- platform: adc
pin: ${battery_pin}
name: "${friendly_name} Battery"
attenuation: 11db
accuracy_decimals: 0
update_interval: 10s
id: adcbattery
entity_category: diagnostic
unit_of_measurement: "%"
device_class: battery
filters:
- calibrate_linear:
- 2.0 -> 0
- 2.81 -> 100
- lambda: 'return min((float)100.0, x);'
-
- Moderátor
- Příspěvky: 901
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 107 poděkování
- Dostal poděkování: 210 poděkování
Re: ESP WakeUP pin a nasledná akcia
Ten kód okolo vůbec neřeš, stejně ukazuje nesmysly.
Koukal jsem že tu mám pár modulů "TTGO 19-6-28 V1.1 XY-CP" tak jsem vzal první kus kódu z githubu na který jsem narazil abych rozsvítil displej a nezdržoval se s pátráním jak je to zapojené.
Koukal jsem že tu mám pár modulů "TTGO 19-6-28 V1.1 XY-CP" tak jsem vzal první kus kódu z githubu na který jsem narazil abych rozsvítil displej a nezdržoval se s pátráním jak je to zapojené.
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox