Node-RED cvičení
Node-RED
Node-RED je programovací nástroj určený k propojení hardwarových zařízení, API a online služeb dle individuálních potřeb.
Node-RED je blokový programovací nástroj, který je založen na runtime prostředí Node.js, tudíž Node-RED běží jako serverový nástroj (lokální či s vzdáleným přístupem). Pro přístup k vývojovému prostředí se používá webový prohlížeč. Vývojové prostředí – respektive editor programu – se skládá z palety nodů a pracovního prostoru nazývaného „flow“ (tok, proud). Do pracovního prostředí přetahujeme jednotlivé nody a spojujeme je. Tím vzniká náš program, který se může dokonce skládat z více jednotlivých „flow“ – toků. Nody představují jednotlivé akce, které se odehrávají ve vašem programu. Ať už se jedná o zpracování dat, připojení k serveru, odeslání zprávy na mobil, zobrazení grafů a mnohé další. Mezi jednotlivými nody tečou jednotlivé zprávy, které nesou obsaženou samotnou informaci. Základním programovacím jazykem, který se používá pro vývoj programů, je JavaScript. Před možným spuštěním našeho programu je vždy nutné změny provedené v editoru nahrát na server pomocí tlačítka „Deploy“
Cvičení 1. Covid-19 data
Úkoly:
1. Vypište do debugu kompletně první položku pole data
2. Vypište do debugu věk první osoby v poli data
3. Vypište do debugu věk poslední osoby v poli data
4. Vypište do debugu průměrný věk všech osob
5. Vypište do debugu, kolik je žen a kolik mužů
6. Vytvořte webovou stránku pod jménem localhost:1880/covid a vypište do nadpisu h1 aktuální počet osob s prokázanou nákazou dle hlášení KH, (včetně html) (odkaz 2.)
7. Nainstalujte si paletu dashboard a do nodu text (ikona abc) zapište počet všech 16letých nakažených včetně popisku
8. Vypište do debugu věk prvních 20 osob s prokázanou nákazou jako samostatný msg.payload, využijte node split
9. Zapište do souboru věk posledních 20 osob s prokázanou nákazou na samostatný řádek, s každým novým zápisem se stávající zápis přepíše. + výpis do debugu ze souboru
10. Zapište do souboru věk posledních 20 osob s prokázanou nákazou bez odřádkování, tzn za sebe. Do souboru se s každým zápisem pouze připíše. + výpis do debugu ze souboru
12. Rozdělte flow pomocí nodů link in a link out + výpis do debugu ze souboru
13. Využijte node delay a do grafu s názvem gauge vypište každou sekundu věk jedné osoby s prokázanou nemocí. Celkem vypište prvních 50 osob.
14. Okomentujte každé vlákno pomocí nodu comment
15. Nastavte zapisování do souboru roků posledních 10 osob s prokázanou nemocí automaticky každých 5 sekund. Soubor se tedy každých 5 sekund automaticky přepíše.
16. Nastavte odesílání hlášení o počtu nakažených za včerejší den jednou denně v 6:00 na váš školní email ve formátu: "Počet nakažených za včerejší den je: 5394 + nový řádek + odesláno: 9.10.2020"
Nápověda pro 16. - server: mail.ssps.cz, port: 465
Zdroje
Zdroj dat: https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19
Odkaz data 1. https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19/osoby.json - Pro všechny úkoly kromě 6.
Odkaz data 2. : https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19/zakladni-prehled.json Základní přehled pro 6. úkol
Návody:
JSON, Javascript:
https://www.w3schools.com/js/js_json_objects.asp
https://www.w3schools.com/js/js_arrays.asp
https://cookbook.nodered.org/#http-requests
Také po kliknutí na ikonu knihy v Node-redu->
Ukázka možného zapojení
Příklad výpisů
Cvičení 2. DPP real-time data
Úkoly
1. Vytvořit funkční flow které do debugu vypíše kompletní data o aktuálních polohách všech autobusů na libovolné, vámi zvolené autobusové lince.
2. Vytvořit funkci, která zvládne vypsat podrobnosti o příští a minulé zastávce se zpožděním a konečnou zastávkou prvního autobusu v poli.
3. Vytvořit nějaký výstup kromě debugu. Ať už webovou stránku, nebo nějaký výstup pomocí nodů v sekci dashboard. Jeho obsah je na vás, ať hlavně dává smysl a je užitečný.
Pro přístup k API si vygenerujte API klíč
(x-access-token) zde: https://api.golemio.cz/api-keys/auth/sign-in
API jsou k dispozici: https://golemioapi.docs.apiary.io
Návod na vytvoření request header:https://cookbook.nodered.org/http/set-request-header
Jízdní řády jsou na IDOSu.
Odkazy
JSON, Javascript:
https://www.w3schools.com/js/js_json_objects.asp
https://www.w3schools.com/js/js_arrays.asp
Příloha - soubor ID zastávek, autobusů atd.




