Innehållsförteckning:

Dörrklocka tryck och temperatursensor: 6 steg
Dörrklocka tryck och temperatursensor: 6 steg

Video: Dörrklocka tryck och temperatursensor: 6 steg

Video: Dörrklocka tryck och temperatursensor: 6 steg
Video: 🏠 Best 10 Smart Home Thermostats of 2023 | Trends & Tips for Setup Home Automation Deals Unveiled! 2024, November
Anonim
Dörrklocka tryck och temperatursensor
Dörrklocka tryck och temperatursensor

Detta förbättrar en standard hård trådbunden dörrklocka med en esp-12F (esp8266) -modul.

Den installeras i själva klockenheten för att undvika eventuella ändringar i ledningarna. Den tillhandahåller följande funktioner

  • Upptäck dörrklockans tryck
  • Skickar meddelanden till telefonen via IFTTT
  • Lagrar dörrklockans aktivitet på en easyIOT -server (tillval)
  • Utlösa annan aktivitet via en URL när dörrklockan trycks

    Jag tar en ögonblicksbild på en webbkamera vid dörren och kan se de senaste dörrklockans fångster på min telefon

  • Valfri inbyggd temperatursensor (DS18B20) som ingår i min hus temperaturövervakning

Steg 1: Hårdvara och material

Hårdvara och material
Hårdvara och material
Hårdvara och material
Hårdvara och material

Följande material behövs

  • ESP-12F (ESP8266) wifi / cpu-modul
  • DC Buck -omvandlare för 3,3V matning
  • Likriktardiod (t.ex. 1N4001)
  • Elektrolytkondensator 220uF 35V
  • Elektrolytkondensator 220uF 16V
  • Zenerdiod 3.3 eller 2.6V
  • Motstånd
  • En bit av bandbräda
  • Kontaktdon om det behövs
  • DS18B20 digital temp sensor om det behövs

Schemat visar kretsen som används. Den antar en lågspännings AC -klocka som är den vanligaste typen av hårdkopplad enkel klocka. Klockenheten får ström från en extern klocktransformator vanligtvis runt 10V AC. Detta är inte kritiskt, eftersom den enda begränsningen är den maximala spänningen i buck -omvandlaren. Den jag använder är MP2307 baserad med en maximal ingång på 23V DC (~ 16V AC).

Det finns normalt 3 aktiva terminaler. Med klockans tryck gör anslutningen från ena sidan av AC -matningen till klocksolenoiden. Modulen använder de två AC -terminalerna för att producera likström via en enkel halvvågslikriktare. Klockans tryckavkänning sker genom att övervaka spänningen över den faktiska solenoiden. Detta kommer normalt att slipas, men när klockan är aktiverad kommer den att vara full AC. Ett motstånd / zenerdiod klämmer fast detta så att en 0 - 3.3V 50 Hz puls matas in i en GPIO -stift. Programvaran behandlar detta för att ge en enda aktivering per klockpress.

Jag konstruerade kretsen på lite remskiva och den här är tillräckligt liten för att enkelt passa in i klockenheten. Jag använder enkla bygelkontakter för att göra det enklare att installera och inkludera specifikt i linje med huvudströmmen så att det enkelt kan återställas om det behövs.

Schemat som visas inkluderar en temperatursensor DS18B20. Detta är valfritt. Jag använder den som en del av ett nätverk som övervakar de flesta områdena i mitt hus. Om den ingår är det bra att koppla in sensorn med några centimeter kabel så att den kan isoleras från lokala värmeeffekter.

Steg 2: Programvara

Dörrens push -enhet använder en Arduino -skiss tillgänglig på github

Detta måste justeras för att passa lokala förhållanden och sedan sammanställas i en esp8266 Arduino -miljö. Följande bibliotek behövs, de är standard eller kan läggas till.

  • ESP8266WiFi
  • WifiClient
  • ESP8266WebServer
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • WifiClientSecure
  • IFTTTMaker
  • DNSServer
  • WiFiManager (valfri användning)
  • OneWire
  • Dallas Temperatur

Objekt i skissen som ska ändras inkluderar

  • Lokal wifi -information (ssid, lösenord) om du inte använder WifiManager
  • Behörighetskod för webbåtkomst AP_AUTHID. Det är bra att göra detta till en anständig längd. Den kan innehålla alfanumeriska tecken.
  • firmware OTA lösenord update_password
  • WifiManager lösenord WM_PASSWORD

    Wifi kan konfigureras manuellt genom att kommentera WM_NAME

  • IFTTT maker -nyckel (se anmälningssteget)

Valfria ändringar inkluderar

  • Byte av ingångsstift för dörrklockans detektor
  • Skiftstift för temperaturgivare
  • Ändrar webbåtkomstport från standard 80

När detta är gjort bör det först kompileras och laddas upp med konventionell serieöverföring. Efterföljande uppdatering kan göras genom att sammanställa en exportbinär i Arduino -miljö och sedan komma åt OTA -gränssnittet på ip/firmware.

Dörrklockans tryck detekteras i programvaran genom att avbryta avkänningen av den första pulsens stigande kant från detektorkretsen. Alla efterföljande avbrott ignoreras. En timeout används för att återaktivera detektorn efter BELL_MIN_INTERVAL som är inställd på 10 sekunder.

Andra aktiviteter kan komma åt på esp8266 -webbservern

  • ip/recent visar senaste dörrklockans aktivitet
  • ip/reloadConfig laddar om espConfig
  • ip/bellPush simulerar ett klockpress

Steg 3: Konfiguration

Som konstruerat får programvaran sin konfiguration från en lokal webbserver. Modulen laddar konfigurationsdata baserat på dess Mac -adress. Detta gör det mycket bekvämt att köra flera moduler med samma binär och gör det också lättare att uppdatera konfigurationen utan att kompilera om. Det skulle vara möjligt att hoppa över detta och lägga konfigurationsdata direkt i koden.

Jag lagrar konfigurationsfilen på min EasyIOT -server som har en mapp på easyIOT/html där konfigurationsfilen lätt kan hämtas.

Filen kallas espConfig och är en enkel textfil som lagrar ett antal parametrar (12) för varje möjlig Mac -adress. En modul laddar bara de parametrar som ställts in för sin Mac -adress.

Ett exempel från filen är

#Hall

#Mac -adress123456ABCDEF

#modulnamn

esp8266-hall

#server mode mask (1 = temp sense, 4 = boilermode, 4 = doorbell)

9

#EIOT -nod för temperatur

N9S0

#oanvänd

-1

# lägsta temperaturintervall i sekunder

60

#max temperaturintervall i sekunder

300

#pannans effektintervall

0

#EasyIOT pannkraftsnod

-1

#EasyIOT bell push -nod

N10S0

# IFTTT meddela värde

främre

#IFTTT meddela händelsens namn

dörrklocka

#action URL

192.168.0.2/snap.php

Alla rader som börjar med # ignoreras. Alla rader måste finnas. -1 används för att ignorera parametrar.

Konfigurationsfilen läses när modulen startas första gången. Det kan också laddas om i ett system som körs (när konfigurationen har ändrats) genom att komma åt ip/reloadConfig

Pannlägesdelen av konfigurationen är inte relevant här men används i mina temperatursensorer som är anslutna till centralvärme i rörutgången eftersom den detekterar när pannan värmer och kan beräkna genomsnittlig strömförbrukning.

Steg 4: Meddelanden

När en dörrklocka tryck upptäcks försöker den meddela detta med IFTTT eller PushOver. Jag nu PushOver eftersom det ger en snabbare repson.

För IFTTT behöver du ett konto och aktivera Maker WebHoooks -kanalen. MakerKey från denna kanal måste sammanställas i koden.

Ställ in en IF -åtgärd med Maker WebHooks och använd händelsens namn med samma namn som i konfigurationen (t.ex. dörrklocka). ÅTGÄRDEN bör vara IFTTT -avisering. Du kan lägga till värde1 till meddelandet som finns i konfigurationsfilen. Detta kan vara användbart om du har 2 eller fler detektorer.

Du måste installera IFTTT -appen på din telefon och sedan visas aviseringar när dörrklockan utlöses.

För PushOver behöver du ett PushOver -konto och följ instruktionerna för att ta emot API -meddelanden. Du måste konfigurera NOTIFICATION_APP och NOTIFICATION_USER -tokens i programvaran med värdena från ditt PushOver -konto.

Du måste installera PushOver-appen på din telefon och betala en blygsam engångsavgift för att få aviseringar. Detta är värt det enligt min mening för att få mycket snabbare svar.

Steg 5: EasyIOT -integration

Programvaran kan skicka temperatur- och Doorbell push -rapporter till en EasyIOT -server. EasyIOT -automatisering kan användas för att vidta ytterligare åtgärder baserat på denna rapport.

Skapa en EasyIOT -server (t.ex. på en Raspberry Pi). Konfigurera ip -adress och användarnamnlösenord i esp8266 -programvaran och kompilera.

Lägg nu till en virtuell drivrutin i EASYIOT -konfigurationen. Välj Temperatur Analog ingång och notera EasyIOT -nodnamnet. Detta bör läggas in i temperaturnodens namn i espConfig -filen.

Lägg till en andra virtuell drivrutin. Välj Door digital ingång, notera nodnamnet och lägg i espConfig -filen.

Steg 6: Andra Bell Push -åtgärder

Programvaran har en rutin som kallas actionBellOn. Som skrivet kan detta göra 3 saker

  • IFTTT meddela
  • EasyIOT -rapport
  • Utför en åtgärd URL

URL: en kan användas för att utlösa annan aktivitet från andra webbservrar. Webbadressen som används finns i espConfig -filen.

Om webbadressens server är autentiserad måste användarnamnet och lösenordet konfigureras och sammanställas i koden.

Jag använder det här för att komma åt en URL som heter snap.php på en kamera bredvid dörren. Detta tar en-j.webp

Jag använder Raspberry Pi -baserade kameror som hanterar denna operation väldigt enkelt. kamera

Rekommenderad: