Cuprins:

IOT acționat pe baterie: 7 pași
IOT acționat pe baterie: 7 pași

Video: IOT acționat pe baterie: 7 pași

Video: IOT acționat pe baterie: 7 pași
Video: 3 semne că bateria ta e pe ducă! 2024, Noiembrie
Anonim
IOT acționat pe baterie
IOT acționat pe baterie

Dacă proiectul dvs. IOT cu baterie funcționează intermitent, acest circuit folosește doar 250nA (adică 0,00000025 amperi!) Când este inactiv. În mod normal, cea mai mare energie a bateriei este irosită între activitate. De exemplu, un proiect care funcționează 30 de secunde la fiecare 10 minute irosește 95% din capacitatea bateriei!

Majoritatea microcontrolerelor au un mod de așteptare cu putere redusă, dar au nevoie de energie pentru a menține procesorul în viață, de asemenea, orice periferic va consuma energie. Este nevoie de mult efort pentru a obține curent de așteptare sub 20-30mA. Acest proiect a fost dezvoltat pentru a raporta temperatura și umiditatea în stupii de albine. Datorită amplasării la distanță a bateriei și a ecranului celular pentru raportarea datelor, acolo unde este singura alegere.

Acest circuit va funcționa cu orice controler și putere de 12, 5 sau 3V. Majoritatea magazinelor electronice vor avea componentele care costă doar câțiva dolari.

Provizii

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

Diode: 2x1N4148, 1xLED

MOSFET: 3x2N7000

Ceas: PCF8563 sau echivalent pentru microcontroler

Releu: EC2-12TNU pentru alimentare 12V

EC2-5TNU pentru 5V

EC2-3TNU pentru 3V

Putere: OKI-78SR-5 / 1.5-W36-C Convertor de 12V la 5V sau după cum este cerut de microcontroler

Comutator: apăsați momentan pentru resetare, SPDT pentru test

Pasul 1: Cum funcționează circuitul

Cum funcționează circuitul
Cum funcționează circuitul

Circuitul este destul de simplu:

- O alarmă cu baterie se declanșează și aruncă un comutator

- Puterea curge de la baterie la controler care pornește și își face treaba

-Controlerul resetează alarma

- Apoi aruncă comutatorul pentru oprire.

Pasul 2: Ceasul

Ceasul
Ceasul

Majoritatea ceasurilor în timp real ar trebui să funcționeze, cu condiția să fie compatibile cu controlerul dvs. și să aibă o linie de întrerupere (Int) care să indice când alarma se declanșează.

În funcție de controler și ceas, va trebui să instalați o bibliotecă software.

Vă rugăm să configurați controlerul și ceasul pe o placă prototip și asigurați-vă că îl puteți programa pentru a seta ora, când ar trebui să apară următoarea întrerupere și cum să ștergeți o întrerupere după ce alarma s-a declanșat. Este mult mai ușor să faceți acest lucru acum înainte de a construi placa finală. Consultați ultimul pas pentru note de programare.

Pasul 3: Comutatorul

Schimbarea
Schimbarea

Pentru comutator folosim un releu de blocare cu 2 bobine.

Introducerea unui curent prin bobina setată pornește releul. Curentul trebuie să curgă doar aproximativ 12 ms și apoi poate fi oprit lăsând releul pornit.

Puneți un impuls similar prin bobina de resetare pentru a opri releul.

Vrem un releu de blocare, astfel încât să nu folosim bateria pentru a menține releul închis. De asemenea, alimentăm releul „pornit” din acest circuit și îl oprim „de pe controler” când acesta a terminat.

Proiectul a fost construit pentru o baterie SLA de 12V. Acestea sunt ieftine (zero deoarece am avut deja unul!) Și se vor descurca bine în iarna canadiană cu un mic încărcător solar.

Circuitul ar putea fi construit cu un releu de 3V folosind câteva baterii AA. Deoarece releul va gestiona 2A la tensiunea de rețea, acesta ar putea comuta o unitate de putere mică de perete (sau un al doilea releu de capacitate mai mare) pentru echipamentele alimentate de la rețea. Asigurați-vă că totul de peste 12V este într-o cutie împământată corespunzător și bine izolată.

Pasul 4: MOSFET 2N7000

MOSFET 2N7000
MOSFET 2N7000

Acest circuit folosește 3 MOSFET-uri cu canal N de mod îmbunătățit 2N7000 (tranzistor cu efect de câmp cu semiconductori de oxid de metal) utilizate ca întrerupătoare.

Costând doar câțiva dolari, acestea sunt dispozitive destul de remarcabile. Curentul curge între Drain (+) și sursă (-) atunci când tensiunile porții depășesc aproximativ 2V. Când este „pornit”, rezistența sursă-scurgere este de aproximativ ohm. Când sunt în afara multor megohme. Acestea sunt dispozitive capacitive, astfel încât curentul de poartă este suficient pentru a „încărca” dispozitivul.

Este necesar un rezistor între Poartă și Sursă pentru a permite poarta să se descarce atunci când tensiunea Porții este scăzută, altfel dispozitivul nu se va opri.

Pasul 5: Circuitul

Circuitul
Circuitul

Linia de întrerupere de la ceas (INT) plutește în mod normal și este conectată (în interiorul ceasului) la masă atunci când alarma se declanșează. Rezistența de 1M trage această linie sus când așteptați alarma.

U1 acționează ca un invertor, deoarece avem nevoie de un maxim activ pentru a porni releul atunci când alarma se declanșează. Opusul ieșirii ceasului. Aceasta înseamnă că U1 funcționează întotdeauna în standby și scurge constant bateria. Din fericire, putem folosi un rezistor R1 foarte mare pentru a limita acest curent. Simulările au arătat că acest lucru poate depinde de mai mulți Gohms! Magazinul meu local avea doar 10M rezistențe, așa că am folosit 5 în serie. 250na este suficient de scăzută în cartea mea.

U2 este un comutator simplu pentru alimentarea bobinei setate a releului.

Cele 2 diode sunt necesare pentru a proteja circuitul atunci când alimentarea bobinelor releului este oprită. Câmpul magnetic se va prăbuși și va induce un vârf curent care ar putea deteriora ceva.

12V brut de la baterie este dus la un divizor de tensiune R6 și R7. Punctul central merge la unul dintre pinii analogici ai controlerului, astfel încât tensiunea bateriei să poată fi monitorizată și raportată.

U4 este un convertor DC-DC extrem de eficient pentru a produce 5V pentru controler.

Când controlerul a terminat, ridică linia Poff, care pornește U3 care oprește releul. Rezistorul R4 oferă o cale de împământare pentru poarta U3. MOSFET este un dispozitiv capacitiv, iar R4 permite încărcarea să curgă la sol, astfel încât comutatorul să se poată opri.

Comutatorul de test direcționează puterea de la microcontroler și către un LED. Acest lucru este util pentru testarea acestui circuit, dar crucial atunci când controlerul este atașat la un computer pentru programarea și testarea codului. Scuze, dar nu am testat cu energie din 2 surse!

Butonul de resetare a fost un gând ulterior necesar. Fără ea nu există nicio modalitate de a seta alarma prima dată când sistemul este pornit !!!

Pasul 6: Simularea circuitului

Simularea circuitului
Simularea circuitului
Simularea circuitului
Simularea circuitului

Simularea din stânga arată valori în timp ce sistemul este inactiv. În dreapta este o simulare când alarma este activă și linia de întrerupere este redusă.

Tensiunile reale au fost de acord destul de bine cu simularea, dar nu am nicio modalitate de a confirma extragerea curentă reală.

Pasul 7: Construcție și programare

Construcție și programare
Construcție și programare

Circuitul a fost construit într-o bandă îngustă pentru a urma aproximativ schema circuitului. Nimic complicat.

De îndată ce programul pornește, ar trebui să resetați alarma. Aceasta va opri fluxul de curent prin bobina setată a releului. Programul își poate face treaba și, la finalizare, setați alarma și dezactivați totul rotind Poff la înălțime.

În funcție de controler și ceas, va trebui să instalați o bibliotecă software. Această bibliotecă va include un exemplu de cod.

Interfața și programarea ceasului trebuie testate pe o placă prototip înainte de a conecta circuitul. Pentru ceasul Arduino și H2-8563, SCL merge la A5 și SDA la A4. Întreruperea merge la INT afișat în circuit.

Pentru Arduino, codul de testare va include ceva de genul:

#include

#include Rtc_Pcf8563 rtc;

rtc.initClock ();

// setați data și ora pentru a începe. Nu este necesar dacă doriți doar alarme la oră sau minut. rtc.setDate (zi, zi săptămânală, lună, secol, an); rtc.setTime (hr, min, sec);

//Seteaza alarma

rtc.setAlarm (mm, hh, 99, 99); // Min, ora, ziua, ziua săptămânii, 99 = ignoră

// Ștergeți alarma rtc.clearAlarm (); }

Recomandat: