Inhoudsopgave:

Deurbeldruk- en temperatuursensor - Ajarnpa
Deurbeldruk- en temperatuursensor - Ajarnpa

Video: Deurbeldruk- en temperatuursensor - Ajarnpa

Video: Deurbeldruk- en temperatuursensor - Ajarnpa
Video: Verlaag NOOIT je aanvoertemperatuur van je cv-ketel.. (deel 2) 2024, Juli-
Anonim
Deurbeldruk- en temperatuursensor
Deurbeldruk- en temperatuursensor

Dit verbetert een standaard bedrade deurbel met een esp-12F (esp8266) module.

Het wordt in de beleenheid zelf geïnstalleerd om wijziging van de bedrading te voorkomen. Het biedt de volgende functies:

  • Deurbel indrukken detecteren
  • Stuurt meldingen naar de telefoon via IFTTT
  • Slaat deurbelactiviteit op in een easyIOT-server (optioneel)
  • Activeer andere activiteit via een URL wanneer de deurbel wordt ingedrukt

    Ik maak een momentopname op een webcam bij de deur en kan recente opnames van de deurbel op mijn telefoon bekijken

  • Optionele ingebouwde temperatuursensor (DS18B20) die deel uitmaakt van de temperatuurbewaking van mijn huis

Stap 1: Hardware en materialen

Hardware en materialen
Hardware en materialen
Hardware en materialen
Hardware en materialen

De volgende materialen zijn nodig:

  • ESP-12F (ESP8266) wifi/cpu-module
  • DC Buck-converter voor 3.3V-voeding
  • Gelijkrichterdiode (bijv. 1N4001)
  • Elektrolytische condensator 220uF 35V
  • Elektrolytische condensator 220uF 16V
  • Zenerdiode 3.3 of 2.6V
  • Weerstanden
  • Stuk stripboard
  • Connectoren indien nodig
  • DS18B20 digitale temperatuursensor indien nodig

Het schema toont de gebruikte schakeling. Er wordt uitgegaan van een laagspanningsbel met AC-voeding, wat het meest voorkomende type hard bedrade eenvoudige bel is. De beleenheid krijgt stroom van een externe beltransformator, meestal rond 10V AC. Dit is niet kritisch met als enige beperking de maximale spanning in de buck-converter. Degene die ik gebruik is gebaseerd op MP2307 met een maximale input van 23V dc (~16V AC).

Er zijn normaal gesproken 3 actieve klemmen. Met de beldrukker maakt u de verbinding van de ene kant van de AC-voeding naar de belsolenoïde. De module gebruikt de twee AC-klemmen om de gelijkstroom te produceren via een eenvoudige halfgolfgelijkrichter. De beldrukdetectie vindt plaats door de spanning over de eigenlijke solenoïde te bewaken. Dit zal normaal geaard zijn, maar wanneer de bel wordt geactiveerd zal de volledige AC zijn. Een weerstand / zenerdiode klemt dit af zodat een 0 - 3.3V 50 Hz puls in een GPIO-pin wordt gevoerd. De software verwerkt dit tot één activering per beldrukker.

Ik heb het circuit op een stukje stripboard gebouwd en dit is klein genoeg om gemakkelijk in de beleenheid te passen. Ik gebruik eenvoudige jumperconnectoren om het installeren te vergemakkelijken en specifiek op te nemen in lijn met de hoofdstroomtoevoer, zodat het indien nodig gemakkelijk kan worden gereset.

Het getoonde schema bevat een DS18B20 temperatuursensor. Dit is optioneel. Ik gebruik het als onderdeel van een netwerk dat de meeste gebieden in mijn huis bewaakt. Indien meegeleverd is het goed om de sensor met een paar centimeter kabel te bekabelen, zodat deze geïsoleerd kan worden van eventuele plaatselijke warmte-effecten.

Stap 2: Software

De deurdrukeenheid maakt gebruik van een Arduino-schets die beschikbaar is op github

Dit moet worden aangepast aan de lokale omstandigheden en vervolgens worden gecompileerd in een esp8266 Arduino-omgeving. De volgende bibliotheken zijn nodig, deze zijn standaard of kunnen worden toegevoegd.

  • ESP8266WiFi
  • WifiClient
  • ESP8266Webserver
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • WifiClientSecure
  • IFTTT Maker
  • DNS server
  • WiFiManager (optioneel gebruik)
  • OneWire
  • DallasTemperatuur

Items in de schets die moeten worden gewijzigd, zijn onder meer:

  • Lokale wifi-toegangsgegevens (ssid, wachtwoord) als WifiManager niet wordt gebruikt
  • Autorisatiecode voor webtoegang AP_AUTHID. Het is goed om hier een behoorlijke lengte van te maken. Het kan alfanumerieke tekens bevatten.
  • firmware OTA wachtwoord update_password
  • WifiManager-wachtwoord WM_PASSWORD

    Wifi kan handmatig worden ingesteld door een opmerking te plaatsen bij WM_NAME

  • IFTTT-makersleutel (zie de meldingsstap)

Optionele wijzigingen omvatten:

  • Ingangspin wijzigen voor deurbeldetector
  • Wisselpen voor temperatuursensor
  • Webtoegangspoort wijzigen van standaard 80

Zodra dit is gebeurd, moet het eerst worden gecompileerd en geüpload met behulp van conventionele seriële upload. Daaropvolgende update kan worden gedaan door een export binair bestand in Arduino-omgeving te compileren en vervolgens toegang te krijgen tot de OTA-interface op ip/firmware.

Het indrukken van de deurbel wordt gedetecteerd in de software door het detecteren van de stijgende flank van de eerste puls van het detectorcircuit. Alle volgende interrupts worden genegeerd. Er wordt een time-out gebruikt om de detector opnieuw te activeren na de BELL_MIN_INTERVAL die is ingesteld op 10 seconden.

Andere activiteiten zijn toegankelijk op de esp8266-webserver

  • ip/recent toont recente deurbelactiviteit
  • ip/reloadConfig laadt espConfig opnieuw
  • ip/bellPush simuleert een beldruk

Stap 3: Configuratie

Zoals geconstrueerd krijgt de software zijn configuratie van een lokale webserver. De module laadt configuratiegegevens op basis van het Mac-adres. Dit maakt het erg handig om meerdere modules uit te voeren met hetzelfde binaire bestand, en maakt het ook gemakkelijker om de configuratie bij te werken zonder opnieuw te compileren. Het zou mogelijk zijn om dit over te slaan en de configuratiegegevens rechtstreeks in de code te plaatsen.

Ik bewaar het configuratiebestand op mijn EasyIOT-server die een map heeft op easyIOT/html waar het configuratiebestand gemakkelijk kan worden opgehaald.

Het bestand heet espConfig en is een eenvoudig tekstbestand met een aantal parameters (12) voor elk mogelijk Mac-adres. Een module laadt alleen de parameters die voor zijn Mac-adres zijn ingesteld.

Een voorbeeld uit het bestand is

#Hal

#Mac-adres123456ABCDEF

#module naam

esp8266-hal

#server mode masker (1=temp sense, 4 = boilermode, 4 = deurbel)

9

#EIOT-knooppunt voor temperatuur

N9S0

#ongebruikt

-1

# minimum temperatuurinterval in seconden

60

#maximum temperatuurinterval in seconden

300

#ketelvermogen interval

0

#EasyIOT ketelstroomknooppunt

-1

#EasyIOT beldrukknop

N10S0

# IFTTT-meldingswaarde

voorkant

#IFTTT melding gebeurtenisnaam

deurbel

#actie-URL

192.168.0.2/snap.php

Elke regel die begint met # wordt genegeerd. Alle lijnen moeten aanwezig zijn. -1 wordt gebruikt om parameters te negeren.

Het configuratiebestand wordt gelezen wanneer de module voor het eerst opstart. Het kan ook opnieuw worden geladen in een draaiend systeem (wanneer de configuratie is gewijzigd) door naar ip/reloadConfig te gaan

Het deel van de ketelmodus van de configuratie is hier niet relevant, maar wordt gebruikt in mijn temperatuursensoren die zijn aangesloten op de uitgang van de centrale verwarming, omdat het detecteert wanneer de ketel aan het opwarmen is en het gemiddelde stroomverbruik kan berekenen.

Stap 4: Meldingen

Wanneer een deurbeldruk wordt gedetecteerd, probeert deze dit te melden via IFTTT of PushOver. Ik PushOver nu omdat het een snellere reactie geeft.

Voor IFTTT heb je een account nodig en activeer je het Maker WebHoooks-kanaal. De MakerKey van dit kanaal moet in de code worden gecompileerd.

Stel een IF-actie in met Maker WebHooks en gebruik de gebeurtenisnaam met dezelfde naam als in de configuratie (bijv. deurbel). De THEN-actie moet IFTTT-melding zijn. U kunt waarde1 toevoegen aan de melding die in het configuratiebestand zal staan. Dit kan handig zijn als u 2 of meer detectoren heeft.

Je moet de IFTTT-app op je telefoon installeren en dan verschijnen er meldingen wanneer de deurbel wordt geactiveerd.

Voor PushOver heeft u een PushOver-account nodig en volgt u de instructies om API-meldingen te ontvangen. U dient de NOTIFICATION_APP en NOTIFICATION_USER tokens in de software in te stellen met de waarden uit uw PushOver-account.

U moet de PushOver-app op uw telefoon installeren en een bescheiden eenmalige vergoeding betalen om meldingen te ontvangen. Dit is naar mijn mening de moeite waard om de veel snellere reactie te krijgen.

Stap 5: EasyIOT-integratie

De software kan temperatuur- en Doorbell push-rapporten naar een EasyIOT-server sturen. EasyIOT-automatisering kan worden gebruikt om op basis van deze rapportage aanvullende acties te ondernemen.

Stel een EasyIOT-server in (bijvoorbeeld op een Raspberry Pi). Configureer het ip-adres en het gebruikersnaamwachtwoord in de esp8266-software en compileer.

Voeg nu een virtueel stuurprogramma toe in de EASYIOT-configuratie. Kies Temperatuur Analoge Ingang en noteer de EasyIOT-knooppuntnaam. Dit moet in het temperatuurknooppuntnaamgedeelte van het espConfig-bestand worden geplaatst.

Voeg een tweede virtueel stuurprogramma toe. Kies Digitale ingang deur, noteer de naam van het knooppunt en plaats het in het espConfig-bestand.

Stap 6: Andere beldrukacties

De software heeft een routine genaamd actionBellOn. Zoals geschreven kan dit 3 dingen doen

  • IFTTT-melding
  • EasyIOT-rapport
  • Een actie-URL uitvoeren

De URL kan worden gebruikt om andere activiteiten van andere webservers te activeren. De gebruikte URL staat in het espConfig-bestand.

Als de server van de URL is geverifieerd, moeten de gebruikersnaam en het wachtwoord worden geconfigureerd en in de code worden gecompileerd.

Ik gebruik dit om toegang te krijgen tot een URL genaamd snap.php op een camera naast de deur. Dit kost een-j.webp

Ik gebruik op Raspberry Pi gebaseerde camera's die deze operatie heel eenvoudig maken. camera

Aanbevolen: