esphome: name: oled-test friendly_name: oled test esp32: board: esp32-c3-devkitm-1 framework: type: esp-idf # Enable logging logger: # Enable Home Assistant API api: encryption: key: "rNfuxXEaIvVuOHvYVdb4QpW8fezbbkKn3wvjkHdHGkY=" ota: - platform: esphome password: "5aa6ac416280761455b83922c266822b" wifi: ssid: "Lothlorien" password: "LitwoOjczyznoMojaTysJestJakZdrowie" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp32-C3-Oled-Test" password: "Zto2fEEcWgnS" captive_portal: web_server: output: - platform: ledc pin: GPIO4 id: led_pwm frequency: 20000 Hz # 20 kHz – bez pisku i bez migotania w kamerze light: - platform: monochromatic name: "LED PWM" output: led_pwm gamma_correct: 1.0 button: - platform: restart name: "Restart Device" - platform: safe_mode name: "Restart in Safe Mode" i2c: id: bus_oled sda: GPIO5 scl: GPIO6 frequency: 100kHz scan: true # --- Czcionki do wyświetlacza (wygodne, ale możesz zmienić na swoje) --- font: - file: "fonts/Roboto-Regular.ttf" id: f12 size: 8 - file: "fonts/Roboto-Bold.ttf" id: f20 size: 11 # --- Przydatne sensory do pokazania na ekranie --- sensor: - platform: wifi_signal name: "WiFi RSSI" id: wifi_rssi update_interval: 30s - platform: uptime name: "Uptime (s)" id: uptime_s update_interval: 60s - platform: hm3301 pm_1_0: name: "PM1.0" pm_2_5: name: "PM2.5" pm_10_0: name: "PM10.0" aqi: name: "AQI" calculation_type: "CAQI" text_sensor: - platform: wifi_info ip_address: name: "IP" id: ip_addr ssid: name: "SSID" id: wifi_ssid # --- Przycisk BOOT (ten „użytkowy”; RESET/EN nie da się odczytać) --- binary_sensor: - platform: gpio pin: number: GPIO9 # BOOT na większości C3 mode: INPUT_PULLUP inverted: true name: "BOOT Button" id: btn_boot - platform: gpio pin: number: GPIO7 mode: input: true pullup: false pulldown: true name: "Czujnik ruchu SR505" device_class: motion filters: - delayed_off: 2s - platform: gpio pin: number: GPIO3 mode: input: true pullup: false pulldown: false name: "Czujnik ruchu HW-416A" device_class: motion filters: - delayed_off: 2s # --- Wyświetlacz OLED --- display: - platform: ssd1306_i2c model: "SSD1306 72x40" address: 0x3C rotation: 0 i2c_id: bus_oled # <- to jest kluczowe lambda: |- { if (id(ip_addr).has_state()) { it.printf(0, 0, id(f12), "ip:%s", id(ip_addr).state.c_str()); } else { it.printf(0, 0, id(f12), "ip: (brak)"); } if (id(wifi_rssi).has_state()) { it.printf(0, 10, id(f12), "RSSI: %.0f dBm", id(wifi_rssi).state); } if (id(wifi_ssid).has_state()) { it.printf(0, 20, id(f12), "SSID: %s", id(wifi_ssid).state.c_str()); } if (id(uptime_s).has_state()) { int t = (int) id(uptime_s).state; int h = t / 3600; int m = (t % 3600) / 60; int s = t % 60; it.printf(0, 30, id(f12), "Uptime: %02d:%02d:%02d", h, m, s); } }