Inhaltsverzeichnis:

Batteriebetriebenes IOT - Gunook
Batteriebetriebenes IOT - Gunook

Video: Batteriebetriebenes IOT - Gunook

Video: Batteriebetriebenes IOT - Gunook
Video: Это есть у каждого японца! Экстренная сумка на черный день 2024, Juli
Anonim
Batteriebetriebenes IOT
Batteriebetriebenes IOT

Wenn Ihr batteriebetriebenes IOT-Projekt intermittierend arbeitet, verbraucht diese Schaltung im Leerlauf nur 250 nA (das sind 0,00000025 Ampere!). Normalerweise wird die meiste Batterieleistung zwischen den Aktivitäten verschwendet. Zum Beispiel verschwendet ein Projekt, das alle 10 Minuten 30 Sekunden läuft, 95 % der Batteriekapazität!

Die meisten Mikrocontroller verfügen über einen Standby-Modus mit geringem Stromverbrauch, benötigen jedoch weiterhin Strom, um den Prozessor am Leben zu erhalten, und alle Peripheriegeräte verbrauchen Strom. Es erfordert viel Mühe, den Standby-Strom unter 20-30 mA zu bringen. Dieses Projekt wurde entwickelt, um Temperatur und Luftfeuchtigkeit in Bienenstöcken zu erfassen. Aufgrund des abgelegenen Standorts waren Batteriestrom und ein Zellenschild zum Melden von Daten die einzige Wahl.

Diese Schaltung funktioniert mit jedem Controller und 12, 5 oder 3 V Strom. Die meisten Elektrogeschäfte haben die Komponenten, die nur ein paar Dollar kosten.

Lieferungen

Widerstände: 2x1K, 3x10K, 1x470K, 2x1M, 5x10M

Dioden: 2x1N4148, 1xLED

MOSFET: 3x2N7000

Uhr: PCF8563 oder gleichwertig für Mikrocontroller

Relais: EC2-12TNU für 12V Versorgung

EC2-5TNU für 5V

EC2-3TNU für 3V

Stromversorgung: OKI-78SR-5/1.5-W36-C 12V zu 5V Konverter oder nach Bedarf durch Mikrocontroller

Schalter: Kurzes Drücken für Reset, SPDT für Test

Schritt 1: So funktioniert die Schaltung

So funktioniert die Schaltung
So funktioniert die Schaltung

Die Schaltung ist ganz einfach:

- Ein batteriebetriebener Alarm geht los und betätigt einen Schalter

- Strom fließt von der Batterie zum Controller, der startet und seine Sache macht

-Der Controller setzt den Alarm zurück

- Dann wirft der Schalter zum Ausschalten.

Schritt 2: Die Uhr

Die Uhr
Die Uhr

Die meisten Echtzeituhren sollten funktionieren, vorausgesetzt, sie sind mit Ihrem Controller kompatibel und verfügen über eine Interrupt-Leitung (Int), die anzeigt, wann der Wecker klingelt.

Je nach Controller und Uhr müssen Sie eine Softwarebibliothek installieren.

BITTE richten Sie Ihren Controller und Ihre Uhr auf einer Prototypenplatine ein und stellen Sie sicher, dass Sie sie programmieren können, um die Zeit einzustellen, wann der nächste Interrupt auftreten sollte und wie ein Interrupt gelöscht wird, nachdem der Alarm ausgelöst wurde. Es ist viel einfacher, dies jetzt zum Laufen zu bringen, bevor das endgültige Board gebaut wird. Siehe den letzten Schritt für Programmierhinweise.

Schritt 3: Der Schalter

Der Schalter
Der Schalter

Für den Schalter verwenden wir ein Stromstoßrelais mit 2 Spulen.

Wird ein Strom durch die eingestellte Spule geleitet, wird das Relais eingeschaltet. Der Strom muss nur etwa 12 ms fließen und kann dann abgeschaltet werden, wenn das Relais eingeschaltet bleibt.

Setzen Sie einen ähnlichen Impuls durch die Reset-Spule, um das Relais auszuschalten.

Wir wollen ein selbsthaltendes Relais, damit wir keinen Batteriestrom verwenden, um das Relais geschlossen zu halten. Außerdem schalten wir das Relais von diesem Stromkreis aus "ein" und schalten es vom Controller aus, wenn es fertig ist.

Das Projekt wurde für eine 12V SLA Batterie gebaut. Diese sind billig (null, da ich schon eine hatte!) und werden im kanadischen Winter mit einem kleinen Solarladegerät gut zurechtkommen.

Die Schaltung könnte mit einem 3V-Relais mit ein paar AA-Batterien gebaut werden. Da das Relais 2 A bei Netzspannung verarbeiten kann, könnte es ein kleines Netzteil (oder ein zweites Relais mit größerer Kapazität) für netzbetriebene Geräte schalten. Stellen Sie nur sicher, dass sich alles über 12V in einer ordnungsgemäß geerdeten Box befindet und gut isoliert ist.

Schritt 4: 2N7000 MOSFET

2N7000 MOSFET
2N7000 MOSFET

Diese Schaltung verwendet 3 2N7000 Enhanced-Mode-N-Kanal-MOSFETs (Metal Oxide Semiconductor Field Effect Transistor), die als Schalter verwendet werden.

Das sind ziemlich bemerkenswerte Geräte, die nur ein paar Dollar kosten. Strom fließt zwischen Drain (+) und Source (-), wenn die Gatespannungen etwa 2 V überschreiten. Im eingeschalteten Zustand beträgt der Source-Drain-Widerstand etwa ein Ohm. Wenn viele Megaohm ausgeschaltet sind. Dies sind kapazitive Geräte, sodass der Gate-Strom gerade ausreicht, um das Gerät zu "laden".

Zwischen Gate und Source wird ein Widerstand benötigt, damit sich das Gate entladen kann, wenn die Gate-Spannung niedrig ist, andernfalls schaltet das Gerät nicht ab.

Schritt 5: Die Schaltung

Die Rennbahn
Die Rennbahn

Die Unterbrechungsleitung von der Uhr (INT) schwebt normalerweise und wird (innerhalb der Uhr) mit Masse verbunden, wenn der Alarm ausgelöst wird. Der 1M-Widerstand zieht diese Leitung hoch, wenn auf den Alarm gewartet wird.

U1 fungiert als Wechselrichter, da wir ein aktives Hoch benötigen, um das Relais einzuschalten, wenn der Alarm ausgelöst wird. Das Gegenteil des Taktausgangs. Dies bedeutet, dass U1 im Standby-Modus immer leitet und die Batterie ständig belastet. Glücklicherweise können wir einen sehr großen Widerstand R1 verwenden, um diesen Strom zu begrenzen. Simulationen zeigten, dass dies bis zu mehreren Gohm betragen kann! Mein lokaler Laden hatte nur 10M Widerstände, also habe ich 5 in Reihe verwendet. 250na ist in meinem Buch niedrig genug.

U2 ist ein einfacher Schalter zur Stromversorgung der eingestellten Spule des Relais.

Die 2 Dioden sind erforderlich, um den Stromkreis zu schützen, wenn die Stromversorgung der Relaisspulen abgeschaltet wird. Das Magnetfeld wird zusammenbrechen und eine Stromspitze induzieren, die etwas beschädigen könnte.

Die rohen 12V von der Batterie werden zu einem Spannungsteiler R6 und R7 geführt. Der Mittelpunkt geht zu einem der analogen Pins des Controllers, damit die Batteriespannung überwacht und gemeldet werden kann.

U4 ist ein hocheffizienter DC-DC-Wandler zur Erzeugung der 5V für den Controller.

Wenn der Controller fertig ist, hebt er die Poff-Leitung hoch an, wodurch U3 eingeschaltet wird, wodurch das Relais ausgeschaltet wird. Der Widerstand R4 stellt einen Massepfad für das Gate von U3 bereit. Der MOSFET ist ein kapazitives Gerät und R4 lässt die Ladung nach Masse fließen, damit der Schalter ausgeschaltet werden kann.

Der Testschalter leitet den Strom vom Mikrocontroller weg und zu einer LED. Dies ist nützlich zum Testen dieser Schaltung, aber entscheidend, wenn der Controller zum Programmieren und Testen des Codes an einen Computer angeschlossen ist. Sorry, aber ich habe nicht mit Strom aus 2 Quellen getestet!

Der Reset-Taster war ein notwendiger nachträglicher Gedanke. Ohne sie kann der Alarm beim ersten Einschalten des Systems nicht eingestellt werden!!!

Schritt 6: Schaltungssimulation

Schaltungssimulation
Schaltungssimulation
Schaltungssimulation
Schaltungssimulation

Die Simulation links zeigt Werte im Ruhezustand des Systems. Rechts ist eine Simulation, wenn der Alarm aktiv ist und die Interrupt-Leitung auf Low gezogen ist.

Die tatsächlichen Spannungen stimmten mit der Simulation einigermaßen überein, aber ich habe keine Möglichkeit, die tatsächliche Stromaufnahme zu bestätigen.

Schritt 7: Konstruktion und Programmierung

Konstruktion und Programmierung
Konstruktion und Programmierung

Die Schaltung wurde in einem schmalen Streifen aufgebaut, um grob dem Schaltplan zu folgen. Nichts kompliziertes.

Sobald das Programm startet, sollte es den Alarm zurücksetzen. Dadurch wird der Stromfluss durch die eingestellte Spule des Relais gestoppt. Das Programm kann sein Ding machen und nach Abschluss den Wecker stellen und alles ausschalten, indem Sie Poff hoch drehen.

Je nach Controller und Uhr müssen Sie eine Softwarebibliothek installieren. Diese Bibliothek enthält Beispielcode.

Die Schnittstelle und Programmierung der Uhr sollte auf einer Prototypenplatine getestet werden, bevor die Schaltung verdrahtet wird. Für den Arduino- und H2-8563-Takt geht SCL auf A5 und SDA auf A4. Der Interrupt geht an das in der Schaltung gezeigte INT.

Für den Arduino enthält der Testcode etwa Folgendes:

#enthalten

#include Rtc_Pcf8563 rtc;

rtc.initClock();

// Datum und Uhrzeit für den Start einstellen. Nicht erforderlich, wenn Sie nur stündliche oder minutengenaue Alarme wünschen. rtc.setDate(Tag, Wochentag, Monat, Jahrhundert, Jahr); rtc.setTime (Std., Min., Sek.);

//Wecker stellen

rtc.setAlarm (mm, hh, 99, 99); // Min, Stunde, Tag, Wochentag, 99 = ignorieren

// Alarm löschen rtc.clearAlarm (); }

Empfohlen: