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

Požadavky
-
Buď sada HARDWARIO Radio Flood Detector Kit, nebo jednotlivé komponenty:
- 1x HARDWARIO LD-81
- 1x HARDWARIO Sensor Module
- 1x HARDWARIO Core Module
- 1x HARDWARIO Mini Battery Module
- 1x HARDWARIO Radio Dongle
-
Jedna z následujících možností:
-
Nainstalovaný HARDWARIO Playground (doporučeno)
Více informací najdete v dokumentu Instalace aplikace HARDWARIO Playground.
-
Raspberry Pi s distribucí HARDWARIO Raspbian
Více informací najdete v dokumentu Instalace na Raspberry Pi.
-
Nainstalovaný HARDWARIO Firmware Tool
Více informací najdete v dokumentu Nástroj pro nahrávání firmwaru.
-
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-flood-detector a nahrajte ho do modulu Core Module. Firmware se v seznamu zobrazí, až zaškrtnete Show all.
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
Firmware je úspěšně nahraný.
Sestavení hardwaru
Podívejte se na krátké video s jednoduchou ukázkou krok za krokem:
Krok 1: Začněte modulem Mini Battery Module
Krok 2: Nasaďte Core Module na Mini Battery Module
Příprava Playgroundu
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
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:

Ú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:

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ěď

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 Flood Detector.
V prostředí Node-RED postupujte takto:
Krok 1: Klikněte na tlačítko Start node pairing

Krok 2: Vložte baterie do sestavy Radio Flood 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

Teď máte navázané rádiové spojení mezi uzlem (Radio Flood 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: Ponořte senzor zaplavení LD-81 do sklenice s vodou, tím spustíte rádiový přenos
Pak byste měli vidět podobné zprávy:

Teď máte ověřenou rádiovou komunikaci.
Krabička
Pokud máte vhodnou krabičku, můžete do ní sestavu vložit.
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:

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

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

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

Krok 5: Vyhledejte službu Webhooks a vyberte ji

Krok 6: Klikněte na Receive a web request

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

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

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

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

Krok 11: Do pole Notification vložte text The flood detector has been flooded on {{OccurredAt}} a 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 do pole event

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

Krok 17: 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: V okně prohlížeče klikněte na tlačítko 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 tento klíč do schránky, budete ho potřebovat později

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 zaplavení 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":"c6ce743.f65db88","type":"mqtt in","z":"d5a82106.8d3fa","name":"","topic":"node/flood-detector:0/flood-detector/a/alarm","qos":"2","broker":"29fba84a.b2af58","x":240,"y":140,"wires":[["7d9c308c.edf04"]]},{"id":"7d9c308c.edf04","type":"switch","z":"d5a82106.8d3fa","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"true","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":510,"y":140,"wires":[["e2287fd0.90124"]]},{"id":"e2287fd0.90124","type":"ifttt out","z":"d5a82106.8d3fa","eventName":"flood","key":"40c1e6be.8cb228","x":670,"y":140,"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":"40c1e6be.8cb228","type":"ifttt-key","z":""}]
Bude to vypadat takto:
Úryvek propojí topic MQTT node/flood-detector:0/flood-detector/a/alarm se službou IFTTT. Než zprávu předáme do IFTTT, musíme propustit jen události true.
Krok 3: Dvakrát klikněte na uzel IFTTT a upravte klíč IFTTT, který jste získali v předchozí části
Krok 4: Nastavení uložte tlačítkem Done
Krok 5: Nasaďte flow tlačítkem Deploy v pravém horním rohu
Teď by vám měla přijít push notifikace, když kontakty senzoru zaplavení spojíte vlhkými prsty nebo je ponoříte do vody.