Table of Contents

Miniprojekty

Cílem miniprojektů je vytvořit komplexní IoT aplikaci, na které bude možné experimentálně ověřit probírané technologie a postupy.

Miniprojekty je možné odevzdat do konce 14. týdne (24.5. 2024), preferujeme dřívější odevzdání :-)
Miniprojekty by měly být odevzdány prostřednictvím fakultního gitlabu, případně jiné služby, např. GitHub. Vždy he třeba, aby byl projekt dostupný, v případě fakultního repozitáře bude mít nastavenou viditelnost buď internal nebo public. Do BRUTE pak nahrajte do příslušného miniprojektu (MP01, MP02, …) textový soubor s linkem na implementaci miniprojektu, případně doplňující informace.

Zadání 1. miniprojektu

Navrhněte Flask aplikaci pro sledování teploty s pomocí knihovny Bootstrap a template enginu Jinja. Projekt vytvořte s pomocí virtuálního prostředí (viz cv01) a následně jej nahrajte na fakultní Gitlab. Do BRUTE následně nahrajte odkaz na tento repozitář, který bude mít nastavenou viditelnost buď internal nebo public.

Zadání 2. miniprojektu

Implementujte do stávající Flask aplikace REST API

Funkce API:

Odevzdání:

Zadání 3. miniprojektu

Rozšiřte svou aplikaci o SQLite databázi. Hodnoty místo slovníkového seznamu ukládejte do tabulky v databázi. Dokončete systém přihlašování a registrace uživatelů.

V tuto chvíli by měla být vaše aplikace hotová a pro budoucí úkoly by nemělo být nutné aplikaci nijak upravovat.

Odevzdání:

Zadání 4. miniprojektu

Naprogramujte Raspberry Pi Pico tak, aby s intervalem 20 sekund vygenerovalo náhodnou hodnotu datového typu Real (simulace měření teploty). Tuto hodnotu zapište na sériové rozhraní, odkud to flask aplikace přečte a zapíše do databáze.

Data by měla být dostupná pomocí REST API, nebo UI, které jsou naprogramované na vašem webovém serveru.

BONUS:

Zadání 5. miniprojektu

Rozšiřte svou IoT platformu o podporu MQTT komunikace přes internet. Vytvořte program pro Raspberry Pi Pico W který se přípojí k dostupné Wi-Fi sítí pomocí které bude Pico publikovat zprávy s daty (timestamp, teplota) do MQTT topicu. Z tohoto topicu bude Flask aplikace odebírat zprávy nad kterými provede kontrolu, zda jsou ve správném formátu. Pokud budou data správně formátovaná, pak se uloží do databáze a budou dostupna skrze webové rozhraní i REST API.

MQTT komunikace NENAHRAZUJE UART komunikaci. Bude možné posílat data jak prostřednictvím MQTT, tak i UART.

Bonus:

Zadání 6. miniprojektu