bakalářská práce

Rozšiřující modul pro systém domácí automatizace HAPCAN

Text práce 13.63 MB Příloha 5.82 MB

Autor práce: Bc. Tomáš Pokorný

Ak. rok: 2025/2026

Vedoucí: Ing. Ondřej Kolář

Oponent: Ing. Jan Král, Ph.D.

Abstrakt:

Bakalářská práce se zabývá návrhem a realizací rozšiřujícího modulu pro systém domácí automatizace HAPCAN. Konkrétně se jedná o univerzální modul RFID čtečky určený pro bezkontaktní identifikaci uživatele. V první části je popsán samotný systém HAPCAN, princip komunikační sběrnice CAN a technologie RFID. Následně se práce věnuje hardwarovému i softwarovému návrhu zařízení, založeném na vývojových deskách ESP32, PN532 a MCP2515. Zařízení umožňuje zpracování dat z načteného NFC tagu, na jejichž základě řídí připojený akční člen. Funkční prototyp byl v další fázi realizován do podoby vlastní desky plošných spojů. Pro snadnou aplikaci v praxi byl k modulu navržen také ochranný kryt a zpracována kompletní dokumentace. Navržené řešení je použitelné v různých aplikacích, přičemž jeho funkčnost byla demonstrována na ovládání elektrického zámku v chytrém nočním stolku.

Klíčová slova:

HAPCAN, Domácí automatizace, sběrnice CAN, Technologie RFID, ESP32, Bezkontaktní identifikace, DPS

Termín obhajoby

16.06.2026

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaDznamka

Klasifikace

D

Průběh obhajoby

Student prezentuje postupy a výsledky řešení své závěrečné práce. Následně odpovídá na dotazy oponenta práce a na dotazy členů zkušební komise. Ing. Fedra, Ph.D. Jaké vývojové prostřední jste využil? Převzal jste nějakou část z oficiálního projektu HAPCAN? Student odpovídá, že jeho projekt je vytvořen v ArduinoIDE a dále zmiňuje převzetí formátu zpráv. Prof. Kolka Jaký příkon má Vaše zařízení? Student zmiňuje 1 A při 24 V.

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Elektronika a komunikační technologie (BPC-EKT)

Složení komise

prof. Ing. Lubomír Brančík, CSc. (předseda)
prof. Dr. Ing. Zdeněk Kolka (místopředseda)
Ing. Michal Mrnka, Ph.D. (člen)
prof. Ing. Lubomír Grmela, CSc. (člen)
Ing. Zbyněk Fedra, Ph.D. (člen)

Posudek vedoucího
Ing. Ondřej Kolář

Předložená bakalářská práce se zabývá návrhem a realizací rozšiřujícího modulu pro systém domácí automatizace HAPCAN, konkrétně NFC čtečkou umožňující řízení výstupních akčních členů.

Teoretická část věnovaná sběrnici CAN a technologiím RFID je pro účely práce zpracována dostatečně. Popis systému HAPCAN se zaměřuje především na architekturu systému. Ucelený přehled všech oficiálních modulů, které systém nabízí, však bohužel uveden není. Praktický přínos, který následná práce studenta přináší, tak není vhodně podložen.

Student nejprve navrhl koncept nového modulu, který vhodně rozšiřuje možnosti systému HAPCAN. Tento návrh však není v textu práce dobře reflektován. Popis odráží spíše následné zapojení než architektonickou úvahu a analýzu provozních požadavků. Kladně naopak hodnotím, že student kromě samotného modulu navrhl i vlastní vhodnou aplikaci pro demonstraci výsledného zařízení.

Koncept byl následně v souladu se zadáním realizován pomocí poskytnutých vývojových desek. Student tímto způsobem sestavil funkční systém, na kterém následně započal vývoj potřebného firmwaru. V textu práce student všechny využité moduly a jejich zapojení popisuje, postrádám zde však kritičtější úvahy nad vhodností některých z těchto komponent pro finální realizaci modulu.

Následný hardwarový návrh z velké části vychází z dříve použitých vývojových modulů, které student vhodně doplnil o jednoduchý obvod napájení. Za nejvýznamnější slabinu zde považuji skutečnost, že nebyla využita interní CAN periferie mikrokontroléru ESP32 (TWAI), jež by eliminovala potřebu externího čipu MCP2515. Návrh desky plošných spojů je proveden systematicky a podařilo se dosáhnout kompaktního rozměru. Po následné výrobě prototypu student narazil při procesu oživování na několik chyb v návrhu. Po překonání prvotní nejistoty však dokázal samostatně identifikovat jejich příčiny, v rámci prototypu je opravit a zároveň zpětně upravit výrobní podklady. V této fázi vývoje byl návrh i fyzický prototyp rovněž doplněn o finální mechanické provedení přizpůsobené běžně předpokládané aplikaci modulu.

Vytvořený firmware pro zařízení je funkční a zcela naplňuje stanovené funkční požadavky. Oceňuji, že student dokázal implementovat komunikaci zařízení tak, aby byla kompatibilní s oficiálním softwarem systému HAPCAN a aby bylo možné zařízení jeho prostřednictvím konfigurovat. Architektura projektu však bohužel vykazuje i některé nedostatky plynoucí z nízké zkušenosti studenta s vývojem embedded softwaru. Ačkoliv se student pokusil o modulární implementaci, která by do budoucna umožnila přenositelnost kódu i na případná nová zařízení, je výsledné řešení úzce svázáno s konkrétním hardwarem a aplikací. V projektu jsou navíc správně definovány konstanty, využití některých z nich je však v kódu nahrazeno přímými číselnými hodnotami.

V závěru musím vytknout, že i přes pilnou snahu studenta a poctivé zapracování mých připomínek text práce plně neodráží kvalitu praktického výstupu. Obsah se místy opakuje, některé formulace čtenáře spíše matou a místy postrádám logické zdůvodnění jednotlivých tvrzení. Po formální stránce jsou, kromě nepatrných překlepů a chybných křížových odkazů, největší slabinou nepříliš vhodně umístěné bibliografické odkazy. Student však práci věnoval poctivé úsilí, začal se jí věnovat více než dva měsíce před začátkem školního roku a pravidelně se mnou konzultoval dílčí postup.

Vzhledem ke všemu výše uvedenému doporučuji práci k obhajobě. Výsledný počet bodů navržený vedoucím: 73

Posudek oponenta
Ing. Jan Král, Ph.D.

Práce se zabývá návrhem a realizací RFID čtečky jako rozšiřujícího modulu pro systém domácí automatizace HAPCAN. Modul na bázi ESP32 čte NFC tagy a odesílá odpovídající zprávy po sběrnici CAN, čímž umožňuje například ovládání elektrického zámku. Výsledkem je prototyp na vlastní DPS určené pro montáž do standardní elektroinstalační krabice.

Kladně hodnotím, že všechny chyby zjištěné během návrhu byly v dokumentaci popsány a opraveny a také použití vývojových diagramů, které usnadňují pochopení toku řízení programu.

Přes uvedené klady však práce obsahuje řadu závažných nedostatků.

Není zajištěn překlad logických úrovní mezi 3,3V výstupy mikrokontroléru ESP32 a 5V řadičem CAN MCP2515. Podle specifikace MCP2515 je minimální úroveň logické jedničky na vstupu vyšší než 3,5 V, což výstupy ESP32 nesplňují. Není tedy zajištěna spolehlivá funkce zařízení za všech provozních podmínek.

Přiložený ani zveřejněný zdrojový kód se nepodařilo přeložit. V práci není uvedena verze vývojového prostředí Arduino IDE ani seznam a verze použitých knihoven. Funkce „void HapcanProtocol::loop()“ v souboru HapcanProtocol.cpp obsahuje na řádku 42 text, který měl být pravděpodobně komentářem. Nejsem schopen ověřit, zda tato skutečnost vede k chybě při překladu. Zdrojový kód dále obsahuje značné množství magických konstant, které by měly být nahrazeny symbolickými definicemi. Z logických nedostatků lze zmínit blokující volání delay() ve funkci HapcanProtocol::sendDescriptionResponse(), které může způsobit ztrátu přijímaných zpráv.

V textu práce chybí fotografie osazeného modulu. Uvedena je pouze fotografie modulu umístěného v instalační krabici. Z textu práce také není možné jednoznačně posoudit, zda program popsaný v kapitole 4 skutečně funguje. Chybí kapitola dokumentující funkci celého zařízení, například pomocí záznamu komunikace na sběrnici HAPCAN, fotodokumentace nebo videodokumentace funkčního prototypu.

Komentáře ve zdrojových kódech by s ohledem na možný budoucí rozvoj projektu měly být psány v anglickém jazyce.

V textu se několikrát objevují hodnoty označené jako „nahodile zvolené“. Takový přístup není vhodný, protože zvolené číslo může kolidovat s ostatními prvky systému. Tyto hodnoty měly být zvoleny na základě průzkumu existujících modulů.

Seznam použitých součástek (BOM) uvedený v přílohách ani ve zdrojových souborech není jednoznačný. Součástky by měly být identifikovány výrobcem a objednacím číslem výrobce. Označení typu „Tranzistor – MOSFET“ nebo „Konektor RJ45“ nejsou dostatečná.

Další připomínky: Obr. 1.7 obsahuje chybnou informaci „300–1,5 m“. Popis obrázku 3.3 je zavádějící. V práci se vyskytují překlepy (např. „Firmware Verion“), nesprávné použití zkratek (např. „viz.“ s tečkou) a místy také gramatické či stylistické nedostatky.

Z důvodu nemožnosti přeložit přiložený zdrojový kód a chybějící dokumentace prokazující funkčnost zařízení mám značné pochybnosti o tom, zda bylo vyvinuté zařízení v době odevzdání práce plně funkční a zda byly splněny všechny body zadání.

Přes uvedené nedostatky práci doporučuji k obhajobě a navrhuji hodnocení 55 body a známkou E. Student by měl při obhajobě jednoznačně prokázat funkčnost zařízení a vysvětlit nemožnost překladu odevzdaných zdrojových kódů. Doporučuji rovněž opravit uvedené chyby a nedostatky ve veřejném Git repozitáři. Otázky k obhajobě:
  1. Jakým způsobem je realizována emulace EEPROM pamětí pomocí flash paměti mikrokontroléru? EEPROM paměť na rozdíl od flash paměti umožňuje zápis po bytech. Jakým způsobem probíhá zápis do flash paměti, která hardwarově umožňuje zápis pouze po stránkách?
  2. Jakým způsobem je v modulu Button realizován výstup určený pro spínání relé? Uveďte příslušnou část schématu a doložte funkci měřením na osciloskopu.
  3. Po uplynutí 5 s odesílá modul čtečky příkaz k uzamčení. Co se stane v případě, že tato zpráva nebude doručena? Uveďte možné scénáře vedoucí ke ztrátě zprávy a navrhněte změny, které by problém vyřešily.
Výsledný počet bodů navržený oponentem: 55

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová