Home > Technologie > Arduino Dusche-Monitor

Arduino Dusche-Monitor

0
Advertisement

Arduino Dusche-Monitor

Da dieser Lazy Old Geek (LOG) alt wird, vergisst er Dinge. Nun mag ich jeden zweiten Tag duschen, kann mich aber nicht erinnern, ob es Duschtag ist oder nicht. Ich könnte es auf einem Kalender (Papier oder Computer) oder ich könnte sogar den Kalender Alarm mich aber aus verschiedenen Gründen, manchmal will ich meinen Zeitplan verschieben markieren. Nun, mein MD sagte, dass mein Gedächtnis für mein Alter okay war, also entschied ich mich, einen kleinen Dusche-Monitor zu bilden. Für den elektronischen Hobbyisten sind genügend Informationen vorhanden, um dieses Projekt (hoffentlich) zu machen. Stückliste, CAD-Dateien und Software.

Schritt 1: Design

Arduino Dusche-Monitor

Arduino Dusche-Monitor

Entwurf

1. Nun, das ist LOG, so dass ich natürlich beschlossen, ein Arduino verwenden.
2. Es wäre batteriebetrieben, da es in meinem Badezimmer gehen wird.
3. Ich wollte, dass es den Tag der Woche zeigen und ob es Duschtag ist.
4. Ich wollte auch in der Lage sein, den Duschtag ein- oder auszuschalten, wenn ich ihn ändern wollte.

Der "Standard" Arduino, wie die UNO ist nicht sehr gut für den Batteriebetrieb entworfen, so entschied ich, mein eigenes Arduino auf einer Platine zu bauen.
Ich entschied mich für die Lithium 18650 Batterie, da es meine aktuelle Lieblings-Batterie der Wahl ist. (Siehe Bild) Diese Batteriespannung variiert von ca. 4.2Vdc vollständig aufgeladen auf ca. 2.0Vdc.
Technobabble: Einer der Gehirne der Arduino ist die ATMEGA328P. Ein weiterer aktueller Favorit für mich. Jetzt wird dieser Mikroprozessor theoretisch mit einer Spannung von 4.2Vdc bis zu ungefähr 1.8Vdc arbeiten, aber ich denke in der Arduino Standardumgebung ist es auf 2.9Vdc begrenzt? Jedenfalls ist das gut genug für mich. Bei niedrigeren Spannungen muss die Uhr jedoch auf 8 MHz reduziert werden.
Eagle-Dateien sind atttached, schematisch und PCB. Dieses Schema ist mein Prototypentwurf, also schließt Teile ein, die ich für notwendig erachtete. Ich habe nicht stopfen die DS1307, 32.768KHz Kristall und Batteriehalter.

Ich machte und stopfte die Leiterplatte.
Ich installierte verschiedene farbige LEDs für den Tag der Woche, also ist es ein wenig einfacher, einen Tag von einem anderen zu unterscheiden. (Mein Sehvermögen ist nicht das Größte)

Liste der Einzelteile:
1 18650 Batterie
1 18650 Batteriehalter
1 Dusche-Monitor-Leiterplatte (kann mit Eagle Cadsoft Akten hergestellt werden)
1 ATmega328P Mikroprozessor
1 28-polige IC-Buchse
6 Stiftleisten
1 Taktiler SPST-Schalter
1 Berührungsloser DPST-Schalter
1 Kondensator 0,1uFd
2 Kondensator 22pFd
1 Zylindrischer Kristall 8MHz
8 LED 3MM (farblich sortiert)
1 Widerstand 10K
8 Widerstand 1.5K
1 Steckverbindersatz JST2.0 (Stecker / Buchse)
Schrottdraht
Schrott Kunststoff

Schritt 2: Arduino Software

Arduino Dusche-Monitor

Problem: Die Standardbootloaded ATMEGA328P wird nicht mit einem 8 - MHz - Kristall arbeiten. Ein anderer Bootloader wird benötigt.
Lösung: Ich habe im Grunde dieses Verfahren den richtigen Bootloader zu laden:

http://arduino.cc/de/Tutorial/ArduinoISP

Schritt 6: I ausgewählt: Arduino Pro oder Pro Mini (3,3 V, 8 MHz) w / ATmega328 als Bootload ich auf dem ATMEGA328P wollte.
Achtung: Wenn Skizzen unter Extras> Brett Menü geladen haben , müssen Sie Arduino Pro oder Pro Mini (3,3 V, 8 MHz) w / ATmega328 wählen

Problem: Ich brauchte eine Möglichkeit , den Tag der Woche , um herauszufinden.
Lösung: In der RTC - Bibliothek gibt es eine Funktion namens RTC_Millis. Dies verwendet die Arduino millis () - Funktion, um den Tag und die Zeit zu berechnen.
Technobabble: Die Arduino Millis () Funktion verwendet die (in diesem Fall) 8 MHz - Kristall zu Zeit berechnet werden . Dies ist keine sehr genaue Methode, um die Zeit zu berechnen. Es hängt von einer Vielzahl von Faktoren, vor allem die Genauigkeit des Kristalls, sondern auch, Temperatur und möglicherweise Spannung.
Nun, einige sagen, es kann ein paar Sekunden am Tag. Nun, meine Genauigkeit ist in Tagen so, ich glaube nicht, dass es ein Problem sein wird, obwohl ich eine bessere Idee nach ein paar Wochen der Verwendung haben sollte.
Die Zeit wird eingestellt, wenn die Skizze geladen wird. Die Zeit kommt von der eingestellten Zeit auf dem PC, der die Skizze belastet.

Problem: Das Arduino ATMEGA328P ist in der Regel mit Strom versorgt und zieht kontinuierlich Strom. Dadurch wird die Batterie schneller entleert.
Solution1: Ich fand diese Webseite, die die AtMega setzen wird schlafen

http://www.rocketscream.com/blog/2011/07/04/lightweight-low-power-arduino-library/
Hier ist die Bibliothek:
https://github.com/rocketscream/Low-Power
Leider konnte ich es nicht mit millis () arbeiten.
Ich habe auch versucht Narcoleptic, konnte aber nicht bekommen, es zu arbeiten.

Solution2: Nun, da ich faul bin, entschied ich mich versucht zu überspringen Schlafmodus zu implementieren und beschlossen, nur die LEDs auszuschalten , bis die Start - Taste gedrückt wird. Ich vermute, die Batterie sollte etwa einen Monat dauern.

Korrektur: Meine erste Skizze es hatte einen Fehler , so das Sketch2 ist !!!

Schritt 3: Verwenden des Duschmonitors

Arduino Dusche-Monitor

Arduino Dusche-Monitor

Da ich Lazy war, benutzte ich doppeltes Klebeband und klemmte die Batterie und die Leiterplatte auf ein Stück Plastik. Ich bohrte ein paar Löcher, strich ein Stück Draht und hängte es auf einen Nagel. (Siehe Bild)

Vorgehensweise: Drücken Sie die Start - Taste, einer der Tage der Woche LEDs leuchtet. Hoffentlich wird es das richtige sein. Wenn die Dusche LED leuchtet, ist es Dusche Tag.
Der Duschmonitor schaltet sich nach etwa sechs Sekunden ab.

Dusche Tag ändern: Wenn Sie Dusche Tag zu ändern, drücken Sie und halten Sie die Start - Taste für etwa sechs Sekunden , bis er schaltet, dann Taste loslassen.

Fehlerbehebung:
Wenn keine LEDs leuchten, ist es (hoffentlich) die Batterie. Ersetzen Sie durch einen geladenen 18650.
Sie müssen die Skizze erneut laden, um die Zeit einzustellen.

Wenn der Wochentag ausgeschaltet ist, laden Sie die Skizze erneut, um die Zeit einzustellen.

Related Reading