✨ Co je nového ve v2.16
🧩 Jednotný firmware
Jeden projekt pro ESP32 Dev Module i ESP32C3 Dev Module. Piny a jádra se zvolí podle desky v Arduino IDE.
🔄 Auto-provisioning ESP-NOW
Nový vysílač po WiFi stáhne z masteru PMK, šifrování a MAC příjemců (/api/espnow-config).
📶 OTA přes web
Menu OTA — nahrání .bin přes WiFi. Vyžaduje partition scheme s OTA (4MB flash).
🌐 Vzdálená správa
WiFi/AP startuje před senzory. AP EASUN-MULTI → http://192.168.4.1. Po připojení: http://easun.local.
📡 Kontrola shody sítě
Na hlavní stránce: kanál, PMK fingerprint, master IP, sync status, odesláno / chyby.
📖 Návod v zařízení
Odkaz ? → /navod: ESP-NOW, OTA a Home Assistant (REST /api/data).
Architektura systému (přehled)
flowchart TB
subgraph LAN["Domácí WiFi síť"]
R[Router]
M["Master EaSun
např. 192.168.1.44"]
S["Další vysílač
např. 192.168.1.93"]
RX["Příjemce ESP-NOW
MAC v konfiguraci"]
PC["Telefon / PC
web + OTA"]
end
R --- M
R --- S
R --- PC
M -->|"HTTP /api/espnow-config
PMK + MAC příjemců"| S
M -->|"ESP-NOW 1×/s
stejný PMK + kanál"| RX
S -->|"ESP-NOW 1×/s
stejný PMK + kanál"| RX
PC -->|"http://easun.local
nebo IP"| M
PC -->|"http://IP"| S
🚀 Přehled funkcí
📊 BH1750 Luxmetr
Přesné měření intenzity osvětlení s kategorizací a historií posledních 20 měření.
🌡️ DS18B20 Teplota
Přesné měření teploty s rozlišením 0.0625°C a kategorizací teplotních pásem.
🌡️💧 DHT22 Teplota/Vlhkost
Digitální měření teploty (-40°C až +80°C) a relativní vlhkosti (0-100% RH) s přesností ±0.5°C a ±2% RH.
🌐 Webové rozhraní
Responzivní web s real-time daty, JSON API (/api/data) pro Home Assistant — bez Basic Auth.
📡 ESP-NOW komunikace
Bezdrátová komunikace s jinými ESP32 bez WiFi routeru, dosah až 200m.
🔐 AES-128 šifrování
Zabezpečené ESP-NOW komunikace s webovou správou šifrovacích klíčů.
🛜 WiFi konfigurace
Automatické WiFi připojení nebo konfigurační AP mód s web rozhraním.
⚡ Dual-Core architektura
Optimalizované využití obou jader ESP32 pro maximální výkon.
🔄 Restart stránka
Profesionální restart stránka s odpočtem a automatickým přesměrováním na hlavní stránku.
🔧 Optimalizované WiFi parametry
Konzistentní názvy parametrů (Multi-SenzorSSID/Password) pro spolehlivé ukládání hesla.
📶 ESP-NOW stabilizace
Optimalizované pořadí inicializace pro bezkonfliktní provoz webserveru s ESP-NOW.
🔄 ESP-NOW auto-restart
Automatický restart ESP-NOW komunikace při problémech s příjemcem - spolehlivost na prvním místě.
📊 Webový monitoring ESP-NOW
Kompletní statistiky ESP-NOW komunikace přímo na webové stránce - bez sériového monitoru.
🐕 Hardwarový Watchdog
30s timeout s automatickým restartem při zamrznutí, kontinuální monitoring všech kritických funkcí.
📝 Inteligentní Event Logging
Automatické logování událostí do SPIFFS s rotací, rozlišení chyb od normálních stavů.
🗂️ Webová správa událostí
Real-time zobrazení event logu s možností vymazání a manuální údržby přes web rozhraní.
🧹 Automatická údržba logů
Mazání záznamů starších 10 dní, kontrola velikosti souboru (32KB limit), údržba každých 60 minut.
⚡ Optimalizované měření
Senzory se čtou každou 1 sekundu s mutex synchronizací mezi dual-core tasky.
🕐 NTP Synchronizace času
Automatická synchronizace středoevropského času (CET/CEST) s pool.ntp.org, správné časové značky v logu.
🔄 Vylepšený restart handler
Asynchronní restart s odpočítáváním, bez blokování webserveru, profesionální UX s přesměrováním.
🧹 Automatická defragmentace paměti
4-úrovňový systém monitoring paměti s automatickou defragmentací a emergency restartem při kritické fragmentaci.
📊 Memory Monitoring System
Real-time monitoring fragmentace heap paměti, proaktivní defragmentace, webové statistiky a JSON API.
⚡ Dual-Core Memory Management
Monitoring paměti z obou jader ESP32, String cache optimalizace, SPIFFS cache management pro maximální stabilitu.
📈 Interaktivní graf historie
HTML5 Canvas graf s 100 měřeními, dvojité Y-osy pro různé rozsahy hodnot, barevná legenda, jen při načtené stránce.
🏠 Home Assistant integrace
REST poll /api/data (bez Auth): lux, DS18B20, DHT22 teplota/vlhkost, dostupnost čidel, device_location / MAC.
🔧 Optimalizace NTP
Synchronizace pouze při startu a každou hodinu, kontrola jen každou minutu, úspora 99.8% volání NTP funkcí.
🧠 Inteligentní časové značky
Automatická detekce NTP vs millis() času, správné zobrazení s časovou zónou Europe/Prague.
🐛 Debug výstupy
Detailní logování NTP synchronizace, typu časových značek a system events pro snadné debugging.
🔧 První nastavení a spuštění
📋 Požadované komponenty
ESP32 Dev Module nebo
ESP32-C3 Dev Module
BH1750 luxmetr (I2C)
DS18B20 teplota (OneWire)
DHT22 teplota/vlhkost
5V USB nebo 3.3V externí
Flash: 4MB (pro OTA)
Board = ESP32 Dev / ESP32C3
Partition: Minimal SPIFFS
(1.9MB APP with OTA)
Výběr desky → automatické piny
flowchart LR IDE["Arduino IDE
Tools → Board"] --> DEV["ESP32 Dev Module"] IDE --> C3["ESP32C3 Dev Module"] DEV --> P1["I2C SDA21 / SCL22
DS18B20: 4,13,14
DHT22: 5,18,19
dual-core"] C3 --> P2["I2C SDA8 / SCL9
DS18B20: 4,5,6
DHT22: 5,6,7
single-core + USB CDC On"]
🔌 Zapojení senzorů (podle desky)
💡 BH1750 Luxmetr (I2C)
| BH1750 Pin | ESP32 Dev | ESP32-C3 | Popis |
|---|---|---|---|
| VCC | 3.3V | 3.3V | Napájení senzoru |
| GND | GND | GND | Společná zem |
| SDA | GPIO21 | GPIO8 | I2C data |
| SCL | GPIO22 | GPIO9 | I2C clock |
| ADDR | GND | GND | I2C adresa 0x23 |
🌡️ DS18B20 Teplotní senzor (OneWire)
| DS18B20 Pin | ESP32 Dev | ESP32-C3 | Popis |
|---|---|---|---|
| VCC | 3.3V | 3.3V | Napájení |
| GND | GND | GND | Zem |
| DATA | GPIO 4 / 13 / 14 | GPIO 4 / 5 / 6 | Výchozí GPIO4 + 4.7kΩ pull-up |
🌡️💧 DHT22
| DHT22 Pin | ESP32 Dev | ESP32-C3 | Popis |
|---|---|---|---|
| VCC | 3.3V | 3.3V | Napájení |
| GND | GND | GND | Zem |
| DATA | GPIO 5 / 18 / 19 | GPIO 5 / 6 / 7 | Výchozí GPIO5 + 4.7kΩ pull-up |
💻 Instalace a nahrání
- Otevřete složku
ESP32-LUX14-C3v Arduino IDE - Tools → Board: ESP32 Dev Module nebo ESP32C3 Dev Module
- Flash Size: 4MB; Partition: Minimal SPIFFS (1.9MB APP with OTA)
- ESP32-C3: USB CDC On Boot = Enabled
- První nahrání vždy USB (poté lze OTA)
🛜 První připojení (bez sériového monitoru)
- Na telefonu hledejte WiFi EASUN-MULTI (bez hesla, 2.4 GHz)
- Otevřete http://192.168.4.1
- Vyberte domácí WiFi, heslo, případně IP masteru
- Po restartu: http://easun.local nebo IP z routeru
Start zařízení (pořadí bootu)
sequenceDiagram
participant U as Uživatel
participant E as EaSun
participant AP as AP EASUN-MULTI
participant W as Domácí WiFi
E->>E: Watchdog + SPIFFS
alt Nemá SSID / WiFi fail
E->>AP: SoftAP 192.168.4.1
U->>AP: Připojení telefonem
U->>E: Uložení WiFi (+ master IP)
E->>E: Restart
else Má SSID
E->>W: STA připojení
E->>E: mDNS easun.local
E->>E: Senzory + ESP-NOW + Web
opt Auto-sync a prázdní příjemci
E->>E: GET master /api/espnow-config
end
end
📚 Požadované knihovny
🔄 Master vysílač a přidání dalšího zařízení
Stejný firmware na všechny EaSun. Master = první vysílač s nastaveným ESP-NOW. Další zařízení stáhnou config po síti.
1) Master (např. 192.168.1.44)
- Nahrajte firmware, nastavte WiFi (master IP nechte prázdné)
- ESP-NOW → zadejte MAC příjemce (jeden i více řádků)
- Šifrování → zkontrolujte / vygenerujte PMK
- Ověřte:
http://MASTER_IP/api/espnow-config→ JSON s"configured": true
2) Další vysílač (např. 192.168.1.93)
- Stejný firmware, WiFi + vyplňte IP masteru
- Nebo později: ESP-NOW → Master IP → Stáhnout ESP-NOW config
- Nastavte vlastní Device ID a název místa
- Na hlavní stránce porovnejte PMK fingerprint a kanál s masterem
Auto-sync (HTTP provisioning)
sequenceDiagram
participant N as Nový vysílač
participant M as Master
participant R as Příjemce
N->>N: Uložena master IP
N->>M: GET /api/espnow-config
alt 404
M-->>N: Starý firmware / špatná IP
else configured false
M-->>N: Master ještě nemá MAC příjemců
else OK
M-->>N: PMK + encryption + receivers + mode
N->>N: Uložit SPIFFS + initESPNOW
N->>R: ESP-NOW data 1×/s
M->>R: ESP-NOW data 1×/s
end
Jak poznat, že jsou „na stejné síti“
| Kontrola | Kde | Očekávání |
|---|---|---|
| PMK | Šifrování / hlavní stránka | Stejný klíč / fingerprint |
| Kanál | ESP-NOW detaily | Stejné číslo (stejná WiFi) |
| MAC příjemců | ESP-NOW | Stejný seznam |
| Odesláno | Hlavní stránka | Čítač roste |
| Sync | ESP-NOW | OK: N příjemců… |
| Příjemce | Aplikace příjemce | Data z obou Device ID |
📶 OTA — vzdálená aktualizace
Menu OTA na zařízení. Funguje na ESP32 Dev i ESP32-C3 při OTA partition schemě.
- Arduino IDE: Sketch → Export compiled Binary (stejná deska jako cíl)
- Na zařízení otevřete
/ota - Nahrajte soubor
*.ino.bin - Po úspěchu se zařízení samo restartuje
OTA tok
flowchart LR A["Export .bin
Arduino IDE"] --> B["Web /ota
upload"] B --> C["Zápis do
neaktivní OTA partition"] C --> D["Restart"] D --> E["Nový firmware běží"]
partitions.csv / Minimal SPIFFS with OTA).
⚡ Dual-Core architektura
🎯 Proč Dual-Core?
ESP32 má 2 jádra (Core 0 a Core 1), které můžeme využít pro optimální výkon:
📊 Core 1 - Senzory & ESP-NOW
- Čtení BH1750 luxmetru každé 1 sekundu
- ESP-NOW odesílání každou 1 sekundu
- Zpracování dat a historie
- Sériový výpis pro debugging
🌐 Core 0 - Síťová komunikace
- WiFi management a monitoring
- AsyncWebServer (HTTP requesty)
- JSON API odpovědi
- Webové rozhraní
🔒 Mutex synchronizace
Pro bezpečné sdílení dat mezi jádry používáme dataMutex:
✅ Výhody Dual-Core
- Přesnější měření: Senzory mají dedikované jádro bez rušení
- Rychlejší ESP-NOW: Nižší latence komunikace
- Stabilnější web: Síťová komunikace neblokuje senzory
- Škálovatelnost: Snadné přidání dalších senzorů na Core 1