Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Hardware - Schaltung
- Schritt 2: Hardware - Gehäuse
- Schritt 3: Software
- Schritt 4: Hausautomation und Telegramm
- Schritt 5: Verbesserungen und weitere Verbesserungen
Video: Batteriebetriebener Türsensor mit Heimautomatisierungsintegration, WiFi und ESP-NOW - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
In diesem anweisbaren zeige ich Ihnen, wie ich einen batteriebetriebenen Türsensor mit Heimautomatisierungsintegration gemacht habe. Ich habe einige andere schöne Sensoren und Alarmsysteme gesehen, aber ich wollte selbst eine machen.
Meine Ziele:
- Ein Sensor, der eine Türöffnung schnell erkennt und meldet (<5 Sekunden)
- Ein Sensor, der das Schließen der Tür erkennt
- Ein Sensor, der batteriebetrieben ist und einige Monate mit einer Batterie läuft
Die Hard- und Software ist inspiriert von
- Das Trigboard von Kevin Darrah (TPL5111 und TPS73733).
- Dieses Video
Ich habe einen Sensor für meine Vorder- und meine Hintertür gemacht. Der einzige Unterschied ist die LED-Position und der externe Netzschalter (am Hintertürsensor).
Ich habe während der Entwicklung in Hard- und Software einige Verbesserungen vorgenommen, dies ist auf den Fotos zu sehen.
Lieferungen
Ich habe die elektronischen Komponenten von Aliexpress gekauft, die Hauptteile:
- LiPo-Akku
- TPS73733 LDO
- TPL5111
- Reed-Schalter
- P-Kanal-Mosfet: IRLML6401TRPBF
- Magnet
- PCB-Adapterplatte für SMD-Bauteile und andere.
Schritt 1: Hardware - Schaltung
Siehe die beigefügten Schemata für die Schaltung. Ich habe die SMD-Teile auf eine Adapterplatine gelötet und alle Komponenten auf ein doppelseitiges Perfboard gelötet. Ich verband das ESP-01 über Buchsenleisten, so dass ich es entfernen konnte, um es über den in Schritt 3 dieser Anleitung gezeigten Adapter zu programmieren.
Die Schaltung funktioniert wie folgt:
- Wenn die Tür geöffnet wird, erhält der TPL5111 einen Schuss auf den DELAY/M_DRV-Pin und aktiviert den TPS73733 LDO, der das ESP-01 mit Strom versorgt. Für diesen Vorgang muss EN/ONE_SHOT auf Low gezogen werden, siehe Datenblatt des TPL5111.
- Nachdem das Programm ausgeführt wurde (siehe Schritt Software), sendet der ESP-01 ein Done-Signal an den TPL5111, der dann den TPS73733 deaktiviert, was zu einem sehr niedrigen Energiestatus für den TPL5111 und den TPS73733 führt.
Ich verwende Reedschalter mit NO- und NC-Anschlüssen. Ich habe das NC-Kabel angeschlossen, da der Reedschalter den Stromkreis schließen muss, wenn der Magnet entfernt wird (Tür offen) und geöffnet werden muss, wenn der Magnet in der Nähe ist (Tür geschlossen).
Für den Hintertürsensor habe ich einige Kondensatoren und Widerstände hinzugefügt, als ich einige Instabilitäten entdeckte, die Instabilität wurde jedoch durch die Software (esp_now_init) verursacht, wie ich später entdeckte.
Schritt 2: Hardware - Gehäuse
Das Gehäuse habe ich in Autodesk Fusion360 entworfen, inspiriert von diesem Video von 'the guy with the schweizer Akzent'.
Die STL-Dateien der drei Teile:
- Kasten
- Deckel
- Magnethalter
werden auf meiner Thingiverse-Seite veröffentlicht.
Schritt 3: Software
Das Programm ist in meinem Github.
Der Ablauf des Programms ist im Bild dargestellt. Siehe mein anderes Instructable für die Erklärung, wie ich ESP-NOW verwende.
Wenn das Modul eingeschaltet ist, versucht es zuerst die 'OPEN'-Nachricht über ESP-NOW zu senden. Gelingt dies nicht, wird auf eine WLAN- und MQTT-Verbindung umgeschaltet.
Ich habe festgestellt, dass zumindest in meinem Setup die 'CLOSED'-Nachricht nicht erfolgreich über ESP-NOW gesendet wurde, also habe ich diese aus dem Programm entfernt und nur WiFi und MQTT verwendet.
Während die Tür geöffnet ist und das Modul auf das Schließen der Tür wartet, nutzt es diese Zeit, um sich mit WiFi und MQTT zu verbinden, so dass beim Schließen der Tür nur die gemessene Spannung und eine GESCHLOSSEN-Nachricht gesendet werden muss und dann es geht direkt schlafen.
Das Programm überprüft, ob die geschlossene Nachricht vom Empfänger über ein Abhören einer MQTT-Nachricht zum richtigen Thema empfangen wird.
Schritt 4: Hausautomation und Telegramm
Meine Türsensoren kommunizieren mit meiner Openhab Home Automation auf meinem Raspberry Pi Zero.
Hauptanwendungen:
- Lesen Sie den Zustand der Tür ab: OFFEN oder GESCHLOSSEN.
- Alarmieren Sie mich per Telegramm, wenn eine Tür geöffnet wird (Wenn der Alarm eingeschaltet oder die Überwachungsfunktion eingeschaltet ist).
- Lesen Sie, wann das letzte Mal eine Tür geöffnet oder geschlossen wurde.
- Zählen Sie die Anzahl der Öffnungen, die ein Türsensor verarbeiten kann, bevor die Batterie leer ist.
Wenn wir zum Beispiel im Urlaub sind und der Nachbar kommt, um die Pflanzen zu gießen, bekomme ich eine Nachricht. Sehen Sie sich das Video im Intro an.
Meine Openhab-Elemente, Regeln und Sitemap-Dateien befinden sich in meinem Github. In diesen Dateien sehen Sie auch meinen Türsensor des Schuppens, der einen normalen kabelgebundenen Reed-Schalter und einen kleinen Kontakt-(End-)Schalter aus einem 3D-Drucker in der Schlossöffnung verwendet (siehe Bilder).
Wie Sie die Telegram-Aktion in Openhab verwenden, wird hier beschrieben.
Schritt 5: Verbesserungen und weitere Verbesserungen
In den letzten Monaten habe ich folgende Verbesserung vorgenommen.
Behandeln Sie lange Türöffnungen über ein selbstschaltendes Impulssignal
Im Sommer lassen wir die Hintertür für einige Stunden geöffnet, wenn wir zu Hause sind. Das laufende ESP-01 mit WLAN-Verbindung würde dann den Akku unnötig entladen. Deshalb habe ich einen Ein-/Ausschalter eingebaut, um das Modul in diesen Situationen ausschalten zu können.
Dies führte jedoch manchmal zu einem dauerhaft ausgeschalteten Modul (wenn ich vergaß, es einzuschalten) und einer leeren Batterie nach ein paar Nachmittagen einer geöffneten Tür und einem laufenden Modul (wenn ich vergaß, es auszuschalten).
Daher wollte ich das Modul über die Software ausschalten können, nachdem das Modul für eine vordefinierte Zeit (1 Minute) eingeschaltet war.
Wo jedoch der 'DONE'-Puls des ESP-01 den TPL5111 beim Schließen der Tür ausschaltete, stellte ich fest, dass der TPL5111 nicht durch einen 'DONE'-Puls ausgeschaltet wurde, während der DELAY/M_DRV-Pin HIGH war. Dieses HIGH-Signal am Pin DELAY/M_DRV wurde durch die geöffnete Tür und den an die Batteriespannung angeschlossenen Öffner des Reedschalters verursacht.
Das Signal zum DELAY/M_DRV-Pin sollte also nicht dauerhaft HIGH sein, sondern gepulst sein. Im Datenblatt des TPL5111 steht, dass es ein Impuls von > 20 ms sein sollte. Ich habe dieses selbstschaltende Signal über einen P-Kanal-Mosfet, einen Kondensator und einen 10K- und 300K-Widerstand erstellt, siehe das mitgelieferte Schema.
Es funktioniert wie folgt:
- Wenn der NC-Kontakt des Reed-Schalters geschlossen ist, ist das Gate LOW und der Mosfet eingeschaltet, was zu einem HIGH-Signal am DELAY/M_DRV-Pin führt, das das Modul aktiviert.
- Der Kondensator wird schnell aufgeladen, was zu einer steigenden Spannung am Gate führt.
- Nach ca. 20 ms beträgt die Spannung am Gate 97% der Batteriespannung (300K/(300K+10K), die HIGH ist und der Mosfet ausgeschaltet ist, was zu einem LOW-Signal am DELAY/M_DRV-Pin führt.
- Wenn der DELAY/M_DRV-Pin LOW ist, führt das DONE-Signal des ESP-01 zum Herunterfahren des Moduls.
Dies ist in der Software implementiert; Eine while-Schleife prüft nicht nur, ob die Tür noch geöffnet ist, sondern prüft auch, ob das Modul nicht zu lange eingeschaltet ist. Bei zu langem Einschalten gibt es einen NULL-Wert aus (undefinierter Zustand der Tür). In diesem Fall weiß ich nicht, ob die Tür geöffnet oder geschlossen ist und erreiche nicht alle im Intro genannten Ziele, aber die Akkulaufzeit ist wichtiger und meistens öffnen wir die Tür später am Tag wieder, was zu einem bestätigten geschlossenen Zustand führt der Tür.
Es ist wichtig, einen P-Kanal-Mosfet zu verwenden, der für den hier verwendeten Spannungsbereich geeignet ist. Der Mosfet muss bei einer VGS von etwa -3,8 V vollständig eingeschaltet und bei einer VGS von etwa -0,2 V vollständig ausgeschaltet sein. Ich habe mehrere Mosfets ausprobiert und festgestellt, dass ein IRLML6401TRPBF in Kombination mit den 10K- und 300K-Widerständen für dieses Ziel gut funktioniert. Ein Kondensator von 1 uF funktioniert gut, um eine Pulslänge von etwa 20 ms zu erhalten. Ein größerer Kondensator führt zu einem längeren Impuls, der nicht notwendig ist, da der TPL5111 aktiviert wurde. Ich habe mein DSO150-Oszilloskop verwendet, um die Spannungen und die Pulslänge zu überprüfen.
Geplante Verbesserung: OTA-Update
Ich plane, ein OTA-Update über folgende Vorgehensweise einzuspielen, die teilweise bereits in der aktuellen Software enthalten ist
- Über Openhab von NodeRed veröffentliche ich eine beibehaltene 'Update'-Nachricht ein 'Update-Thema'.
- Ist das Modul eingeschaltet und mit dem MQTT-Server verbunden und abonniert das 'Update-Topic', erhält es die Update-Nachricht.
- Die Update-Nachricht verhindert das Abschalten des Moduls und startet den
- Über die Website des HTTPUpdateServers können Sie die Software aktualisieren.
- Über Openhab von NodeRed veröffentliche ich eine beibehaltene 'leere' Nachricht als 'Update-Thema'.
Geplante Verbesserung: Hardware-Shutdown nach einer vordefinierten Zeit
Im aktuellen Schema verwende ich einen 200K-Widerstand zwischen DELAY/M_DRV und GND des TPL5111. Dadurch wird das Modul für mehr als 2 Stunden eingeschaltet (siehe 7.5.3. des TPL5111 Datenblatts). Allerdings möchte ich das Modul nicht so lange eingeschaltet lassen, weil dann der Akku leer ist. Wenn die Softwarelösung (siehe oben) das Modul nicht abschaltet oder die Update-Meldung das Modul unbeabsichtigt in den Update-Modus versetzt, bleibt das Modul lange eingeschaltet.
Daher ist es besser, einen kleineren Widerstand zwischen DELAY/M_DRV und GND des TPL5111 zu verwenden, damit das Modul nach kurzer Zeit ausgeschaltet wird, zB ein 50K-Widerstand, was eine Einschaltzeit von 7 Minuten ergibt.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
DIY Circuit Activity Board mit Büroklammern - HERSTELLER - STEM: 3 Schritte (mit Bildern)
DIY Circuit Activity Board mit Büroklammern | HERSTELLER | STEM: Mit diesem Projekt können Sie den Weg des elektrischen Stroms ändern, um durch verschiedene Sensoren zu laufen. Mit diesem Design können Sie zwischen dem Aufleuchten einer blauen LED oder dem Aktivieren eines Summers wechseln. Sie haben auch die Wahl, einen lichtabhängigen Widerstand mit
ESP8266/ESP-12 Arduino Powered SmartThings DS18B20 Temp. Sensor: 4 Schritte (mit Bildern)
ESP8266/ESP-12 Arduino Powered SmartThings DS18B20 Temp. Sensor: Wir alle möchten gerne wissen, wie die aktuelle Raumtemperatur ist und manchmal auch die Temperatur in einem anderen Raum oder vielleicht sogar in Ihrem Ferienhaus am anderen Ende der Welt. Vielleicht möchten Sie die Temperatur im Haus Ihres Haustiers Eidechse überwachen