Sisukord:

Patareitoitega ukseandur koos koduautomaatika integreerimisega, WiFi ja ESP-NOW: 5 sammu (koos piltidega)
Patareitoitega ukseandur koos koduautomaatika integreerimisega, WiFi ja ESP-NOW: 5 sammu (koos piltidega)

Video: Patareitoitega ukseandur koos koduautomaatika integreerimisega, WiFi ja ESP-NOW: 5 sammu (koos piltidega)

Video: Patareitoitega ukseandur koos koduautomaatika integreerimisega, WiFi ja ESP-NOW: 5 sammu (koos piltidega)
Video: Vedelgaasi ja kütusemahutite seire 2024, November
Anonim
Image
Image

Selles juhendis näitan teile, kuidas ma tegin patareitoitega ukseanduri koos koduautomaatika integreerimisega. Olen näinud veel mõningaid toredaid andureid ja häiresüsteeme, kuid tahtsin selle ise teha.

Minu eesmärgid:

  • Andur, mis tuvastab ja teatab ukse kiirest avanemisest (<5 sekundit)
  • Andur, mis tuvastab ukse sulgemise
  • Andur, mis töötab patareidega ja töötab paar kuud patareiga

Riist- ja tarkvara on inspireeritud

  • Kevin Darrahi käivituslaud (TPL5111 ja TPS73733).
  • See video

Tegin anduri oma esiuksele ja tagauksele. Ainus erinevus on juhtpositsioon ja väline toitelüliti (tagaukseanduril).

Tegin riist- ja tarkvaraarenduse käigus mitmeid parandusi, seda on näha fotodelt.

Tarvikud

Ostsin elektroonilised komponendid Aliexpressist, peamised osad:

  • LiPo aku
  • TPS73733 LDO
  • TPL5111
  • Pilliroo lüliti
  • P-kanali mosfet: IRLML6401TRPBF
  • Magnet
  • PCB adapterplaat SMD komponentide jaoks ja teine.

Samm: riistvara - ahel

Riistvara - ahel
Riistvara - ahel
Riistvara - ahel
Riistvara - ahel
Riistvara - ahel
Riistvara - ahel

Vaadake vooluringi lisatud skeeme. Jootsin SMD osad adapteri trükkplaadile ja jootsin kõik komponendid kahepoolsele perfoplaadile. Ühendasin ESP-01 naissoost päiste kaudu, et saaksin selle eemaldada, et seda programmeerida selle juhendi punktis 3 näidatud adapteri kaudu.

Vooluring töötab järgmiselt:

  • Kui uks avatakse, saab TPL5111 löögi DELAY/M_DRV tihvti ja lubab TPS73733 LDO, mis juhib ESP-01. Selle toimingu jaoks tuleb EN/ONE_SHOT alla tõmmata, vt TPL5111 andmelehte.
  • Pärast programmi käivitamist (vt samm Tarkvara) saadab ESP-01 TPL5111-le signaali Valmis, mis seejärel keelab TPS73733, mille tulemuseks on väga madal energiatarve TPL5111 ja TPS73733 jaoks.

Kasutan pilliroo lüliteid nii NO kui ka NC ühendustega. Ühendasin NC juhtme, kuna pilliroo lüliti peab magneti eemaldamisel (uks lahti) ahela sulgema ja kui magnet on lähedal (uks suletud).

Tagaukseanduri jaoks lisasin mõned ebastabiilsuse avastamisel kondensaatorid ja takistid, kuid ebastabiilsuse põhjustas tarkvara (esp_now_init), nagu hiljem avastasin.

2. samm: riistvara - ümbris

Riistvara - korpus
Riistvara - korpus
Riistvara - korpus
Riistvara - korpus
Riistvara - korpus
Riistvara - korpus

Kujundasin korpuse Autodesk Fusion360 -s, inspireerituna sellest videost, mille autor on "šveitsi aktsendiga mees".

Kolme osa STL -failid:

  • Kast
  • Kaas
  • Magnetihoidja

on avaldatud minu Thingiverse lehel.

Samm: tarkvara

Tarkvara
Tarkvara

Programm on minu Githubis.

Programmi voog on näidatud pildil. Vaadake minu teist juhendit, et selgitada, kuidas ma ESP-NOW-d kasutan.

Kui moodul on sisse lülitatud, proovib ta esmalt ESP-NOW kaudu saata sõnumi 'AVATUD'. Kui see ei õnnestu, lülitub see WiFi ja MQTT ühendusele.

Sain teada, et vähemalt minu seadistuses ei saadetud sõnumit „SULETUD” edukalt ESP-NOW kaudu, nii et eemaldasin selle programmist ja kasutan ainult WiFi-d ja MQTT-d.

Selle aja jooksul, mil uks on avatud ja moodul ootab ukse sulgemist, kasutab ta seda aega WiFi ja MQTT -ga ühenduse loomiseks, nii et kui uks on suletud, peab ta saatma ainult mõõdetud pinge ja SULETUD teate ning seejärel see läheb otse magama.

Programm kontrollib, kas vastuvõtja võtab suletud sõnumi vastu, kuulates õigel teemal MQTT sõnumit.

Samm: koduautomaatika ja telegramm

Koduautomaatika ja telegramm
Koduautomaatika ja telegramm
Koduautomaatika ja telegramm
Koduautomaatika ja telegramm
Koduautomaatika ja telegramm
Koduautomaatika ja telegramm

Minu ukseandurid suhtlevad minu Openhabi koduautomaatikaga minu Raspberry Pi Zero peal.

Peamised rakendused:

  • Lugege ukse olekut: AVATUD või SULETUD.
  • Häire mulle telegrammi kaudu, kui uks on avatud (kui alarm on sisse lülitatud või monitori funktsioon on sisse lülitatud).
  • Lugege viimast korda, kui uks avati või suleti.
  • Enne aku tühjenemist loendage avade arv, millega uksesensor hakkama saab.

Näiteks kui oleme puhkusel ja naaber tuleb taimi kastma, saan teate. Vaata videot tutvustuses.

Minu Openhabi üksused, reeglid ja saidiplaani failid on minu Githubis. Nendes failides näete ka minu kuuri ukseandurit, mis kasutab tavalist traadiga pilliroo lülitit ja lukuauku 3D -printeri väikest kontakt (otsa) lülitit (vt pilte).

Telegrammi toimingu kasutamist Openhabis kirjeldatakse siin.

5. samm: täiustused ja täiendused

Parandused ja täiendused
Parandused ja täiendused
Parandused ja täiendused
Parandused ja täiendused

Viimastel kuudel olen teinud järgmist parandust.

Käsitsege pikki ukseavasid iselülituva impulssignaali kaudu

Suvel jätame koduukse tagaukse mõneks tunniks avatuks. Töötav ESP-01 koos WiFi-ühendusega tühjendaks aku asjatult. Seetõttu lisasin sisse/välja lüliti, et moodul sellistes olukordades välja lülitada.

Selle tulemuseks oli aga mõnikord püsivalt väljalülitatud moodul (kui unustasin selle sisse lülitada) ja tühjenenud aku pärast paari pärastlõunat avatud ukse avamist ja töötavat moodulit (kui unustasin selle välja lülitada).

Seetõttu soovisin, et saaksin mooduli tarkvara kaudu välja lülitada pärast seda, kui moodul oli eelnevalt määratud ajaks (1 minut) sisse lülitatud.

Kui aga ESP-01 impulss „DONE” lülitas UPLi sulgemisel TPL5111 välja, sain teada, et TPL5111 ei lülitunud välja „DONE” impulsiga, kui DELAY/M_DRV tihvt oli KÕRGE. Selle DELIG/M_DRV tihvti KÕRGE signaali põhjustas avatud uks ja akupingega ühendatud pilliroo lüliti NC -kontakt.

Niisiis, signaal DELAY/M_DRV kontaktile ei tohiks olla pidevalt KÕRGE, vaid peaks olema impulss. TPL5111 andmelehelt leiate, et see peaks olema impulss> 20 ms. Tegin selle iselülitussignaali P-kanali mosfeti, kondensaatori ning 10K ja 300K takisti kaudu, vt lisatud skeemi.

See toimib järgmiselt.

  • Kui pilliroo lüliti NC -kontakt on suletud, on värav LOW ja Mosfet on sisse lülitatud, mille tulemuseks on HIGH signaal DELAY/M_DRV pinil, mis aktiveerib mooduli.
  • Kondensaator laetakse kiiresti, mille tulemuseks on värava pinge tõus.
  • Umbes 20 ms pärast on värava pinge 97% aku pingest (300K/(300K+10K), mis on KÕRGE ja Mosfet on välja lülitatud, mille tulemuseks on DELOW/M_DRV tihvti madal signaal.
  • Kui DELAY/M_DRV pin on LOW, põhjustab ESP-01 DONE signaal mooduli väljalülitumise.

Seda rakendatakse tarkvaras; while-loop mitte ainult ei kontrolli, kas uks on veel avatud, vaid ka seda, kas moodul pole liiga kaua sisse lülitatud. Kui see on liiga kaua sisse lülitatud, avaldab see väärtuse NULL (ukse määratlemata olek). Sel juhul ei tea ma, kas uks on avatud või suletud ja ma ei saavuta kõiki sissejuhatuses mainitud eesmärke, kuid aku kasutusaeg on olulisem ja enamasti avame ukse hiljem samal päeval, mille tulemuseks on kinnitatud suletud olek uksest.

Oluline on kasutada siin kasutatava pingevahemiku jaoks sobivat P-kanaliga Mosfeti. Mosfet peab olema täielikult sisse lülitatud umbes 3,8 V VGS -is ja umbes -0,2 V. VGS -is täielikult välja lülitatud. Proovisin mitmeid Mosfette ja sain teada, et IRLML6401TRPBF sobib selle eesmärgi saavutamiseks koos 10K ja 300K takistitega hästi. 1 uF kondensaator töötab hästi, et saada impulsi pikkus umbes 20 ms. Suurem kondensaator põhjustab pikema impulsi, mis pole vajalik, kuna TPL5111 aktiveeriti. Pingete ja impulsi pikkuse kontrollimiseks kasutasin oma DSO150 ostsilloskoopi.

Planeeritud täiustamine: OTA värskendus

Kavatsen lisada OTA värskenduse järgmise protseduuri abil, mis on praeguses tarkvaras juba osaliselt kaasas

  • Avaldan NodeRedi Openhabi kaudu säilitatud värskendussõnumi ja värskendusteema.
  • Kui moodul on sisse lülitatud ja ühendatud MQTT -serveriga ning tellinud värskendusteema, saab see värskendussõnumi.
  • Värskendusteade takistab mooduli väljalülitamist ja käivitab
  • Tarkvara saate uuendada HTTPUpdateServeri veebisaidi kaudu.
  • Avaldan NodeRedi Openhabi kaudu säilitatud tühja sõnumi ja värskendusteema.

Planeeritud täiustamine: riistvara väljalülitamine pärast etteantud aja möödumist

Praeguses skeemis kasutan TPL5111 DELAY/M_DRV ja GND vahel 200K takisti. See lülitab mooduli sisse kauemaks kui 2 tunniks (vt TPL5111 andmelehe 7.5.3.). Kuid ma ei taha, et moodul oleks nii kaua sisse lülitatud, sest aku saab siis tühjaks. Kui tarkvaralahendus (vt eespool) ei suuda moodulit välja lülitada või kui soovimatu värskendusteade lülitab mooduli värskendusrežiimi, jääb moodul pikaks ajaks sisse.

Seetõttu on parem kasutada väiksemat takistit TPL5111 DELAY/M_DRV ja GND vahel, nii et moodul lülitatakse lühikese aja pärast välja, näiteks 50K takisti, mille tulemuseks on seitse minutit.

Soovitan: