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