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+) |