INHOUDSOPGAWE:

Batterijaangedrewe deursensor met integrasie van tuisautomatisering, WiFi en ESP-NOU: 5 stappe (met foto's)
Batterijaangedrewe deursensor met integrasie van tuisautomatisering, WiFi en ESP-NOU: 5 stappe (met foto's)

Video: Batterijaangedrewe deursensor met integrasie van tuisautomatisering, WiFi en ESP-NOU: 5 stappe (met foto's)

Video: Batterijaangedrewe deursensor met integrasie van tuisautomatisering, WiFi en ESP-NOU: 5 stappe (met foto's)
Video: Review - Eufy 2C Pro [3 Months Later] 2024, Julie
Anonim
Image
Image

In hierdie instruksies wys ek u hoe ek 'n batteryslaaide deursensor gemaak het met tuisoutomatisering. Ek het 'n paar ander goeie sensors en alarmstelsels gesien, maar ek wou dit self maak.

My doelwitte:

  • 'N Sensor wat 'n deur vinnig opspoor en rapporteer (<5 sekondes)
  • 'N Sensor wat die deur toemaak
  • 'N Sensor wat op batterye werk en 'n paar maande op 'n battery werk

Die hardeware en sagteware is geïnspireer deur

  • Die snitbord van Kevin Darrah (TPL5111 en TPS73733).
  • Hierdie video

Ek het 'n sensor vir my voordeur en my agterdeur gemaak. Die enigste verskil is die geleide posisie en die eksterne skakelaar (op die agterdeur sensor).

Ek het verskeie verbeterings aangebring tydens die ontwikkeling van hardeware en sagteware, dit kan op die foto's gesien word.

Voorrade

Ek het die elektroniese komponente by Aliexpress gekoop, die belangrikste onderdele:

  • LiPo battery
  • TPS73733 LDO
  • TPL5111
  • Rietskakelaar
  • P-kanaal mosfet: IRLML6401TRPBF
  • Magneet
  • PCB -adapterplaat vir SMD -komponente en nog een.

Stap 1: Hardeware - stroombaan

Hardeware - stroombaan
Hardeware - stroombaan
Hardeware - stroombaan
Hardeware - stroombaan
Hardeware - stroombaan
Hardeware - stroombaan

Sien die aangehegte skemas vir die kring. Ek het die SMD -dele op 'n adapter -PCB -plaat gesoldeer en alle komponente aan 'n dubbelzijdige perf -bord gesoldeer. Ek het die ESP-01 via vroulike headers gekoppel, sodat ek dit kon verwyder om dit te programmeer via die adapter wat in stap 3 van hierdie instruksies getoon word.

Die kring werk soos volg:

  • As die deur oopgemaak word, ontvang die TPL5111 'n skoot na die DELAY/M_DRV-pen en stel die TPS73733 LDO in staat om die ESP-01 aan te dryf. Vir hierdie operasie moet die EN/ONE_SHOT laag trek, sien die datablad van die TPL5111.
  • Nadat die program uitgevoer is (sien stap sagteware), stuur die ESP-01 'n Klaar sein na die TPL5111 wat dan die TPS73733 deaktiveer, wat lei tot 'n baie lae krag toestand vir die TPL5111 en die TPS73733.

Ek gebruik rietskakelaars met beide NO en NC verbindings. Ek het die NC -kabel gekoppel, aangesien die rietskakelaar die stroombaan moet sluit wanneer die magneet verwyder word (deur oop) en oopmaak as die magneet naby is (deur gesluit).

Vir die agterdeur -sensor het ek 'n paar kondensators en weerstande bygevoeg toe ek 'n paar onstabiliteite ontdek het, maar die onstabiliteit is veroorsaak deur die sagteware (esp_now_init) soos ek later ontdek het.

Stap 2: Hardeware - omhulsel

Hardeware - Omhulsel
Hardeware - Omhulsel
Hardeware - Omhulsel
Hardeware - Omhulsel
Hardeware - Omhulsel
Hardeware - Omhulsel

Ek het die omhulsel in Autodesk Fusion360 ontwerp, geïnspireer deur hierdie video deur 'die man met die Switserse aksent'.

Die STL -lêers van die drie dele:

  • Boks
  • Deksel
  • Magneethouer

word op my Thingiverse -bladsy gepubliseer.

Stap 3: sagteware

Sagteware
Sagteware

Die program is in my Github.

Die vloei van die program word op die foto getoon. Sien my ander Instructable vir die verduideliking van hoe ek ESP-NOW gebruik.

As die module aangeskakel is, probeer dit eers om die 'OPEN'-boodskap via ESP-NOW te stuur. As dit nie slaag nie, skakel dit oor na 'n WiFi- en MQTT -verbinding.

Ek het uitgevind dat die 'GESLOTE'-boodskap ten minste in my opset nie suksesvol via ESP-NOW gestuur is nie, so ek het dit uit die program verwyder en slegs WiFi en MQTT gebruik.

Gedurende die tyd dat die deur oopgemaak word en die module wag vir die deur om te sluit, gebruik hy hierdie tyd om aan te sluit op WiFi en MQTT, dus as die deur gesluit is, hoef dit slegs die gemete spanning en 'n GESLOTE boodskap te stuur en dan dit gaan direk aan die slaap.

Die program kyk of die geslote boodskap deur die ontvanger ontvang word deur na 'n MQTT -boodskap oor die regte onderwerp te luister.

Stap 4: Tuisautomatisering en telegram

Tuisautomatisering en telegram
Tuisautomatisering en telegram
Tuisautomatisering en telegram
Tuisautomatisering en telegram
Tuisautomatisering en telegram
Tuisautomatisering en telegram

My deursensors kommunikeer met my Openhab Home Automation op my Raspberry Pi Zero.

Belangrikste toepassings:

  • Lees die toestand van die deur: OOP of GESLUIT.
  • Maak my alarm via telegram as 'n deur oopgemaak word (as die alarm aangeskakel is of die monitorfunksie aangeskakel is).
  • Lees die laaste keer dat 'n deur oopgemaak of toegemaak is.
  • Tel die aantal openinge wat 'n deursensor kan hanteer voordat die battery leeg is.

Byvoorbeeld, as ons met vakansie is en die buurman kom om die plante nat te maak, kry ek 'n boodskap. Sien die video in die inleiding.

My Openhab -items, reëls en sitemap -lêers is in my Github. In hierdie lêers kan u ook my deursensor van die skuur sien, wat 'n gewone bedrade rietskakelaar en 'n klein kontak (eind) skakelaar van 'n 3D -drukker in die slotopening gebruik (sien die foto's).

Hier word beskryf hoe u die Telegram -aksie in Openhab kan gebruik.

Stap 5: Verbeterings en verdere verbeterings

Verbeterings en verdere verbeterings
Verbeterings en verdere verbeterings
Verbeterings en verdere verbeterings
Verbeterings en verdere verbeterings

In die afgelope maande het ek die volgende verbetering aangebring.

Hanteer lang deuropeninge via 'n selfskakelende polssignaal

In die somer verlaat ons die agterdeur vir 'n paar uur as ons tuis is. Die lopende ESP-01 met 'n WiFi-verbinding sal die battery dan onnodig leegmaak. Daarom het ek 'n aan/uit -skakelaar ingesluit om die module in hierdie situasies uit te skakel.

Dit het egter soms gelei tot 'n permanent afgeskakel module (toe ek vergeet het om dit aan te skakel) en 'n leë battery na 'n paar middae van 'n oop deur en 'n lopende module (toe ek vergeet het om dit uit te skakel).

Daarom wou ek die module via die sagteware kon afskakel nadat die module vir 'n voorafbepaalde tyd (1 minuut) aan was.

Waar die 'DONE'-pols van die ESP-01 die TPL5111 egter afgeskakel het toe die deur gesluit was, het ek uitgevind dat die TPL5111 nie deur 'n' DONE 'pols aangeskakel is terwyl die DELAY/M_DRV-pen HOOG was nie. Hierdie HOOG sein op die DELAY/M_DRV -pen is veroorsaak deur die oop deur en die NC -kontak van die rietskakelaar wat op die batteryspanning gekoppel is.

Die sein na die DELAY/M_DRV -pen moet dus nie voortdurend HOOG wees nie, maar moet gepols word. In die TPL5111 -datablad kan u vind dat dit 'n pols van> 20 ms moet wees. Ek het hierdie selfskakel sein gemaak via 'n P-kanaal mosfet, 'n kapasitor en 'n 10K en 300K weerstand, sien die meegeleverde skema.

Dit werk soos volg:

  • As die NC -kontak van die rietskakelaar gesluit is, is die poort LOW en word die Mosfet aangeskakel, wat lei tot 'n HOOG sein op DELAY/M_DRV -pen wat die module aktiveer.
  • Die kondensator word vinnig gelaai, wat lei tot 'n stygende spanning op die poort.
  • Na ongeveer 20 ms is die spanning op die poort 97% van die batteryspanning (300K/(300K+10K) wat HOOG is en die Mosfet afgeskakel word, wat lei tot 'n LAE sein op die DELAY/M_DRV -pen.
  • As die DELAY/M_DRV-pen LAAG is, lei die GEDOEN-sein van die ESP-01 tot 'n stilstand van die module.

Dit word geïmplementeer in die sagteware; 'n while-lus kyk nie net of die deur nog oop is nie, maar kyk ook of die module nie te lank aangeskakel is nie. As dit te lank aangeskakel word, publiseer dit 'n NULL -waarde (ongedefinieerde toestand van die deur). In hierdie geval weet ek nie of die deur oopgemaak of toegemaak is nie, en ek bereik nie alle doelwitte wat in die inleiding genoem word nie, maar die batterylewe is belangriker en meestal maak ons die deur later die dag weer oop, wat lei tot 'n bevestigde geslote toestand van die deur.

Dit is belangrik om 'n P-kanaal Mosfet te gebruik wat geskik is vir die spanningsreeks wat hier gebruik word. Die Mosfet moet heeltemal aan wees by 'n VGS van ongeveer - 3.8V en heeltemal af by 'n VGS van ongeveer -0.2 V. Ek het verskeie Mosfets probeer en uitgevind dat 'n IRLML6401TRPBF goed werk vir hierdie doel in kombinasie met die 10K en 300K weerstande. 'N Kondensator van 1 uF werk goed om 'n pulslengte van ongeveer 20 ms te kry. 'N Groter kapasitor lei tot 'n langer polsslag, wat nie nodig is nie, aangesien die TPL5111 geaktiveer is. Ek het my DSO150 -ossilloskoop gebruik om die spanning en die pulslengte na te gaan.

Beplande verbetering: OTA -opdatering

Ek is van plan om 'n OTA -opdatering op te neem via die volgende prosedure, wat reeds gedeeltelik in die huidige sagteware ingesluit is

  • Via Openhab van NodeRed publiseer ek 'n behoude 'opdaterings' -boodskap en' opdateringsonderwerp '.
  • As die module aangeskakel is en aan die MQTT -bediener gekoppel is en op die 'opdateringsonderwerp' ingeteken is, ontvang dit die opdateringsboodskap.
  • Die opdateringsboodskap sal verhoed dat die module afskakel en die HTTPUpdateServer begin.
  • Op die webwerf van die HTTPUpdateServer kan u die sagteware opdateer.
  • Via Openhab van NodeRed publiseer ek 'n 'leë' boodskap wat behou is, 'n 'opdateringsonderwerp'.

Beplande verbetering: hardeware sluit na 'n voorafbepaalde tyd

In die huidige skema gebruik ek 'n 200K -weerstand tussen die DELAY/M_DRV en GND van die TPL5111. Dit skakel die module langer as 2 uur aan (sien 7.5.3. Van die TPL5111 -datablad). Ek wil egter nie hê dat die module so lank aangeskakel moet word nie, want die battery is dan leeg. As die sagteware -oplossing (sien hierbo) nie die module afskakel nie, of as die opdateringsboodskap die module onbedoeld in die opdateringsmodus plaas, bly die module vir 'n lang tyd aan.

Daarom is dit beter om 'n kleiner weerstand tussen die DELAY/M_DRV en GND van die TPL5111 te gebruik, sodat die module na 'n kort tydjie afgeskakel word, byvoorbeeld 'n 50K -weerstand wat 'n tyd van 7 minute tot gevolg het.

Aanbeveel: