Přeskočit na hlavní obsah

Bezdrátový detektor pohybu

Tento návod vás provede projektem Bezdrátový detektor pohybu. S detektorem budete pracovat v prostředí Node-RED, a když zachytí pohyb, služba IFTTT vám pošle push notifikaci do chytrého telefonu.

Blokové schéma​

Blokové schéma: sada Radio Motion Detector s modulem PIR Module propojená rádiem s bránou, Node-RED a IFTTT

Požadavky​

Nahrání firmwaru​

Firmware nahrajete do modulu Core Module v aplikaci HARDWARIO Playground.

Krok 1: Připojte modul Core Module kabelem Micro USB k počítači​

Krok 2: Nahrajte firmware​

Spusťte HARDWARIO Playground, na záložce Firmware vyberte firmware hardwario/twr-radio-motion-detector a nahrajte ho do modulu Core Module.

varování

Nahrávání firmwaru do Core Module R1 a R2 Rozdíly v nahrávání firmwaru do staršího Core Module 1 a novějšího Core Module 2 popisuje srovnání Core Module R1 a R2 v sekci Hardware.

Krok 3: Odpojte kabel Micro USB od modulu Core Module a od počítače​

success

Firmware je úspěšně nahraný.

Sestavení hardwaru​

Podívejte se na krátké video s jednoduchou ukázkou krok za krokem:

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

Krok 1: Začněte modulem Mini Battery Module​

varování

Zkontrolujte, že v modulu Mini Battery Module nejsou vložené baterie.

Krok 2: Nasaďte Core Module na Mini Battery Module​

Krok 3: Nasaďte PIR Module na Core Module​

Příprava Playgroundu​

nebezpečí

Pokud používáte nový HARDWARIO Playground, použijte místo adresy http://localhost:1880/ záložku Functions. Párování teď probíhá na záložce Devices a komunikaci otestujete na záložce Messages.

Krok 1: Otevřete Node-RED ve webovém prohlížeči​

http://localhost:1880/

Krok 2: Měli byste vidět prázdnou pracovní plochu Flow 1​

Krok 3: Vložte do flow následující úryvek (pomocí Menu >> Import) a klikněte na záložku Flow 1​

[{"id":"2fc604fc.3b6abc","type":"inject","z":"dfc861b.b2a02a","name":"List all gateways","topic":"gateway/all/info/get","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"x":560,"y":460,"wires":[["a2c10833.24d5d8"]]},{"id":"1e4502b8.2f63fd","type":"inject","z":"dfc861b.b2a02a","name":"Start node pairing","topic":"gateway/usb-dongle/pairing-mode/start","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"x":570,"y":580,"wires":[["795ff5a7.8e266c"]]},{"id":"3d844ce2.932864","type":"inject","z":"dfc861b.b2a02a","name":"Stop node pairing","topic":"gateway/usb-dongle/pairing-mode/stop","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"x":560,"y":640,"wires":[["5967c452.c838bc"]]},{"id":"f202b253.2705b","type":"inject","z":"dfc861b.b2a02a","name":"List paired nodes","topic":"gateway/usb-dongle/nodes/get","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"x":560,"y":520,"wires":[["f0aca138.0b2c3"]]},{"id":"349f02fd.890f6e","type":"inject","z":"dfc861b.b2a02a","name":"Unpair all nodes","topic":"gateway/usb-dongle/nodes/purge","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"x":560,"y":700,"wires":[["2f1c5bb6.53d6f4"]]},{"id":"cf61d75d.4ad8f8","type":"mqtt in","z":"dfc861b.b2a02a","name":"","topic":"#","qos":"2","broker":"67b8de4a.029d3","x":530,"y":400,"wires":[["a5cb0658.f5d658"]]},{"id":"a5cb0658.f5d658","type":"debug","z":"dfc861b.b2a02a","name":"","active":true,"console":"false","complete":"false","x":790,"y":400,"wires":[]},{"id":"a2c10833.24d5d8","type":"mqtt out","z":"dfc861b.b2a02a","name":"","topic":"","qos":"","retain":"","broker":"717f7c18.ba0a24","x":770,"y":460,"wires":[]},{"id":"f0aca138.0b2c3","type":"mqtt out","z":"dfc861b.b2a02a","name":"","topic":"","qos":"","retain":"","broker":"717f7c18.ba0a24","x":770,"y":520,"wires":[]},{"id":"795ff5a7.8e266c","type":"mqtt out","z":"dfc861b.b2a02a","name":"","topic":"","qos":"","retain":"","broker":"717f7c18.ba0a24","x":770,"y":580,"wires":[]},{"id":"5967c452.c838bc","type":"mqtt out","z":"dfc861b.b2a02a","name":"","topic":"","qos":"","retain":"","broker":"717f7c18.ba0a24","x":770,"y":640,"wires":[]},{"id":"2f1c5bb6.53d6f4","type":"mqtt out","z":"dfc861b.b2a02a","name":"","topic":"","qos":"","retain":"","broker":"717f7c18.ba0a24","x":770,"y":700,"wires":[]},{"id":"67b8de4a.029d3","type":"mqtt-broker","z":"","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willPayload":"","birthTopic":"","birthQos":"0","birthPayload":""},{"id":"717f7c18.ba0a24","type":"mqtt-broker","z":"","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willPayload":"","birthTopic":"","birthQos":"0","birthPayload":""}]

Bude to vypadat takto:

Importovaný flow v Node-RED s tlačítky pro příkazy brány, každé napojené na uzel MQTT

informace

Úryvek přidá tlačítka pro příkazy brány a rádia. Příkazy se odesílají protokolem MQTT.

Krok 4: Nasaďte flow tlačítkem Deploy v pravém horním rohu​

Krok 5: Otevřete záložku debug​

Editor Node-RED se zvýrazněnou záložkou debug v pravém panelu

informace

Na záložce debug uvidíte všechny zprávy MQTT.

Krok 6: Klikněte na tlačítko List all gateways. Na záložce debug byste měli vidět podobnou odpověď​

Záložka debug s odpovědí s informacemi o bráně po kliknutí na List all gateways

success

Teď máte funkční Node-RED, MQTT, HARDWARIO Radio Dongle a HARDWARIO Gateway.

Rádiové párování​

V této části navážeme rádiové spojení mezi Radio Dongle a sestavou Radio Motion Detector. V prostředí Node-RED postupujte takto:

Krok 1: Klikněte na tlačítko Start node pairing​

Zvýrazněné tlačítko Start node pairing a potvrzení zahájení párování v záložce debug

Krok 2: Vložte baterie do sestavy Radio Motion Detector, čímž odešlete požadavek na párování (červená LED na modulu Core Module by se také měla asi na 2 sekundy rozsvítit)​

Krok 3: Klikněte na tlačítko Stop node pairing​

Zvýrazněné tlačítko Stop node pairing a potvrzení ukončení párování v záložce debug

success

Teď máte navázané rádiové spojení mezi uzlem (Radio Motion Detector) a bránou (Radio Dongle).

Test komunikace​

V prostředí Node-RED postupujte takto:

Krok 1: Přepněte se na záložku debug vpravo​

Krok 2: Zamávejte rukou před modulem PIR Module, tím spustíte rádiový přenos​

Pak byste měli vidět podobné zprávy:

Záložka debug se zprávami event-count z čidla PIR rostoucími při detekci pohybu

success

Teď máte ověřenou rádiovou komunikaci.

Krabička​

Pokud máte vhodnou krabičku, můžete do ní sestavu vložit.

informace

Krabičky pro sestavy TOWER najdete v e-shopu v kategorii Krabičky.

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 motion a klikněte na Create Trigger​

Pole triggeru s názvem události motion 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 The motion detected on {{OccurredAt}} a klikněte na tlačítko Create action​

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

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

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

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

Dokončený a zapnutý applet motion 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: Klikněte do pole event​

Stránka dokumentace Webhooks s vaším klíčem a zvýrazněným polem event v adrese triggeru

Krok 16: Do pole event vložte název motion a okno nechte otevřené​

Stránka dokumentace Webhooks s vyplněným motion v poli event adresy triggeru

Krok 17: Nainstalujte aplikaci do telefonu​

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.

Krok 18: Vyzkoušejte to​

Stránka dokumentace Webhooks se zvýrazněným tlačítkem Test It

Krok 19: Do několika sekund by vám na chytrý telefon měla přijít push notifikace​

Krok 20: Zkopírujte si tuto adresu URL do schránky, budete ji potřebovat později​

Stránka dokumentace Webhooks se zvýrazněnou celou adresou triggeru pro událost motion

success

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

Propojení Node-RED s IFTTT​

V této části propojíme událost pohybu v MQTT s požadavkem HTTP na IFTTT, který spustí push notifikaci.

Krok 1: Přepněte se do svého flow v Node-RED​

Krok 2: Vložte do flow následující úryvek (pomocí Menu >> Import):​

[{"id":"aa6e1255.ea79f","type":"mqtt in","z":"1683bd68.e7a7b3","name":"","topic":"node/motion-detector:0/pir/-/event-count","qos":"2","broker":"3db59913.baf0c6","x":580,"y":580,"wires":[["fd3ce751.8e9ba8"]]},{"id":"74e6dfc1.7c1dc","type":"http request","z":"1683bd68.e7a7b3","name":"","method":"POST","ret":"txt","url":"https://maker.ifttt.com/trigger/motion/with/key/YOUR_IFTTT_KEY","tls":"","x":910,"y":580,"wires":[[]]},{"id":"fd3ce751.8e9ba8","type":"change","z":"1683bd68.e7a7b3","name":"","rules":[{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":680,"wires":[["42aed05e.e145"]]},{"id":"42aed05e.e145","type":"delay","z":"1683bd68.e7a7b3","name":"","pauseType":"delay","timeout":"30","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":900,"y":680,"wires":[["74e6dfc1.7c1dc"]]},{"id":"3db59913.baf0c6","type":"mqtt-broker","z":"","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willPayload":"","birthTopic":"","birthQos":"0","birthPayload":""}]

Bude to vypadat takto:

Flow v Node-RED propojující topic event-count z čidla PIR přes uzly change a delay s uzlem http request

V uzlu http request nahraďte YOUR_IFTTT_KEY klíčem ze stránky dokumentace služby Webhooks (krok 15).

informace

Úryvek propojí topic MQTT node/motion-detector:0/pir/-/event-count s požadavkem HTTP. Než zprávu předáme do požadavku HTTP, odstraníme z ní parametr payload, jinak by se použil v těle požadavku.

Krok 3: Dvakrát klikněte na uzel http request a upravte adresu URL IFTTT, kterou jste získali v předchozí části:​

Dialog úpravy uzlu http request s adresou triggeru IFTTT vloženou do zvýrazněného pole URL

Krok 4: Adresu URL uložte tlačítkem Done​

Krok 5: Nasaďte flow tlačítkem Deploy v pravém horním rohu​

success

Teď by vám měla přijít push notifikace pokaždé, když detektor zachytí pohyb.

Související dokumenty ​