Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Imprägnierung
- Schritt 2: Mein benutzerdefiniertes 3D-gedrucktes Gehäuse
- Schritt 3: Montage des LCD-Bildschirms
- Schritt 4: Montage der Momentantaste
- Schritt 5: Strom- und Ladeschaltung
- Schritt 6: Ladekabel
- Schritt 7: Über den Durchflusssensor
- Schritt 8: Verdrahtung des Durchflusssensors
- Schritt 9: Installation des Durchflusssensors
- Schritt 10: Arduino & Perfboard
- Schritt 11: Alles verkabeln
- Schritt 12: Programmierung
- Schritt 13: Schließen des Deckels
- Schritt 14: Testen
- Schritt 15: Fangen Sie jetzt an, Wasser zu sparen
Video: Sparen Sie Wasser und Geld mit dem Duschwassermonitor - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Was verbraucht mehr Wasser – ein Bad oder eine Dusche?
Ich habe vor kurzem über diese Frage nachgedacht und festgestellt, dass ich nicht wirklich weiß, wie viel Wasser beim Duschen verbraucht wird. Ich weiß, wenn ich unter der Dusche stehe, schweifen manchmal meine Gedanken ab, denke über eine coole neue Projektidee nach oder versuche zu entscheiden, was ich zum Frühstück essen soll, während das Wasser einfach den Abfluss hinunterläuft. Es wäre viel einfacher, meinen Wasserverbrauch zu reduzieren, wenn ich tatsächlich wüsste, wie viele Liter ich jedes Mal verbrauche!
Ich habe ein wenig recherchiert und festgestellt, dass verschiedene Duschköpfe zwischen 9,5 Liter (2,5 Gallonen) pro Minute und weniger als 6 Liter (1,6 Gallonen) pro Minute verbrauchen können, wenn Sie einen Durchflussbegrenzer installiert haben. Eine sehr alte Dusche könnte noch mehr Wasser gebrauchen.
Ich beschloss, ein Gerät zu entwerfen und zu bauen, das die Gesamtwassermenge pro Dusche, die Wasserkosten und die Durchflussmenge anzeigt. Ich habe dieses Gerät seit ein paar Wochen installiert und es ist wirklich praktisch, eine Live-Anzeige der verwendeten Wassermenge zu haben.
In diesem Instructable werde ich erklären, wie ich das gebaut habe. Natürlich musst du meinen Schritten nicht genau folgen! Es ist immer gut, Teile zu verwenden, die Sie herumliegen. Ich habe Links zu allen Teilen, die ich verwendet habe, oder zu einem gleichwertigen Teil, das funktioniert, eingefügt.
Lieferungen
(Alle Preise in USD)
- Durchflusssensor - 3,87 $
- LCD-Bildschirm - 2,29 $
- Arduino Nano - 1,59 $
- Boost-Konverter - 1,88 $
- LiPo-Ladegerät - 1,89 $
- Wasserdichter Kippschalter - $ 0,93 (Nicht der genaue, den ich verwendet habe, aber er sollte funktionieren)
- Wasserdichter Druckknopf - $1.64
- Abstandshalter, M3-Schrauben und Muttern - 6,99 $
- 2X 3,5-mm-Buchse - 2,86 USD pro Stück.
- 3,5-mm-Stecker - $1,48
- 3.5mm 3' Kabelkonfektion - $3.57
- USB-Kabelbaugruppe - 1,74 $
- 1/2" NPS Buchse-zu-Buchse-Kupplung - 1,88 $
- 500mAh 3,7V LiPo-Akku - 3,91 $
Werkzeuge und allgemeines Zubehör
- Lötkolben & Lötmittel
- Kabel
- Kabelschneider
- Abisolierzangen
- Doppelseitiges Klebeband
- Kreuzschlitzschraubendreher
- 3D-Drucker (optional)
Schritt 1: Imprägnierung
Der schwierigste Aspekt dieses Projekts ist, das Ganze wasserdicht zu machen. Da es sich in einer Dusche befindet, muss es extreme Feuchtigkeit und gelegentliche Spritzer überstehen. Ungefähr 75 % der Gesamtzeit, die für dieses Projekt aufgewendet wurde, war, diesen Teil herauszufinden.
Aus meiner Sicht gibt es zwei Möglichkeiten: Entwerfen Sie ein benutzerdefiniertes 3D-gedrucktes Gehäuse oder versuchen Sie, es mit einem handelsüblichen Gehäuse zum Laufen zu bringen. Da ich vor kurzem meinen eigenen 3D-Drucker bekommen habe, habe ich mich für die erste Option entschieden.
Wenn Sie keinen Zugang zu einem 3D-Drucker haben, sind hier einige handelsübliche Gehäuse, von denen ich festgestellt habe, dass sie wasserdicht sind und wahrscheinlich funktionieren würden. Bitte beachten Sie, dass ich keines dieser Gehäuse gekauft habe, daher gebe ich keine Garantie dafür, dass alle Komponenten hineinpassen!
Banggood - 100x68x50mm Box mit transparentem Deckel - $5.35
Digikey - 130x80x70mm Box mit transparentem Deckel - $11.65
Von diesem Punkt an, wenn ich mich auf das Gehäuse beziehe, spreche ich von meinem 3D-gedruckten.
Schritt 2: Mein benutzerdefiniertes 3D-gedrucktes Gehäuse
Nachdem ich mehrere Stunden in Fusion 360 gearbeitet hatte, kam ich auf dieses Gehäuse. Es hat drei runde Ausschnitte für zwei 3,5-mm-Buchsen und einen Kippschalter. Der Deckel hat ein 16-mm-Loch für den Taster und einen rechteckigen Ausschnitt für den Bildschirm sowie die vier Befestigungslöcher zum Halten des Bildschirms. Der Deckel ist ein separates Teil und hat eine Lippe, um das Eindringen von Feuchtigkeit durch die Naht zu verhindern. Die vier Löcher an den Ecken der Box dienen zum Halten des Deckels mit 30 mm Abstandshaltern. Alle Schraubenlöcher haben einen Durchmesser von 3 mm, der für eine M3-Schraube geeignet ist.
Sie können die STL-Dateien von meiner Thingiverse-Seite herunterladen. Es kann ohne Flöße oder Stützen gedruckt werden, aber ich habe Stützen verwendet, um sicher zu gehen. Ich habe auch 100% Füllung verwendet. Da die Wände so dünn sind, ändert sich durch die Reduzierung des Füllungsprozentsatzes nicht wirklich die Gesamtdruckzeit oder das Gesamtmaterial, also habe ich sie einfach bei 100% belassen.
Um den Bildschirm sichtbar zu machen, könnte er entweder durch eine Aussparung im Deckel des Gehäuses ragen oder hinter einem transparenten Fenster platziert werden. Da der Bildschirm keiner Feuchtigkeit ausgesetzt sein sollte, bleiben wir bei der zweiten Option. Leider steckt der 3D-Druck mit transparentem Filament noch in den Kinderschuhen, also müssen wir etwas kreativ werden.
Meine Lösung bestand darin, einen rechteckigen Ausschnitt im Deckel zu erstellen und ein Stück transparenten Kunststoff aus einer Gemüseverpackung einzukleben. Diese Technik kann auch verwendet werden, wenn Sie mein benutzerdefiniertes Gehäuse nicht verwenden. Schneiden Sie einfach ein Rechteck mit einem Cuttermesser oder einem Dremel aus. Wenn Sie ein Gehäuse mit transparentem Deckel verwenden, ist dies natürlich überhaupt nicht erforderlich.
Die beste Quelle für transparenten Kunststoff, die ich gefunden habe, sind Verpackungen. Normalerweise werden Spinat oder anderes Blattgemüse in großen durchsichtigen Plastikbehältern geliefert. In meinem Fall habe ich die Verpackung aus einem "Pfeffer-Medley" verwendet.
Ich wollte einen Überhang von 5 mm haben, um viel Fläche zum Kleben zu haben, also schneide ich ein 27 x 77 mm großes Rechteck aus durchsichtigem Kunststoff aus. Ich musste die Ecken etwas beschneiden, damit die Schrauben passen. Ich spritzte eine Linie Sekundenkleber um den Umfang des Ausschnitts und legte dann den durchsichtigen Kunststoff darauf. Ich fügte ein bisschen mehr Sekundenkleber um den Rand herum hinzu, um sicherzustellen, dass er versiegelt war.
Profi-Tipp: Legen Sie das Teil vor einen kleinen Fächer, während der Kleber trocknet. Wenn Sekundenkleber trocknet, hinterlässt er tendenziell einen abscheulichen weißen Rückstand, den wir auf unserem transparenten Fenster sicherlich nicht haben möchten. Ich habe einen alten 12-V-Lüfter aus einem Computernetzteil verwendet. Ich ließ den Kleber 12 Stunden sitzen, um sicherzustellen, dass er vollständig trocken war.
Schritt 3: Montage des LCD-Bildschirms
Sobald das transparente Fenster getrocknet ist, kann das LCD montiert werden. Das LCD ist ein sehr beliebtes 16x2-Zeichen-Display, bei dem der I²C-"Rucksack" auf der Rückseite vorgelötet ist. Ich empfehle dringend, diesen Bildschirm mit der I²C-Schnittstelle zu erhalten. Das Verdrahten aller parallelen Leitungen ist ziemlich nervig und birgt mehr Fehlerpotential - die I²C-Version hat nur zwei Drähte für die Stromversorgung und zwei Drähte für das Signal.
Ich habe vier 10 mm Abstandshalter verwendet, um den Bildschirm zu montieren. Die Abstandshalter haben jeweils ein Außengewinde an einem Ende und ein Innengewinde am anderen. Ich steckte das Außengewinde durch die Löcher im LCD und zog jeweils eine M3-Mutter an. Dann habe ich vier M3-Schrauben verwendet, um die weiblichen Enden der Abstandshalter durch den Deckel des Gehäuses zu sichern. Ich habe dieses Paket von Abstandshaltern mit den 10 mm zur Befestigung des LCD und längeren zum Halten des Deckels an der Basis. Außerdem gibt es M3-Schrauben und Muttern, sodass Sie keine zusätzliche Hardware kaufen müssen.
Achten Sie darauf, dass die Muttern sehr fest angezogen sind, damit sich die Abstandshalter beim Anziehen der Schrauben nicht drehen. Achte außerdem darauf, dass du die Schrauben nicht zu fest anziehst, sonst könnte sich der Plastikdeckel verformen und nicht richtig abdichten.
Die Reihe der 16 Header-Pins auf dem LCD sollte oben sein - stellen Sie sicher, dass Sie das LCD nicht verkehrt herum montieren!
Schritt 4: Montage der Momentantaste
Ich beschloss, diesen krank aussehenden Chromknopf auf der Vorderseite zu verwenden. Ich habe sie in früheren Projekten verwendet und mag ihr Aussehen sehr. Sie sollen wasserdicht sein und werden mit einem Gummiring geliefert, um zu verhindern, dass Feuchtigkeit durch die Gewinde in das Gehäuse eindringt.
Dieser Schritt ist ziemlich einfach. Lösen Sie die Mutter, aber lassen Sie den Gummiring dran. Stecken Sie den Knopf durch das Loch im Deckel und ziehen Sie die Mutter von der Rückseite fest an. Vermeiden Sie es, die Mutter zu fest anzuziehen, da sonst der Gummiring zerquetscht wird und seinen Zweck nicht erfüllt.
Schritt 5: Strom- und Ladeschaltung
Jetzt werden wir die Batterieleistungskomponenten zusammenstellen. Dazu gehören die Batterie, der Hauptschalter, die Batterieüberwachungs-/Ladeplatine und der Aufwärtswandler.
Der von mir verwendete Akku ist ein einzelliger Lithium-Ionen-Akku mit 3,7 V 1500 mAh. Der von mir verwendete wurde von einem kaputten Playstation-Controller gezogen. Jeder einzellige Li-Ion- oder LiPo-Akku funktioniert, solange er in Ihr Gehäuse passt. Diese Art von Batterie ist in der Regel sehr dünn und flach, sodass Sie wahrscheinlich problemlos eine doppelt so große wie meine verwenden können. Eine 18650-Zelle würde funktionieren, aber sie passt nicht in mein benutzerdefiniertes Gehäuse, also müssen Sie Ihr eigenes entwerfen oder ein handelsübliches Gehäuse verwenden. Wenn möglich, empfehle ich die Verwendung einer geretteten Batterie (wie ich es getan habe), da der Versand von Batterien oft teuer ist!
Der Akku sollte zuerst an die Ladeplatine TP4056 gelötet werden. Wenn Sie möchten, können Sie der Einfachheit halber einen JST-RCY-Anschluss an den Akku und das Ladegerät anlöten (ich habe dies getan), aber es ist nicht notwendig. Achten Sie auf die richtige Polarität gemäß den Markierungen auf der Ladeplatine, da die Platine nicht gegen Verpolung der Batterie geschützt ist!
Als nächstes löten Sie einen Draht vom positiven Ausgang des Ladegeräts (befindet sich neben dem positiven Batteriekabel) an den positiven Eingang des Aufwärtswandlers. Löten Sie dann einen Draht vom negativen Ausgang (neben dem negativen Batteriekabel) an den gemeinsamen (mittleren) Pin des Haupt-Kippschalters. Schließlich löten Sie einen Draht vom normalerweise offenen Pin des Schalters zum negativen Eingang des Aufwärtswandlers. Wenn Sie ein Multimeter an den Ausgang des Aufwärtswandlers anschließen und den Hauptschalter einschalten, sollte eine Spannung angezeigt werden.
Da unser Arduino, der LCD-Bildschirm und der Durchflusssensor alle 5 V benötigen, müssen wir den Ausgang des Aufwärtswandlers auf 5 V einstellen. Dies wird durch Drehen des Drehknopfes am Potentiometer mit einem kleinen Schraubendreher erreicht. Drehen Sie bei eingeschaltetem Hauptschalter, angeschlossener Batterie und angeschlossenem Multimeter an den Ausgang des Aufwärtswandlers langsam das Potentiometer, bis der Ausgang 5 V anzeigt. Es wird schwierig sein, genau 5.000 V abzulesen, aber eine Spannung zwischen 4,9 V und 5,1 V anzustreben.
Da mein benutzerdefiniertes Gehäuse mit mehreren Schrauben verschlossen ist, möchten wir das Gehäuse nicht jedes Mal öffnen müssen, wenn es aufgeladen werden muss. Ich habe dafür einen 3,5-mm-Kopfhöreranschluss verwendet. Der genaue Anschluss, den ich verwendet habe, ist dieser von Digikey (für den die Ausschnitte in meinem Gehäuse ausgelegt sind), aber dieser von Banggood sollte auch funktionieren.
Zuerst steckte ich den Stecker in das unterste Loch im Gehäuse. Da dieser die meiste Zeit ausgesteckt ist und daher anfällig für das Eindringen von Feuchtigkeit ist, montieren Sie ihn am besten an der Unterseite, um zu verhindern, dass Wasser ins Innere tropft. Nach dem Einbau der Sicherungsscheibe und dem Anziehen der Mutter lötete ich zwei Drähte an die "Spitze"- und "Hülsen"-Laschen am Stecker. Die Pinbelegung des Steckers ist in einem meiner kommentierten Bilder gezeigt. Das andere Ende des "Sleeve" -Kabels habe ich neben dem Micro-USB-Anschluss an den negativen Eingang des Ladegeräts gelötet. Schließlich lötete ich das "Spitze" -Kabel an das +5V-Pad auf der anderen Seite des USB-Anschlusses. Der USB-Anschluss des Ladegeräts wird nicht verwendet, da es schwierig wäre, den USB-Anschluss in das Gehäuse einzudringen, ohne dass Feuchtigkeit eindringt.
Schritt 6: Ladekabel
Da wir eine 3,5-mm-Audiobuchse als Ladeanschluss verwenden, müssen wir ein Adapterkabel herstellen, das an einem Ende einen 3,5-mm-Stecker und am anderen Ende einen USB-A-Stecker hat. Auf diese Weise können wir jedes allgemeine Ladegerät für Mobilgeräte (z. B. ein iPhone-Ladegerät) verwenden, um dieses Gerät aufzuladen.
Sie könnten eine USB-Kabelbaugruppe mit einem USB-A-Anschluss an einem Ende und verzinnten Drähten am anderen Ende kaufen, aber wenn Sie wie ich sind, haben Sie wahrscheinlich ein Dutzend zufälliger USB-Kabel herumliegen, die Sie nicht brauchen. Anstatt eine USB-Kabelbaugruppe zu kaufen, habe ich mir einfach ein Micro-USB-zu-USB-A-Kabel besorgt, das ich nicht brauchte, und den Micro-USB-Stecker abgeschnitten.
Als nächstes zog ich die weiße Ummantelung vom Kabel ab, um nur zwei Drähte im Inneren freizulegen: einen roten und einen schwarzen Draht. Einige USB-Kabel haben vier Drähte: rot, schwarz, grün und weiß. Grün und Weiß dienen der Datenübertragung und können ignoriert werden. Isolieren Sie nur die roten und schwarzen Drähte ab.
Als nächstes benötigen Sie einen männlichen 3,5-mm-Stecker. Ich habe dieses von Banggood verwendet. Löten Sie das rote Kabel vom USB-Kabel an die mittlere Lasche (das ist die Spitze des Steckers) und das schwarze Kabel an die lange Hülsenlasche. Siehe meine Fotos zur Verdeutlichung.
Ich empfehle, den 3,5-mm-Stecker immer vor dem USB-Stecker einzustecken, da beim Einstecken des Kabels der Stecker über die Metallbuchse kurzgeschlossen werden kann.
Schritt 7: Über den Durchflusssensor
Ich habe diesen Durchflusssensor von Banggood für 3,87 $ abgeholt. Bevor ich es benutzte, beschloss ich, zu untersuchen, wie es funktioniert.
Das Design ist überraschend einfach und genial. Die Elektronik ist komplett vom Wasser abgedichtet. Es gibt einen frei drehenden Propeller, der sich je nach Strömungsgeschwindigkeit langsamer oder schneller dreht. An einer Stelle des Propellers befindet sich ein Magnet. Auf der Außenseite des Sensors befindet sich ein kleines Fach, das eine kleine Platine mit zwei Komponenten enthält: einem Widerstand und einem Hall-Effekt-Sensor. Jedes Mal, wenn der Magnet den Hall-Effekt-Sensor passiert, schaltet er zwischen hoch und niedrig um. Mit anderen Worten, es schaltet jedes Mal zwischen 5 V und 0 V um, wenn sich der Propeller dreht.
Um den Sensor zu lesen, legen wir +5V an den roten Draht, negativ an den schwarzen Draht und lesen das digitale Signal vom gelben Draht. Auf dem Foto meines Oszilloskops können Sie sehen, wie sich das Signal ändert, wenn der Fluss eingeschaltet wird. Das Signal ist zunächst konstant null Volt. Wenn der Fluss beginnt, erreicht die Impulsfrequenz schnell die Geschwindigkeit und erreicht einen stabilen Zustand.
Laut Datenblatt gibt der Sensor 450 Impulse pro Liter aus. Dies wird später beim Schreiben der Software wichtig sein.
Schritt 8: Verdrahtung des Durchflusssensors
Der Durchflusssensor wird mit einem 3-poligen JST-XH-Anschluss geliefert. Dies ist nicht ideal, da die Drähte zu kurz sind und der Stecker freiliegende Kontakte hat, die leicht durch verirrte Wassertropfen kurzgeschlossen werden können. Ich habe diese 3,5-mm-Audiosteckerkabelbaugruppe von Digikey bestellt. Es ist 3' lang, was die perfekte Länge ist, und es hat verzinnte Drähte, die das Löten erleichtern. Ich empfehle nicht, ein altes Kopfhörerkabel zu verwenden, da diese dazu neigen, sehr dünnen Lackdraht zu haben, der fast unmöglich zu löten ist.
Der Durchflusssensor hat eine Kunststoffabdeckung, die von zwei Kreuzschlitzschrauben gehalten wird. Entfernen Sie einfach diese Schrauben und ziehen Sie die Platine heraus. Es wird nicht mit Klebstoff gehalten, sondern nur mit dem Plastikdeckel an Ort und Stelle gehalten. Als nächstes entlöten Sie die drei Drähte, indem Sie sie mit einem Lötkolben erhitzen und nacheinander abheben.
Als nächstes löten Sie das 3,5-mm-Audiokabel an die Pads. Ich schlage vor, die Farben so zu kombinieren, wie ich es getan habe. Diese Konfiguration hat +5V an der Spitze, Signal am Ring und Masse an der Hülse. Dies ist die gleiche Konfiguration, die für den Ladeanschluss ab Schritt 6 verwendet wird. Wenn Sie das Ladegerät versehentlich an den Sensoranschluss anschließen oder umgekehrt, wird das Gerät nicht beschädigt.
Schritt 9: Installation des Durchflusssensors
Bis jetzt fanden alle unsere Arbeiten in der Werkstatt statt. Aber jetzt ist es Zeit, auf die Toilette zu gehen!
Zuerst habe ich den Duschkopf entfernt. Dies ergab ein kurzes Stück Rohr, das aus der Wand herausragte, mit 1/2 NPS-Außengewinde. Praktischerweise hat unser Durchflusssensor genau die gleiche Gewindegröße! Das einzige Problem ist, dass der Sensor an beiden Enden ein Außengewinde hat, also werden wir benötigen eine weibliche-zu-weibliche Kupplung.
In meinem örtlichen Baumarkt gab es 1/2-Zoll-Kupplungen aus Messing, Eisen und PVC. Die PVC-Kupplung war die billigste, also habe ich die bekommen. Obwohl die Messing- oder Stahlkupplungen im Nachhinein schöner ausgesehen hätten.
Sobald Sie die Kupplung haben, schrauben Sie einfach den Durchflusssensor in die Kupplung und schrauben dann das andere Ende der Kupplung auf das Rohr. Der Durchflusssensor weist einen Pfeil auf, der die beabsichtigte Durchflussrichtung anzeigt. Stellen Sie sicher, dass Sie es nicht verkehrt herum installieren, sonst könnten die Messungen ungenau sein. Zum Schluss den Brausekopf auf das Ende des Durchflusssensors schrauben.
Natürlich gehe ich davon aus, dass Ihre Dusche ein 1/2 NPS-Gewinde verwendet, wie meine. Wenn dies nicht der Fall ist, müssen Sie zusätzliche Adapter besorgen.
Pro-Tipp: Fügen Sie allen Gewinden etwas Teflonklempnerband hinzu, bevor Sie die Teile zusammenschrauben, um Lecks zu vermeiden. Ich hatte keine zur Hand, aber ich plane, dies in naher Zukunft hinzuzufügen.
Schritt 10: Arduino & Perfboard
Da wir viel verkabeln müssen, ist es eine gute Idee, ein Stück Perfboard zu besorgen, um die Dinge etwas aufgeräumter zu machen. Ich schneide ein Rechteck aus Perfboard etwa 1 "x 2". Als nächstes legte ich meinen Arduino Nano in die Mitte des Boards und markierte, wo die Header-Pins durchgingen. Dann schneide ich zwei Längen von Buchsenleisten, jeweils 15 Pins lang. Ich lötete diese auf das Perfboard, wo ich zuvor markiert hatte. Dadurch können wir das Arduino für die Programmierung entfernen.
Pro-Tipp: Markieren Sie die Ausrichtung des USB-Ports des Arduino, damit Sie ihn immer auf die gleiche Weise in das Perfboard stecken.
Schritt 11: Alles verkabeln
Jetzt ist es Zeit, alles zusammenzulöten! Ich habe einen vollständigen Schaltplan beigefügt, dem Sie folgen können, oder sehen Sie sich meine schriftlichen Schritte unten an, wenn Sie einen geführteren Ansatz bevorzugen.
Zuerst schneide ich einige männliche Header-Pins und löte sie auf das Perfboard auf den +5V- und Masseschienen. Dann lötete ich zwei weitere Header-Pins, die mit den Pins A4 und A5 des Arduino verbunden waren. Diese Header ermöglichen es uns, den LCD-Bildschirm über Jumper von Buchse zu Buchse anzuschließen.
Als nächstes lötete ich ein Paar Drähte vom Ausgang des Aufwärtswandlers an die +5V- und Masseschienen. Dadurch werden das Arduino, das LCD und der Durchflusssensor mit Strom versorgt.
Danach schneide ich zwei Drähte ab und verbinde sie mit den Klemmen des Tasters. Ich habe einen Draht an die Masseschiene und den anderen an den digitalen Pin 3 gelötet.
Der letzte zu lötende Teil ist der Durchflusssensor. Da wir bereits einen 3,5-mm-Stecker an den Sensor angeschlossen haben, müssen wir nur noch eine 3,5-mm-Buchse anlöten. Zuerst lötete ich drei Drähte - einen an jede der Laschen an der Buchse. Dann steckte ich die Buchse durch das Gehäuse und befestigte sie mit einer Mutter. Schließlich lötete ich die Hülse auf Masse, die Spitze auf +5V und den Ring auf den digitalen Pin 2.
Ich habe mich für die digitalen Pins 2 und 3 für den Knopf und den Durchflusssensor entschieden, da es sich um Hardware-Interrupt-Pins handelt. Dadurch wird es viel einfacher, den Code zu schreiben.
Jetzt sind wir mit dem Löten fertig, aber wir müssen noch das LCD anschließen. Da wir Header gelötet haben, benötigen wir nur vier Jumper von Buchse zu Buchse. Verbinden Sie den „Vcc“-Pin mit +5V, den „Gnd“-Pin mit Masse, den „SCL“-Pin mit A5 und den „SDA“-Pin mit A4. Damit der LCD-Bildschirm in das Gehäuse passt, müssen wir die Kopfstifte nach hinten biegen. Das mehrmalige Biegen der Stifte ermüdet das Metall und führt dazu, dass die Stifte brechen, daher empfehle ich, sie nur einmal zu biegen und dies mit Vorsicht zu tun.
Jetzt ist die Verkabelung fertig!
Schritt 12: Programmierung
Nachdem die Hardware angeschlossen ist, können wir den Arduino programmieren.
Ich möchte, dass das Programm folgende Funktionen hat:
- Zeigen Sie in der ersten Zeile eine sich schnell aktualisierende Zählung der Gesamtliter an
- Zeigen Sie in der zweiten Zeile die Gesamtkosten des Wassers oder die Durchflussmenge an
- Bei laufender Dusche wechselt die Drucktaste zwischen der Anzeige der Kosten oder der Durchflussmenge
- Wenn die Dusche nicht läuft, sollte die Drucktaste alle Daten löschen und den Bildschirm zurücksetzen
- Der Sensor sollte mit einer Interrupt-Routine gelesen werden, um grobe Polling-Methoden zu vermeiden
- Beim Aktualisieren des Bildschirms sollten wir nur die Werte aktualisieren, die sich geändert haben, anstatt jedes Mal den gesamten Bildschirm zu überschreiben (dies würde zu merklichem Flimmern führen).
Das Programm folgt einer einfachen Struktur. Mit der Funktion millis() können wir Verzögerungen erzeugen, die die Ausführung des Programms nicht wirklich stoppen. In diesem Tutorial finden Sie ein Beispiel für das Blinken einer LED ohne Verwendung der Funktion delay().
Die Funktion millis() gibt die Anzahl der Millisekunden seit dem Einschalten des Arduino zurück. Durch Erstellen einer Variablen " previousMillis " und Subtrahieren von Millis() - previousMillis() können wir die verstrichene Zeit seit der Aktualisierung von previousMillis sehen.
Wenn wir möchten, dass etwas pro Sekunde passiert, können wir den folgenden Codeblock verwenden:
if((millis() - vorherigeMillis) >= 1000){
vorherigeMillis = millis(); toggleLED(); }
Dies überprüft, ob die Differenz zwischen millis() (der aktuellen Zeit) und previousMillis (der letzten Zeit) größer oder gleich 1000 Millisekunden ist. Wenn dies der Fall ist, setzen wir als erstes previousMillis auf die aktuelle Zeit. Dann führen wir alle gewünschten zusätzlichen Schritte aus. In diesem Beispiel schalten wir eine LED um. Dann verlassen wir diesen Codeblock und beenden den Rest der loop()-Funktion, bevor wir zum Anfang zurückkehren und alles noch einmal wiederholen.
Der Vorteil dieser Methode gegenüber der einfachen Funktion delay() besteht darin, dass delay() eine Zeitlücke zwischen den Anweisungen einfügt, aber nicht die Zeit berücksichtigt, die für die Ausführung der anderen Anweisungen in der Funktion loop() benötigt wird. Wenn Sie etwas tun, das länger dauert, als nur eine LED zu blinken, z. Wenn Sie den LCD-Bildschirm einer Uhr aktualisieren, wird er schnell ungenau und fällt ins Hintertreffen.
Nachdem wir nun die Gesamtstruktur des Programms verstanden haben, ist es an der Zeit, die Anweisungen einzufügen. Anstatt hier jede einzelne Codezeile zu erklären, schlage ich vor, dass Sie zuerst das beigefügte Flussdiagramm durchlesen, das einen allgemeinen Überblick über die Funktionsweise des Programms bietet.
Wenn Sie das Flussdiagramm gesehen haben, werfen Sie einen Blick auf den beigefügten Arduino-Code. Ich habe fast jede Zeile kommentiert, um deutlich zu machen, was jede Zeile tut.
Es gibt einige Teile im Code, die Sie möglicherweise ändern möchten. Am wichtigsten sind die Kosten pro Liter. In meiner Stadt kostet das Wasser 0,2523¢ pro Liter. Suchen Sie die folgende Zeile und ändern Sie diesen Wert so, dass er den Kosten an Ihrem Wohnort entspricht:
const float COST_PER_LITRE = 0,2523; // Kosten pro Liter, in Cent, auf der Website der Stadt
Wenn Sie es vorziehen, Gallonen statt Liter zu verwenden, ändern Sie alle "LCD.print()"-Zeilen, die sich auf "L" oder "L/s" beziehen, in "G" oder "G/s". Löschen Sie dann die folgende Zeile:
const float CONVERSION = 450,0; // halte dies für Liter unkommentiert
…und entkommentieren Sie diese Zeile:
const float CONVERSION = 1703.0; // kommentieren Sie dies und löschen Sie die Zeile oben für Gallonen
Es gibt noch eine Kuriosität, die Sie vielleicht in meinem Code bemerkt haben. Der Standardzeichensatz enthält nicht das Zeichen "¢", und ich wollte keine Dollar verwenden, da die Kosten die meiste Zeit als "0,01 USD" oder weniger angezeigt werden. Daher war ich gezwungen, einen benutzerdefinierten Charakter zu erstellen. Das folgende Byte-Array wird verwendet, um dieses Symbol darzustellen:
Byte cent_sign = {B00100, B00100, B01111, B10100, B10100, B01111, B00100, B00100};
Nach dem Erstellen dieses Arrays muss das Sonderzeichen "erstellt" und gespeichert werden.
lcd.createChar(0, Cent_Zeichen);
Sobald dies erledigt ist, verwenden wir zum Drucken des benutzerdefinierten Zeichens die folgende Zeile:
lcd.write (byte (0)); // Centzeichen drucken (¢)
Das LCD kann bis zu 8 benutzerdefinierte Zeichen enthalten. Mehr Informationen dazu gibt es hier. Ich bin auch auf dieses hilfreiche Online-Tool gestoßen, mit dem Sie das benutzerdefinierte Zeichen über eine grafische Benutzeroberfläche zeichnen können und das automatisch das benutzerdefinierte Byte-Array generiert.
Schritt 13: Schließen des Deckels
Endlich sind wir fast fertig!
Es ist Zeit, die gesamte Elektronik in das Gehäuse zu stopfen und zu hoffen, dass sich der Deckel schließt. Aber zuerst müssen wir die 30-mm-Abstandshalter anbringen. Das Paket von Abstandshaltern, die ich gekauft habe, enthält keine, die so lang sind, aber es werden 20 mm und 10 mm geliefert, die miteinander verbunden werden können. Ich habe vier Abstandshalter mit vier M3-Schrauben in die Löcher an der Unterseite des Gehäuses geschraubt (siehe Bilder 1 & 2). Achten Sie darauf, diese fest, aber nicht zu fest anzuziehen, da Sie sonst Gefahr laufen, das Kunststoffgehäuse zu zerbrechen.
Jetzt können wir die gesamte Elektronik einbauen. Ich habe das Ladegerät und den Boost-Konverter mit doppelseitigem Klebeband am Deckel befestigt, wie im dritten Bild zu sehen. Dann habe ich etwas Isolierband um das freiliegende Metall der beiden 3,5-mm-Buchsen gewickelt, nur um sicherzustellen, dass durch das Kontaktieren der Anschlüsse nichts kurzgeschlossen wird.
Ich konnte das Arduino passend machen, indem ich es auf die Seite legte, in der unteren linken Ecke, mit dem USB-Anschluss nach rechts. Ich habe mehr doppelseitiges Klebeband verwendet, um die Batterie an der Unterseite des Gehäuses unter dem LCD-Bildschirm zu befestigen.
Ist schließlich alles mehr oder weniger fest in der Box eingeklemmt, kann der Deckel mit vier weiteren M3-Schrauben festgeschraubt werden.
Schritt 14: Testen
Stecken Sie zuerst den 3,5-mm-Stecker des Durchflusssensors ein. Ich empfehle, dies vor dem Einschalten des Geräts zu tun, da es möglich ist, dass sich der Stecker beim Einstecken ungewollt verbindet.
Als nächstes schalten Sie den Hauptnetzschalter ein. Während kein Wasser fließt, sollte die Taste auf der Vorderseite nichts anderes tun, als die Gesamtsumme zu löschen und den Bildschirm zu löschen. Da die Summe standardmäßig null ist, scheint die Schaltfläche noch nichts zu tun.
Wenn Sie die Dusche einschalten, sollte die Gesamtsumme steigen. Standardmäßig werden die Kosten angezeigt. Wenn Sie die Taste an der Frontplatte drücken, wird die Durchflussmenge in der unteren Zeile angezeigt. Durch Drücken der Taste an der Vorderseite wird zwischen der Anzeige der Durchflussmenge und der Kosten umgeschaltet, solange die Dusche in Betrieb ist. Sobald die Dusche stoppt, werden die Messungen durch Drücken der Taste an der Vorderseite zurückgesetzt und der Bildschirm gelöscht.
Montage
Wie Sie das Gerät montieren, hängt von der Anordnung Ihrer Dusche ab. Einige Duschen haben möglicherweise eine Leiste nahe am Duschkopf, sodass Sie das Gerät einfach dort platzieren können. In meiner Dusche habe ich einen Korb mit Saugnäpfen befestigt, in den ich das Gerät gestellt habe. Wenn Sie nicht über den Luxus einer Leiste oder eines Korbs verfügen, können Sie versuchen, das Gerät mit einem doppelseitigen Saugnapf an der Wand zu halten. Dies funktioniert nur, wenn Sie ein handelsübliches Gehäuse mit glatter Rückseite verwenden oder mein benutzerdefiniertes Gehäuse auf einem Drucker mit einer Glasbauplatte gedruckt haben. Wenn Ihr Gehäuse eine raue Rückseite hat (wie bei mir), können Sie es mit doppelseitigem Klebeband versuchen, obwohl dies möglicherweise Rückstände an Ihrer Duschwand hinterlassen kann, wenn Sie versuchen, das Gerät zu entfernen.
Fehlerbehebung
Der Bildschirm ist an, aber die Hintergrundbeleuchtung ist aus - stellen Sie sicher, dass der Jumper an den beiden Pins an der Seite des I²C-Moduls installiert ist
Bildschirm ist leer, Hintergrundbeleuchtung eingeschaltet - überprüfen Sie, ob die I²C-Adresse korrekt ist, indem Sie den I²C-Scanner ausführen
Der Bildschirm ist eingeschaltet, aber die Werte bleiben Null - überprüfen Sie, ob ein Signal vom Sensor kommt, indem Sie die Spannung an Pin 2 messen. Wenn kein Signal vorhanden ist, überprüfen Sie, ob der Sensor richtig angeschlossen ist.
Bildschirm ist leer bei ausgeschalteter Hintergrundbeleuchtung - überprüfen Sie, ob die Power-LED am Arduino leuchtet und ob der Bildschirm mit Strom versorgt wird
Bildschirm geht kurz an, dann bleibt alles stehen - du hast wahrscheinlich die Spannung vom Aufwärtswandler zu hoch eingestellt (die Komponenten können nicht mehr als 5V verarbeiten)
Das Gerät funktioniert, aber die Werte sind falsch - stellen Sie sicher, dass der von Ihnen verwendete Durchflusssensor den gleichen Umrechnungsfaktor von 450 Impulsen pro Liter hat. Unterschiedliche Sensoren können unterschiedliche Werte haben.
Schritt 15: Fangen Sie jetzt an, Wasser zu sparen
Verbesserungen
Die aktuelle Version der Software funktioniert gut genug, aber irgendwann möchte ich die Möglichkeit hinzufügen, verschiedene Benutzer (Familienmitglieder, Mitbewohner usw.) einen durchschnittlichen Wasserverbrauch für jede Person anzeigen. Dies könnte die Menschen ermutigen, um den geringsten Wasserverbrauch zu konkurrieren.
Es wäre auch cool, die Daten zu exportieren, um sie in einer Tabelle anzuzeigen, damit sie grafisch dargestellt werden könnten. Dann könnten Sie sehen, zu welchen Jahreszeiten die Menschen häufiger und länger duschen.
Diese Funktionen würden alle die Verwendung von EEPROM erfordern - dem integrierten nichtflüchtigen Speicher des Arduino. Dadurch können die Daten auch nach dem Ausschalten des Geräts erhalten bleiben.
Ein weiteres nützliches Feature wäre eine Batterieanzeige. Im Moment ist der einzige Hinweis darauf, dass das Gerät aufgeladen werden muss, wenn die Batteriemanagerplatine den Strom unterbricht. Es wäre einfach, einen zusätzlichen analogen Eingang anzuschließen, um die Batteriespannung zu messen. Ein Spannungsteiler wäre nicht einmal erforderlich, da die Batteriespannung immer weniger als 5 V beträgt.
Einige dieser Ideen grenzen an Feature Creep, weshalb ich die Software nicht weiter entwickelt habe.
Der Rest liegt an dir!
Erster Preis beim Sensorik-Wettbewerb
Empfohlen:
So sparen Sie Speicherplatz auf Ihrem IPhone – wikiHow
So sparen Sie Speicherplatz auf Ihrem IPhone: Läuft Ihr iPhone langsamer als gewöhnlich? Vielleicht haben Sie versucht, ein Foto zu machen, konnten es aber nicht, weil Ihr Speicher voll war. Das Speichern Ihres iPhone-Speichers mag überwältigend klingen, aber es ist sehr einfach, schnell und wird viele Ihrer iPhone-Probleme lösen
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Hinzugefügte Informationen: 4 Schritte
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen … Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Zusätzliche Informationen: Wenn Sie jemals auf eine Website gehen und ein Lied abspielen, das Sie mögen und es wollen, dann ist hier das anweisbare für Sie, nicht meine Schuld, wenn Sie etwas durcheinander bringen (nur so wird es passieren, wenn Sie ohne Grund anfangen, Dinge zu löschen) ) Ich konnte Musik für
So kühlen Sie einen PC mit Wasser ab: 8 Schritte (mit Bildern)
So kühlen Sie einen PC mit Wasser: Warum sollten Sie einen PC mit Wasser kühlen? Zuallererst kann es viel leiser sein und die Temperatur Ihres Computers sinkt erheblich. Mein Quadcore ging von 50C unter Last auf 28C Idle und unter Last! Es ist auch gut zum Übertakten. Wenn Sie über
So komprimieren Sie die ISO-Dateien Ihrer Psp-Backups in CSO-Dateien, um Platz zu sparen.: 4 Schritte
So komprimieren Sie die ISO-Dateien Ihrer Psp-Backups in CSO-Dateien, um Platz zu sparen ist mit Wine in Ubuntu verwendbar. Sie benötigen auch eine CFW (Cusstom Firm-Ware) psp, um
Sparen Sie viel Geld! Online kaufen!: 6 Schritte
Sparen Sie viel Geld! Kaufen Sie online!: Sie werden nicht glauben, wie viel Geld ich für schlechte Recherchen, Ausflüge in diese schicken Geschäfte oder diese lästigen Impulskäufe verschwendet habe. Riesige Rabatte sind nur ein paar Klicks entfernt. Leider springen diese Websites nicht gerade auf Sie zu, so viel Glück für Sie, dass ich