Sommario:

IOT a batteria: 7 passaggi
IOT a batteria: 7 passaggi

Video: IOT a batteria: 7 passaggi

Video: IOT a batteria: 7 passaggi
Video: #387 Test of Battery operated ESP32 Boards (Olimex, TinyPICO, EzSBC, TTGO) 2024, Novembre
Anonim
IOT a batteria
IOT a batteria

Se il tuo progetto IOT a batteria funziona in modo intermittente, questo circuito utilizza solo 250 nA (ovvero 0,00000025 ampere!) Quando è inattivo. Normalmente la maggior parte della carica della batteria viene sprecata tra un'attività e l'altra. Ad esempio, un progetto che funziona 30 secondi ogni 10 minuti spreca il 95% della capacità della batteria!

La maggior parte dei microcontrollori ha una modalità standby a basso consumo ma hanno comunque bisogno di energia per mantenere in vita il processore, inoltre qualsiasi periferica consumerà energia. Ci vuole un grande sforzo per ottenere una corrente di standby inferiore a 20-30 mA. Questo progetto è stato sviluppato per segnalare la temperatura e l'umidità negli alveari. A causa della potenza della batteria della posizione remota e di uno scudo cellulare per la segnalazione dei dati, l'unica scelta.

Questo circuito funzionerà con qualsiasi controller e alimentazione a 12, 5 o 3V. La maggior parte dei negozi di elettronica avrà i componenti che costano solo pochi dollari.

Forniture

Resistori: 2x1K, 3x10K, 1x470K, 2x1M, 5x10M

Diodi: 2x1N4148, 1xLED

MOSFET: 3x2N7000

Orologio: PCF8563 o equivalente per microcontrollore

Relè: EC2-12TNU per alimentazione 12V

EC2-5TNU per 5V

EC2-3TNU per 3V

Alimentazione: convertitore OKI-78SR-5/1.5-W36-C da 12V a 5V o come richiesto dal microcontrollore

Interruttore: pressione momentanea per il ripristino, SPDT per il test

Passaggio 1: come funziona il circuito

Come funziona il circuito
Come funziona il circuito

Il circuito è abbastanza semplice:

- Un allarme a batteria si attiva e fa scattare un interruttore

- L'alimentazione scorre dalla batteria al controller che si avvia e fa le sue cose

-Il controller ripristina l'allarme

- Quindi lancia l'interruttore per spegnere.

Passaggio 2: l'orologio

L'orologio
L'orologio

La maggior parte degli orologi in tempo reale dovrebbe funzionare a condizione che siano compatibili con il controller e che dispongano di una linea di interruzione (Int) che indica quando scatta l'allarme.

A seconda del controller e dell'orologio particolari, sarà necessario installare una libreria software.

PER FAVORE, imposta il controller e l'orologio su una scheda prototipo e assicurati di poterlo programmare per impostare l'ora, quando dovrebbe verificarsi l'interruzione successiva e come cancellare un'interruzione dopo che l'allarme è scattato. È molto più facile farlo funzionare ora prima di costruire la scheda finale. Vedere l'ultimo passaggio per le note di programmazione.

Passaggio 3: l'interruttore

L'interruttore
L'interruttore

Per l'interruttore utilizziamo un relè ad aggancio con 2 bobine.

Mettendo una corrente attraverso la bobina impostata si accende il relè. La corrente deve fluire solo per circa 12 ms e poi può essere interrotta lasciando acceso il relè.

Metti un impulso simile attraverso la bobina di ripristino per spegnere il relè.

Vogliamo un relè autobloccante in modo da non utilizzare la batteria per mantenere chiuso il relè. Inoltre, accendiamo il relè da questo circuito e lo spegniamo dal controller quando ha finito.

Il progetto è stato realizzato per una batteria SLA da 12V. Questi sono economici (zero perché ne avevo già uno!) e andranno bene nell'inverno canadese con un piccolo caricabatterie solare.

Il circuito potrebbe essere realizzato con un relè da 3V utilizzando un paio di batterie AA. Poiché il relè gestirà 2A alla tensione di rete, potrebbe commutare un piccolo alimentatore da parete (o un secondo relè di capacità maggiore) per apparecchiature alimentate dalla rete. Assicurati solo che tutto ciò che supera i 12 V sia in una scatola adeguatamente messa a terra e ben isolata.

Passaggio 4: MOSFET 2N7000

MOSFET 2N7000
MOSFET 2N7000

Questo circuito utilizza 3 MOSFET a canale N in modalità avanzata 2N7000 (Metal Oxide Semiconductor Field Effect Transistor) utilizzati come interruttori.

Costano solo un paio di dollari, questi sono dispositivi piuttosto notevoli. La corrente scorre tra Drain (+) e source (-) quando le tensioni di gate superano circa 2V. Quando è "on" la resistenza Source-Drain è di circa un ohm. Quando fuori molti megaohm. Questi sono dispositivi capacitivi quindi la corrente di gate è appena sufficiente per "caricare" il dispositivo.

È necessario un resistore tra Gate e Source per consentire al gate di scaricarsi quando la tensione di Gate è bassa, altrimenti il dispositivo non si spegne.

Passaggio 5: il circuito

Il circuito
Il circuito

La linea di interruzione dall'orologio (INT) normalmente galleggia ed è collegata (all'interno dell'orologio) a massa quando l'allarme suona. Il resistore da 1 M porta questa linea in alto durante l'attesa dell'allarme.

U1 funge da inverter poiché abbiamo bisogno di un high attivo per attivare il relè quando l'allarme si spegne. L'opposto dell'uscita del clock. Ciò significa che U1 è sempre in conduzione in standby e scarica costantemente la batteria. Fortunatamente, possiamo usare un resistore R1 molto grande per limitare questa corrente. Le simulazioni hanno mostrato che questo potrebbe essere fino a diversi Gohm! Il mio negozio locale aveva solo resistori da 10 M, quindi ne ho usati 5 in serie. 250na è abbastanza basso nel mio libro.

U2 è un semplice interruttore per alimentare la bobina impostata del relè.

I 2 diodi sono necessari per proteggere il circuito quando viene tolta l'alimentazione alle bobine del relè. Il campo magnetico collasserà e indurrà un picco di corrente che potrebbe danneggiare qualcosa.

I 12V grezzi della batteria vengono portati a un partitore di tensione R6 e R7. Il punto centrale va a uno dei pin analogici del controller in modo che la tensione della batteria possa essere monitorata e segnalata.

U4 è un convertitore da CC a CC altamente efficiente per produrre i 5 V per il controller.

Quando il controller ha finito alza la linea Poff che accende U3 che spegne il relè. Il resistore R4 fornisce un percorso di massa per il gate di U3. Il MOSFET è un dispositivo capacitivo e R4 consente alla carica di fluire verso terra in modo che l'interruttore possa spegnersi.

L'interruttore di prova dirige l'alimentazione lontano dal microcontrollore e verso un LED. Questo è utile per testare questo circuito ma cruciale quando il controller è collegato a un computer per programmare e testare il codice. Spiacente, ma non ho testato con alimentazione da 2 fonti!

Il pulsante di ripristino è stato un ripensamento necessario. Senza di essa non è possibile impostare l'allarme la prima volta che si accende il sistema!!!

Passaggio 6: simulazione del circuito

Simulazione del circuito
Simulazione del circuito
Simulazione del circuito
Simulazione del circuito

La simulazione a sinistra mostra i valori mentre il sistema è inattivo. Sulla destra c'è una simulazione quando l'allarme è attivo e la linea di interruzione è abbassata.

Le tensioni effettive si sono accordate ragionevolmente bene con la simulazione, ma non ho modo di confermare l'effettivo assorbimento di corrente.

Passaggio 7: costruzione e programmazione

Costruzione e programmazione
Costruzione e programmazione

Il circuito è stato costruito in una striscia stretta per seguire approssimativamente lo schema del circuito. Niente di complicato.

Non appena il programma si avvia dovrebbe resettare l'allarme. Questo fermerà il flusso di corrente attraverso la bobina impostata del relè. Il programma può fare il suo dovere e al termine impostare la sveglia e spegnere tutto portando Poff alto.

A seconda del controller e dell'orologio particolari, sarà necessario installare una libreria software. Questa libreria includerà codice di esempio.

L'interfaccia e la programmazione dell'orologio devono essere testate su una scheda prototipo prima di cablare il circuito. Per l'orologio Arduino e H2-8563 SCL va in A5 e SDA in A4. L'Interrupt va all'INT mostrato nel circuito.

Per Arduino il codice di test includerà qualcosa come:

#includere

#include Rtc_Pcf8563 rtc;

rtc.initClock();

//imposta data e ora per iniziare. Non necessario se si desiderano solo sveglie dell'ora o dei minuti. rtc.setDate(giorno, giorno della settimana, mese, secolo, anno); rtc.setTime(hr, min, sec);

//Imposta sveglia

rtc.setAlarm(mm, hh, 99, 99); // Min, ora, giorno, giorno della settimana, 99 = ignora

//Cancella allarme rtc.clearAlarm(); }

Consigliato: