Projekt

Obecné

Profil

Návrh systému » Historie » Verze 7

Milan Kohoutek, 2021-06-02 21:35

1 1 Milan Kohoutek
h1. Návrh systému
2
3
h2. Cíl projektu
4
5
Cílem projektu je vytvoření MQTT klienta, který sleduje příchozí 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.
6
7 3 Milan Kohoutek
Component Diagram:
8
9
!component_diagram.png!
10 1 Milan Kohoutek
11
* *MQTT server* - mikropočítač Raspbery Pi s nainstalovaným serverem Mosquitto brokerem
12
* *Klient - Publisher* - ESP32 M5stack - topic = identifikační token ESP
13
* *Klient - Subscriber* - PAHO python client - poběží na RaPi a bude zobrazovat data, které odeslal Publisher
14
15
Implementovat hlavní obrazovku aplikace - pod klientem - subscriber. Ten je zavěšený na brokera a čeká na příjem dat k následnému zobrazení. 
16
17
Přeposílaná zpráva může například vypadat takto: *topic | datum | čas | index | hodnota senzoru*
18
19 6 Milan Kohoutek
*Subscriber ukládá data do adresáře v této podobě*:
20 1 Milan Kohoutek
21
!topic.png!
22
23 4 Milan Kohoutek
Každý topic má svůj adresář, hodnoty ze senzorů jsou uložené v textovém souboru obsahující název časové značky - například _"2021-11-28_15-58-42"_. 
24 1 Milan Kohoutek
25
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 - založí soubor, ukládají se do něj data a hodnoty jsou zobrazeny v hlavní aplikaci.
26
27
*Očekávané technologie*: 
28 5 Milan Kohoutek
* Python 2.7.18
29
* PyQt5 5.15.4
30
* paho-mqtt 1.5.1
31 1 Milan Kohoutek
32
*Hlavní aplikace s grafy by měla být konfigurovatelná*:
33
* Porovnání dat ze senzorů například starých hodnot s aktuálními hodnotami 
34
* (námi přidané: export dat, otevření sady dat, porovnání dat s jinými)
35
36
*Graf*:
37
* X souřadnice - čas a index
38
* Y souřadnice - hodnota
39
40
_Zdroje instalace a testování MQTT brokeru_:
41
* https://randomnerdtutorials.com/testing-mosquitto-broker-and-client-on-raspbbery-pi/
42
* http://www.steves-internet-guide.com/into-mqtt-python-client/
43
44
h2. Požadavky
45
46
* Client Subscriber sleduje MQTT Brooker,
47
* jakmile přijde zpráva s daným tématem otevře se okno a začnou se zobrazovat data.
48
* Založí se soubor pod daným tématem a začnou se ukládat data.
49
* 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.
50 7 Milan Kohoutek
* (Dodatečná funkce: 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+)