Taki znany urok OLEDów.
Echh. Zrobie sobie pająka ale to ramach walki z nudą. Kupiłem sam wyświetlacz E-papier za 17 zeta wiec będzie pasował.
Znasz “urok” e-paieru?
zasilanie tylko na czas zmiany treści, w przeciwnym razie po roku będziesz miał degradację gorszą niż to wypalenie OLED
To stracę 17 PLN
plus IN-POST za fatyge do Paczkomatu
2026-01-03
Na e -papierze poległem a dwa pająk.
Kupiłem 2.5 " AMOLED.
Słownik Wyrazów Brzydkich Również ![]()
Może zrobić wybudzanie wyświetlacza pod przyciskiem fizycznym?
Jeżeli pytasz o oryginalną konstrukcję to nie.
Przyciski wyprowadzone na zewnątrz to reboot/reset i wyłączenie wifi/usb lub jakoś tak.
Chodzi mi o dopisanie kodu w ESPHome, pod fizyczny przycisk, który przecież można dodać i w ten sposób wybudzać wyświetlacz tylko w razie potrzeby patrzenia na niego przez krótką chwilę. Nie widzę po prostu potrzeby, aby wypalał się przez 24h.
Za GPT bo Ja nie mam wiedzy więc potrzebna weryfikacja :
binary_sensor:
- platform: gpio
pin:
number: GPIO14 # <- DOWOLNY wolny pin
mode:
input: true
pullup: true
inverted: true
name: "OLED Wake Button"
on_press:
then:
- script.execute: oled_wake
wpisz lub wklej tutaj kod
script:
- id: oled_wake
mode: restart
then:
- logger.log: "OLED ON (podgląd)"
- display.turn_on: oled_display
- delay: 15s
- display.turn_off: oled_display
- logger.log: "OLED OFF"
i2c:
sda: GPIO18
scl: GPIO17
frequency: 400kHz
display:
- platform: ssd1306_i2c
id: oled_display
model: "SSD1306 128x64"
address: 0x3C
update_interval: never # 🔴 WAŻNE
lambda: |-
it.printf(0, 0, id(font_small), "UltimateReader");
it.printf(0, 16, id(font_small), "wM-Bus OK");
Ja nie mam tego sprzętu, ty masz…
Owszem tak ale używam nie kodu Szczepana tylko:
packages:
hal: github://wM-Bus/UltimateReader/packages/lilygo_t3_s3_hal.yaml@IoTLabs
wmbus_gateway: github://wM-Bus/UltimateReader/packages/wmbus_gateway.yaml@IoTLabs
On zapala tylko przy starcie ekran.
Jak wyżej wspomniałem dokupiłem AMOLED-a i na nim wyświetlam dane.
Inaczej : Ja nie wyświetlam tych danych na OLED w ogóle bo u mnie z powodu wypalenia mija się to z celem. Ekran mam wyłączony.
Ale testowałem miganie drugą diodą LED i np można tego użyć do wybudzenia czyli jeżeli wpadnie dany Telegram to wtedy wyświetl a potem zgaś. Ale to tylko przykład ( u mnie tak zrobiłem przez chwilę żółty LED migał sygnalizując mi że Telegram został rozpoznany ).
Przyciski wyprowadzone na zewnątrz to RESET oraz GPIO0
o ile ten pierwszy jest nie do ruszenia to pod drugi można przypisać dowolną funkcję programowo (oczywiście w trakcie bootstrapu zachowuje swoją funkcję)
??? pisałeś o e-papierze (e-inku)
amoled też się wypala, więc chyba o wygaszaniu warto pomyśleć, to wprawdzie nieco nowocześniejsza technologia niż zwykły monochromatyczny oled produkowany w technologii sprzed koło 30 lat
Tak - wystarczy zmienic przod obudowy na taki pod przycisk albo wywiercic otwór. Z przodu obok wyswietlacza jest fizyczny przycisk - tak jak @szopen opisał
Tak - zgadza się. Tylko poległem na E-papierze ( nie miałem topnika aby to się kupy trzymało ).
A ponieważ miałem jako prezent kupon 200 PLN na Allegro to wydałem 85 zeta na tego AMOLEDA.
A nad kodem do niego dalej kombinuje ( częściowo mam już wystrugany).
Sorry za jakość.
Tu z prawej strony widać te 2 fizyczne przyciski dla których Szczepan zrobił otwory w obudowie.
A tu widać z drugiej strony przycisk boot.
BOOT = Bootloader (czy tam bootstrap?) = GPIO0
(S3 to jest Xtensa7 więc ten pin zgodny z wcześniejszymi modelami ESP)
RST = Reset
a co do przełącznika to nie wnikałem gdzie jest podpięty, ale można zajrzeć na schemat… i jest to wyłącznik zasilania
Od stycznia mam problem z aktualizacją.
przy próbie wgrywania na płytkę mam takie błędy
INFO ESPHome 2026.1.4
INFO Reading configuration /config/esphome/esphome-web-5a0940.yaml...
WARNING GPIO33 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO37 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
INFO Detected timezone 'Europe/Warsaw'
INFO Detected timezone 'Europe/Warsaw'
INFO Generating C++ source...
INFO Setting CONFIG_LWIP_MAX_SOCKETS to 14 (registered: api=4, captive_portal=4, mdns=2, ota=1, web_server=3)
INFO Compiling app... Build path: /data/build/ultimatereader
Processing ultimatereader (board: lilygo-t3-s3; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32/releases/download/55.03.35/platform-espressif32.zip)
--------------------------------------------------------------------------------
HARDWARE: ESP32S3 240MHz, 320KB RAM, 4MB Flash
- contrib-piohome @ 3.4.4
- framework-espidf @ 3.50502.0 (5.5.2)
- tool-cmake @ 4.0.3
- tool-esp-rom-elfs @ 2024.10.11
- tool-esptoolpy @ 5.1.0
- tool-mklittlefs @ 3.2.0
- tool-ninja @ 1.13.1
- tool-scons @ 4.40801.0 (4.8.1)
- toolchain-xtensa-esp-elf @ 14.2.0+20251107
Reading CMake configuration...
Dependency Graph
|-- noise-c @ 0.1.10
|-- ArduinoJson @ 7.4.2
|-- Improv @ 1.2.4
Compiling .pioenvs/ultimatereader/src/main.cpp.o
Compiling .pioenvs/ultimatereader/bt/host/bluedroid/stack/smp/smp_cmac.c.o
Compiling .pioenvs/ultimatereader/bt/host/bluedroid/stack/smp/smp_keys.c.o
Compiling .pioenvs/ultimatereader/bt/host/bluedroid/stack/smp/smp_l2c.c.o
Compiling .pioenvs/ultimatereader/bt/host/bluedroid/stack/smp/smp_main.c.o
Compiling .pioenvs/ultimatereader/bt/host/bluedroid/stack/smp/smp_utils.c.o
Compiling .pioenvs/ultimatereader/bt/host/bluedroid/config/stack_config.c.o
Compiling .pioenvs/ultimatereader/bt/common/btc/profile/esp/blufi/bluedroid_host/esp_blufi.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/utils.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/sha256.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/ecc.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/ctr_prng.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/ctr_mode.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/aes_decrypt.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/aes_encrypt.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/ccm_mode.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/ecc_dsa.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/cmac_mode.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/ecc_dh.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/hmac_prng.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/ecc_platform_specific.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/hmac.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/src/cbc_mode.c.o
Compiling .pioenvs/ultimatereader/bt/common/tinycrypt/port/esp_tinycrypt_port.c.o
Compiling .pioenvs/ultimatereader/cmock/CMock/src/cmock.c.o
Archiving .pioenvs/ultimatereader/esp-idf/bt/libbt.a
Compiling .pioenvs/ultimatereader/console/commands.c.o
Archiving .pioenvs/ultimatereader/esp-idf/cmock/libcmock.a
Indexing .pioenvs/ultimatereader/esp-idf/cmock/libcmock.a
Compiling .pioenvs/ultimatereader/console/esp_console_common.c.o
Indexing .pioenvs/ultimatereader/esp-idf/bt/libbt.a
Compiling .pioenvs/ultimatereader/console/esp_console_repl_internal.c.o
Compiling .pioenvs/ultimatereader/console/split_argv.c.o
Compiling .pioenvs/ultimatereader/console/linenoise/linenoise.c.o
Compiling .pioenvs/ultimatereader/console/esp_console_repl_chip.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_cmd.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_date.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_dbl.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_dstr.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_end.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_file.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_hashtable.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_int.c.o
In file included from src/esphome/components/wmbus_gateway/display_manager.h:17,
from src/esphome.h:151,
from src/main.cpp:3:
src/esphome/components/wmbus_gateway/screen_sensor.h: In member function 'void esphome::wmbus_gateway::SensorScreen::render_value(esphome::display::Display&)':
src/esphome/components/wmbus_gateway/screen_sensor.h:46:101: warning: 'std::string esphome::EntityBase_UnitOfMeasurement::get_unit_of_measurement()' is deprecated: Use get_unit_of_measurement_ref() instead for better performance (avoids string copy). Will be removed in ESPHome 2026.5.0 [-Wdeprecated-declarations]
46 | data = str_truncate(data, std::min(pos, 11 - sensor->get_unit_of_measurement().length()));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from src/esphome/components/binary_sensor/binary_sensor.h:3,
from src/esphome/core/application.h:35,
from src/esphome/components/api/api_frame_helper.h:13,
from src/esphome/components/api/api_connection.h:5,
from src/esphome.h:3:
src/esphome/core/entity_base.h:202:15: note: declared here
202 | std::string get_unit_of_measurement();
| ^~~~~~~~~~~~~~~~~~~~~~~
src/esphome/components/wmbus_gateway/screen_sensor.h:48:60: warning: 'std::string esphome::EntityBase_UnitOfMeasurement::get_unit_of_measurement()' is deprecated: Use get_unit_of_measurement_ref() instead for better performance (avoids string copy). Will be removed in ESPHome 2026.5.0 [-Wdeprecated-declarations]
48 | data += sensor->get_unit_of_measurement();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/esphome/core/entity_base.h:202:15: note: declared here
202 | std::string get_unit_of_measurement();
| ^~~~~~~~~~~~~~~~~~~~~~~
Compiling .pioenvs/ultimatereader/console/argtable3/arg_lit.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_rem.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_rex.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_str.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/arg_utils.c.o
Compiling .pioenvs/ultimatereader/console/argtable3/argtable3.c.o
Compiling .pioenvs/ultimatereader/cxx/cxx_exception_stubs.cpp.o
src/main.cpp: At global scope:
src/main.cpp:62:20: error: 'font_large' was declared 'extern' and later 'static' [-fpermissive]
62 | static font::Font *font_large;
| ^~~~~~~~~~
In file included from src/esphome/components/wmbus_gateway/screen_splash.h:4,
from src/esphome/components/wmbus_gateway/display_manager.h:10:
src/esphome/components/wmbus_gateway/resources.h:9:29: note: previous declaration of 'font_large'
9 | extern esphome::font::Font *font_large;
| ^~~~~~~~~~
src/main.cpp:63:20: error: 'font_small' was declared 'extern' and later 'static' [-fpermissive]
63 | static font::Font *font_small;
| ^~~~~~~~~~
src/esphome/components/wmbus_gateway/resources.h:8:29: note: previous declaration of 'font_small'
8 | extern esphome::font::Font *font_small;
| ^~~~~~~~~~
src/main.cpp:64:22: error: 'qr_code' was declared 'extern' and later 'static' [-fpermissive]
64 | static image::Image *qr_code;
| ^~~~~~~
src/esphome/components/wmbus_gateway/resources.h:7:31: note: previous declaration of 'qr_code'
7 | extern esphome::image::Image *qr_code;
| ^~~~~~~
src/main.cpp:65:22: error: 'logo' was declared 'extern' and later 'static' [-fpermissive]
65 | static image::Image *logo;
| ^~~~
src/esphome/components/wmbus_gateway/resources.h:6:31: note: previous declaration of 'logo'
6 | extern esphome::image::Image *logo;
| ^~~~
/data/packages/9c197793/packages/lilygo_t3_s3_hal.yaml: In lambda function:
/data/packages/9c197793/packages/lilygo_t3_s3_hal.yaml:31:18: warning: narrowing conversion of '(double)std::min<double>((* & std::max<double>(((double)2 * (((double)x) + 1.0e+2)), 0.0)), 1.0e+2)' from 'double' to 'float' [-Wnarrowing]
31 | unit_of_measurement: "%"
| ~~~^~~~~~~~~~~
Compiling .pioenvs/ultimatereader/cxx/cxx_guards.cpp.o
Compiling .pioenvs/ultimatereader/cxx/cxx_init.cpp.o
Compiling .pioenvs/ultimatereader/driver/deprecated/adc_legacy.c.o
Archiving .pioenvs/ultimatereader/esp-idf/console/libconsole.a
Indexing .pioenvs/ultimatereader/esp-idf/console/libconsole.a
Compiling .pioenvs/ultimatereader/driver/deprecated/adc_dma_legacy.c.o
Archiving .pioenvs/ultimatereader/esp-idf/cxx/libcxx.a
Indexing .pioenvs/ultimatereader/esp-idf/cxx/libcxx.a
Compiling .pioenvs/ultimatereader/driver/deprecated/timer_legacy.c.o
Compiling .pioenvs/ultimatereader/driver/i2c/i2c.c.o
Compiling .pioenvs/ultimatereader/driver/deprecated/i2s_legacy.c.o
Compiling .pioenvs/ultimatereader/driver/deprecated/mcpwm_legacy.c.o
Compiling .pioenvs/ultimatereader/driver/deprecated/pcnt_legacy.c.o
*** [.pioenvs/ultimatereader/src/main.cpp.o] Error 1
========================= [FAILED] Took 14.43 seconds =========================
Mój kod
packages:
hal: github://wM-Bus/UltimateReader/packages/lilygo_t3_s3_hal.yaml@IoTLabs
wmbus_gateway: github://wM-Bus/UltimateReader/packages/wmbus_gateway.yaml@IoTLabs
esphome:
name: ultimatereader
friendly_name: Ultimate Reader
name_add_mac_suffix: false
comment: Ultimate Reader
project:
name: wmbus.UltimateReader
version: ${wmbus_gateway_version}
improv_serial:
esp32_improv:
authorizer: none
logger:
level: DEBUG
logs:
status_led: INFO
binary_sensor: INFO
light: INFO
baud_rate: 115200
ota:
- platform: esphome
api:
encryption:
key: "F6qk6W6X9P5nA4Dg0b3e9O4uLqf4uM5K2pH7tH1V7jA="
dashboard_import:
package_import_url: github://wM-Bus/UltimateReader/blueprints/UltimateReader.yaml@IoTLabs
import_full_config: true
wmbus_radio:
radio_type: SX1276
cs_pin: GPIO7
reset_pin: GPIO8
irq_pin: GPIO33
on_frame:
- then:
- logger.log:
level: WARN
format: "Meter ID: 0x%s"
args: ["frame->meter_id().c_str()"]
- logger.log:
level: WARN
format: "Frame: https://wmbusmeters.org/analyze/%s"
args: ["frame->as_hex().c_str()"]
spi:
clk_pin:
number: GPIO5
mosi_pin: GPIO6
miso_pin:
number: GPIO3
ignore_strapping_warning: true
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
wmbus_meter:
- id: woda_apator162
meter_id: 0x02095578
type: apator162
key: "00000000000000000000000000000000"
- id: woda_apator1621
meter_id: 0x02257250
type: apator162
key: "00000000000000000000000000000000"
sensor:
- platform: wmbus_meter
id: total_water_sensor
field: total_m3
parent_id: woda_apator162
name: Licznik Wody Główny
state_class: total_increasing
device_class: water
filters:
- offset: 526.996
- platform: wmbus_meter
id: water_meter_rssi
field: rssi_dbm
parent_id: woda_apator162
name: RSSI
device_class: signal_strength
state_class: measurement
- platform: wmbus_meter
id: total_water_sensor2
field: total_m3
parent_id: woda_apator1621
name: Licznik wody Mieszkanie
state_class: total_increasing
device_class: water
filters:
- offset: -115.644
To już sobie nie wgrasz - zmiany w ESP
Ok, rozumiem
Ale jak to naprawić, co zmienić?
Masz dwie drogi.
Wersja 5x softu - działa ale będzie się restartować losowo.
Szukajka na Forum - kompilacja ESP w chmurze .
Dziękuje, lecę zatem do lektury


