Sisällysluettelo:

Langaton ovianturi - erittäin pieni teho: 5 vaihetta
Langaton ovianturi - erittäin pieni teho: 5 vaihetta

Video: Langaton ovianturi - erittäin pieni teho: 5 vaihetta

Video: Langaton ovianturi - erittäin pieni teho: 5 vaihetta
Video: Tein mun kämpästä täydellisen älykodin! 2024, Marraskuu
Anonim
Langaton ovianturi - erittäin vähän virtaa
Langaton ovianturi - erittäin vähän virtaa
Langaton ovianturi - erittäin vähän virtaa
Langaton ovianturi - erittäin vähän virtaa
Langaton ovianturi - erittäin vähän virtaa
Langaton ovianturi - erittäin vähän virtaa
Langaton ovianturi - erittäin vähän virtaa
Langaton ovianturi - erittäin vähän virtaa

Taas yksi ovianturi !! No, motiivi minulle luoda tämä anturi oli se, että monilla Internetissä näkemälläni tuotteilla oli yksi tai toinen rajoitus. Jotkut anturin tavoitteista minulle ovat:

1. Anturin tulee olla erittäin nopea - mieluiten alle 5 sekuntia

2. Anturin pitäisi kuluttaa 3,7 V: n litiumioniakku, koska minulla on kymmeniä niitä makaamassa

3. Anturin pitäisi toimia monta kuukautta yhdellä akun latauksella. Sen pitäisi kuluttaa <10uA lepotilassa

4. Anturin pitäisi pystyä heräämään tärkeiden tietojen, kuten akun tilan, välittämiseen, vaikka luukkua ei käytettäisi pitkään aikaan.

5. Anturin tulisi lähettää tietoja MQTT -aiheeseen, kun ovi avataan ja ovi suljetaan

6. Anturin tulisi kuluttaa yhtä paljon virtaa oven tilasta riippumatta

Anturin toiminta:

Anturissa on 2 pääohjainta. Ensimmäinen on pieni mikro -ohjain ATiny 13A. Toinen on ESP, joka on yleensä lepotilassa ja herää vasta, kun ATiny ottaa sen käyttöön. Koko piirin voi tehdä myös pelkällä ESP: llä käyttämällä sitä lepotilassa, mutta sen kuluttama virta on paljon suurempi kuin tarvitaan, jotta akku kestää kuukausia, joten ATTiny tulee apuun. Sen tarkoituksena on vain herätä N sekunnin välein, etsiä ovitapahtuma tai terveystarkistustapahtuma, jos sellainen on, se pitää ESP: n CH_PD -nastan korkealla ja lähettää ESP: lle asianmukaisen signaalin. Sen rooli päättyy siihen.

ESP ottaa sitten haltuunsa, lukee signaalityypin, muodostaa yhteyden WiFi/MQTT: hen, julkaisee tarvittavat viestit, mukaan lukien akun varaustason, ja sammuu sitten sammuttamalla EN -nasta takaisin LOW -asentoon.

Käyttämällä näitä siruja tällä tavalla hyödyn ATtiny: n alhaisesta lepovirrasta ja ESP: n tyhjäkäynnistä, kun siru on poistettu käytöstä CH_PD -nastan kautta.

Tarvikkeet

Ennakkovaatimukset:

- Tieto ATTiny & ESP 01 -ohjelmoinnista

- Tietoa juotososista piirilevyllä

ESP-01 (tai mikä tahansa ESP)

ATTiny 13A - AVR

LDO 7333 -A - Alhaisen katkaisun jännitesäädin

Vastukset - 1K, 10K, 3K3

Kondensaattorit: 100uF, 0,1 uF

Painonappikytkin, mikro ON/OFF -kytkin - (molemmat valinnaisia)

Diodi - IN4148 (tai vastaava)

Li-ion-akku

Reed -kytkin

Tapaus kaiken tallentamiseksi

Juotos, piirilevy jne

Vaihe 1: Kaaviot ja lähdekoodi

Kaaviot ja lähdekoodi
Kaaviot ja lähdekoodi

Kaaviot on esitetty liitteenä olevassa kaaviossa.

Olen sisällyttänyt P -kanavan MOSFETin napaisuuden suojaamiseksi. Jos et tarvitse tätä, voit jättää sen pois. Mikä tahansa P -kanavan MOSFET, jolla on matala Rds ON, toimii.

Tällä hetkellä ESP: llä ei ole OTA -ominaisuutta, mutta se on tulevaa parannusta varten.

Lähdekoodi smart-door-sensor

Vaihe 2: Piirin toiminta

ATTiny Työvirta

Taika tässä tapahtuu siinä, miten ATTiny valvoo ovikytkimen asentoa.

Normaali vaihtoehto olisi kiinnittää vetovastus vastuskytkimeen ja seurata sen tilaa jatkuvasti. Tällä on haittapuoli, että vetovastus kuluttaa jatkuvaa virtaa. Tapa, jolla tämä on vältetty, on se, että olen käyttänyt kahta nastaa kytkimen valvontaan yhden sijasta. Olen käyttänyt PB3 ja PB4 täällä. PB3 on määritetty tuloksi ja PB4 ulostuloksi, jossa on sisäinen INPUT_PULLUP PB3: ssa. Normaalisti PB4 pidetään KORKEA, kun ATtiny on lepotilassa. eli. Jos kytkin on kiinni, sekä PB3 että PB4 ovat KORKEAT, joten niiden välillä ei virtaa. Jos kytkin on auki, niiden välillä ei ole polkua, joten virta on nolla. Kun ATtiny herää, se kirjoittaa LOW PB4: lle ja tarkistaa sitten PB3: n tilan. Jos PB3 on KORKEA, reed -kytkin on AUKI, muuten se on KIINNI. Sitten se kirjoittaa takaisin HIGH PB4: lle.

Tiedonsiirto ATtiny & ESP: n välillä tapahtuu kahden nastan PB1 / PB2 kautta, jotka on kytketty ESP: n Tx / RX -liittimeen. Olen määritellyt signaalin muotoon

PB1 PB2 ====== Tx Rx

0 0 ====== WAKE_UP (terveystarkistus)

0 1 ====== ANTURI_OPEN

1 0 ====== ANTURI_SULJETTU

1 1 ====== KÄYTTÖTÖN

Sen lisäksi, että se lähettää signaalin ESP: lle, se lähettää myös HIGH -pulssin PB0: lla, joka on kytketty ESP CH_PD -tapaan. Tämä herättää ESP: n. Ensimmäinen asia, jonka ESP tekee, pitää GPIO0 HIGH: n, joka on kytketty CH_PD: hen, mikä varmistaa sen tehon, vaikka ATTiny ottaa pois PB0 HIGH: n. Säädin on nyt ESP: n kanssa määrittämässä, milloin se haluaa sammuttaa virran.

Se muodostaa yhteyden WiFi: hen, MQTT: hen, lähettää viestin ja sammuttaa itsensä kirjoittamalla LOW GPIO0: een.

ESP 01 Työnkulku:

ESP -virtaus on suoraan eteenpäin. Se herää ja lukee Tx/Rx -nastojen arvot määrittääkseen, minkä tyyppinen viesti lähetetään.

Ennen virran katkaisua se tarkistaa uudelleen tulonappien arvot nähdäkseen, ovatko ne muuttuneet viimeisen lukemisen jälkeen. Näin huolehditaan oven nopeasta avaamisesta ja sulkemisesta. Jos sinulla ei ole tätä tarkistusta, joissakin tapauksissa voit jättää oven sulkematta, jos se suljetaan 5-6 sekunnin kuluessa avaamisesta. Käytännöllinen skenaario oven avaamisesta ja sulkemisesta noin 2 sekunnin sisällä on hyvin kuvattu samalla silmukalla, joka lähettää viestejä niin kauan kuin oven nykyinen tila on erilainen kuin edellinen. Ainoa skenaario, jonka se voi menettää tallentamaan kaikki auki/kiinni -tapahtuma, on silloin, kun ovi avataan/suljetaan toistuvasti 4-5 sekunnin sisällä, mikä on hyvin epätodennäköistä - luultavasti tapaus, jossa joku leikkii oven kanssa.

Vaihe 3: Terveystarkastus

Tarvitsin myös tavan saada ESP: n terveystarkastusviesti, jossa se lähettää ESP: n akun varaustason varmistaakseen, että anturi toimii hyvin ilman manuaalista tarkastusta. Tätä varten ATTiny lähettää WAKE_UP -signaalin 12 tunnin välein. Se voidaan määrittää ATtiny -koodin muuttujan WAKEUP_COUNT kautta. Tämä on erittäin hyödyllistä oville tai ikkunoille, jotka avataan harvoin, joten et ehkä tiedä, onko anturissa tai sen akussa jotain vikaa.

Jos et tarvitse terveystarkistustoimintoa, koko ATTiny -käytön käsitettä ei tarvita. Siinä tapauksessa löydät muita ihmisten luomia malleja, joissa syöttö ESP: hen syötetään MOSFETin kautta, joten voit saavuttaa nollavirran, kun ovea ei käytetä. On muitakin asioita, joista on huolehdittava, kuten nykyinen piirustus, joka on sama oven auki- ja kiinni -asennossa - sitä varten jossain näin mallin, jossa käytettiin 3 -tilan ruoko -kytkintä tavallisen 2 -tilan sijaan.

Vaihe 4: Virranmittaukset ja akun kesto

Olen mitannut piirin virrankulutuksen ja se kestää ~ 30uA nukkuessa ja ympärillä. ATTiny-tietolomakkeiden mukaan sen pitäisi olla noin 1-4 uA koko piirille, mukaan lukien LDO: n lepovirta, mutta sitten mittaukseni osoittavat 30. MOSFET ja LDO kuluttavat merkityksetöntä virtaa.

800 mAh: n akun pitäisi siis kestää pitkään. Minulla ei ole tarkkoja tilastoja, mutta olen käyttänyt sitä kahdessa ovessani yli vuoden ajan, ja jokainen 18650-solu, jossa on jäljellä noin 800 mAh, kestää noin 5-6 kuukautta pääovessani, joka avautuu ja sulkeutuu klo. vähintään 30 kertaa päivässä. Kattooven oven, joka avautuu vain muutaman kerran viikossa, kestää 7-8 kuukautta.

Vaihe 5: Tulevia parannuksia

1. ESP ei hyväksy MQTT -sanoman toimittamista. Ohjelmaa voidaan parantaa tilaamalla aihe, jossa se julkaisee viestin toimituksen vahvistamiseksi, tai Async MQTT -kirjastoa voidaan käyttää viestin lähettämiseen QoS 1: n kanssa.

2. OTA -päivitys: ESP -koodia voidaan muuttaa lukemaan päivityksen MQTT -aihe ja siirtyä siten OTA -tilaan tiedoston vastaanottamiseksi.

3. ESP01 voidaan korvata ESP-12: lla, jotta saat pääsyn useampiin syötettyihin PIN-koodeihin ja siten voit liittää samaan laitteeseen lisää antureita. Siinä tapauksessa tiedonsiirto 2 -bittisen menetelmän kautta ei ole mahdollista. Tätä voidaan sitten parantaa toteuttamaan I2C -viestintä ATtiny & ESP: n välillä. Tämä on vähän monimutkaista, mutta toimivaa. Minulla se toimii toisessa kokoonpanossa, jossa ATTiny lähettää pyörivän kooderin arvot ESP: lle I2C -linjan yli.

4. Virtapiiri valvoo ESP: n sisäistä Vcc: tä. Jos käytämme ESP12: ta, tätä voidaan muuttaa lukemaan todellinen akun varaustaso ADC -nastan kautta.

5. Jatkossa julkaisen tähän myös muutoksen, jota voidaan käyttää itsenäisenä anturina ilman MQTT: tä tai kotiautomaatiojärjestelmää. Anturi toimii itsenäisesti ja voi soittaa puhelun, kun se laukeaa - tietysti se tarvitsee Internet -yhteyden tähän.

6. Ja lista jatkuu…

7. Käänteinen akun suojaus - VALMIS (Laitteen todelliset kuvat ovat vanhoja eivätkä heijastele MOSFETia)

Suositeltava: