Inhaltsverzeichnis:

Türklingel und Temperatursensor - Gunook
Türklingel und Temperatursensor - Gunook

Video: Türklingel und Temperatursensor - Gunook

Video: Türklingel und Temperatursensor - Gunook
Video: Shelly Uni Kompendium - Zisterne / Batterie / Klingel / Wasser / Relais schalten und vieles mehr! 2024, Juli
Anonim
Klingeltaste und Temperatursensor
Klingeltaste und Temperatursensor

Dies verbessert eine standardmäßige fest verdrahtete Türklingel mit einem esp-12F (esp8266) Modul.

Es wird in der Klingeleinheit selbst installiert, um Änderungen an der Verkabelung zu vermeiden. Es bietet die folgenden Funktionen

  • Türklingeldrücke erkennen
  • Sendet Benachrichtigungen über IFTTT an das Telefon
  • Speichert die Türklingelaktivität in einem easyIOT-Server (optional)
  • Andere Aktivitäten über eine URL auslösen, wenn die Türklingel gedrückt wird

    Ich mache einen Schnappschuss mit einer Webcam an der Tür und kann die letzten Aufnahmen der Türklingel auf meinem Telefon anzeigen

  • Optionaler eingebetteter Temperatursensor (DS18B20), der Teil meiner Haustemperaturüberwachung ist

Schritt 1: Hardware und Materialien

Hardware und Materialien
Hardware und Materialien
Hardware und Materialien
Hardware und Materialien

Folgende Materialien werden benötigt

  • ESP-12F (ESP8266) WLAN / CPU-Modul
  • DC-Abwärtswandler für 3.3V-Versorgung
  • Gleichrichterdiode (z. B. 1N4001)
  • Elektrolytkondensator 220uF 35V
  • Elektrolytkondensator 220uF 16V
  • Zenerdiode 3,3 oder 2,6V
  • Widerstände
  • Stück Streifenbrett
  • Anschlüsse bei Bedarf
  • DS18B20 digitaler Temperatursensor bei Bedarf

Der Schaltplan zeigt die verwendete Schaltung. Es wird von einer wechselstrombetriebenen Niederspannungsklingel ausgegangen, die die gebräuchlichste Art von fest verdrahteten einfachen Klingel ist. Die Klingeleinheit wird von einem externen Klingeltransformator mit typischerweise etwa 10 V Wechselstrom versorgt. Dies ist nicht kritisch, da die einzige Einschränkung die maximale Spannung in den Abwärtswandler ist. Der von mir verwendete ist MP2307-basiert mit einer maximalen Eingangsspannung von 23 V DC (~ 16 V AC).

Normalerweise gibt es 3 aktive Terminals. Mit der Klingeltaste die Verbindung von einer Seite der Wechselstromversorgung zum Klingelsolenoid herstellen. Das Modul verwendet die beiden AC-Klemmen, um die DC-Leistung über einen einfachen Einweggleichrichter zu erzeugen. Die Klingeldruck-Erfassung erfolgt durch Überwachung der Spannung über dem tatsächlichen Solenoid. Dies wird normalerweise geerdet, aber wenn die Glocke aktiviert wird, ist die volle Wechselspannung vorhanden. Ein Widerstand / eine Zenerdiode beschneidet dies, sodass ein 0 - 3,3 V 50 Hz-Impuls in einen GPIO-Pin eingespeist wird. Die Software verarbeitet dies, um eine einmalige Aktivierung pro Klingeldruck bereitzustellen.

Ich habe die Schaltung auf einem Stück Streifenbrett konstruiert und diese ist klein genug, um leicht in die Klingeleinheit zu passen. Ich verwende einfache Jumper-Anschlüsse, um die Installation zu erleichtern, und schließe sie speziell an die Hauptstromversorgung an, damit sie bei Bedarf leicht zurückgesetzt werden kann.

Der gezeigte Schaltplan enthält einen DS18B20-Temperatursensor. Dies ist optional. Ich verwende es als Teil eines Netzwerks, das die meisten Bereiche in meinem Haus überwacht. Falls vorhanden, ist es gut, den Sensor mit einigen Zentimetern Kabel zu verkabeln, um ihn von lokalen Erwärmungseffekten zu isolieren.

Schritt 2: Software

Die Türdrückereinheit verwendet eine Arduino-Skizze, die auf github verfügbar ist

Dies muss an die lokalen Bedingungen angepasst und dann in einer esp8266 Arduino-Umgebung kompiliert werden. Die folgenden Bibliotheken werden benötigt, sie sind Standard oder können hinzugefügt werden.

  • ESP8266WiFi
  • WLAN-Client
  • ESP8266WebServer
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • WifiClientSecure
  • IFTTTMaker
  • DNS Server
  • WiFiManager (optionale Verwendung)
  • OneWire
  • DallasTemperatur

Zu ändernde Elemente in der Skizze umfassen

  • Details zum lokalen WLAN-Zugang (ssid, Passwort), wenn WifiManager nicht verwendet wird
  • Autorisierungscode für Webzugriff AP_AUTHID. Es ist gut, dies eine anständige Länge zu machen. Es kann alphanumerische Zeichen enthalten.
  • Firmware-OTA-Passwort update_password
  • WifiManager-Passwort WM_PASSWORD

    WLAN kann manuell eingerichtet werden, indem du WM_NAME auskommentierst

  • IFTTT-Herstellerschlüssel (siehe Benachrichtigungsschritt)

Optionale Änderungen beinhalten

  • Eingangspin für Türklingelmelder ändern
  • Wechselstift für Temperatursensor
  • Ändern des Webzugriffsports von Standard 80

Sobald dies erledigt ist, sollte es zuerst kompiliert und mit dem herkömmlichen seriellen Upload hochgeladen werden. Ein nachfolgendes Update kann durchgeführt werden, indem eine Export-Binärdatei in der Arduino-Umgebung kompiliert und dann auf die OTA-Schnittstelle unter ip/firmware zugegriffen wird.

Das Drücken der Türklingel wird in der Software durch Interrupt-Erkennung der steigenden Flanke des ersten Impulses von der Detektorschaltung erkannt. Alle nachfolgenden Interrupts werden ignoriert. Ein Timeout wird verwendet, um den Melder nach dem BELL_MIN_INTERVAL, das auf 10 Sekunden eingestellt ist, wieder zu aktivieren.

Auf andere Aktivitäten kann auf dem esp8266-Webserver zugegriffen werden

  • ip/recent zeigt die aktuelle Türklingelaktivität an
  • ip/reloadConfig lädt espConfig neu
  • ip/bellPush simuliert ein Klingeln

Schritt 3: Konfiguration

So wie sie aufgebaut ist, erhält die Software ihre Konfiguration von einem lokalen Webserver. Das Modul lädt Konfigurationsdaten basierend auf seiner Mac-Adresse. Dies macht es sehr bequem, mehrere Module mit derselben Binärdatei auszuführen, und macht es auch einfacher, die Konfiguration ohne Neukompilierung zu aktualisieren. Es wäre möglich, dies zu überspringen und die Konfigurationsdaten direkt in den Code einzufügen.

Ich speichere die Konfigurationsdatei auf meinem EasyIOT-Server, der unter easyIOT/html einen Ordner hat, in dem die Konfigurationsdatei leicht abgerufen werden kann.

Die Datei heißt espConfig und ist eine einfache Textdatei, die eine Reihe von Parametern (12) für jede mögliche Mac-Adresse speichert. Ein Modul lädt nur die Parameter, die für seine Mac-Adresse eingestellt sind.

Ein Beispiel aus der Datei ist

#Saal

#Mac-Adresse123456ABCDEF

#Modulname

esp8266-hall

#Servermodusmaske (1=Temp Sense, 4 = Boilermode, 4 = Türklingel)

9

#EIOT-Knoten für Temperatur

N9S0

#ungebraucht

-1

# Mindesttemperaturintervall in Sekunden

60

#Maximaltemperaturintervall in Sekunden

300

#Kesselleistungsintervall

0

#EasyIOT Kesselleistungsknoten

-1

#EasyIOT Klingeltaste

N10S0

# IFTTT-Benachrichtigungswert

Vorderseite

#IFTTT Ereignisname benachrichtigen

Türklingel

#Aktions-URL

192.168.0.2/snap.php

Jede Zeile, die mit # beginnt, wird ignoriert. Alle Zeilen müssen vorhanden sein. -1 wird für zu ignorierende Parameter verwendet.

Die Konfigurationsdatei wird beim ersten Start des Moduls gelesen. Es kann auch in einem laufenden System (wenn die Konfiguration geändert wurde) neu geladen werden, indem Sie auf ip/reloadConfig zugreifen

Der Kesselmodus-Teil der Konfiguration ist hier nicht relevant, wird aber in meinen Temperatursensoren verwendet, die an den Ausgang des Zentralheizungsrohrs angeschlossen sind, da er erkennt, wann der Kessel heizt und den durchschnittlichen Stromverbrauch berechnen kann.

Schritt 4: Benachrichtigungen

Wenn ein Türklingeldruck erkannt wird, versucht er dies per IFTTT oder PushOver zu melden. Ich habe jetzt PushOver, da es eine schnellere Reaktion gibt.

Für IFTTT benötigen Sie ein Konto und aktivieren den Maker WebHoooks-Kanal. Der MakerKey aus diesem Kanal muss in den Code kompiliert werden.

Richten Sie eine IF-Aktion mit Maker WebHooks ein und verwenden Sie den gleichnamigen Ereignisnamen wie in der Konfiguration (z. B. Türklingel). Die DANN-Aktion sollte eine IFTTT-Benachrichtigung sein. Sie können der Benachrichtigung value1 hinzufügen, die sich in der Konfigurationsdatei befindet. Dies kann nützlich sein, wenn Sie 2 oder mehr Detektoren haben.

Sie müssen die IFTTT-App auf Ihrem Telefon installieren und dann werden Benachrichtigungen angezeigt, wenn die Türklingel ausgelöst wird.

Für PushOver benötigen Sie ein PushOver-Konto und folgen den Anweisungen, um API-Benachrichtigungen zu erhalten. Sie müssen die Token NOTIFICATION_APP und NOTIFICATION_USER in der Software mit den Werten aus Ihrem PushOver-Konto einrichten.

Sie müssen die PushOver-App auf Ihrem Telefon installieren und eine geringe einmalige Gebühr zahlen, um Benachrichtigungen zu erhalten. Das lohnt sich aus meiner Sicht, um die viel schnellere Antwort zu bekommen.

Schritt 5: EasyIOT-Integration

Die Software kann Temperatur- und Türklingel-Push-Berichte an einen EasyIOT-Server senden. Die EasyIOT-Automatisierung kann verwendet werden, um basierend auf diesen Berichten zusätzliche Maßnahmen zu ergreifen.

Richten Sie einen EasyIOT-Server ein (z. B. auf einem Raspberry Pi). Konfigurieren Sie die IP-Adresse und das Passwort für den Benutzernamen in der Software esp8266 und kompilieren Sie.

Fügen Sie nun einen virtuellen Treiber in der EASYIOT-Konfiguration hinzu. Wählen Sie Temperature Analog Input und notieren Sie den EasyIOT-Knotennamen. Dies sollte in den Temperaturknotennamenteil der espConfig-Datei eingefügt werden.

Fügen Sie einen zweiten virtuellen Treiber hinzu. Wählen Sie Tür-Digitaleingang, notieren Sie den Knotennamen und legen Sie ihn in die espConfig-Datei ab.

Schritt 6: Andere Bell Push-Aktionen

Die Software verfügt über eine Routine namens actionBellOn. Wie geschrieben kann dies 3 Dinge tun

  • IFTTT-Benachrichtigung
  • EasyIOT-Bericht
  • Ausführen einer Aktions-URL

Die URL kann verwendet werden, um andere Aktivitäten von anderen Webservern auszulösen. Die verwendete URL befindet sich in der espConfig-Datei.

Wenn der Server der URL authentifiziert ist, müssen der Benutzername und das Passwort konfiguriert und in den Code kompiliert werden.

Ich benutze dies, um auf eine URL namens snap.php auf einer Kamera neben der Tür zuzugreifen. Dies nimmt ein-j.webp

Ich verwende Raspberry Pi-basierte Kameras, die diese Bedienung sehr einfach machen. Kamera

Empfohlen: