Bachelor's Thesis

Extension Module for the HAPCAN Home Automation System

Final Thesis 13.63 MB Appendix 5.82 MB

Author of thesis: Bc. Tomáš Pokorný

Acad. year: 2025/2026

Supervisor: Ing. Ondřej Kolář

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

Abstract:

This bachelor’s thesis deals with the design and implementation of an extension module for the HAPCAN home automation system. Specifically, it involves a universal RFID reader module designed for contactless user identification. The first part describes the HAPCAN system itself, the principles of the CAN communication bus, and RFID technology. Subsequently, the thesis focuses on the hardware and software design of the device, which is based on the ESP32, PN532, and MCP2515 development boards. The device processes data from a scanned NFC tag to control a connected actuator. In the next phase, the functional prototype was realized in the form of a custom printed circuit board. To facilitate practical application, a protective cover was designed for the module, and comprehensive documentation was prepared. The proposed solution can be used in various applications, with its functionality successfully demonstrated through the control of an electric lock in a smart nightstand.

Keywords:

HAPCAN, Home automation, CAN bus, Technology RFID, ESP32, Contactless identification, PCB

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaDznamka

Grading

D

Process of defence

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.

Language of thesis

Czech

Faculty

Department

Study programme

Electronics and Communication Technologies (BPC-ECT)

Composition of Committee

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)

Supervisor’s report
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ě. Points proposed by supervisor: 73

Reviewer’s report
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. Topics for thesis defence:
  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.
Points proposed by reviewer: 55

Responsibility: Mgr. et Mgr. Hana Odstrčilová