Hodiny "big LED" 10cm mají osazené 4ks segmentovek SC40-18SRWA Kingbright. Jsou řízeny procesorem ESP32 a napájeny stejnosměrným zdrojem 12V. Hodiny lze programovat pomocí UARTu, nebo po nahrání verze FW-1.0 a vyšší i pomocí www stránky. Hodiny obsahují 3 tlačítka. Dvě pro umožnění přepnutí ESP32 do režimu "boot", kdy je možné přes UART nahrát kód. Třetí tlačítko v případě stisknutí na dobu delší než 2 vteřiny vyvolá AP manažera pro nastavení základních parametrů (Připojení k Wi-Fi síti a adresu NTP serveru). Hodiny po zapnutí napájecího napětí zobrazí na dobu 2 vteřiny na všech digitech číslo 8888 s efektem "fade-in". Toto slouží pouze pro kontrolu všech segmentů, zda jsou v pořádku. Následně se zobrazí na displeji stav "UIFI", kdy se hodiny snaží připojit k Wi-Fi síti. Po připojení se zobrazí text "ntP" pro načtení času z NTP serveru. Po úspěšném načtení se již zobrazuje aktuální přesný čas. V případě, že se nepodaří načíst data z NTP serveru, tak se zobrazí chyba "Err ntP" a následně dojde k restartu hodin. V případě, že se nedaří připojit k Wi-Fi síti, tak se připojení opakuje cca 20x a následně dojde k restartu hodin (po dobu pokusu o připojení k Wi-Fi běhá dokola celých hodin jeden segment).
Parametry obvodu
Napájení
- zdroj 12VDC/min 1A
- spotřeba cca 7W (při max jasu)
Spotřeba
- LED zhasnuto < 20 mA (napájení pouze ESP32 a posuvných registrů)
- LED maximální jas = 750 mA (na všech segmentech svítí 8888)
Řízení času
- automatická synchronizace s NTP serverem (lze nastavit posun a NTP server)
Zobrazení
- datum DD.MM.YY
- čas HH:MM
- teplota -99 +99°C
Nastavení Wi-Fi sítě
- po stisknutí tlačítka AP na hodinách se vyvolá na 8 minut lokální Wi-Fi síť - AP manažer, přes kterého nastavíme připojení k požadované Wi-Fi síti
ZDARMA
- bin pro procesor ESP32 v1.0, v1.1
DONATE
- zdroj + bin pro Arduino IDE (FW-1.0 a vyšší), desky spojů a gerber (Eagle), 3D data pro tiskárnu (STL, GCODE)
Aktuální FW verze
- FW1.2 - Přidané měření teploty čidlem DS18B20 (-99 až 99 °C) -> mezi pin 3,3V a SCL přidáme rezistor cca 3k3 a povolíme v menu AP manažeru zobrazení teploty. Zobrazení datumu na displeji v čase každé 30-35 vteřiny. Zobrazení teploty v čase každé 36-41 vteřiny. Přidán výpis teploty a osvětlení na web server www.ipadresa_hodin/info.
- FW1.1 - Oprava textů "Err Wi-FI", pokud není dosud připojeno k Wi-Fi. Oprava správce AP pro připojení k Wi-Fi (nebylo zobrazeno menu). Nastaven časový limit pro AP manažera na 8 minut (ne 4 minuty jako původně). Oprava stmívání PWM (hodnota z fotorezistoru). Oprava chyby v HTML ve správci AP. Přidáno do EEPROM: hostname a heslo do AP, posun času pro UTC a offset denního světla v sec, zap a vyp pro zobrazení datumu na displeji v čase každé 35-40 vteřiny. Přidaná webová stránka v režimu STA "http://IP/info" pro informace Wi-Fi SSID (ke které Wi-Fi je připojeno a síla signálu %). Po této aktualizaci se musí znovu nastavit AP manažer a připojit hodiny k Wi-Fi (hodiny se nastaví na default).
- FW1.0 - výchozí verze (AP manažer ano, bez nastavení budíku-alarmu)
Schéma zapojení
Deska spojů
Rozdělená deska (levá a pravá část v případě možnosti výroby pouze do velikosti A4)
Deska spojů (foto prototyp)
Zjištění, že ESP32 nevybudí FET pro spínání PWM katod displeje -> dobastlený optočlen
Seznam součástek
Programování ESP32 z Arduina
K vložení programu do procesoru ESP32 jsem použil zakoupený programátor https://www.tme.eu/cz/details/wsh-11325/konvertory/waveshare/11325/
U tme.eu stojí cca 90,-. Programátor stačí připojit k USB počítače a druhou stranu zasunout do desky hodin (využívají se pouze piny: Rx,Tx,Gnd).
Programování se provádí následovně (sekvence) -> na programátoru není jumper spojen ani s 5V, ani s 3V3! (hodiny mají svoje napájení)
- máme připojený programátor do USB a desky hodin
- v Arduinu připravený program pro nahrání do hodin (použito při prototypu: Arduino IDE 1.8.13 + Board 1.0.5 + HW DOIT ESP32 DEVKIT V1 https://github.com/espressif/arduino-esp32
- na desce hodin podržíme současně tlačítko "boot" a "en-reset", zapneme napájecí zdroj 12V pro hodiny a uvolníme tlačítko "en". Tím přepneme ESP do režimu uploadu
- v Arduinu klepneme na tlačíko "nahrát"
- po úspěšném nahrání stiskneme tlačítko "en" pro provedení restartu cpu ESP32
- pokud necháme připojený programátor a v Arduino IDE si zapneme sériový monitor (115200bd), tak uvidíme debug výpis co se děje
Nastavení připojení k Wi-Fi
- stiskneme na dobu delší než 2 vteřiny prostřední tlačítko "Wi-Fi", které vyvolá spuštění AP (Access Point) manažeru. Na LED displeji se zobrazí text "AP" a následně "IP" adresa "192.168.1.1"
- na našem mobilu, tabletu, nebo notebooku vyhledáme Wi-Fi síť, která se jmenuje "ESP32_BIG_LED_SN1"
- klikneme pro připojení k uvedené síti -> heslo je "12345678"
- otevřeme webový prohlížeč a zadáme IP adresu "http://192.168.1.1"
- následně nastavíme požadované parametry (Připojení k Wi-Fi síti, NTP server...) po uložení parametrů (Wi-Fi a NTP server) provedeme restart hodin (v AP manažeru, nebo na desce hodin)
- výchozí NTP server je nastaven na "europe.pool.ntp.org"
3D krabička
Krabička je vytištěna na 3D tiskárně "Prusa i3MK3". Tato tiskárna nemá tiskovou plochu stejně velkou jako moje hodiny, tak jsem krabici rozdělil na dvě stejné části. Tisk každé části (jedna polovina + jeden držák) trval cca 8 hodin. V polovině jsou obě poloviny sesazeny pomocí kousku cuprextitu.
Konečně jsou tady :-) můžu udělat finál
Oprava textů "Err Wi-FI", pokud není dosud připojeno k Wi-Fi. Oprava správce AP pro připojení k Wi-Fi (nebylo zobrazeno menu). Nastaven časový limit pro AP manažera na 8 minut (ne 4 minuty jako původně). Oprava stmívání PWM (hodnota z fotorezistoru). Oprava chyby v HTML ve správci AP. Přidáno do EEPROM: hostname a heslo do AP, posun času pro UTC a offset denního světla v sec, zap a vyp pro zobrazení datumu na displeji v čase každé 35-40 vteřiny. Přidaná webová stránka v režimu STA "http://IP/info" pro informace Wi-Fi SSID (ke které Wi-Fi je připojeno a síla signálu %). Po této aktualizaci se musí znovu nastavit AP manažer a připojit hodiny k Wi-Fi (hodiny se nastaví na default).
Režim AP
Režim STA
Video s ukázkou FW:1.1 po zapnutí napájení
Web server verze FW1.2