Sisällysluettelo:

Paristokäyttöinen ovianturi, jossa on kotiautomaatiointegraatio, WiFi ja ESP-NOW: 5 vaihetta (kuvilla)
Paristokäyttöinen ovianturi, jossa on kotiautomaatiointegraatio, WiFi ja ESP-NOW: 5 vaihetta (kuvilla)

Video: Paristokäyttöinen ovianturi, jossa on kotiautomaatiointegraatio, WiFi ja ESP-NOW: 5 vaihetta (kuvilla)

Video: Paristokäyttöinen ovianturi, jossa on kotiautomaatiointegraatio, WiFi ja ESP-NOW: 5 vaihetta (kuvilla)
Video: Uudet Woox Zigbee älykotituotteet saapuivat varastoon 2024, Marraskuu
Anonim
Image
Image

Tässä ohjeessa näytän sinulle, kuinka tein paristokäyttöisen ovianturin, jossa on kotiautomaatiointegraatio. Olen nähnyt muita hienoja antureita ja hälytysjärjestelmiä, mutta halusin tehdä sellaisen itse.

Minun tavoitteeni:

  • Anturi, joka tunnistaa ja ilmoittaa oven avautuvan nopeasti (<5 sekuntia)
  • Anturi, joka havaitsee oven sulkeutumisen
  • Anturi, joka toimii paristolla ja toimii muutaman kuukauden akulla

Laitteisto ja ohjelmisto ovat innoittamana

  • Kevin Darrahin trigboard (TPL5111 ja TPS73733).
  • Tämä video

Tein anturin etu- ja takaovelleni. Ainoa ero on led -asento ja ulkoinen virtakytkin (takaoven anturissa).

Tein useita parannuksia laitteiston ja ohjelmiston kehittämisen aikana, se näkyy kuvissa.

Tarvikkeet

Ostin elektroniset komponentit Aliexpressistä, pääosat:

  • LiPo -akku
  • TPS73733 LDO
  • TPL5111
  • Reed -kytkin
  • P-kanavainen MOSFET: IRLML6401TRPBF
  • Magneetti
  • Piirilevyadapterilevy SMD -komponenteille ja muille.

Vaihe 1: Laitteisto - piiri

Laitteisto - piiri
Laitteisto - piiri
Laitteisto - piiri
Laitteisto - piiri
Laitteisto - piiri
Laitteisto - piiri

Katso piirin liitteenä olevat kaaviot. Juotin SMD -osat sovitinpiirilevylle ja juotin kaikki komponentit kaksipuoliselle peruskortille. Yhdistin ESP-01: n naarasotsikoiden kautta, jotta voisin poistaa sen ohjelmoidakseni tämän ohjeen vaiheessa 3 näytetyn sovittimen kautta.

Piiri toimii seuraavasti:

  • Kun ovi avataan, TPL5111 ottaa laukauksen DELAY/M_DRV-nastaan ja mahdollistaa TPS73733 LDO: n, joka käyttää ESP-01: tä. Tätä toimintoa varten EN/ONE_SHOT on vedettävä matalalle, katso TPL5111: n tietolomake.
  • Ohjelman suorittamisen jälkeen (katso vaihe Ohjelmisto) ESP-01 lähettää Valmis-signaalin TPL5111: lle, joka sitten poistaa TPS73733: n käytöstä, jolloin TPL5111: n ja TPS73733: n virrankulutus on erittäin alhainen.

Käytän reed -kytkimiä sekä NO- että NC -liitännöillä. Kytkin NC -johdon, koska reed -kytkimen on suljettava piiri, kun magneetti irrotetaan (ovi auki) ja auki, kun magneetti on lähellä (ovi kiinni).

Takaoven anturiin lisäsin joitain kondensaattoreita ja vastuksia, kun löysin epävakautta, mutta epävakaus johtui ohjelmistosta (esp_now_init), kuten myöhemmin löysin.

Vaihe 2: Laitteisto - kotelo

Laitteisto - kotelo
Laitteisto - kotelo
Laitteisto - kotelo
Laitteisto - kotelo
Laitteisto - kotelo
Laitteisto - kotelo

Suunnittelin kotelon Autodesk Fusion360: ssa innoittamana tämän videon "kaveri, jolla on sveitsiläinen aksentti" avulla.

Kolmen osan STL -tiedostot:

  • Laatikko
  • Kansi
  • Magneetin pidike

on julkaistu Thingiverse -sivullani.

Vaihe 3: Ohjelmisto

Ohjelmisto
Ohjelmisto

Ohjelma löytyy Githubista.

Ohjelman kulku näkyy kuvassa. Katso muut Instructable-oppaani selitykset ESP-NOW: n käytöstä.

Kun moduuliin kytketään virta, se yrittää ensin lähettää OPEN-viestin ESP-NOW-yhteyden kautta. Jos tämä ei onnistu, se vaihtaa WiFi- ja MQTT -yhteyteen.

Huomasin, että ainakin asennuksessani "SULJETTU" -viestiä ei lähetetty onnistuneesti ESP-NOW: n kautta, joten poistin tämän ohjelmasta ja käytän vain WiFi: tä ja MQTT: tä.

Kun ovi avataan ja moduuli odottaa oven sulkeutumista, se käyttää tätä aikaa yhteyden muodostamiseen WiFi: hen ja MQTT: hen, joten kun ovi on suljettu, sen on lähetettävä vain mitattu jännite ja KIINNI -sanoma ja sitten se menee suoraan nukkumaan.

Ohjelma tarkistaa, onko vastaanottaja vastaanottanut suljetun viestin kuuntelemalla oikeaan aiheeseen liittyvää MQTT -viestiä.

Vaihe 4: Kotiautomaatio ja sähke

Kotiautomaatio ja sähke
Kotiautomaatio ja sähke
Kotiautomaatio ja sähke
Kotiautomaatio ja sähke
Kotiautomaatio ja sähke
Kotiautomaatio ja sähke

Ovianturini kommunikoivat Openhab Home Automationin kanssa Raspberry Pi Zero -laitteessani.

Pääsovellukset:

  • Lue oven tila: AUKI tai SULJETTU.
  • Hälytys sähkeen kautta, jos ovi avataan (jos hälytys on kytketty päälle tai monitoritoiminto on kytketty päälle).
  • Lue viimeksi, kun ovi avattiin tai suljettiin.
  • Laske aukkojen lukumäärä, joita ovianturi voi käsitellä, ennen kuin akku tyhjenee.

Jos esimerkiksi olemme lomalla ja naapuri tulee kastelemaan kasveja, saan viestin. Katso video introsta.

Openhab -kohteeni, säännöt ja sivustokarttatiedostot ovat Githubissani. Näissä tiedostoissa näet myös oveni ovianturin, joka käyttää tavallista langallista ruokokytkintä ja pientä kosketin- (pääty) -kytkintä 3D -tulostimesta lukon aukossa (katso kuvat).

Telegram -toiminnon käyttäminen Openhabissa on kuvattu tässä.

Vaihe 5: Parannuksia ja lisäparannuksia

Parannuksia ja lisäparannuksia
Parannuksia ja lisäparannuksia
Parannuksia ja lisäparannuksia
Parannuksia ja lisäparannuksia

Viime kuukausina olen tehnyt seuraavan parannuksen.

Käsittele pitkiä oviaukkoja itsekytkettävän pulssisignaalin avulla

Kesällä jätämme takaoven auki muutamaksi tunniksi, kun olemme kotona. Käynnissä oleva ESP-01, jossa on WiFi-yhteys, tyhjentäisi turhaan akun. Siksi sisällytin päälle/pois -kytkimen, jotta voin sammuttaa moduulin näissä tilanteissa.

Tämä johti kuitenkin toisinaan siihen, että moduuli katkaistiin pysyvästi (kun unohdin kytkeä sen päälle) ja akku tyhjentyi muutaman iltapäivän jälkeen avatun oven ja käynnissä olevan moduulin jälkeen (kun unohdin sammuttaa sen).

Siksi halusin pystyä sammuttamaan moduulin ohjelmiston kautta sen jälkeen, kun moduuli oli päällä ennalta määrätyn ajan (1 minuutti).

Kuitenkin, kun ESP-01: n DONE-pulssi sammutti TPL5111-laitteen oven ollessa kiinni, huomasin, että TPL5111-laitetta ei kytketty pois DONE-pulssilla, kun DELAY/M_DRV-nasta oli KORKEA. Tämä DELAY/M_DRV -nastan HIGH -signaali johtui avatusta luukusta ja akkukäyttöön kytketyn reed -kytkimen NC -koskettimesta.

Joten DELAY/M_DRV -nastan signaalin ei pitäisi olla jatkuvasti KORKEA, vaan sen pitäisi olla pulssitonta. TPL5111 -tietolomakkeesta näet, että sen pulssin tulisi olla> 20 ms. Tein tämän itsekytkentäsignaalin P-kanavan mosfetin, kondensaattorin ja 10K- ja 300K-vastuksen kautta, katso mukana toimitettu kaavio.

Se toimii seuraavasti:

  • Jos reed -kytkimen NC -kosketin on kiinni, portti on LOW ja Mosfet kytketään päälle, jolloin DELAY/M_DRV -nastassa on HIGH -signaali, joka aktivoi moduulin.
  • Kondensaattori latautuu nopeasti, jolloin portin jännite nousee.
  • Noin 20 ms kuluttua portin jännite on 97% akun jännitteestä (300K/(300K+10K), joka on KORKEA ja Mosfet on kytketty pois päältä, jolloin DELAY/M_DRV -nastassa on LOW -signaali.
  • Kun DELAY/M_DRV-nasta on LOW, ESP-01: n DONE-signaali johtaa moduulin sammumiseen.

Tämä toteutetaan ohjelmistossa; while-loop ei vain tarkista, onko ovi edelleen auki, vaan myös tarkistaa, onko moduulia kytketty päälle liian kauan. Jos se on kytketty päälle liian kauan, se julkaisee NULL -arvon (oven määrittelemätön tila). Tässä tapauksessa en tiedä, onko ovi auki tai kiinni enkä saavuta kaikkia introissa mainittuja tavoitteita, mutta akun käyttöikä on tärkeämpää ja useimmiten avaamme oven myöhemmin samana päivänä, mikä johtaa vahvistettuun suljettuun tilaan ovesta.

On tärkeää käyttää P-kanavaista Mosfetia, joka soveltuu tässä käytetylle jännitealueelle. Mosfetin on oltava täysin päällä noin 3,8 V: n VGS: ssä ja kokonaan pois päältä noin 0,2 V: n VGS: ssä.. 1 uF: n kondensaattori toimii hyvin saadakseen noin 20 ms pulssin. Suurempi kondensaattori johtaa pidempään pulssiin, mikä ei ole välttämätöntä, koska TPL5111 aktivoitiin. Käytin DSO150 -oskilloskooppia jännitteiden ja pulssin pituuden tarkistamiseen.

Suunniteltu parannus: OTA -päivitys

Aion sisällyttää OTA -päivityksen seuraavan menettelyn avulla, joka sisältyy jo osittain nykyiseen ohjelmistoon

  • NodeRedin Openhabin kautta julkaisen säilytetyn päivitysviestin ja päivitysaiheen.
  • Jos moduuli kytketään päälle ja yhdistetään MQTT -palvelimeen ja tilataan päivitysaihe, se vastaanottaa päivitysviestin.
  • Päivitysviesti estää moduulin sammumisen ja käynnistää HTTPUpdateServer -palvelimen.
  • Voit päivittää ohjelmiston HTTPUpdateServer -sivuston kautta.
  • NodeRedin Openhabin kautta julkaisen säilytetyn "tyhjän" viestin ja "päivitysaiheen".

Suunniteltu parannus: laitteiston sammutus ennalta määritetyn ajan kuluttua

Nykyisessä järjestelmässä käytän 200K vastusta TPL5111: n DELAY/M_DRV: n ja GND: n välissä. Tämä kytkee moduulin päälle yli 2 tunniksi (katso TPL5111 -lomakkeen 7.5.3 kohta). En kuitenkaan halua, että moduuli kytketään päälle niin kauan, koska akku tyhjenee. Jos ohjelmistoratkaisu (katso yllä) ei sammuta moduulia tai jos päivitysviesti tahattomasti asettaa moduulin päivitystilaan, moduuli pysyy päällä pitkään.

Siksi on parempi käyttää pienempää vastusta TPL5111: n DELAY/M_DRV: n ja GND: n välissä, joten moduuli sammutetaan lyhyen ajan kuluttua, esimerkiksi 50K: n vastus, joka johtaa 7 minuutin käyttöaikaan.

Suositeltava: