Přeskočit na hlavní obsah

Bezdrátový dveřní senzor

Bezdrátový dveřní senzor vám pošle upozornění do telefonu pokaždé, když někdo otevře dveře, okno nebo třeba dózu na sušenky! Hodí se také jako připomínka, když večer zapomenete zavřít garáž nebo bránu.

Krabičku můžete opatřit magnetem, takže ji snadno připevníte, a na baterie senzor vydrží mnoho let. Instalace je opravdu jednoduchá.

Sestavený Radio Door Sensor ve žluté krabičce s magnetickým kontaktem na kabelu vedle
Rozložené díly senzoru Radio Door Sensor: moduly, magnetický kontakt, díly krabičky a spojovací materiál

Úvodní video k projektu​

Přehrání načte video ze služby YouTube (Google).

Požadavky​

informace

Radio Dongle můžete připojit také k Raspberry Pi nebo jinému jednodeskovému počítači. Postup najdete v dokumentu Instalace na Raspberry Pi.

Stažení HARDWARIO Playground​

Stáhněte si nejnovější verzi HARDWARIO Playground pro svůj operační systém. Po stažení spusťte aplikaci Playground.

Aplikace BigClown Playground otevřená na domovské obrazovce s dokumentací Learn

Teď nahrajte nejnovější firmware do donglu Radio Dongle i do vzdáleného uzlu Core Module.

Nahrání firmwaru do dveřního senzoru​

Krok 1: Připojte senzor​

K USB portu počítače připojte jen dveřní senzor.

Krok 2: Nahrajte firmware​

V aplikaci Playground přejděte na záložku Firmware, vyberte firmware hardwario/twr-radio-door-sensor (zobrazí se, až zaškrtnete Show all), zvolte sériový port zařízení v poli Device a klikněte na FLASH FIRMWARE.

Záložka Firmware s vybraným bcf-radio-door-sensor, zvoleným sériovým portem a zvýrazněným Flash Firmware

Krok 3: Odpojte senzor​

Odpojte dveřní senzor od počítače. Vyjměte baterie a nechte senzor bez napájení, dokud ho nebudete párovat.

Nahrání firmwaru do Radio Dongle​

Krok 1: Připojte dongle​

K USB portu počítače připojte jen Radio Dongle.

Krok 2: Nahrajte firmware​

V aplikaci Playground přejděte na záložku Firmware, vyberte firmware hardwario/twr-gateway-radio-dongle, zvolte sériový port zařízení v poli Device a klikněte na FLASH FIRMWARE.

Záložka Firmware s vybraným bcf-gateway-usb-dongle, zvoleným sériovým portem a zvýrazněným Flash Firmware

Krok 3: Nechte dongle připojený​

Nechte Radio Dongle připojený k počítači.

Spuštění brány​

V levém dolním rohu klikněte na Gateway a vyberte sériový port zařízení. Text Gateway by se měl zbarvit zeleně.

Ovládání Gateway v levém dolním rohu s vybraným sériovým portem donglu Radio Dongle

Spárování dveřního senzoru​

Krok 1: Spusťte párování​

Na záložce Radio klikněte na tlačítko Pairing start.

Záložka Radio se zvýrazněným tlačítkem Pairing start

Krok 2: Přepněte senzor do režimu párování​

Teď do dveřního senzoru vložte baterie. Vzdálený modul odešle párovací příkaz pokaždé, když do něj vložíte baterie.

Krok 3: Ukončete párování​

Párování ukončete tlačítkem Pairing stop.

Záložka Radio se spárovaným door-sensor:0 v seznamu a zvýrazněným tlačítkem Pairing stop

Otestujte dveřní senzor​

Krok 1: Přepněte se na záložku MQTT a přihlaste se k odběru topicu #​

Krok 2: Přibližte magnet k senzoru a zase ho oddalte. V horním okně byste měli vidět zprávy MQTT​

Krok 3: Zprávy posílá i stisk tlačítka a změna teploty. Vyzkoušejte to!​

Záložka MQTT s odběrem topicu # a zprávami o stavu door-sensor přepínajícími mezi true a false
success

Skvělé! Vytvořili jste rádiovou síť, která přijímá události i naměřenou teplotu.

Integrace s IFTTT​

V této části vytvoříme Applet ve službě IFTTT. Applet je pravidlo, které na určitou událost zareaguje akcí.

Krok 1: Otevřete webový prohlížeč a přejděte na IFTTT:​

Úvodní stránka IFTTT se zvýrazněným tlačítkem Sign in

Krok 2: Přihlaste se do služby IFTTT. Zaregistrovat se můžete i účtem Google nebo Facebook:​

Stránka Discover na IFTTT po přihlášení se zvýrazněnou položkou My Applets v menu

Krok 3: V menu přejděte do My Applets a klikněte na tlačítko New Applet:​

Stránka My Applets se zvýrazněným tlačítkem New Applet

Krok 4: Ve větě if this then that klikněte na +this:​

Editor nového appletu se zvýrazněným +this ve větě if this then that

Krok 5: Vyhledejte službu Webhooks a vyberte ji:​

Krok Choose a service s vyhledaným Webhooks a zvýrazněnou dlaždicí Webhooks

Krok 6: Klikněte na Receive a web request:​

Krok Choose trigger se zvýrazněnou kartou Receive a web request

Krok 7: Do pole Event Name napište door a klikněte na Create Trigger:​

Pole triggeru s názvem události door a zvýrazněným tlačítkem Create trigger

Krok 8: Ve větě if this then that klikněte na +that:​

Editor nového appletu se zvýrazněným +that ve větě if this then that

Krok 9: Vyhledejte službu pro akci Notifications a vyberte ji:​

Krok Choose action service s vyhledaným Notifications a zvýrazněnou dlaždicí Notifications

Krok 10: Klikněte na Send a notification from the IFTTT app:​

Krok Choose action se zvýrazněnou kartou Send a notification from the IFTTT app

Krok 11: Do pole Notification vložte text Door Sensor Alarm at {{OccurredAt}} ! a klikněte na tlačítko Create action:​

Pole akce s vyplněným textem oznámení Door Sensor Alarm a zvýrazněným tlačítkem Create action

Krok 12: Klikněte na tlačítko Finish:​

Krok Review and finish appletu door se zvýrazněným tlačítkem Finish

Krok 13: Klikněte na tlačítko Webhooks:​

Karta dokončeného appletu door se zvýrazněnou ikonou Webhooks

Krok 14: Klikněte na tlačítko Documentation:​

Stránka služby Webhooks se zvýrazněným tlačítkem Documentation

Krok 15: Teď máte svůj klíč pro notifikace. Nechte tuto stránku otevřenou, klíč budete později kopírovat do Node-RED:​

Stránka dokumentace Webhooks se zvýrazněným osobním klíčem ke zkopírování

Krok 16: Nainstalujte si do chytrého telefonu aplikaci IFTTT a přihlaste se stejným účtem, ve kterém jste applet vytvořili. Když se aplikace zeptá, povolte jí push notifikace​

success

Teď máte ve službě IFTTT funkční Applet pro notifikace.

Plugin IFTTT pro Node-RED​

IFTTT zapojíte do Node-RED jednoduchým pluginem, který odesílá notifikace.

Krok 1: Otevřete záložku Node-RED (v novějších verzích Playgroundu Functions), pak vpravo nahoře klikněte na menu a vyberte Manage palette​

Otevřené menu Node-RED se zvýrazněnou položkou Manage palette

Krok 2: Přepněte se na záložku Install, vyhledejte ifttt a klikněte na tlačítko install. Ve vyskakovacím okně klikněte znovu na Install:​

Záložka Install v Manage palette s vyhledaným ifttt a zvýrazněným tlačítkem install u node-red-contrib-ifttt

Krok 3: Po instalaci se zobrazí potvrzení, že do Node-RED přibyly nové uzly:​

Potvrzení, že uzly ifttt-key a ifttt out byly přidány do palety

success

Skvělé! Díky pluginu pro IFTTT bude Node-RED posílat notifikace přímo do telefonu.

Import flow pro notifikace do Node-RED​

Krok 1: Zkopírujte do schránky tento text:​

[{"id":"5ca15197.aef91","type":"mqtt in","z":"49c6b66c.16eaf8","name":"","topic":"node/door-sensor:0/door-sensor/a/state","qos":"2","broker":"67b8de4a.029d3","x":210,"y":100,"wires":[["ccd36bb4.eccae8"]]},{"id":"ccd36bb4.eccae8","type":"switch","z":"49c6b66c.16eaf8","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"false","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":210,"y":220,"wires":[["6cb9da01.6abab4"]]},{"id":"6cb9da01.6abab4","type":"ifttt out","z":"49c6b66c.16eaf8","eventName":"door","key":"","x":210,"y":320,"wires":[]},{"id":"67b8de4a.029d3","type":"mqtt-broker","z":"","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","willTopic":"","willQos":"0","willPayload":""}]

Krok 2: Klikněte vpravo nahoře na menu a vyberte Import a Clipboard:​

Menu Node-RED se zvýrazněnými položkami Import a Clipboard

Krok 3: Vložte text ze schránky do textového pole a klikněte na Import:​

Dialog Import nodes s vloženým JSON kódem flow a zvýrazněným tlačítkem Import

Nastavení klíče IFTTT​

Krok 1: Flow je naimportovaný, teď do něj doplňte svůj klíč IFTTT. Dvakrát klikněte na uzel IFTTT:​

Importovaný oznamovací flow se zvýrazněným uzlem IFTTT door pro úpravu

Krok 2: Klikněte na ikonu tužky a vložte klíč z posledního kroku části Integrace s IFTTT. Zkontrolujte, že je název události (Event name) nastavený na door. Pak klikněte na Done:​

Dialog úpravy uzlu ifttt out se zvýrazněnou ikonou tužky u Key a názvem události door

Spusťte a otestujte flow​

Krok 1: Po každé změně flow musíte kliknout na tlačítko Deploy v pravém horním rohu. Udělejte to teď:​

Editor Node-RED se zvýrazněným tlačítkem Deploy v pravém horním rohu

Krok 2: Přiložte magnet k magnetickému kontaktu dveřního senzoru a zase ho oddalte. Do několika sekund by vám měla přijít notifikace z IFTTT!​

Na záložce debug vpravo uvidíte zprávy „true“ a „false“. Při stavu false se u uzlu IFTTT na chvíli objeví zelený příznak Sent!.

Zprávy o stavu dveří true a false v záložce debug a příznak Sent! pod uzlem IFTTT

Pokud chcete dostávat upozornění na zprávy „true“ místo false, otevřete uzel switch a v pravidlech změňte text false na true.

Telefon zobrazující push oznámení IFTTT Door Sensor Alarm s datem a časem

success

Teď najděte senzoru Radio Door Sensor vhodné místo a užívejte si notifikace!

Další funkce​

Do Node-RED můžete naimportovat i tento flow, který umí:

  • Zobrazit aktuální stav dveří pomocí grafického zámku
  • Zobrazit stopky pro otevřené dveře a vyvolat událost po uplynutí nastaveného času otevření
  • Zkontrolovat stav dveří v nastavený čas a vyvolat událost
[{"id":"6f038501.0d3aec","type":"mqtt in","z":"84faeffa.c3a93","name":"","topic":"node/door-sensor:0/door-sensor/a/state","qos":"2","broker":"29fba84a.b2af58","x":290,"y":260,"wires":[["27a2954e.e0ee9a"]]},{"id":"968704d7.760558","type":"ui_switch","z":"84faeffa.c3a93","name":"","label":"Doors","group":"57ff470b.93fdf8","order":0,"width":"0","height":"0","passthru":false,"decouple":"true","topic":"","style":"","onvalue":"true","onvalueType":"str","onicon":"fa-lock","oncolor":"green","offvalue":"false","offvalueType":"str","officon":"fa-unlock","offcolor":"red","x":750,"y":260,"wires":[[]]},{"id":"cd19b231.5a539","type":"inject","z":"84faeffa.c3a93","name":"","topic":"","payload":"","payloadType":"date","repeat":"1","crontab":"","once":false,"onceDelay":0.1,"x":210,"y":420,"wires":[["90766ef0.cb081"]]},{"id":"ec67f171.3a0db","type":"ui_text","z":"84faeffa.c3a93","group":"57ff470b.93fdf8","order":0,"width":0,"height":0,"name":"","label":"Opened (sec)","format":"{{msg.payload}}","layout":"row-spread","x":580,"y":380,"wires":[]},{"id":"90766ef0.cb081","type":"function","z":"84faeffa.c3a93","name":"human time","func":"var human = {payload : \"\"};\nvar seconds = {payload : 0};\n\nif(flow.get(\"state\") == \"true\")\n{\n human.payload = \"CLOSED\";\n} else\n{\n diff = parseInt((Date.now() - flow.get(\"timestamp\")));\n human.payload = new Date(diff).toString().slice(16,24);\n seconds.payload = parseInt(diff/1000);\n}\n\n\nreturn [human, seconds];","outputs":2,"noerr":0,"x":390,"y":420,"wires":[["ec67f171.3a0db"],["fa64f9a0.2e58e8"]],"outputLabels":["human time","seconds"],"icon":"node-red/timer.png"},{"id":"27a2954e.e0ee9a","type":"change","z":"84faeffa.c3a93","name":"","rules":[{"t":"set","p":"state","pt":"flow","to":"payload","tot":"msg"},{"t":"set","p":"timestamp","pt":"flow","to":"","tot":"date"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":260,"wires":[["968704d7.760558"]]},{"id":"3ed1d655.049fda","type":"inject","z":"84faeffa.c3a93","name":"at 22:00","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"00 22 * * *","once":false,"onceDelay":0.1,"x":200,"y":600,"wires":[["66b56029.25196"]]},{"id":"66b56029.25196","type":"switch","z":"84faeffa.c3a93","name":"","property":"state","propertyType":"flow","rules":[{"t":"eq","v":"false","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":370,"y":600,"wires":[["bf5ca77b.366198"]]},{"id":"94e19310.ac12e","type":"debug","z":"84faeffa.c3a93","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":770,"y":600,"wires":[]},{"id":"bf5ca77b.366198","type":"change","z":"84faeffa.c3a93","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"Door opened at night","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":600,"wires":[["94e19310.ac12e"]]},{"id":"fa64f9a0.2e58e8","type":"switch","z":"84faeffa.c3a93","name":"opened for 5 s","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"5","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":580,"y":440,"wires":[["e3ba7f50.53703"]]},{"id":"e3ba7f50.53703","type":"debug","z":"84faeffa.c3a93","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":770,"y":440,"wires":[]},{"id":"cd9712a1.91c45","type":"comment","z":"84faeffa.c3a93","name":"Save state to flow and show it on dasboard","info":"","x":300,"y":200,"wires":[]},{"id":"21a591a0.10411e","type":"comment","z":"84faeffa.c3a93","name":"Opened doors stopwatch","info":"","x":250,"y":360,"wires":[]},{"id":"6752875e.0092b8","type":"comment","z":"84faeffa.c3a93","name":"Check door state at 22:00","info":"","x":250,"y":540,"wires":[]},{"id":"29fba84a.b2af58","type":"mqtt-broker","z":"","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"57ff470b.93fdf8","type":"ui_group","z":"","name":"Default","tab":"11207769.c31889","disp":true,"width":"6","collapse":false},{"id":"11207769.c31889","type":"ui_tab","z":"","name":"Home","icon":"dashboard"}]
Další flow v Node-RED: stav dveří na dashboardu, stopky otevřených dveří a kontrola dveří ve 22:00