Otevře se na nové kartě

Projekt vícekanálového spektrálního analyzátoru (veřejného) osvětlení

Stručně: Ze senzoru AS7265x (18 kanálů, 410–940 nm) a desky Inkplate 5 Gen2 s ESP32 se dá postavit přenosný analyzátor světla. Ukazuje spektrum, podíl modré složky, teplotu chromatičnosti (CCT), odchylku od Planckovy křivky (Duv) a odhad osvětlenosti. Podle tvaru spektra pozná LED, sodíkovou výbojku i žárovku. Laboratorní spektrometr to není, ale na porovnání pouličních lamp stačí. Kód je na GitHubu.

Veřejné osvětlení, světelné znečištění, cirkadiánní rytmus, modrá složka. Tyhle pojmy se teď skloňují pořád. Sodíkové výbojky nahrazují LED, které šetří energii, ale často svítí studeněji a s větším podílem modrého světla. To ovlivňuje cirkadiánní rytmus lidí i živočichy a rostliny v okolí lampy.

Aktualizace: nový program a výpočty – zaúkoloval jsem Claude Opus 5.5 ať to celé projde a najde chyby nebo možná vylepšení. Výsledkem je nový FW a upravený článek.

Po rozhovoru s jedním odborníkem na osvětlení (který shodou okolností prodává vlastní svítidla) mě napadlo postavit si vlastní analyzátor světla a podívat se na lampy před domem sám.

Nápad jsem měl, znalosti z fotometrie ne 🙁 Výpočty jsem proto připravoval s pomocí AI (Claude, ChatGPT, Perplexity) a nechal je kontrolovat navzájem. Později jsem je ověřil simulací na standardních světelných zdrojích CIE.

Výsledkem je přenosný analyzátor světla, který měří spektrum v rozsahu 410–940 nm v 18 kanálech a počítá z něj podíl modré složky, teplotu chromatičnosti (CCT), odchylku od Planckovy křivky (Duv) a odhad osvětlenosti. Podle tvaru spektra pozná, jestli svítí LED, sodíková výbojka nebo žárovka.

Použitý hardware

Inkplate 5 Gen2

Řídicí deska i displej v jednom: Inkplate 5 Gen2 s ESP32 a 5″ ePaper displejem nalepeným přímo na desce.

Na desce najdete RTC, slot pro microSD, GPIO header a konektor easyC, kompatibilní se SparkFun Qwiic a Adafruit STEMMA QT (pinout). Senzor se tak připojí jedním kabelem.

Parametry:

  • rozlišení 1280 × 720 px
  • ESP32
  • spotřeba v deep sleep 18 µA
  • 1bitový režim pro rychlé překreslení a režim s odstíny šedi
  • full refresh do 1 s, partial refresh za 0,22 s
  • vypínací a probouzecí tlačítko
  • podpora v Arduino IDE i MicroPython
  • vestavěná baterie 1200 mAh

Proč ePaper a ne TFT? Displej nesvítí, takže neovlivňuje měření a senzor není potřeba stínit před vlastním displejem. Je čitelný na slunci a obraz drží i bez napájení.

Výdrž na baterii zatím není silná stránka. ESP32 měří každých 10 sekund a deep sleep nepoužívá, takže počítejte spíš s hodinami než se dny provozu.

Inkplate 5 Gen2 je open-source. Podklady včetně modelu krabičky pro 3D tisk jsou na GitHubu Soldered. Upravenou krabičku jsem vytiskl bez problémů.

ePaper se hodí i jinam, třeba pro meteostanici, vlastní informační displej nebo panel pro Home Assistant.

Spektrální senzor AS7265x

Základem projektu je modul SparkFun AS7265x. Jsou na něm tři čipy, každý se šesti kanály:

  • AS72653: 410, 435, 460, 485, 510, 535 nm
  • AS72652: 560, 585, 645, 705, 900, 940 nm
  • AS72651: 610, 680, 730, 760, 810, 860 nm

Čipy se v pořadí vlnových délek prokládají. Bude to důležité u kalibrace.

AS7265x není spektrometr. Každý kanál je fotodioda s interferenčním filtrem s FWHM zhruba 20 nm. Mezi kanály jsou mezery a sousední pásma se částečně překrývají. Typ zdroje rozliší spolehlivě, jednotlivé spektrální čáry ale ne.

Dál modul nabízí:

  • 18 kanálů od 410 do 940 nm, tedy i blízkou infračervenou oblast (NIR)
  • rozhraní I2C (Qwiic)
  • tři LED pro přisvícení (bílou, UV a IR) pro měření odraženého světla, tady se nepoužívají

Kryt senzoru jsem převzal z projektu AS7265x-triad-ui. Omezuje světlo z boku, takže senzor měří hlavně zdroj, na který míří.

Software a knihovny

Projekt používá dvě Arduino knihovny:

InkplateLibrary obsahuje i spoustu vzorových programů pro Inkplate 5 Gen2.

Podporu desek Inkplate přidáte v Arduino IDE přes File → Preferences → Additional boards manager URLs:
https://github.com/SolderedElectronics/Dasduino-Board-Definitions-for-Arduino-IDE/raw/master/package_Dasduino_Boards_index.json

Projekt kompiluji s tímto nastavením desky:

Kód je na GitHubu. Výpočty jsou v samostatném souboru SpectralMath.h, takže je jde otestovat i na PC. Na začátku sketche jsou nastavení: interval měření, logování na microSD, korekce kalibrace a kalibrace luxů.

Co zařízení měří

Spektrum

Levá část displeje ukazuje sloupcový graf všech 18 kanálů. Hodnoty jsou v µW/cm², přepočtené na stejné podmínky (gain 16×, integrační čas 166 ms), takže se dají porovnávat mezi měřeními. Kanály NIR 810–940 nm jsou šrafované.

Podíl modré složky (Blue)

Podíl světla v pásmu 410–485 nm ze všeho viditelného světla 410–760 nm:

Blue = součet(410–485 nm) / součet(410–760 nm)

Kanály nejsou rozmístěné rovnoměrně (rozestupy 25–50 nm), proto se každý kanál při sčítání násobí šířkou intervalu, který zastupuje.

Blue je orientační ukazatel. Biologický účinek na cirkadiánní rytmus přesně nepopisuje, na ten jsou melanopické veličiny (melanopic EDI), které firmware nepočítá.

Cold index

Poměr modré a červené složky:

Cold index = součet(410–485 nm) / součet(610–705 nm)

Teplé světlo má Cold index kolem 0,1–0,3, studené LED a denní světlo kolem 1 a víc.

Teplota chromatičnosti (CCT) a Duv

CCT (náhradní teplota chromatičnosti) říká, jak teplé nebo studené bílé světlo je, v kelvinech. Duv je vzdálenost barvy světla od Planckovy křivky. Kladné Duv znamená nádech do zelena, záporné do purpurova.

Postup výpočtu:

  1. Z kanálů 410–760 nm se spočítají trichromatické složky CIE 1931 XYZ. Váhy kanálů jsou spočítané metodou nejmenších čtverců na modelu senzoru (gaussovské kanály s FWHM 20 nm) a sadě spekter: Planckovy zářiče, denní světlo, bílé LED a výbojky.
  2. Z XYZ se spočítají souřadnice chromatičnosti a převedou se do diagramu CIE 1960 uv.
  3. Firmware najde nejbližší bod na Planckově křivce. Jeho teplota je CCT, vzdálenost od křivky je Duv.

CCT se zobrazí jen tehdy, když má smysl: pro |Duv| ≤ 0,05 a rozsah 1 000–15 000 K. Jinak displej ukáže „—“, třeba u čistě zeleného nebo modrého světla.

Přesnost jsem ověřil simulací na standardních zdrojích CIE, které ve výpočtu vah nebyly:

ZdrojChyba CCT
Žárovka, Planckův zářič 1 800–10 000 Kdo 1 %
Bílé LEDdo 2 %
Vysokotlaká sodíková výbojkado 2 %
Metalhalogenidová výbojka, zářivky, RGB LEDaž 10 %

K tomu je potřeba připočíst toleranci senzoru. Středy kanálů se podle datasheetu mohou lišit až o 10 nm.

Odhad osvětlenosti (Ev)

Z fotopické složky Y se dá odhadnout osvětlenost v luxech. Je to jen odhad: tovární kalibrace senzoru má toleranci ±12 % a bez cosine correctoru platí jen pro světlo dopadající kolmo. Přesnější čísla dostanete po porovnání s luxmetrem.

Podíl NIR

Podíl blízké infračervené oblasti 810–940 nm. Žárovky a slunce ho mají vysoký, LED téměř nulový. U sodíkové výbojky je vysoký kvůli její vlastní čáře na 819 nm.

Jak poznat zdroj podle spektra

  • Bílá LED: úzký modrý pík kolem 450–460 nm, propad kolem 485 nm a široký pás luminoforu 500–650 nm. V NIR skoro nic.
  • Sodíková výbojka: většina energie kolem 589 nm (kanál 585 nm), u vysokotlaké výbojky rozšířená čára zasahuje i do kanálů 560 a 610 nm. V NIR ostrá čára na 819 nm, kterou zachytí kanál 810 nm. Modré málo.
  • Žárovka, halogen: spojité spektrum, které stoupá od modré přes červenou až do NIR.
  • Denní světlo: spojité spektrum s větším podílem modré, v NIR postupně klesá.

Orientační hodnoty, které by měl analyzátor ukazovat (spočítané modelem senzoru ze standardních spekter CIE):

ZdrojCCTBlueCold index
Sodíková výbojka1 900–2 200 K6 %0,15
Žárovka2 700 K6 %0,14
Teplá bílá LED2 700–3 000 K11–13 %0,23–0,29
Neutrální bílá LED4 000 K21 %0,62
Zatažená obloha6 500 K30 %1,08
Studená bílá LED6 500 K33 %1,45
Jasná modrá obloha bez slunce10 000 K40 %1,79

Ukázky měření

Všechny ukázky jsou měřené bez difuzoru.

Sodíková výbojka na ulici

Typický sodík. Nejsilnější je kanál 585 nm, kanály 560 a 610 nm jsou výrazné kvůli rozšíření čáry ve vysokotlaké výbojce. Na 810 nm je ostrý pík, zatímco 760 a 860 nm jsou téměř nulové. To je sodíkový dublet na 819 nm, proto NIR vychází 37 %, i když lampa svítí žlutě.

Blue 8,9 %, Cold index 0,30, CCT 2 455 K a Duv +0,003. CCT je trochu výš než u klasické sodíkové výbojky (kolem 2 000 K). Buď jde o verzi se zlepšeným podáním barev, nebo do senzoru přisvítilo i jiné světlo.

Směs LED a halogenu

Spektrum souvisle stoupá až do 940 nm (NIR 42,6 %), tak vypadá halogen. Na 460 nm je ale zřetelný modrý pík bílé LED.

Prozradí to i Duv −0,016. Planckova křivka je prohnutá, takže smícháním teplého a studeného zdroje vyjde barva pod ní, se záporným Duv. CCT 5 136 K je pak průměr obou zdrojů a jako teplota jednoho svítidla nemá smysl.

Zuby na 560 a 610 nm, které halogen mít nemůže, jsou artefakt měření bez difuzoru.

Automatická expozice

AS7265x má čtyři stupně gainu (1×, 3,7×, 16×, 64×) a nastavitelný integrační čas. Firmware z nich skládá 8 stupňů citlivosti od 1× / 14 ms po 64× / 556 ms.

Každé měření začne na nejnižší citlivosti. Podle nejsilnějšího kanálu odhadne, o kolik může citlivost zvýšit, změří znovu a zkontroluje, že všechny kanály vzrostly úměrně. Když ne, vrátí se o krok zpět. Výsledek je průměr ze tří vzorků.

Pokryje to slabé pouliční osvětlení i svítilnu zblízka. Na displeji je vidět aktuální gain a integrační čas, případně upozornění na saturaci nebo málo světla.

Zobrazení na Inkplate

Levá část: graf spektra 410–940 nm, vlnové délky a naměřené hodnoty.

Pravá část: Blue, Cold index, CCT, Duv, Ev a NIR, pod nimi gain, integrační čas, teplota senzoru, napětí baterie a stav logování.

Měření probíhá každých 10 sekund. Displej se obnovuje přes partial refresh, aby neblikal. Před vykreslením se ale oblasti s měnícími se hodnotami smažou na bílo, jinak by na ePaperu zůstával ghosting předchozích sloupců. Jednou za 20 měření proběhne full refresh.

Každé měření se zapíše na microSD (pokud je připojená) kartu do souboru spektrum.csv, včetně všech 18 kanálů. Serial monitor vypisuje i surové (raw) hodnoty kanálů.

Kalibrace a limity měření

Tenhle analyzátor nekonkuruje profesionálním přístrojům. Je to orientační měřidlo pro porovnání zdrojů mezi sebou.

Každý čip má vlastní tovární kalibraci. U mého kusu měřil čip AS72651 zhruba 2,7× víc než ostatní dva. Ve spektru to vypadalo jako výrazná špička na 610 nm a studená bílá LED vycházela na 2 800 K s Duv −0,024. Po korekci jednou konstantou vychází 5 126 K a Duv −0,0008. Korekce platí jen pro konkrétní kus senzoru.

Bez difuzoru nefungují bodové zdroje zblízka. Nad každým čipem je malá apertura a pod ní šest fotodiod vedle sebe. Úzký svazek světla pod úhlem některé z nich zastíní a ve spektru se objeví propady, které se s každým pohybem stěhují. Se svítilnou z telefonu na 15 cm jsem dostal nesmyslná spektra, pouliční lampa nad hlavou s krytem senzoru funguje dobře.

Výrobce senzor kalibruje i měří s rozptýleným světlem. Jako difuzor stačí kus pečicího papíru, pár vrstev teflonové pásky nebo vytištěný kotouček z bílého PLA o tloušťce 0,4–0,6 mm. Po přidání difuzoru je potřeba korekci změřit znovu.

Luxy jsou jen odhad, dokud je neporovnáte s luxmetrem.

Postup kalibrace doma (halogenová žárovka pro korekci čipů, luxmetr pro luxy) je krok za krokem v README na GitHubu.

Historie úprav

25. 2. 2026: Sodíková výbojka vycházela se stejně vysokým podílem modré jako LED. Po snížení integračních cyklů ze 100 na 20 se výsledky zlepšily. Příčinu jsem tehdy přisuzoval crosstalku mezi kanály, ale firmware měl i další chyby (viz níže), takže to vysvětlení berte s rezervou.

10. 10. 2026: Po review kódu jsem firmware přepracoval:

  • nový výpočet CCT a Duv podle CIE 1931 místo McCamyho vzorce s chybnými koeficienty (u denního světla se starý výpočet pletl o víc než 1 300 K)
  • automatická expozice s kontrolou přesvícení a vlastní čekání na data
  • hodnoty přepočtené na stejné podmínky nezávisle na gainu
  • korekce kalibrace mezi čipy
  • odhad osvětlenosti a podíl NIR místo bezrozměrné hodnoty „Intensity“
  • logování na microSD, partial refresh bez ghostingu

Závěrem

Za mě je kombinace Inkplate 5 Gen2 a AS7265x dobrý základ pro bastlíře, kteří chtějí vidět, čím jim svítí lampa před domem. Za cenu dvou modulů dostanete přístroj, který odliší sodíkovou výbojku, teplou a studenou LED, žárovku i jejich směs a ukáže, kolik modré v nich je.

Laboratorní spektrometr to není. U rozptýleného světla ale už teď dává čísla, která sedí na referenční hodnoty, třeba u studené LED nebo zatažené oblohy. Pro bodové zdroje zblízka je potřeba difuzor a kalibrace podle README.

Kód a postup kalibrace najdete na GitHubu.

Hardware pro projekt dodal Botland.cz.

Ptáte se

Je AS7265x spektrometr?

Ne. Je to 18 fotodiod s interferenčními filtry s FWHM zhruba 20 nm. Typ zdroje rozliší spolehlivě, jednotlivé spektrální čáry ne.

Jak se pozná sodíková výbojka?

Nejsilnější je kanál 585 nm (sodíková čára 589 nm) a v NIR je ostrý pík na 810 nm, který patří sodíkové čáře 819 nm. Modré je velmi málo.

Jak přesně měří teplotu chromatičnosti?

V simulaci na standardních zdrojích CIE je chyba do 2 % u žárovek a bílých LED a až 10 % u zářivek a výbojek s čárovým spektrem. K tomu je potřeba připočíst výrobní toleranci senzoru.

Měří analyzátor luxy?

Jen orientačně. Bez cosine correctoru a porovnání s luxmetrem je odhad osvětlenosti zatížený chybou v řádu desítek procent.

Proč je potřeba difuzor?

Úzký svazek světla pod úhlem zastíní část fotodiod a ve spektru vzniknou falešné propady. Výrobce senzor kalibruje s rozptýleným světlem.

Kolik modrého světla je normální?

Sodíková výbojka a žárovka mají kolem 6 %, teplá bílá LED 11–13 %, studená LED 6 500 K a zatažená obloha kolem 30 %.

Co znamená záporné Duv?

Barva světla je pod Planckovou křivkou, s nádechem do purpurova. Typicky to vychází u směsi teplého a studeného zdroje, třeba halogenu a studené LED.
Sdílejte článek:
Komentáře:
1 komentářů na sociálních sítích
A je to venku, ale nebudeme tomu říkat profesionální měřicí přístroj ani to nebudeme používat jako důkaz, že města používají špatný typ svítidel, jo? Prostě zajímavý projekt. chiptron.cz/projekt-vice... ...více
Číst komentáře
- a -
Přidat svůj názor
Tričko Chiptron s potiskem Trust me, I'm a maker
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku
Buy Me a Coffee

Související články

Schémata zapojení modré, zelené a červené LED k výstupům mikrokontroléru

Níže uvedený článek je článek přeložený ze stránek dfrobot.

Render otevřeného CO2 monitoru s deskou plošných spojů pod šedým krytem

Komerčně prodávaný produkt, který je ale kompletně open-source opravdu člověka potěší.

Přední panel LED osciloskopu s rozsvícenou maticí a ovládacími knoflíky

Na téma „Jak si doma postavit osciloskop“ jsem už sepsal několik článků.

Rozebraný domácí monitor CO₂ s deskou ESP32, čidly a displejem ePaper

Vytvořil jsem si domů monitor vzduchu, který měří koncentraci CO2 pomocí čidel SCD41 a CozIR-LP a teplotu a vlhkost s SHT40.

Rozložené části 3D tištěného pouzdra s elektronikou přenosného osciloskopu

Co můžeme vymyslet s výkonným ESP32-C6? Blikat LEDkou? Měřit teplotu? A co takhle přenosný osciloskop do kapsy? To je projekt ESP-Scope od Matta jehož celý projekt je na volně k použití na github.

Kapesní osciloskop s displejem zobrazuje průběh signálu, vedle leží osciloskopická sonda

Dnešní novinka vám ukáže zajímavý projekt téměř kapesního „osciloskopu“ poháněným vývojovou deskou BluePill s mikrokontrolérem STM32F103 také zvaným Minimum System Development Board for STM32. Už jsme zde ukázal několik takových „ukazovátek průběhů“ – Arduino FIO (ATmega328) s LCD (128x64px) nebo…

Trendy