From 8f77d5b9ea5e5a9480461167b25da38a5bbad9eb Mon Sep 17 00:00:00 2001 From: Filip Znachor Date: Fri, 9 Dec 2022 01:29:31 +0100 Subject: [PATCH] Added README --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1d538aa --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# Odjezdová tabule MHD + +Odjezdová tabule městské hromadné dopravy v Plzni postavená na protokolu LoRaWAN a mikrokontroléru M5Stack Core2. + +### ✅ Základní funkce + +- zobrazení aktuálního **času a data** +- zobrazení **nejbližších odjezdů ze zastávky** se započítaným zpožděním +- funkčnost na celém území **Plzně a okolí** +- **aktualizace zobrazených dat** za chodu + +### 🧰 Použité technologie + +- **C/C++** +- **Python** +- **LoRaWAN** +- HTML, CSS +- JavaScript +- Vue.js + +### 🔧 Instalace + +Aby bylo s projektem možné pracovat, je potřeba několik věcí. Kód pro mikrokontrolér byl vyvíjen v Arduino IDE a použity byly knihovny [M5Core2](https://github.com/m5stack/M5Core2/), [M5GFX](https://github.com/m5stack/M5GFX) a [M5-LoRaWAN](https://github.com/m5stack/M5-LoRaWAN). Serverová část byla vytvořena v Pythonu za použití knihoven [PyYAML](https://pyyaml.org/) a [Bottle](https://github.com/bottlepy/bottle), webové rozšíření poté za pomoci knihovny [Vue.js](https://vuejs.org/) (načítá se z CDN). + +Pro zprovoznění je potřeba doplnit konfigurační soubory **config.yml** (pro server) a **config.h** (pro mikrokontrolér). + +## Cíl projektu + +Cílem práce je navrhnout a zprovoznit odjezdovou tabuli spojů MHD, která bude fungovat na celém území Plzně a v blízkém okolí. Řešení bude založené na protokolu LoRaWAN a využívat bude mikrokontroléru M5Stack Core2 s příslušným komunikačním modulem. + +## Protokol + +Pomocí protokolu LoRaWAN jsou přenášeny zprávy v podobě textového řetězce. Z důvodu snížení velikosti přenášených zpráv není vhodné data posílat například ve formátu JSON. Proto byl vytvořen vlastní úsporný protokol ke komunikaci s mikrokontrolérem. + +Navržený protokol používá pro oddělení posílaných dat znak `|`. Protokol podporuje několik typů zpráv, které najdete níže. + +- **data o spoji** (`1|4|1|Bory|104`) + - uložení či aktualizace informací o spoji + - části: + - identifikátor + - číslo spoje (řetězec, např. `N1`) + - typ (1 - tramvaj, 2 - trolejbus, 3 - autobus) + - poslední zastávka + - čas odjezdu (v minutách s desetinnou částí: `104` = 10.4 min.) +- **aktuální čas** (`TIME|1670453990`) + - nastavení aktuálního času a data + - části: + - značka, že se jedná o čas + - čas ve vteřinách od 1. 1. 1970 +- **vymazání dat** (`CLEAR`) + - vymazání všech uložených spojů (např. pro nahrání nových) \ No newline at end of file