Improved README
This commit is contained in:
parent
1e95b46f82
commit
9e5f67eee7
27
README.md
27
README.md
|
@ -10,23 +10,18 @@ Odjezdová tabule městské hromadné dopravy v Plzni postavená na protokolu Lo
|
||||||
- **aktualizace zobrazených dat** za chodu
|
- **aktualizace zobrazených dat** za chodu
|
||||||
|
|
||||||
### 🧰 Použité technologie
|
### 🧰 Použité technologie
|
||||||
|
- **C/C++**, **Python**, **LoRaWAN**
|
||||||
|
- HTML, CSS, JavaScript, Vue.js
|
||||||
|
|
||||||
- **C/C++**
|
### ⚙️ Použité součástky
|
||||||
- **Python**
|
|
||||||
- **LoRaWAN**
|
|
||||||
- HTML, CSS
|
|
||||||
- JavaScript
|
|
||||||
- Vue.js
|
|
||||||
|
|
||||||
### 🔧 Instalace a nastavení
|
|
||||||
|
|
||||||
Aby bylo s projektem možné pracovat, je potřeba zajistit několik následujících věcí.
|
|
||||||
|
|
||||||
**Použité součástky:**
|
|
||||||
- [M5Stack Core2](https://shop.m5stack.com/products/m5stack-core2-esp32-iot-development-kit)
|
- [M5Stack Core2](https://shop.m5stack.com/products/m5stack-core2-esp32-iot-development-kit)
|
||||||
- [LoRaWAN UNIT 868MHz (ASR6501)](https://shop.m5stack.com/products/lorawan-unit-868mhz-asr6501-with-antenna)
|
- [LoRaWAN UNIT 868MHz (ASR6501)](https://shop.m5stack.com/products/lorawan-unit-868mhz-asr6501-with-antenna)
|
||||||
- kabely k propojení
|
- kabely k propojení
|
||||||
|
|
||||||
|
### 💡 Instalace a nastavení
|
||||||
|
|
||||||
|
Aby bylo s projektem možné pracovat, je potřeba zajistit několik následujících 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).
|
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 fungování je potřeba doplnit konfigurační soubory **config.yml** (pro server) a **config.h** (pro mikrokontrolér).
|
Pro fungování je potřeba doplnit konfigurační soubory **config.yml** (pro server) a **config.h** (pro mikrokontrolér).
|
||||||
|
@ -35,13 +30,13 @@ Odesílání zpráv na mikrokontrolér probíhá přes [REST API](https://docume
|
||||||
|
|
||||||
## Cíl projektu
|
## 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 komunikačním modulem LoRaWAN UNIT 868MHz (ASR6501).
|
Cílem práce je navržení a zprovoznění odjezdové tabule spojů plzeňské 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 komunikačním modulem LoRaWAN UNIT 868MHz (ASR6501).
|
||||||
|
|
||||||
## Protokol
|
## 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.
|
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.
|
Navržený protokol používá pro oddělení posílaných dat znak `|` a podporuje několik typů zpráv, které najdete níže.
|
||||||
|
|
||||||
- **data o spoji** (`1|4|1|Bory|104`)
|
- **data o spoji** (`1|4|1|Bory|104`)
|
||||||
- uložení či aktualizace informací o spoji
|
- uložení či aktualizace informací o spoji
|
||||||
|
@ -69,7 +64,7 @@ Jako první jsou stažena data o odjezdech do paměti, kde jsou uchovávána. Je
|
||||||
|
|
||||||
### Klientská část
|
### Klientská část
|
||||||
|
|
||||||
Mikrokontrolér je po zapnutí připojen do sítě LoRaWAN s nastavenými údaji a poté čeká na přicházející zprávy. Po přijetí dat o spojích jsou tyto informace zapsány do paměti. Každých 6 sekund se provádí aktualizace displeje, kdy se vypíšou všechny dostupné informace. Na displej jsou vypisovány spoje seřazné podle času odjezdu od nejbližšího. Je vypsán pouze nejbližší spoj dané linky a konečné zastávky, jelikož je to pro cestující na zastávce nejdůležitější informací. Zobrazovány jsou dále pouze spoje, jejichž odjezd je za více než -0,3 minuty a za méně než 100 minut. Každou 6. vteřinu se také odečte jedna desetina minuty od odjezdu všech spojů a přičte jedna desetina k zobrazovanému času. Mikrokontrolér je schopen pracovat se všemi lokálními daty bez potřeby komunikace se serverem.
|
Mikrokontrolér je po zapnutí připojen do sítě LoRaWAN s nastavenými údaji a poté čeká na přicházející zprávy. Po přijetí dat o spojích jsou tyto informace zapsány do paměti. Každých 6 sekund se provádí aktualizace displeje, kdy se vypíšou všechny dostupné informace. Na displej jsou vypisovány spoje seřazené podle času odjezdu od nejbližšího. Je vypsán pouze nejbližší spoj dané linky a konečné zastávky, jelikož je to pro cestující na zastávce nejdůležitější informací. Zobrazovány jsou dále pouze spoje, jejichž odjezd je za více než -0,3 minuty a za méně než 100 minut. Každou 6. vteřinu se také odečte jedna desetina minuty od odjezdu všech spojů a přičte jedna desetina k zobrazovanému času. Mikrokontrolér je schopen pracovat se všemi lokálními daty bez potřeby komunikace se serverem.
|
||||||
|
|
||||||
### Rozšíření pro asistenta
|
### Rozšíření pro asistenta
|
||||||
|
|
||||||
|
@ -83,7 +78,7 @@ Získaná data je díky REST API serverové části možné využít i k jiným
|
||||||
|
|
||||||
#### Integrace do aplikace Home Assistant
|
#### Integrace do aplikace Home Assistant
|
||||||
|
|
||||||
1. Otevřete ovládací panel v aplikaci Home Assistent
|
1. Otevřete ovládací panel v aplikaci Home Assistant
|
||||||
2. Zvolte další možnosti (tři tečky v pravém horním rohu) a možnost "Upravit ovládací panel"
|
2. Zvolte další možnosti (tři tečky v pravém horním rohu) a možnost "Upravit ovládací panel"
|
||||||
3. Přidejte novou kartu v podobě webové stránky
|
3. Přidejte novou kartu v podobě webové stránky
|
||||||
4. Vložte URL adresu HTTP serveru
|
4. Vložte URL adresu HTTP serveru
|
||||||
|
|
Loading…
Reference in a new issue