Innholdsfortegnelse:

Dørklokke trykk og temperatursensor: 6 trinn
Dørklokke trykk og temperatursensor: 6 trinn

Video: Dørklokke trykk og temperatursensor: 6 trinn

Video: Dørklokke trykk og temperatursensor: 6 trinn
Video: Lesson 40: Using MAX665 K-Type Temperature Sensor with LCD | Arduino Step By Step Course 2024, Juli
Anonim
Dørklokke trykk og temperatursensor
Dørklokke trykk og temperatursensor

Dette forbedrer en standard hardt kablet dørklokke med en esp-12F (esp8266) modul.

Den installeres i selve klokkeenheten for å unngå endringer i ledninger. Den gir følgende funksjoner

  • Finn dørklokkene
  • Sender varsler til telefonen via IFTTT
  • Lagrer dørklokkeaktivitet på en easyIOT -server (valgfritt)
  • Utløser annen aktivitet via en URL når dørklokken trykkes

    Jeg tar et øyeblikksbilde på et webkamera ved døren og kan se nylige dørklokkefanger på telefonen min

  • Valgfri innebygd temperatursensor (DS18B20) som er en del av husets temperaturovervåking

Trinn 1: Maskinvare og materialer

Maskinvare og materialer
Maskinvare og materialer
Maskinvare og materialer
Maskinvare og materialer

Følgende materialer er nødvendige

  • ESP-12F (ESP8266) wifi / cpu-modul
  • DC Buck -omformer for 3,3V forsyning
  • Likeretterdiode (f.eks. 1N4001)
  • Elektrolytisk kondensator 220uF 35V
  • Elektrolytisk kondensator 220uF 16V
  • Zenerdiode 3,3 eller 2,6V
  • Motstander
  • Et stykke stripebrett
  • Koblinger om nødvendig
  • DS18B20 digital temp sensor hvis nødvendig

Skjematisk viser kretsen som er brukt. Den forutsetter en lavspennings vekselstrømsklokke som er den vanligste typen hardt kablet enkel klokke. Klokkeenheten får strøm fra en ekstern klokketransformator vanligvis rundt 10V vekselstrøm. Dette er ikke kritisk, med den eneste begrensningen som er maksimal spenning til bukkomformeren. Den jeg bruker er MP2307 basert med en maksimal inngang på 23V DC (~ 16V AC).

Det er normalt 3 aktive terminaler. Med klokketrykket gjør du forbindelsen fra den ene siden av vekselstrømforsyningen til klokkens solenoid. Modulen bruker de to AC -terminalene for å produsere likestrøm gjennom en enkel halvbølgelig likeretter. Bell push -sensing er ved å overvåke spenningen over den faktiske solenoiden. Dette vil normalt bli malt, men når klokken er aktivert vil det være full AC. En motstand / zener -diode klemmer dette slik at en 0 - 3.3V 50 Hz puls mates inn i en GPIO -pinne. Programvaren behandler dette for å gi en enkelt aktivering per ringetrykk.

Jeg konstruerte kretsen på litt stripeplate, og denne er liten nok til å passe lett inn i klokkeenheten. Jeg bruker enkle jumperkontakter for å gjøre det enklere å installere og inkludere spesielt i tråd med hovedstrømforsyningen, slik at den enkelt kan tilbakestilles om nødvendig.

Skjematisk som vist inkluderer en DS18B20 temperatursensor. Dette er valgfritt. Jeg bruker den som en del av et nettverk som overvåker de fleste områdene i huset mitt. Hvis det er inkludert, er det godt å koble sensoren med noen få centimeter kabel for å la den isoleres fra lokale varmeeffekter.

Trinn 2: Programvare

Dørskuffenheten bruker en Arduino -skisse tilgjengelig på github

Dette må justeres for å passe lokale forhold og deretter kompileres i et esp8266 Arduino -miljø. Følgende biblioteker trengs, de er standard eller kan legges til.

  • ESP8266WiFi
  • WifiClient
  • ESP8266WebServer
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • WifiClientSecure
  • IFTTTMaker
  • DNSServer
  • WiFiManager (valgfri bruk)
  • OneWire
  • Dallas Temperatur

Elementer i skissen som skal endres inkluderer

  • Lokal wifi -informasjon (ssid, passord) hvis du ikke bruker WifiManager
  • Autorisasjonskode for nettilgang AP_AUTHID. Det er godt å gjøre dette til en anstendig lengde. Den kan inneholde alfanumeriske tegn.
  • fastvare OTA passord update_password
  • WifiManager -passord WM_PASSWORD

    Wifi kan konfigureres manuelt ved å kommentere WM_NAME

  • IFTTT maker key (se varslingstrinnet)

Valgfrie endringer inkluderer

  • Bytt inngangspinne for dørklokkedetektor
  • Skiftestift for temperatursensor
  • Endre nettilgangsport fra standard 80

Når dette er gjort, bør det først kompileres og lastes opp ved hjelp av konvensjonell serieopplasting. Etterfølgende oppdatering kan gjøres ved å kompilere en eksportbinari i Arduino -miljø og deretter få tilgang til OTA -grensesnittet på ip/firmware.

Dørklokkens trykk blir detektert i programvaren ved å avbryte følelsen av den stigende kanten av den første pulsen fra detektorkretsen. Alle påfølgende avbrudd ignoreres. En timeout brukes til å aktivere detektoren igjen etter BELL_MIN_INTERVAL som er satt til 10 sekunder.

Du kan få tilgang til andre aktiviteter på esp8266 -webserveren

  • ip/recent viser nylig dørklokkeaktivitet
  • ip/reloadConfig laster inn espConfig
  • ip/bellPush simulerer et klokketrykk

Trinn 3: Konfigurasjon

Slik den er konstruert, får programvaren sin konfigurasjon fra en lokal webserver. Modulen laster inn konfigurasjonsdata basert på Mac -adressen. Dette gjør det veldig praktisk å kjøre flere moduler med samme binære, og gjør det også lettere å oppdatere konfigurasjonen uten å kompilere på nytt. Det ville være mulig å hoppe over dette og sette konfigurasjonsdataene direkte i koden.

Jeg lagrer konfigurasjonsfilen på EasyIOT -serveren min som har en mappe på easyIOT/html der konfigurasjonsfilen lett kan hentes.

Filen heter espConfig og er en enkel tekstfil som lagrer et antall parametere (12) for hver mulig Mac -adresse. En modul laster bare inn parameterne som er angitt for Mac -adressen.

Et eksempel fra filen er

#Hall

#Mac -adresse123456ABCDEF

#modulenavn

esp8266-hall

#servermodusmaske (1 = temp. følelse, 4 = kjelemodus, 4 = dørklokke)

9

#EIOT -node for temperatur

N9S0

#ubrukt

-1

# minimumstemperaturintervall i sekunder

60

#maksimal temperaturintervall i sekunder

300

#kjeleeffektintervall

0

#EasyIOT kjelens strømnode

-1

#EasyIOT bell push node

N10S0

# IFTTT varslingsverdi

front

#IFTTT varsle hendelsesnavn

dør-klokke

#action URL

192.168.0.2/snap.php

Enhver linje som begynner med # blir ignorert. Alle linjer må være tilstede. -1 brukes for å ignorere parametere.

Konfigurasjonsfilen leses når modulen først starter. Det kan også lastes om i et system som kjører (når konfigurasjonen er endret) ved å få tilgang til ip/reloadConfig

Kjelemodus -delen av konfigurasjonen er ikke relevant her, men brukes i mine temperatursensorer festet til sentralvarme i rørutgang da den oppdager når kjelen varmes opp og kan beregne gjennomsnittlig strømforbruk.

Trinn 4: Varsler

Når et dørklokketrykk oppdages, prøver det å varsle dette med IFTTT eller PushOver. Jeg nå PushOver som det gir en raskere repsonse.

For IFTTT trenger du en konto og aktiverer Maker WebHoooks -kanalen. MakerKey fra denne kanalen må samles i koden.

Sett opp en IF -handling med Maker WebHooks og bruk hendelsesnavn med samme navn som i konfigurasjonen (f.eks. Dørklokke). THEN -handlingen bør være IFTTT -varsling. Du kan legge til verdi1 i varselet som vil være i konfigurasjonsfilen. Dette kan være nyttig hvis du har to eller flere detektorer.

Du må installere IFTTT -appen på telefonen din, og deretter vil varsler vises når dørklokken utløses.

For PushOver trenger du en PushOver -konto og følger instruksjonene for å motta API -varsler. Du må konfigurere NOTIFICATION_APP og NOTIFICATION_USER -tokens i programvaren med verdiene fra PushOver -kontoen din.

Du må installere PushOver-appen på telefonen og betale en beskjeden engangsavgift for å motta varsler. Dette er verdt det etter mitt syn for å få mye raskere respons.

Trinn 5: EasyIOT -integrasjon

Programvaren kan sende temperatur- og Doorbell push -rapporter til en EasyIOT -server. EasyIOT -automatisering kan brukes til å utføre flere handlinger basert på denne rapporten.

Sett opp en EasyIOT -server (f.eks. På en Raspberry Pi). Konfigurer ip -adresse og brukernavn passord i esp8266 -programvaren og kompiler.

Legg nå til en virtuell driver i EASYIOT -konfigurasjonen. Velg Temperatur Analog inngang og noter EasyIOT -nodenavnet. Dette bør settes inn i temperaturnodenavnsdelen i espConfig -filen.

Legg til en annen virtuell driver. Velg Door digital input, noter nodenavnet og legg det i espConfig -filen.

Trinn 6: Andre Bell Push -handlinger

Programvaren har en rutine kalt actionBellOn. Som skrevet kan dette gjøre 3 ting

  • IFTTT varsle
  • EasyIOT -rapport
  • Utfør en handlingsadresse

URL -en kan brukes til å utløse annen aktivitet fra andre webservere. URL -en som brukes er i espConfig -filen.

Hvis serveren til URL -adressen er godkjent, må brukernavn og passord konfigureres og kompileres til koden.

Jeg bruker dette for å få tilgang til en URL som heter snap.php på et kamera ved siden av døren. Dette tar en-j.webp

Jeg bruker bringebær Pi -baserte kameraer som gjør denne operasjonen veldig enkel. kamera

Anbefalt: