Wiring (Arduino Core) ESP-IDF AVR / Arduino ESP8266 / ESP32 HTML5 PHP SQL Git Autodesk Eagle MATLAB C Postman OpenSSL

Osobné údaje


  • Meno: Ing. Martin Chlebovec
  • E-mail: martinius96@gmail.com
  • Bydlisko: Šuňava (okres Poprad)
  • Vek: 28 rokov

  • Vzdelanie


    • Fakulta elektrotechniky a informatiky, Technická univerzita v Košiciach
      • 2019 - 2021 • Počítačové siete - (vysokoškolské vzdelanie II. stupňa)
    • Fakulta elektrotechniky a informatiky, Technická univerzita v Košiciach
      • 2016 - 2019 • Počítačové siete - (vysokoškolské vzdelanie I. stupňa)
    • Stredná odborná škola technická, Poprad
      • 2012 - 2016 • Mechanik počítačových sietí - (úplné stredné odborné vzdelanie s maturitou a výučným listom)

    Lokality výkonu práce


  • Okres Poprad
  • Okres Liptovský Mikuláš
  • Okres Spišská Nová Ves
  • Remote / Hybrid

  • Publikácie - vlastné / v kooperácii - (dipl. / semest. práce, eseje, odb. články)


  • Meranie na fyzikálnom modeli PON sietí pre areál TUKE - (LAB 1 Prenosové médiá)
  • Smerovanie v rámci senzorových sietí - (Semestrálna práca)
  • mmWaves, typy antén, typy komunikácie - (Semestrálna práca)
  • Bezpečná vzdialená aktualizácia IoT senzora na báze ESP32 - (EEI XII - TUKE)
  • Inteligentné relé s WiFi konektivitou do siete eduroam - (Bakalárska práca)
  • Bezpečná aktualizácia firmvéru v senzorovej sieti na báze ESP32 - (Diplomová práca)
  • Vplyv šumu na pixelovú grafiku - MATLAB
  • Elektroinštalácia - ProgeCAD

  • Znalosti a zručnosti


    Embedded, mikrokontroléry
  • C - základy
  • Embedded Software - základy
  • Wiring (Arduino Core) - pokročilý
  • ESP-IDF - začiatočník
  • FreeRTOS - začiatočník
  • ESPTOOL (bundle) - základy
  • TTN, LoRaWAN - základy
  • Autodesk Eagle - základy
  • EasyEDA - základy

  • Protokoly. zbernice a modulácie
  • REST, MQTT(S), HTTP(S), UDP
  • RS-232, RS-485, UART, SPI, I2C, 1-wire
  • PWM
  • Web technológie
  • HTML5 - základy
  • Bootstrap - základy
  • CSS - základy
  • PHP (procedural) - základy
  • SQL - základy
  • Iné
  • MATLAB - základy
  • AutoCAD / ProgeCAD (2D) - základy
  • OpenSSL - začiatočník
  • Microsoft Office - mierne pokročilý
  • Git - základy
  • UML / Draw.io - základy
  • Thingsboard / Ubidots - základy

  • Testovanie softvéru (API)
  • Postman - pokročilý
  • MQTTX - mierne pokročilý
  • Packet Sender - mierne pokročilý
  • Jazykové znalosti
  • Anglický - B1

  • Záujmy, oblasť zamerania


    Vo voľnom čase sa venujem programovaniu mikrokontrolérov ESP8266, ESP32 od Espressif Systems, AVR ATmega (Arduino vývojové kity) vo frameworku Wiring (Arduino Core) v prostredí Arduino IDE. Primárne sú programované pre účely zberu dát, ovládania GPIO, čítania hodnôt z digitálnych senzorov, ADC prevodníka, prenosu dát. Mám skúsenosti s obsluhou analógových a digitálnych vstupov, prerušení pre rôzne stavy detekcie hrany digitálneho vstupného signálu (RISING / FALLING) so SW debouncingom. Viem navrhnúť pseudo-multitasking programu pre obsluhu zberníc, výpočtov, požiadaviek na server a pod. Dokážem navrhnúť optimalizovaný firmvér pre ESP8266 / ESP32 pre prevádzku na batériu - Ultra Low Power (ULP), režim hlbokého spánku. Ovládam komunikáciu s perifériami cez štandardné zbernice - UART / RS232 / RS485 / I2C / SPI / OneWire s kompatibilnou Arduino (C/C++) knižnicou. Pre konektivitu do siete a internetu som využíval technológiu WiFi / Ethernet (komunikácia cez SPI u Arduino dosiek, resp. RMII pri ESP32 s PHY Ethernet) / Sigfox LPWAN (komunikácia cez HW / SW UART) pre prenos dát do cloudovej služby, alebo vlastného backendu dosiahnuteľného cez internet, LAN sieť. Mám skúsenosti s prenosom dát cez UDP datagramy, ale aj cez štandardné TCP protokoly napr. HTTP(s) / MQTT(s) a ich implementáciou pod týmito mikrokontrolérmi. Venujem sa tvorbe jednoduchých responzívnych (Bootstrap) webových rozhraní v HTML5, ktoré môžu bežať na mikrokontroléroch v režime webservera, alebo na webhostingu s podporou PHP (procedurálne, nie OOP) scriptov pre backend umožňujúci spracovanie, archiváciu (MySQL). Vizualizáciu nameraných údajov zo senzorových uzlov realizujem v grafickej reprezentácii (Google Charts / Gauges).


    Mnou vytvorené webové rozhrania umožňujú na základe požiadaviek aplikácie aj vzdialené (remote) ovládanie GPIO s možnosťou konfigurácie riadiacich údajov pre logiku aplikácie (napr. cieľová teplota, hysteréza). Ovládanie v manuálnom / automatickom režime na základe podmienok --> nameraných fyzikálnych veličín, rozhodovacieho prahu, času... Logika spustená vykonaním PHP scriptu, ktorý spustí mikrokontróler a načíta payload (JSON, RAW...) v Response webservera, na ktorý dokáže vykonať callback. Vytvoril som pár jednoduchých webaplikácii s možnosťou multiuser prístupu (session), ktoré umožňujú používateľovi vizualizovať dáta z jeho mikrokontroléra s možnosťou jeho vzdialenej správy. Webové rozhranie umožňuje vygenerovať zdrojový kód pre mikrokontróler na základe nastavených údajov s možnosťou autentizácie mikrokontroléra cez argument v POST requeste, alebo cez HTTP autentizáciu (Basic Auth / Bearer token, Digest a iné). Na FEI TUKE som realizoval diplomovú prácu s využitím frameworku ESP-IDF (jazyk C) pre mikrokontróler ESP32 od Espressif Systems. Využíval som operačný systém reálneho času FreeRTOS a osvojil som si elementárne základy spúšťania úloh (tasks) a mechanizmy blokovania úloh, napr. fronta - Queue. Finálna implementácia firmvéru diplomovej práce pre ESP32 obsahovala Remote Over The Air (OTA) aktualizácie firmvéru distribuovaného cez cloudové úložisko (podpisová schéma ECDSA pre digitálny podpis firmvéru). Downlink firmvéru cez zabezpečený prenosový kanál - HTTPS protokol so zápisom do voľnej (pasívnej) partície vo flash pamäti. Vygenerovaný vlastný Root CA certifikát, certifikát pre doménu nástrojom OpenSSL, implementácia do HTTPD služby Cent OS pre HSTS presmerovanie (v bakalárskej práci využitá i autentizácia klienta klientským certifikátom). Súčasťou riešenia diplomovej práce bolo aj permanentné spustenie HW funkcionalít ESP32 cez eFuses - Secure Boot V1, Flash Encryption v režime pre produkčné aplikácie (Release) pre zabezpečenie firmvéru, odtlačku Bootloadera (digestu) a bootovacieho procesu. Využil som aj balík ESPTOOL s nástrojmi esptool.py (práca s flash ESP32), espefuse.py (práca s eFuses), espsecure.py (kryptografické operácie, generovanie kľúčov, podpisovanie firmvéru).


    Referencie na mnou realizované projekty - DEMO na vyskúšanie:


  • Hladinomer (Arduino / ESP / Sigfox IoT LPWAN): http://arduino.clanweb.eu/studna_s_prekladom/
  • Vykurovanie s hysterézou (multiuser webaplikácia Arduino / ESP - open-source): http://arduino.clanweb.eu/vykurovanie-online/ test login: admin / admin
  • Časové riadenie zavlažovania (Arduino + Ethernet Wiznet W5100): http://arduino.clanweb.eu/zavlaha/ test login: admin / admin
  • WiFi termostat (ESP8266 / ESP32): https://martinius96.github.io/WiFi-termostat/
  • Ethernet termostat (ESP32 + PHY Ethernet / Arduino + Ethernet Wiznet W5X00): https://martinius96.github.io/termostat-ethernet/
  • RFID DOMINATOR - stopky pre Airsoft s DPS: https://martinius96.github.io/Airsoft-DOMINATOR-RFID/

  • Externé odkazy na zdrojové kódy projektov - Github:


  • RFID vrátnik (open-source): https://github.com/martinius96/RFID-otvaranie-dveri
  • Programové implementácia v ESP-IDF (FreeRTOS) pre ESP32: https://github.com/martinius96/ESP-IDF_FreeRTOS_ESP32
  • Vykurovanie s hysterézou (multiuser webaplikácia Arduino / ESP - open-source): https://github.com/martinius96/Vykurovanie-Multiuser-Webapp-Arduino-ESP8266-ESP32
  • Implementácie v jazyku C (CLI console): https://github.com/martinius96/C-scripty
  • Multiuser text-based hra Webwars (open-source): https://github.com/martinius96/Webwars
  • WebScraper ESP8266 / ESP32 s UART vstupom pre ŠPZ vozidla: https://github.com/martinius96/WebScraper-ESP
  • MATLAB implementácie: https://github.com/martinius96/MATLAB-scripty
  • Pripojenie na slovenský verejný MQTT Broker (Arduino, ESP8266, ESP32): https://github.com/martinius96/MQTT-Broker-IoTIndustries
  • Mastermind (Logik) - implementácia hry pre Arduino a LCD: https://github.com/martinius96/mastermind-arduino
  • Hladinomer (Arduino, ESP8266, ESP32, Sigfox - OTA, Ultra Low Power): https://github.com/martinius96/hladinomer

  • Screenshoty z realizovaných projektov - Arduino / ESP8266 / ESP32:



    Screenshoty z realizovaných úloh a zadaní - MATLAB: