Přeskočit na hlavní obsah

Věštecká koule

Úvod

I mladí programátoři chtějí znát svůj osud. Vyvěšti si ho s krabičkou. IoT magie odpoví na všechny otázky, které se ti honí hlavou. 🔮 😱

V tomhle projektu se naučíš udělat z krabičky věšteckou kouli neboli magic 8-ball. ️🎱 Nastavíš ji tak, aby při zatřepání náhodně zvolila jednu z možností.

Budeš potřebovat krabičku s tlačítkem a USB dongle. Vystačíš si tedy se základní HARDWARIO sadou, Start Set.

Rozjeď to v Node-RED

  1. Start Set sestav a spáruj. Na Core Module potřebuješ firmware radio-8-ball.

Po nahrání firmware uvidíš, že se Alias tvého přístroje na záložce Devices změnilo na Future teller.

Záložka Devices v Playgroundu se spárovaným zařízením pod aliasem future-teller:0
  1. V Playgroundu klikni na záložku Functions, kde je programovací plocha.
  2. Na plochu postav node MQTT ze sekce Input.
Uzel mqtt in zvýrazněný v paletě a uzel mqtt umístěný na ploše
  1. Na node dvakrát klikni a nastav v něm klíčovou funkci – věštění. 🔮 Do pole Topic zkopíruj tenhle řádek:
node/future-teller:0/future/trigger
Dialog Edit mqtt in node se zvýrazněným polem Topic s tématem trigger uzlu future-teller

Potvrď tlačítkem Done.

Hoď tam náhodu

  1. Krabička funguje tak, že ti vyhodí jednu z předem nastavených odpovědí. Funguje přitom vždycky na základě náhody. Tak ji teď pojď nastavit.

Náhodnou volbu naprogramuješ podle jednoduchého javascriptu. Jak se to dělá? Vedle MQTT postav node Function, který najdeš ve stejnojmenné sekci.

Function uzel zvýrazněný v paletě a umístěný vedle MQTT uzlu future-telleru
  1. Dvojklikem node otevři. Na řádku Name node pojmenuj (třeba 8-ball). Do řádku Function zkopíruj tenhle kód, přesně jak to vidíš na obrázku.
var answers = ["Nejspíš ano", "S tím nepočítej", "Možná", "Určitě ano"]
var num = Math.floor(Math.random() * Math.floor(answers.length));
msg.payload = answers[num];
return msg;
Dialog Edit function node pojmenovaný 8-ball s JavaScriptem náhodné odpovědi na záložce On Message

Díky tomuhle kódu se vybere jedna ze čtyř možností:

  • Nejspíš ano,

  • S tím nepočítej,

  • Možná,

  • Určitě ano.

Potvrď tlačítkem Done.

  1. Vedle Náhody přidej další node, a to Text ze sekce Dashboard.
  2. V něm nastav Label, tedy štítek, na Odpověď.
Dialog Edit text node s Label nastaveným na Odpověď a textovým uzlem na ploše

Potvrď tlačítkem Done.

  1. Přidej na plochu ještě robota, který ti výsledek nahlas přečte. Aby to bylo správně creepy. 🤖 Najdeš ho jako node Audio out taky v sekci Dashboard.
Uzel audio out zvýrazněný v paletě dashboard a umístěný pod flow s odpovědí

Uvnitř nodu si nastav hlas, který bude zprávu číst.

Dialog Edit audio out node s vybraným hlasem TTS, který odpověď přečte nahlas

Potvrď tlačítkem Done.

  1. Nody pospojuj podle obrázku.
Propojené uzly MQTT, 8-ball, text a audio out, se zvýrazněným tlačítkem Deploy

Flow odstartuj tlačítkem Deploy vpravo nahoře.

Nechť osud promluví

  1. Ó, velký ty, zvedni svou mocnou krabičku a zeptej se jí na otázku, která tě pálí. Třeba:
  • Opětuje David o ročník výš mou lásku?

  • Budou zítra ve škole k obědu borůvkové knedlíky?

  • Stanu se jednou úspěšným cirkusovým umělcem?

  • Vyjde ráno slunce?

  • Naučím se konečně jíst hůlkami?

  • Budu jednou pracovat v Googlu?

  • Mám si nabarvit vlasy nazeleno?

  1. Zatřes krabičkou a v Playgroundu pod záložkou Dashboard se dozvíš svou odpověď. ️🎱 Nezapomeň si zapnout repráky, protože ji i uslyšíš. Aleluja!
Dlaždice Odpověď na Dashboardu s vylosovanou odpovědí Nejspíš ano

P. S. Krabička neručí za to, že má pravdu. 🤡