INHOUDSOPGAWE:

Deurklokkie en temperatuursensor: 6 stappe
Deurklokkie en temperatuursensor: 6 stappe

Video: Deurklokkie en temperatuursensor: 6 stappe

Video: Deurklokkie en temperatuursensor: 6 stappe
Video: Беспроводной дверной звонок eMastiff 2024, Julie
Anonim
Deurklokkie en temperatuur sensor
Deurklokkie en temperatuur sensor

Dit verbeter die standaard deurklokkie met 'n vaste kabel met 'n esp-12F (esp8266) -module.

Dit word geïnstalleer in die klokkeenheid self om enige verandering aan bedrading te voorkom. Dit bied die volgende funksies

  • Ontdek deurklokkies
  • Stuur kennisgewings na die telefoon via IFTTT
  • Stoor deurklokkie -aktiwiteit in 'n easyIOT -bediener (opsioneel)
  • Aktiveer ander aktiwiteite via 'n URL wanneer die deurklokkie druk

    Ek maak 'n momentopname op 'n webcam by die deur en kan die onlangse deurklokkies op my telefoon sien

  • Opsionele ingeboude temperatuursensor (DS18B20) wat deel uitmaak van my huistemperatuurmonitering

Stap 1: Hardeware en materiaal

Hardeware en materiaal
Hardeware en materiaal
Hardeware en materiaal
Hardeware en materiaal

Die volgende materiaal is nodig

  • ESP-12F (ESP8266) wifi / cpu-module
  • DC Buck -omskakelaar vir 3.3V -toevoer
  • Gelykrigterdiode (bv. 1N4001)
  • Elektrolitiese kondensator 220uF 35V
  • Elektrolitiese kondensator 220uF 16V
  • Zenerdiode 3.3 of 2.6V
  • Weerstande
  • Stukkie strookbord
  • Verbindings indien nodig
  • DS18B20 digitale temp sensor indien nodig

Die skema toon die stroombaan wat gebruik word. Dit veronderstel 'n laespanning -wisselstroomklok, wat die algemeenste tipe vaste kabel is. Die klokkeenheid kry krag van 'n eksterne klokketransformator, gewoonlik ongeveer 10V wisselstroom. Dit is nie van kritieke belang nie, met die enigste beperking die maksimum spanning in die boksomskakelaar. Die een wat ek gebruik, is MP2307 gebaseer met 'n maksimum inset van 23V DC (~ 16V AC).

Daar is gewoonlik 3 aktiewe terminale. Met die klokkie druk die verbinding van die een kant van die wisselstroomtoevoer na die kloksolenoïde. Die module gebruik die twee wisselstroomaansluitings om die gelykstroom deur 'n eenvoudige halfgelykrigter te produseer. Die kloksensor is deur die spanning oor die werklike solenoïde te monitor. Dit sal normaalweg gemaal word, maar as die klok geaktiveer word, sal die volle AC wees. 'N Weerstand / zenerdiode knip dit, sodat 'n 0 - 3.3V 50 Hz -puls in 'n GPIO -pen gevoer word. Die sagteware verwerk dit om 'n enkele aktivering per klokpers te lewer.

Ek het die stroombaan op 'n bietjie strookbord gebou, en dit is klein genoeg om maklik in die klokkeenheid te pas. Ek gebruik eenvoudige koppelstukverbindings om dit makliker te maak om te installeer, en sluit dit spesifiek in ooreenstemming met die hoof -wisselstroomtoevoer in, sodat dit maklik kan herstel word indien nodig.

Die skema soos getoon bevat 'n DS18B20 temperatuursensor. Dit is opsioneel. Ek gebruik dit as deel van 'n netwerk wat die meeste gebiede in my huis monitor. As dit ingesluit is, is dit goed om die sensor met 'n paar sentimeter kabel in te skakel sodat dit van plaaslike verwarmingseffekte geïsoleer kan word.

Stap 2: sagteware

Die deurstoot -eenheid gebruik 'n Arduino -skets wat op github beskikbaar is

Dit moet aangepas word volgens die plaaslike omstandighede en dan saamgestel word in 'n esp8266 Arduino -omgewing. Die volgende biblioteke benodig, dit is standaard of kan bygevoeg word.

  • ESP8266WiFi
  • Wifi -kliënt
  • ESP8266WebServer
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • WifiClientSecure
  • IFTTTMaker
  • DNSServer
  • WiFiManager (opsioneel gebruik)
  • OneWire
  • Dallas temperatuur

Artikels in die skets wat verander moet word, sluit in

  • Plaaslike wifi -toegangsbesonderhede (ssid, wagwoord) as u nie WifiManager gebruik nie
  • Magtigingskode vir webtoegang AP_AUTHID. Dit is goed om dit 'n ordentlike lengte te maak. Dit kan alfanumeriese karakters bevat.
  • firmware OTA wagwoord update_password
  • WifiManager wagwoord WM_PASSWORD

    Wifi kan handmatig opgestel word deur kommentaar te lewer op WM_NAME

  • IFTTT maker -sleutel (sien die kennisgewingstap)

Opsionele veranderinge sluit in

  • Verander invoerpen vir deurklokkiedetektor
  • Wisselpen vir temperatuursensor
  • Verander webtoegangpoort van standaard 80

Sodra dit gedoen is, moet dit eers saamgestel en opgelaai word met behulp van konvensionele reeksoplaai. Die daaropvolgende opdatering kan gedoen word deur 'n uitvoerbinair in die Arduino -omgewing op te stel en dan toegang tot die OTA -koppelvlak by ip/firmware te verkry.

Die deurklokkie word in die sagteware bespeur deur 'n onderbreking van die stygende rand van die eerste pols vanaf die detektorkring te sien. Alle daaropvolgende onderbrekings word geïgnoreer. 'N Tydsduur word gebruik om die detektor weer te aktiveer na die BELL_MIN_INTERVAL wat op 10 sekondes gestel is.

Ander aktiwiteite kan op die esp8266 -webbediener verkry word

  • ip/recent toon onlangse deurklokkie -aktiwiteit
  • ip/herlaaiConfig herlaai espConfig
  • ip/bellPush simuleer 'n klokdruk

Stap 3: Konfigurasie

Soos opgestel, kry die sagteware die konfigurasie van 'n plaaslike webbediener. Die module laai konfigurasiedata op grond van sy Mac -adres. Dit maak dit baie handig om verskeie modules met dieselfde binêre uit te voer, en dit maak dit ook makliker om die konfigurasie op te dateer sonder om weer saam te stel. Dit sou moontlik wees om dit oor te slaan en die config -data direk in die kode te plaas.

Ek stoor die config -lêer op my EasyIOT -bediener met 'n gids op easyIOT/html waar die config -lêer maklik opgespoor kan word.

Die lêer word espConfig genoem en is 'n eenvoudige tekslêer wat 'n aantal parameters (12) vir elke moontlike Mac -adres stoor. 'N Module laai slegs die parameters wat vir sy Mac -adres gestel is.

'N Voorbeeld uit die lêer is

#Hall

#Mac -adres123456ABCDEF

#module naam

esp8266-saal

#bedienermodusmasker (1 = temp, 4 = kookmodus, 4 = deurklokkie)

9

#EIOT -knoop vir temperatuur

N9S0

#gebruik

-1

# minimum temperatuurinterval in sekondes

60

#maksimum temperatuurinterval in sekondes

300

#ketelkraginterval

0

#EasyIOT -ketelkragknooppunt

-1

#EasyIOT -klokdrukknooppunt

N10S0

# IFTTT stel waarde in kennis

voor

Stel gebeurtenisnaam in kennis deur #IFTTT

deurklokkie

#aksie -URL

192.168.0.2/snap.php

Enige reël wat met # begin, word geïgnoreer. Alle lyne moet teenwoordig wees. -1 word gebruik om parameters te ignoreer.

Die konfigurasielêer word gelees wanneer die module die eerste keer begin. Dit kan ook herlaai word in 'n lopende stelsel (as die konfigurasie verander is) deur toegang te verkry tot ip/reloadConfig

Die ketelmodus -deel van die konfigurasie is hier nie relevant nie, maar word gebruik in my temperatuursensors wat aan die sentrale verwarming in die pypuitset gekoppel is, aangesien dit opspoor wanneer die ketel verhit word en die gemiddelde kragverbruik kan bereken.

Stap 4: Kennisgewings

As 'n deurklokkie gedruk word, probeer hy dit deur IFTTT of PushOver in kennis stel. Ek druk nou PushOver, want dit gee 'n vinniger reaksie.

Vir IFTTT benodig u 'n rekening en aktiveer die Maker WebHoooks -kanaal. Die MakerKey van hierdie kanaal moet in die kode saamgestel word.

Stel 'n IF -aksie op met Maker WebHooks en gebruik die gebeurtenisnaam met dieselfde naam as in die konfigurasie (bv. Deurbel). Die TOEN -aksie moet IFTTT -kennisgewing wees. U kan waarde1 byvoeg by die kennisgewing wat in die konfigurasielêer verskyn. Dit kan handig wees as u 2 of meer detektors het.

U moet die IFTTT -app op u telefoon installeer, en dan sal kennisgewings verskyn wanneer die deurklokkie geaktiveer word.

Vir PushOver benodig u 'n PushOver -rekening en volg die instruksies om API -kennisgewings te ontvang. U moet die NOTIFICATION_APP- en NOTIFICATION_USER -tokens in die sagteware opstel met die waardes van u PushOver -rekening.

U moet die PushOver-app op u telefoon installeer en 'n beskeie eenmalige fooi betaal om kennisgewings te ontvang. Dit is myns insiens die moeite werd om die vinniger reaksie te kry.

Stap 5: EasyIOT -integrasie

Die sagteware kan temperatuur- en deurklokkieverslae na 'n EasyIOT -bediener stuur. EasyIOT -outomatisering kan gebruik word om bykomende aksies op grond van hierdie verslag uit te voer.

Stel 'n EasyIOT -bediener op (byvoorbeeld op 'n Raspberry Pi). Stel die ip -adres en gebruikersnaamwagwoord in die esp8266 -sagteware op en stel dit saam.

Voeg nou 'n virtuele bestuurder by in die EASYIOT -opset. Kies Temperatuur analoog invoer en let op die EasyIOT -knoopnaam. Dit moet in die temperatuurknooppuntnaam van die espConfig -lêer geplaas word.

Voeg 'n tweede virtuele bestuurder by. Kies Deur digitale invoer, let op die knooppuntnaam en plaas dit in die espConfig -lêer.

Stap 6: Ander Bell Push -aksies

Die sagteware het 'n roetine genaamd actionBellOn. Soos geskryf, kan dit 3 dinge doen

  • IFTTT in kennis stel
  • EasyIOT -verslag
  • Voer 'n aksie -URL uit

Die URL kan gebruik word om ander aktiwiteite van ander webbedieners te aktiveer. Die gebruikte URL is in die espConfig -lêer.

As die bediener van die URL geverifieer is, moet die gebruikersnaam en wagwoord gekonfigureer en saamgestel word in die kode.

Ek gebruik dit om toegang te verkry tot 'n URL genaamd snap.php op 'n kamera langs die deur. Dit neem 'n-j.webp

Ek gebruik kameras wat gebaseer is op framboos, wat hierdie operasie baie maklik maak. kamera

Aanbeveel: