Projekt

Obecné

Profil

Vize projektu » Historie » Revize 14

Revize 13 (Milan Kohoutek, 2021-03-24 14:47) → Revize 14/30 (Milan Kohoutek, 2021-04-04 16:03)

h1. Vize projektu 

 h2. Pozadí projektu 

 Příští rok by se měl vyučovat na Fakultě aplikovaných věd ZČU předmět Základy programování pro IoT věci ohledně IOT již v prváku - předpokládá se, že by tento předmět byl vhodným doplněním, že by si studenti mohli na mikrokontrolerech v Pythonu cvičit nějaké úlohy. Naše aplikace pomůže sledovat data. 

 h2. Cíl projektu 

 Cílem projektu je vytvoření MQTT klienta, který sleduje příchozí data ze senzorů. zprávy (témata) na MQTT serveru a pro každé téma vytvoří okno, ve kterém bude zobrazovat časový průběh přijímaných dat. 

 h2. Obchodní cíl !cil_projektu.jpg! 

 * *MQTT server* - mikropočítač Raspbery Pi s nainstalovaným serverem Mosquitto brokerem 
 Nabídnout studentům aplikaci, která * *Klient - Publisher* - ESP32 M5stack - topic = identifikační token ESP 
 * *Klient - Subscriber* - PAHO python client - poběží na RaPi a bude nápomocná pro sledování výstupů zobrazovat data, které odeslal Publisher 

 Implementovat hlavní obrazovku aplikace - pod klientem - subscriber. Ten je zavěšený na brokera a čeká na příjem dat k následnému zobrazení.  

 Přeposílaná zpráva může například vypadat takto: *topic | datum | čas | index | hodnota senzoru* 

 *Publisher ukládá data do adresáře v této podobě*: 

 !topic.png! 

 Každý topic má svůj adresář, hodnoty ze senzorů jsou uložené v souboru s názvem časové značky - například _"2021-11-28_15-58-42"_.  

 Jakmile subscriber zaznamená, že po nějakou dobu již nepřijímá žádná témata od publishera - uzavře okno v hlavní aplikaci a uzavře soubor. Pokud přijdou opět nová data porovnávat. - založí soubor, ukládají se do něj data a hodnoty jsou zobrazeny v hlavní aplikaci. 

 h2. Kritéria úspěchu *Očekávané technologie*:  
 * Python,  
 * PyQT - na zobrazování grafů ze senzorů 
 V řádném termínu dokončení projektu předat aplikaci * PAHO Python client 

 *Hlavní aplikace s plně funkčními požadavky, které budou splňovat MVP (Minimum Viable Product). grafy by měla být konfigurovatelná*: 
 * Porovnání dat ze senzorů například starých hodnot s aktuálními hodnotami  
 * (námi přidané: export dat, otevření sady dat, porovnání dat s jinými) 

 h2. Požadavky *Graf*: 
 * X souřadnice - Akceptační kritéria čas a index 
 * Y souřadnice - hodnota 

 _Zdroje instalace a testování MQTT brokeru_: 
 * https://randomnerdtutorials.com/testing-mosquitto-broker-and-client-on-raspbbery-pi/ 
 * http://www.steves-internet-guide.com/into-mqtt-python-client/ 

 h2. Požadavky 

 * Client Subscriber sleduje MQTT Brooker, 
 * jakmile přijde zpráva s daným tématem otevře se okno a začnou se zobrazovat data. 
 * Založí se soubor pod daným tématem a začnou se ukládat data. 
 * Pokud přestane Publisher posílat data tak se po nastavitelné době ukončí odběr, zavře se okno pro téma a zavře se soubor s daty. 
 * Nad soubory s daty bude možné provádět následující operace - +export+, +porovnání dat se staršími daty+ a +otevření sady dat+ 

 h2. Milestones 
 * PRI (Project initialized) - vision, production environment, project plan, requirements 
 * LCOA (Lifecycle objectives and architecture) - baseline architecture, proof of concept, requirements finalization 
 * IOC - (Initial operational capability) - beta version, finalized architecture, at least 90% of the requirements 
 * REL - (Product release) - final product, transition protocol, questionnaire for the team and customer