Innehållsförteckning:

Batteridriven dörrsensor med integrering av hemmautomation, WiFi och ESP-NU: 5 steg (med bilder)
Batteridriven dörrsensor med integrering av hemmautomation, WiFi och ESP-NU: 5 steg (med bilder)

Video: Batteridriven dörrsensor med integrering av hemmautomation, WiFi och ESP-NU: 5 steg (med bilder)

Video: Batteridriven dörrsensor med integrering av hemmautomation, WiFi och ESP-NU: 5 steg (med bilder)
Video: Home Assistant. Урок 9.4 ADD-ON - Xiaomi Gateway 3, интеграция в zigbee2mqtt 2024, Juli
Anonim
Image
Image

I denna instruerbara visar jag dig hur jag gjorde en batteridriven dörrsensor med integrering av hemautomation. Jag har sett några andra fina sensorer och larmsystem, men jag ville göra en själv.

Mina mål:

  • En sensor som upptäcker och rapporterar en dörr som snabbt öppnas (<5 sekunder)
  • En sensor som känner av att dörren stängs
  • En sensor som är batteridriven och fungerar i några månader på ett batteri

Hårdvaran och mjukvaran är inspirerad av

  • Kevin Darrahs triggbräda (TPL5111 och TPS73733).
  • Den här videon

Jag gjorde en sensor för min ytterdörr och min bakdörr. Den enda skillnaden är LED -läget och den externa strömbrytaren (på bakdörrsensorn).

Jag gjorde flera förbättringar under utvecklingen av hårdvara och mjukvara, det kan ses på bilderna.

Tillbehör

Jag köpte de elektroniska komponenterna från Aliexpress, huvuddelarna:

  • LiPo batteri
  • TPS73733 LDO
  • TPL5111
  • Reed switch
  • P-kanal mosfet: IRLML6401TRPBF
  • Magnet
  • PCB -adapterplatta för SMD -komponenter och en annan.

Steg 1: Hårdvara - krets

Hårdvara - krets
Hårdvara - krets
Hårdvara - krets
Hårdvara - krets
Hårdvara - krets
Hårdvara - krets

Se de bifogade scheman för kretsen. Jag lödde SMD -delarna på en adapter -PCB -platta och lödde alla komponenter till ett dubbelsidigt perf -kort. Jag anslöt ESP-01 via kvinnliga rubriker, så jag kunde ta bort den för att programmera den via adaptern som visas i steg 3 i denna instruktionsbok.

Kretsen fungerar enligt följande:

  • När dörren öppnas får TPL5111 ett skott mot fördröjningen/M_DRV-stiftet och aktiverar TPS73733 LDO som driver ESP-01. För denna åtgärd måste EN/ONE_SHOT dras lågt, se databladet för TPL5111.
  • Efter att programmet har körts (se steg Programvara) skickar ESP-01 en Klar signal till TPL5111 som sedan inaktiverar TPS73733 vilket resulterar i ett mycket lågt effektläge för TPL5111 och TPS73733.

Jag använder vassströmbrytare med både NO- och NC -anslutningar. Jag anslöt NC -ledningen, eftersom vassomkopplaren måste stänga kretsen när magneten tas bort (dörren öppen) och öppna när magneten är nära (dörren stängd).

För bakdörrssensorn lade jag till några kondensatorer och motstånd när jag upptäckte några instabiliteter, men instabiliteten orsakades av programvaran (esp_now_init) som jag upptäckte senare.

Steg 2: Hårdvara - kapsling

Hårdvara - kapsling
Hårdvara - kapsling
Hårdvara - kapsling
Hårdvara - kapsling
Hårdvara - kapsling
Hårdvara - kapsling

Jag designade höljet i Autodesk Fusion360, inspirerat av den här videon av "killen med den schweiziska accenten".

STL -filerna i de tre delarna:

  • Låda
  • Lock
  • Magnethållare

publiceras på min Thingiverse -sida.

Steg 3: Programvara

programvara
programvara

Programmet finns i min Github.

Flödet av programmet visas på bilden. Se min andra Instructable för förklaring av hur jag använder ESP-NU.

När modulen är påslagen försöker den först skicka meddelandet "ÖPPNA" via ESP-NU. Om detta inte lyckas går det över till en WiFi- och MQTT -anslutning.

Jag fick reda på att åtminstone i min installation, meddelandet "STÄNGT" inte skickades framgångsrikt via ESP-NU, så jag tog bort detta från programmet och använde bara WiFi och MQTT.

Under tiden dörren öppnas och modulen väntar på att dörren ska stängas använder den denna tid för att ansluta till WiFi och MQTT, så när dörren är stängd behöver den bara skicka den uppmätta spänningen och ett STÄNGT meddelande och sedan det somnar direkt.

Programmet kontrollerar om det stängda meddelandet tas emot av mottagaren genom att lyssna på ett MQTT -meddelande om rätt ämne.

Steg 4: Hemautomation och telegram

Hemmautomation och telegram
Hemmautomation och telegram
Hemmautomation och telegram
Hemmautomation och telegram
Hemmautomation och telegram
Hemmautomation och telegram

Mina dörrsensorer kommunicerar med min Openhab Home Automation på min Raspberry Pi Zero.

Huvudapplikationer:

  • Läs dörrens tillstånd: ÖPPEN eller STÄNGD.
  • Larma mig via telegram om en dörr öppnas (om larmet är på eller om övervakningsfunktionen är påslagen).
  • Läs förra gången en dörr öppnades eller stängdes.
  • Räkna antalet öppningar en dörrsensor kan hantera innan batteriet tar slut.

Om vi till exempel är på semester och grannen kommer in för att vattna plantorna får jag ett meddelande. Se videon i introduktionen.

Mina Openhab -objekt, regler och webbplatskartfiler finns i min Github. I dessa filer kan du också se min dörrsensor i skjulet, som använder en vanlig trådbunden vassströmbrytare och en liten kontakt (slut) strömbrytare från en 3D -skrivare i låsöppningen (se bilderna).

Hur du använder Telegram -åtgärden i Openhab beskrivs här.

Steg 5: Förbättringar och ytterligare förbättringar

Förbättringar och ytterligare förbättringar
Förbättringar och ytterligare förbättringar
Förbättringar och ytterligare förbättringar
Förbättringar och ytterligare förbättringar

Under de senaste månaderna har jag gjort följande förbättring.

Hantera långa dörröppningar via en självväxlande pulssignal

På sommaren lämnar vi dörren öppen i några timmar när vi är hemma. Den körande ESP-01 med en WiFi-anslutning skulle då onödigt tömma batteriet. Därför inkluderade jag en strömbrytare för att kunna stänga av modulen i dessa situationer.

Detta resulterade dock ibland i en permanent avstängd modul (när jag glömde att slå på den) och ett urladdat batteri efter några eftermiddagar av en öppnad dörr och en igång modul (När jag glömde att stänga av den).

Därför ville jag kunna stänga av modulen via programvaran efter att modulen varit på för en fördefinierad tid (1 minut).

Där emellertid”DONE” -pulsen på ESP-01 stängde av TPL5111 när dörren stängdes, fick jag reda på att TPL5111 inte kopplades av med en”DONE” -puls medan DELAY/M_DRV-stiftet var HIGH. Denna HIGH -signal på DELAY/M_DRV -stiftet orsakades av den öppnade dörren och NC -kontakten för reed -omkopplaren ansluten till batterispänningen.

Så, signalen till DELAY/M_DRV -stiftet ska inte vara kontinuerligt HÖG, utan bör pulseras. I databladet TPL5111 kan du hitta att det ska vara en puls på> 20 ms. Jag gjorde denna självväxlande signal via en P-kanal mosfet, en kondensator och ett 10K och 300K motstånd, se det medföljande schemat.

Det fungerar enligt följande:

  • Om reed -switchens NC -kontakt stängs, är porten LÅG och Mosfet slås på, vilket resulterar i en HIGH -signal på DELAY/M_DRV -stift som aktiverar modulen.
  • Kondensatorn laddas snabbt, vilket resulterar i en stigande spänning på porten.
  • Efter cirka 20 ms är spänningen på porten 97% av batterispänningen (300K/(300K+10K) som är HÖG och Mosfet är avstängd, vilket resulterar i en LÅG signal på DELAY/M_DRV -stiftet.
  • När DELAY/M_DRV-stiftet är LÅG, resulterar DONE-signalen i ESP-01 i en avstängning av modulen.

Detta är implementerat i programvaran; en while-loop kontrollerar inte bara om dörren fortfarande är öppen, utan också om modulen inte är påslagen för länge. Om den slås på för länge publicerar den ett NULL -värde (dörrens odefinierade tillstånd). I det här fallet vet jag inte om dörren är öppen eller stängd och jag når inte alla mål som nämns i introt, men batteritiden är viktigare och oftast öppnar vi dörren igen senare samma dag, vilket resulterar i ett bekräftat stängt tillstånd av dörren.

Det är viktigt att använda en P-kanal Mosfet som är lämplig för det spänningsområde som används här. Mosfet måste vara helt på vid en VGS på cirka - 3,8 V och helt av vid en VGS på cirka -0,2 V. Jag provade flera Mosfets och fick reda på att en IRLML6401TRPBF fungerar bra för detta mål i kombination med 10K och 300K motstånd. En kondensator på 1 uF fungerar bra för att få en pulslängd på cirka 20 ms. En större kondensator resulterar i en längre puls, vilket inte är nödvändigt eftersom TPL5111 aktiverades. Jag använde mitt DSO150 -oscilloskop för att kontrollera spänningar och pulslängd.

Planerad förbättring: OTA -uppdatering

Jag planerar att införliva en OTA -uppdatering via följande procedur, som redan delvis ingår i den aktuella programvaran

  • Via Openhab of NodeRed publicerar jag ett lagrat "uppdateringsmeddelande" och ett "uppdateringsämne".
  • Om modulen är påslagen och ansluten till MQTT -servern och prenumererar på "uppdateringsämnet" får den uppdateringsmeddelandet.
  • Uppdateringsmeddelandet förhindrar att modulen stängs av och startar
  • Via webbplatsen för HTTPUpdateServer kan du uppdatera programvaran.
  • Via Openhab of NodeRed publicerar jag ett lagrat "tomt" meddelande och ett "uppdateringsämne".

Planerad förbättring: hårdvaruavstängning efter en fördefinierad tid

I det nuvarande schemat använder jag ett 200K -motstånd mellan DELAY/M_DRV och GND för TPL5111. Detta slår på modulen i mer än 2 timmar (se 7.5.3. I databladet TPL5111). Jag vill dock inte att modulen ska vara påslagen så länge, eftersom batteriet då är urladdat. Om programvarulösningen (se ovan) inte stänger av modulen, eller om uppdateringsmeddelandet oavsiktligt sätter modulen i uppdateringsläget, förblir modulen påslagen under en lång tid.

Därför är det bättre att använda ett mindre motstånd mellan DELAY/M_DRV och GND i TPL5111, så modulen stängs av efter en kort tid, till exempel ett 50K -motstånd som resulterar i en tid på 7 minuter.

Rekommenderad: