Anwesenheitserkennung mit Bluetooth (BLE) und G-Tags
Das Haus soll erkennen ob jemand da ist, und in dem Fall das Haus schlafen schicken bzw. aufwecken.
Die Hardware ist auf Bluetooth Low Energy (BLE) ausgelegt und scannt keine älteren Bluetooth 2.0 - Geräte
Hardware
1 x Bluetoothmodul 4.0 - HM-10 / 15€ / Link
1 x Arduino Nano Original oder Nachbau / 5€ / Link
1 x W5100 Ethernet Modul / 10€ / Link
1 x Gigaset G-Tag für jeden Benutzer / 20€ / Link // 16€ im 5er Pack / Link
Gesamtpreis bei mir 3 User + 2 Module ca. 100€
Wie es funktioniert
Das Bluetooth-Modul scannt nach einer vorgegeben Zeit nach neuen Bluetooth-Geräten.
Dabei wird bei der Wiederholung der Suche unterschieden ob sich bereits jemand im Haus befindet oder nicht.
Zeit 1 - niemand anwesend - z.B. alle 20 Sekunden wird gescannt (damit ein Bewohner schnell erkannt wird wenn er nach Hause kommt)
Zeit 2 - jemand anwesend - z.B: alle 10 Min. wird gescannt (so wird die Batterie der G-Tags geschont)
Wird nun ein User erkannt, schaltet dich das Haus sofort auf "wach".
Wird kein User mehr erkannt wird nach einer einstellbaren Zeit das Haus "schlafen" geschickt.
Zeit 3 - Zeit bis Abschaltung - z.B. das Haus bleibt noch 30 Min. wach bevor es schlafen geht. (Somit wird vermieden das es zu oft ein und aus geht)
Wir ein G-Tag der anwesend war nicht mehr gefunden, wird immer noch ein zweites Mal nachgefragt ob er wirklich weg ist.
Somit wird vermieden das es nur um einen kurzen Verbindungsabbruch handelt.
Alle Daten werden per UDP gesendet.
Es muss je User ein UDP-Eingang angelegt werden und die MAC-Adresse zur Erkennung eingetragen werden.
Um einen Scan zu starten muss ein UDP-Ausgang angelegt werden, Befehl EIN 000.
Schaltung
Stromversorung
5V --> VIN / GND --> GND
Alle 3 Geräte sind auf 5V ausgelegt, somit können alle die gleichen Versorungspannung nutzen.
Ethernet --> Arduino
5V --> 5V / GND --> GND / MO (Mosi) --> 11 / MI (Miso) --> 12 / SCK --> 13 / SS --> 10
Bluetooth HM10 Modul --> Arduino
5V --> 5V / GND --> GND / TX --> 7 / RX --> 8
Verkabelung
Ich nutze ein Ethernetkabel + 5V als extra Leitung
Es ist auch möglich ein PoE zu nutzen, aber aufgrund von Platz habe ich mich für eine extra Leitung entschienden.
Software
Arduino
Da die Softserial bei Arduino im Standard nur 64 Zeichen puffert, wir aber min. 128 Zeichen brauchen muss man hier eine kleine Änderung vornehmen.
Ich Empfehle dazu eine Portable Version von Arduino nur für diesen Zweck anzulegen.
Im Arduino-Verzeichnis unter \hardware\arduino\avr\libraries\SoftwareSerial\ in der Datei SoftSerial.H folgendes ändern und speichern
alt
#define _SS_MAX_RX_BUFF 64 // RX buffer size
neu
#define _SS_MAX_RX_BUFF 128 // RX buffer size
Arduino + Loxone
Beispiel-Dateien siehe weiter unten bei Anhänge
Screenshot
Modul fertig aufgebaut
Um den Sensor so aufzubauen ist etwas Lötarbeit nötig, kann aber von jedem der schon man gelötet hat gebaut werden.
Empfehlung
Es macht Sinn 2 der Module zu bauen um eine höhere Abdeckung zu erreich.
Ich habe auf der West und Ost-Seite je ein Modul montiert, so erkennt er User auch Garten oder in der Garage.
Die Software der Loxone ist für 2 Module und 3 User gemacht, das zweite Modul kann aber ohne Problem herausgenommen werden.
Anhänge