Projekt

Obecné

Profil

Akce

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
Hlavní aplikace s 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)
Graf:
  • X souřadnice - čas a index
  • Y souřadnice - hodnota
Zdroje instalace a testování MQTT brokeru:

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í