Návrh systému¶
Cíl projektu¶
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.
Component Diagram:
- MQTT server - mikropočítač Raspbery Pi s nainstalovaným serverem Mosquitto brokerem
- Klient - Publisher - ESP32 M5stack - topic = identifikační token ESP
- Klient - Subscriber - PAHO python client - poběží na RaPi a bude 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
Subscriber ukládá data do adresáře v této podobě:
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".
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.
Očekávané technologie:- Python 2.7.18
- PyQt5 5.15.4
- paho-mqtt 1.5.1
- 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)
- X souřadnice - čas a index
- Y souřadnice - hodnota
- https://randomnerdtutorials.com/testing-mosquitto-broker-and-client-on-raspbbery-pi/
- http://www.steves-internet-guide.com/into-mqtt-python-client/
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.
- (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)
Aktualizováno uživatelem Milan Kohoutek před téměř 4 roky(ů) · 7 revizí