## Úvod do internetu vecí
#### nástroje, ukážky a nápady
[Miroslav "mirek" Biňas](https://bletvaska.github.io)
/ [**Učiteľské fórum**](https://mpc-edu.sk/sk)
[![mirek](images/mirek.na.hackathone.jpg)](https://bletvaska.github.io)
[![C0d3 B4ttl3](images/banner-c0d3.b4ttl3.png)](http://namakanyden.sk/2021/c0d3.b4ttl3.html)
[www.namakanyden.sk](http://www.namakanyden.sk)
[![Follow Us on Facebook](images/follow.us.on.facebook.png)](https://www.facebook.com/namakanyden)
[www.facebook.com/namakanyden](https://www.facebook.com/namakanyden)
[![Node-RED Logo](images/logo-node.red.png)](https://nodered.org)
## Čo je Node-RED I.?
> Node-RED is a **visual tool** for **wiring** the Internet of Things. (2016)
> **Flow-based programming** for the Internet of Things. (2017)
> **Low-code programming** for **event-driven applications**. (2019)
## Čo je to Node-RED II.?
> [Node-RED](https://nodered.org) is a **programming tool** for **wiring** together hardware devices, APIs and online services in new and interesting ways. ([homepage](https://nodered.org))
## A okrem toho...
* open source (zadarmo)
* platformovo nezávislý ([nodejs](https://nodejs.org/))
* aplikácia v prehliadači
## "Tradičné" požiadavky na vývoj IoT riešení
* programovanie v nízkoúrovňových jazykoch
* zručnosti na úrovni návrhu hardvéru
* rozumieť elektronike
* znalosti komplexných API pre integrovanie externých služieb
* znalosti TSDB systémov pre prácu s dátami
* znalosti z oblastí ako DA alebo ML pre aplikovanie poznatkov z uložených dát
Node-RED sa postará o technické aspekty vášho riešenia a pomôže vám sústrediť sa na váš workflow.
## [Welcome to FRED](https://fred.sensetecnic.com)
We're hosting Node-RED so you don't have to
## Čo je to FBP?
> **Flow-Based Programming** is a programming paradigm that defines applications as **networks** of "black box" processes, which exchange data across predefined **connections** by **message passing**, where the connections are specified **externally** to the processes. ([Wikipedia](https://en.wikipedia.org/wiki/Flow-based_programming))
## Prenášaná správa
```json
{
"_msgid": "89cbb063.7f7a7",
"payload": "Hello world!",
"topic": "Greetings!"
}
```
## Meteo Servis
([inšpirácia](https://meteo.skola.sk/meteostanica/?id=22))
[![node-red-contrib-web-worldmap](images/worldmap.node.gif)](https://flows.nodered.org/node/node-red-contrib-web-worldmap)
[node-red-contrib-web-worldmap](https://flows.nodered.org/node/node-red-contrib-web-worldmap)
[![OpenWeatherMap.org](images/logo-openweathermap.png)](https://openweathermap.org)
* uzol: [node-red-node-openweathermap](https://flows.nodered.org/node/node-red-node-openweathermap)
* API kľúč: `08f5d8fd385c443eeff6608c643e0bc5`
* [aktuálne počasie v strojovo čitateľnom formáte](http://api.openweathermap.org/data/2.5/weather?units=metric&q=dolny%20kubin,sk&appid=08f5d8fd385c443eeff6608c643e0bc5)
* HTTP protokol (REST API)
* JSON formát
![How MQTT Works](images/how.mqtt.works.png)
Notes:
* https://www.eclipse.org/community/eclipse_newsletter/2014/october/article2.php
## Čo ešte Node-RED dokáže?
* vlastné webové stránky
* vlastné REST API
* vlastné dashboard-y
* integrácia s DB systémami
* integrácia s ďalšími službami (uzly napr. pre Twitter a iné)
* programovať uzly (natívne v JavaScript-e, ale aj v Python-e)
* a iné
## Zdroje
* [domovská stránka nástroja Node-RED](https://nodered.org)
* [flow s výslednou službou](resources/flow-meteoserice.json)
* [Node-RED kanál na YouTube](https://www.youtube.com/channel/UCQaB8NXBEPod7Ab8PPCLLAA)
* [videozáznam z webinára](https://youtu.be/coqzmKypHyE)
![qr code](https://api.qrserver.com/v1/create-qr-code/?data=https://bit.ly/3uBhK7w&size=300x300)
(**https://bit.ly/3uBhK7w**)