Přeskočit na hlavní obsah

Bezdrátový detektor pohybu

Tento dokument vás provede projektem Rádiového detektoru pohybu. Budete moci komunikovat se svým detektorem pohybu v prostředí Node-RED a spouštět službu push notifikací IFTTT při detekci pohybu. Na svůj chytrý telefon obdržíte upozornění formou push notifikace.

Blokové schéma

Požadavky

Nahrání firmwaru

V tomto postupu použijeme HARDWARIO Playground k nahrání firmwaru do Core Modulu.

Krok 1: Připojte kabel Micro USB k Core Modulu a počítači

Krok 2: Nahrání firmwaru

Spusťte aplikaci HARDWARIO Playground. Na záložce Firmware vyberte a nahrajte firmware bcf-radio-motion-detector do Core Modulu.

warning

Nahrávání firmwaru do Core Module R1 a R2 Pro rozdíly v nahrávání firmwaru do staršího Core Module 1 a novějšího Core Module 2 si prosím přečtěte srovnání Core Module R1 a R2 v sekci Hardware.

Krok 3: Odpojte kabel Micro USB od Core Modulu a počítače.

success

V tomto bodě je firmware úspěšně nahrán.

Sestavení hardwaru

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

Krok 1: Začněte s Mini Battery Module

warning

Ujistěte se, že v Mini Battery Module nejsou vloženy žádné baterie.

Krok 2: Připojte Core Module na Mini Battery Module

Krok 3: Připojte PIR Module na Core Module

Spuštění Playgroundu

danger

Pokud používáte nový HARDWARIO Playground, použijte záložku Functions místo http://localhost:1880/. Proces párování nyní probíhá na záložce Devices. Pro otestování komunikace použijte záložku Messages.

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

http://localhost:1880/

Krok 2: Měli byste vidět prázdnou pracovní plochu s označením Flow 1

Krok 3: Vložte následující úryvek do flow (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:


info

Tento úryvek poskytuje ovládací tlačítka pro příkazy gateway/rádio. Tyto příkazy jsou odesílány přes protokol MQTT.

Krok 4: Nasazení flow pomocí tlačítka Deploy v pravém horním rohu

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


info

V záložce debug budete moci vidět všechny MQTT zprávy.

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


success

V tomto bodě máte funkční Node-RED, MQTT, HARDWARIO Radio Dongle a HARDWARIO Gateway.

Rádiové párování

V této části vytvoříme rádiové spojení mezi Radio Dongle a detektorem pohybu. Postupujte podle následujících kroků v prostředí Node-RED:

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

Krok 2: Vložte baterie do Sady Motion, čímž odešlete požadavek na párování (měla by se také rozsvítit červená LED na Core Modulu přibližně na 2 sekundy)

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


success

V tomto bodě máte navázané rádiové spojení mezi (Sadou Motion) a bránou (Radio Dongle).

Test komunikace

Postupujte podle následujících kroků v prostředí Node-RED:

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

Krok 2: Začněte mávat rukou před PIR Modulem, abyste spustili rádiový přenos.

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


success

V tomto bodě máte ověřenou rádiovou komunikaci.

Kryt

Volitelně vložte sestavené zařízení do příslušného krytu, pokud jej máte k dispozici.

info

Více informací o krytech naleznete v dokumentu Enclosures.

Integrace s IFTTT

V této části vytvoříme Applet ve službě IFTTT. Applet funguje jako mechanismus pro spouštění událostí.

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

Krok 2: Přihlaste se do služby IFTTT. Můžete se zaregistrovat pomocí účtu Google nebo Facebook.

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

Krok 4: Klikněte na +this ve větě if this then that.

Krok 5: Vyhledejte službu s názvem Webhooks a vyberte ji.

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

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

Krok 8: Klikněte na +that ve větě if this then that.

Krok 9: Vyhledejte akční službu s názvem Notifications a vyberte ji.

Krok 10: Klikněte na Send a notification from the IFTTT app (Odeslat notifikaci z aplikace IFTTT)

Krok 11: Upravte pole Notification a vložte text The motion detected on {{OccurredAt}}, poté klikněte na tlačítko Create action.

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

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

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

Krok 15: Klikněte na pole event.

Krok 16: Vložte název button do pole event a ponechte okno otevřené.

Krok 17: Instalace do chytrého telefonu

Nainstalujte si aplikaci IFTTT do svého chytrého telefonu a přihlaste se pomocí stejného účtu, který jste použili k vytvoření appletu. Při výzvě povolte aplikaci zasílání push notifikací.

Krok 18: Otestujte to

Krok 19: Během několika sekund byste měli obdržet push notifikaci na svůj chytrý telefon

Krok 20: Zkopírujte tuto URL adresu do schránky pro pozdější použití


success

V tomto bodě máte funkční notifikační Applet ve službě IFTTT.

Propojení IFTTT v Node-RED

V této části vytvoříme propojení mezi událostí tlačítka přes MQTT a HTTP požadavkem na IFTTT, který spustí push notifikaci.

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

Krok 2: Vložte následující úryvek do flow (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/bbtA7Dn-3HKPG8OcfZMP7WyvKh6I69iEW9j9OtUBGGB","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:


info

Tento úryvek vytváří propojení mezi MQTT tématem node/motion-detector:0/pir/-/event-count a HTTP požadavkem. Před předáním zprávy do HTTP požadavku odstraňujeme parametr payload, protože by jinak byl použit v těle HTTP požadavku.

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

Krok 4: Uložte URL adresu kliknutím na tlačítko Done.

Krok 5: Nasazení flow pomocí tlačítka Deploy v pravém horním rohu.

success

V tomto bodě byste měli obdržet push notifikaci po stisknutí tlačítka.

Související dokumenty