Přeskočit na hlavní obsah

Věštecká koule

Úvod​

I mladí programátoři chtějí vědět, co je v budoucnu čeká. Krabička vám to prozradí. IoT magie odpoví na všechny otázky, které se vám honí hlavou. 🔮 😱

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

Budete potřebovat krabičku s tlačítkem a USB dongle. Vystačíte si tedy se základní Sadou Start od HARDWARIO.

Rozjeďte to v Node-RED​

  1. Sadu Start sestavte a spárujte. Do modulu Core Module potřebujete firmware radio-8-ball.

Po nahrání firmwaru uvidíte, že se Alias vašeho zařízení na záložce Devices změnil na Future teller.

Záložka Devices v Playgroundu se spárovaným zařízením pod aliasem future-teller:0
  1. V Playgroundu klikněte na záložku Functions, kde je programovací plocha.
  2. Na plochu umístěte uzel mqtt in ze sekce network.
Uzel mqtt in zvýrazněný v paletě a uzel mqtt umístěný na ploše
  1. Na uzel dvakrát klikněte a nastavte v něm klíčovou funkci, tedy věštění. 🔮 Do pole Topic zkopírujte tento řá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ďte tlačítkem Done.

Přidejte náhodu​

  1. Krabička funguje tak, že vám vyhodí jednu z předem nastavených odpovědí, a to vždy na základě náhody. Teď ji nastavíme.

Náhodnou volbu naprogramujete jednoduchým JavaScriptem. Jak na to? Za uzel MQTT umístěte uzel function, který najdete ve stejnojmenné sekci.

Uzel Function zvýrazněný v paletě a umístěný vedle uzlu MQTT future-teller
  1. Dvojklikem uzel otevřete. V řádku Name ho pojmenujte (třeba 8-ball). Na záložku On Message zkopírujte tento kód přesně tak, jak to vidíte 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

Tento kód vybere jednu ze čtyř možností:

  • Nejspíš ano,

  • S tím nepočítej,

  • Možná,

  • Určitě ano.

Potvrďte tlačítkem Done.

  1. Vedle uzlu 8-ball přidejte uzel text ze sekce dashboard.
  2. V něm nastavte pole Label na Odpověď.
Dialog Edit text node s Label nastaveným na Odpověď a textovým uzlem na ploše

Potvrďte tlačítkem Done.

  1. Přidejte na plochu ještě robota, který vám výsledek přečte nahlas. Bude to pořádně strašidelné. 🤖 Najdete ho jako uzel audio out, rovněž v sekci dashboard.
Uzel audio out zvýrazněný v paletě dashboard a umístěný pod flow s odpovědí

V uzlu nastavte hlas, který zprávu přečte.

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

Potvrďte tlačítkem Done.

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

Flow spusťte tlačítkem Deploy vpravo nahoře.

Nechť osud promluví​

  1. Zvedněte svou mocnou krabičku a položte jí otázku, která vás pálí. Třeba:
  • Bude mi David z vyššího ročníku opětovat 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řeste krabičkou a v Playgroundu na záložce Dashboard se dozvíte odpověď. ️🎱 Nezapomeňte si zapnout reproduktory, odpověď totiž i uslyšíte. Aleluja!
Dlaždice Odpověď na Dashboardu s vylosovanou odpovědí Nejspíš ano

P. S. Krabička nezaručuje, že je její odpověď správná. 🤡