Přeskočit na hlavní obsah

Tlačítko pro rodiče - Vylepšení

Úvod

Máš už hotovou základní verzi tlačítka, kterým tě máma zavolá k večeři? Tak to gratulki. 👍 S tímhle vylepšením projekt posuneš dál – zpráva se změní podle denní doby, a ještě na ni můžeš zareagovat.

V tomhle projektu se naučíš nastavit jinou zprávu na jiný čas, odeslat speciální notifikaci dlouhým podržením tlačítka a naprogramovat možnost jednoduché reakce. 👌

Základní verzi tohohle projektu najdeš tady: Vyrob si IoT tlačítko, se kterým tě máma zavolá k večeři.

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

Připrav si Node-RED

  1. Start set sestav a spáruj. Na Core Module potřebuješ zase ten starý známý firmware bcf-radio-push-button.

Nastav si notifikaci

  1. Nastav si flow pro notifikaci podobně jako u základní verze tohohle projektu.

Na plochu polož MQTT node ze sekce Input, který má v Topicu počítání kliknutí. Vedle něj hoď notifikaci na mobil propojenou s Blynkem.

Change nod zatím vynechej, hned se dozvíš proč.

Zatím to vypadá takto:

  1. Mezi oba nody tentokrát vlož jiný node, do kterého zkopíruješ javascript. Najdeš ho jako node Function pod stejnojmennou sekcí.
  1. Do tohohle nodu vložíš kód, se kterým ovládneš čas. ⏳ Nastavíš si, od kolika do kolika hodin ti má chodit zpráva o snídani 🍳, obědu 🍗 a večeři 🍕. Chytrý javascript, co?

Následující kód zkopíruj do řádku Function v nastavení nodu. Když se na kód podíváš, uvidíš, že některé části jsou barevně zvýrazněné. V nich nastavíš dobu jídla a svoji vlastní zprávu. Barevné části kódu si libovolně přizpůsob, jenom mysli na to, že čárky a háčky nebudou fungovat.

var date = new Date();
var hour = date.getHours();

if(hour >= 8 && hour < 11)
{
msg.payload = "Pojd na snidani, ospalce";
return msg;
}
else if(hour >= 11 && hour < 17)
{
msg.payload = "Obidek na tebe uz ceka";
return msg;
}
else if(hour >= 17 && hour < 21)
{
msg.payload = "Podava se vrchol dne, vecere";
return msg;
}
  1. Ve stejném okně ještě tenhle node pojmenuj, a to v řádku Name. Třeba jako Nastavení času a zprávy.

Potvrď tlačítkem Done.

Nastav dlouhé stisknutí tlačítka

  1. A jedeme dál. Teď si nastav, co tlačítko provede, když ho rodiče dlouho podrží. To se totiž taky dá ovládnout. 👌

Na plochu polož další MQTT node ze sekce Input.

  1. Nastav do něj ale jiný Topic, díky kterému tlačítko zareaguje právě na dlouhé stisknutí.
node/push-button:0/push-button/-/hold-count
  1. Za něj hoď Change node, který jsi používal už u basic verze. V něm nastav svoji vlastní zprávu, která se pošle, když rodiče tlačítko dlouho podrží. Dá se to využít třeba na zavolání k čemukoliv jinému než k jídlu 🙂 Takže třeba: Pojd dolu, lenochu!
  1. Za tenhle node hoď ještě jeden, kterým zprávu odklikneš. Navíc ti vyskočí nejenom v mobilu, ale i na počítači.

Je to node Notification pod sekcí Dashboard.

  1. Uvnitř vyber na řádku Layout OK / Cancel Dialog a potvrď tlačítkem Done.
  1. Všechno propoj podle obrázku a zmáčkni Deploy.

Akce!

  1. Stejně jako předtím, vylepšenou krabičku dej do správy mamce a taťkovi.
  2. Nauč je, že krátkým stisknutím tě zavolají k jídlu…

Action

  1. A pokud tě chtějí zavolat kvůli čemukoli jinému, musí tlačítko zmáčknout déle. 👇

Action

Aspoň tě nezklame, když na talíř nedostaneš jídlo, ale rodinnou diskuzi. No fuj, jiné menu, prosím!