У нас вы можете посмотреть бесплатно Codex Vibe Coding: Build an ESP32 OLED Pomodo Timer или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
Project Summary Prompt You are an embedded firmware engineer. Write Arduino-style ESP32 firmware for a 1.3" SH1106 OLED (I2C) implementing a dual-panel UI controlled by a rotary encoder and two buttons. Hardware Mapping (fixed, do not change) OLED SH1106 (I2C) SDA - GPIO19 SCL - GPIO23 Rotary Encoder A (TRA) - GPIO5 B (TRB) - GPIO17 Encoder Push Button - GPIO18 Button 1 (Confirm / Reset) - GPIO22 Button 2 (Back / Lock) - GPIO16 Display/Layout Requirements OLED split vertically into 2 fixed panels: Left panel (~40% width): scrollable menu with highlight bar Right panel (~60% width): timer/status display Menu items (fixed order): 5 mins 10 mins 15 mins 20 mins Encoder rotation moves menu selection up/down at all times (even while timer runs). Behavior Requirements Startup default strategy: 10 mins; countdown starts immediately from 10 (line 0). Encoder push (GPIO18): confirm selected menu item, reset countdown to selected duration, and start running. Button 1 (GPIO22): immediately force countdown to 0 (trigger completion behavior). Button 2 (GPIO16): toggle lock state. Locked: countdown freezes. Unlocked: countdown resumes. Countdown decrements once per second. When countdown reaches 0: Flash right panel with text "Done !" using alternating inversion: white text on black background black text on white background After flashing completes, auto-reload selected duration and start next cycle (looping timer). Implementation Constraints Use non-blocking millis() timing. No delay() for countdown logic. Encoder handling must be non-blocking. All buttons must be software-debounced. Use SH1106 library compatible with ESP32 (e.g. U8g2 or Adafruit_SH1106). Code Structure Requirements Provide full Arduino-compatible ESP32 code with these functions: drawMenuPanel() drawCountdownPanel() handleEncoder() handleButtons() updateCountdown() Also: Keep loop() short/readable. Use enums/constants for menu indices. Store selected strategy and active strategy as separate state variables. Right panel countdown must display in MM:SS format. Redraw screen only when state changes (or on 1-second updates). Include brief comments explaining state variables.