Taula de continguts:

Sensor de porta sense fils: potència ultra baixa: 5 passos
Sensor de porta sense fils: potència ultra baixa: 5 passos

Vídeo: Sensor de porta sense fils: potència ultra baixa: 5 passos

Vídeo: Sensor de porta sense fils: potència ultra baixa: 5 passos
Vídeo: NR-12 Acidente em torno 2024, Desembre
Anonim
Sensor de porta sense fils: molt baix consum
Sensor de porta sense fils: molt baix consum
Sensor de porta sense fils: molt baix consum
Sensor de porta sense fils: molt baix consum
Sensor de porta sense fils: molt baix consum
Sensor de porta sense fils: molt baix consum
Sensor de porta sense fils: molt baix consum
Sensor de porta sense fils: molt baix consum

Encara un altre sensor de porta !! Bé, la motivació per a mi per crear aquest sensor va ser que molts que vaig veure a Internet tenien una o altra limitació. Alguns dels objectius del sensor per a mi són:

1. El sensor ha de ser molt ràpid, preferiblement inferior a 5 segons

2. El sensor hauria de funcionar amb una bateria de ions de Li de 3,7 V, ja que en tinc desenes estirades

3. El sensor ha de funcionar durant molts mesos amb una sola càrrega de la bateria. Ha de consumir <10uA en mode de repòs

4. El sensor hauria de poder despertar-se per transmetre dades crítiques com l'estat de la bateria, fins i tot quan la porta no estigui operada durant molt de temps.

5. El sensor hauria de transmetre dades a un tema MQTT quan s'obri la porta i quan es tanca la porta

6. El sensor hauria de consumir la mateixa quantitat d’energia independentment de l’estat de la porta

Funcionament del sensor:

El sensor té 2 controladors principals. El primer és un petit controlador ATiny 13A. El segon és l’ESP, que sol estar en mode de repòs i només es desperta quan l’ATiny ho permet. Tot el circuit també el pot fer només l’ESP utilitzant-lo en mode de suspensió, però el corrent que consumeix és molt més gran del necessari per a una durada de la bateria durant mesos, de manera que l’ATTiny el rescata. Només serveix per despertar-se cada N segons, buscar un esdeveniment a la porta o un control de salut, si n’hi ha un, manté el pin CH_PD de l’ESP a ALTA i envia el senyal adequat del tipus d’esdeveniment a l’ESP.. El seu paper acaba aquí.

L'ESP pren el relleu, llegeix el tipus de senyal, es connecta a WiFi / MQTT, publica els missatges necessaris, inclòs el nivell de la bateria, i després s'apaga tornant el pin EN a BAIX.

En utilitzar aquests xips d’aquesta manera aprofito el baix corrent de son de l’ATtiny i el zero de ralentí de l’ESP quan el xip està desactivat mitjançant el pin CH_PD.

Subministraments

Pre-requeriment:

- Coneixement de la programació d’un ATTiny & ESP 01

- Coneixement de components de soldadura en un PCB

ESP-01 (o qualsevol ESP)

ATTiny 13A - AVR

LDO 7333-A - Regulador de baixa tensió

Resistències: 1K, 10K, 3K3

Condensadors: 100 uF, 0,1 uF

Interruptor de polsador, micro interruptor ON / OFF - (tots dos opcionals)

Diode: IN4148 (o qualsevol altre equivalent)

Bateria d’ions de Li

Reed Switch

Un cas per albergar-ho tot

Soldadura, PCB, etc.

Pas 1: esquemes i codi font

Esquemes i codi font
Esquemes i codi font

Els esquemes són els que es mostren al diagrama adjunt.

He inclòs un MOSFET de canal P per protegir la polaritat inversa. Si no ho necessiteu, podeu ometre-ho. Qualsevol MOSFET de canal P amb un Rds baix activat ho farà.

En l'actualitat, l'ESP no té la capacitat d'OTA, però és una millora futura.

Codi font smart-door-sensor

Pas 2: Funcionament del circuit

Flux de treball ATTiny

La màgia aquí passa en com ATTiny controla la posició de l’interruptor de la porta.

L'opció normal seria connectar una resistència a l'interruptor i continuar monitoritzant-ne l'estat. Això té l’inconvenient del corrent constant que consumeix la resistència de tracció cap amunt. La manera com s'ha evitat aquí és que he utilitzat dos pins per controlar l'interruptor en lloc d'un. He utilitzat PB3 i PB4 aquí. PB3 es defineix com a entrada i PB4 com a sortida amb un INPUT_PULLUP intern a PB3. Normalment, el PB4 es manté ALT quan ATtiny està en mode de suspensió, cosa que garanteix que no hi hagi flux de corrent a través de la resistència d’entrada cap amunt, independentment de la posició del commutador de canya. és a dir, Si el commutador està tancat, tant PB3 com PB4 són ALTS i, per tant, no circula corrent entre ells. Si l'interruptor està obert, no hi ha cap camí entre ells i, per tant, el corrent és zero. Quan ATtiny es desperta escriu un LOW a PB4 i després comprova l'estat de PB3. Si PB3 és ALT, el commutador reed està OBERT, sinó que està TANCAT. A continuació, torna a escriure un HIGH a PB4.

La comunicació entre ATtiny i ESP es realitza mitjançant dos pins PB1 / PB2 connectats a Tx / RX de ESP. He definit el senyal com

PB1 PB2 ====== Tx Rx

0 0 ====== WAKE_UP (control de salut)

0 1 ====== SENSOR_OPEN

1 0 ====== SENSOR_CLOSED

1 1 ====== NO ÚS

A part d'enviar el senyal a l'ESP, també envia un pols HIGH a PB0 que està connectat al pin CH_PD ESP. Això desperta l’ESP. El primer que fa l'ESP per mantenir GPIO0 HIGH, que està connectat a CH_PD, garantint així les seves potències fins i tot si l'ATTiny treu el PB0 HIGH. Ara el control correspon a l’ESP per determinar quan es vol apagar.

A continuació, es connecta a WiFi, MQTT, publica el missatge i s'apaga escrivint BAIX a GPIO0.

ESP 01 Flux de treball:

El flux ESP és directe. Es desperta i llegeix els valors dels pins Tx / Rx per determinar quin tipus de missatge es vol publicar. Es connecta a WiFi i MQTT, publica el missatge i s’apaga.

Abans d'apagar, torna a comprovar els valors dels pins d'entrada per veure si han canviat des de la seva última lectura. Es tracta de tenir cura d’una obertura i tancament ràpid de la porta. Si no teniu aquesta comprovació, és possible que es perdi el tancament de la porta si està tancada dins dels 5-6 segons de l'obertura. Un escenari pràctic d’obertura i tancament de la porta en uns 2 segons més o menys queda ben capturat pel bucle while, que continua publicant els missatges sempre que l’estat actual de la porta sigui diferent de l’anterior. L'únic escenari que pot perdre per gravar tot l'esdeveniment d'obertura / tancament és quan la porta s'obre / tanca repetidament dins d'una finestra de 4-5 segons, cosa que és un cas molt poc probable, probablement un cas d'algun nen que juga amb la porta.

Pas 3: control de salut

També necessitava una manera de rebre un missatge de comprovació de la salut de l’ESP, on també s’envia el nivell de bateria de l’ESP, per assegurar-me que el sensor funciona bé sense inspecció manual. Per a això, ATTiny envia un senyal WAKE_UP cada 12 hores. Es pot configurar mitjançant la variable WAKEUP_COUNT al codi ATtiny. Això és molt útil per a portes o finestres que poques vegades s’obren i, per tant, és possible que no sàpiga si alguna cosa està malament amb el sensor o la bateria.

En cas que no necessiteu la funcionalitat de comprovació de salut, no es necessita tot el concepte d'utilitzar ATTiny. En aquest cas, podeu trobar altres dissenys creats per gent on el subministrament a l'ESP s'alimenta a través d'un MOSFET i, per tant, podeu aconseguir un consum de corrent zero quan la porta no funciona. Hi ha altres coses que s'han de tenir en compte, com ara que el sorteig actual sigui el mateix en obrir la porta i tancar la porta; per això, en algun lloc vaig veure un disseny que feia servir un interruptor de llengüeta de 3 estats en lloc dels 2 estats habituals.

Pas 4: Mesures de potència i durada de la bateria

He mesurat el consum de corrent del circuit i triga ~ 30uA en dormir i al voltant. Seguint les fitxes tècniques d’ATTiny, hauria d’estar al voltant d’1-4 uA per a tot el circuit, inclòs el corrent en repòs del LDO, però les meves mesures mostren 30. El MOSFET i el LDO consumeixen un corrent insignificant.

Per tant, una bateria de 800 mAH hauria de durar molt de temps. No tinc estadístiques exactes, però fa més d'un any que les faig servir a dues de les meves portes i cada cel·la de 18650 amb uns 800 mAH restants dura uns 5-6 mesos a la porta principal que s'obre i es tanca a almenys 30 vegades al dia. La de la porta del terrat, que s’obre només unes quantes vegades en una setmana, dura 7-8 mesos.

Pas 5: millores futures

1. L'ESP no reconeix el lliurament del missatge MQTT. El programa es pot millorar subscrivint-se al tema que publica el missatge per confirmar el lliurament o es pot utilitzar una biblioteca Async MQTT per publicar un missatge amb QoS 1.

2. Actualització OTA: el codi ESP es pot modificar per llegir un tema MQTT per a una actualització i entrar així en un mode OTA per rebre un fitxer.

3. ESP01 es pot substituir per ESP-12 per obtenir accés a més PIN d'entrada i, per tant, pot connectar-hi més sensors. En aquest cas, la comunicació a través del mètode de 2 bits no és possible. Això es pot millorar per implementar la comunicació I2C entre ATtiny i ESP. Això és una mica complicat però factible. El tinc funcionant en una altra configuració on un ATTiny envia els valors del codificador rotatiu a l’ESP a través de la línia I2C.

4. El circuit actual controla el Vcc intern de l'ESP. Si fem servir ESP12, es pot modificar per llegir el nivell de bateria real mitjançant el pin ADC.

5. En el futur també publicaré una modificació que es pot utilitzar com a sensor autònom sense la necessitat d'un MQTT ni de cap sistema domòtic. El sensor funcionarà de forma autònoma i pot fer una trucada telefònica quan s’activi; per descomptat, necessita una connexió a Internet per a això.

6. I la llista continua …

7. Protecció inversa de la bateria: FET (les imatges reals del dispositiu són antigues i, per tant, no reflecteixen el MOSFET)

Recomanat: