Wie löse ich einen Alarm aus, wenn das Toilettenpapier fast aufgebraucht ist?


47

Jeder mit Kindern weiß, dass sie niemals mit dem Toilettenpapier helfen. Weiß jemand, wie man nachverfolgt, ob der Pegel zu niedrig oder zu niedrig ist, und einen akustischen Alarm ausgibt? Ich weiß nur nicht, welchen Sensor ich verwenden soll.

Einige, die mir in den Sinn kamen, waren: Gewicht, Reflexion (die Farbe des Papiers) oder ein Laser-Tripwire - alles in Ordnung auf der Spule. Es macht mir nichts aus, es zu bauen, ich weiß nur nicht, welcher Sensor. Weiß jemand was zu benutzen?


5
Vielleicht sollten Sie auch darüber nachdenken, einen Sensor am Toilettensitz anzubringen, damit er Alarm schlägt, wenn sich jemand hinsetzt, wenn kein Papier vorhanden ist. :)
Peter Bloomfield

Vielleicht könnte man einfach versuchen, den radialen Widerstand einer Rolle zu messen (hoffentlich ist er nicht zu hoch), und dann nimmt er ab, wenn nicht genügend Papier übrig ist.
Jfpoilpret

Vergessen Sie den Widerstand: Ich habe gerade versucht, ihn zu messen, aber er liegt über dem maximalen Kaliber meines Multimeters (20M Ohm)
jfpoilpret

1
Nun, was folgt, mag eine Diskussion sein, die besser auf der meta.arduino zu finden ist, aber ich denke, dass diese Frage in der Regel eine ist, die den Sinn eines Arduino-SE täuscht. Es ist nicht direkt an Arduinos gebunden, da man für jedes Projekt seine Lösung nicht anhand eines Tools entwerfen soll, sondern die Tools auswählen soll, die für die Lösung am besten geeignet sind (was ist, wenn die Verwendung eines RPi oder eines CC2540 besser ist?). Es ist in der Tat eine mechanische + elektronische + Software-Engineering-Lösung. Und es gibt keinen besten SE-Ort, an dem ich solche Fragen stellen kann.
Zmo

@ zmo Ich würde dann dem OP vorschlagen, seine Frage zu bearbeiten, um die Notwendigkeit hinzuzufügen, den Alarm durch ein Arduino zu steuern. das würde es besser machen für Arduino.SE
jfpoilpret

Antworten:


47

Bringen Sie mehrere Brötchen auf einmal und hängen Sie eines für den Gebrauch auf. Legen Sie die anderen beiden auf eine kurze vertikale Stange in Reichweite des Sitzenden. Sitter kann bei Bedarf einen weiteren Wurf machen.

Erkennen Sie Gewichtsmangel mechanisch auf der Ablage am unteren Ende der Stange. Alarm wird ausgelöst, wenn die letzte Rolle entfernt wird. Niemand muss erwischt werden.

Verwenden Sie zum Abfühlen des Gewichts einen kraftempfindlichen Widerstand wie den FSR 400 (siehe Datenblatt ). Alternativ können Sie eine leichte Schraubenfeder verwenden, um das Toilettenpapier mit einem Mikroschalter abzulegen, der freigegeben wird, wenn beide Rollen entfernt werden. Eine andere Option wäre ein IR-Strahlbruchdetektor, bei dem die Schaltung abgeschlossen ist, wenn die letzte Rolle entfernt wird.


@AnnonomusPerson Er spricht über das Messen des Gewichts mehrerer voller Rollen Toilettenpapier, nicht einzelner Blätter oder leerer Rollen.
AJMansfield

1
Dies ist eine großartige Idee: Anstatt die Menge des auf der Rolle verbleibenden Papiers zu messen, messen Sie die Anzahl der verbleibenden Rollen, um festzustellen, wann Sie mehr Rollen benötigen.
AJMansfield

Welchen Sensor würden Sie verwenden, um Gewichtsmangel zu erkennen?
jfpoilpret

3
Ein Stoffdrucksensor ist eine Option oder ein Lichtsensor an der Basis, der abgedeckt wird, wenn eine Rolle vorhanden ist.
Rob Hoare

Könnten Sie ein Beispiel für einen bestimmten Sensor angeben, der diese Aufgabe übernehmen könnte?
Asheeshr

22

Ich glaube, das von jfpoilpret und jmathew entwickelte Konzept des Reedsensors ist am einfachsten umzusetzen. Ich habe ein Diagramm gezeichnet, wie es meiner Meinung nach aussehen würde.

Sie können die Empfindlichkeit einstellen, indem Sie die Höhe des unteren Kontakts einstellen.

Dies bringt Sie wirklich nur in einen "niedrigen" Zustand und nicht unbedingt hinaus. Es sei denn, Sie möchten die Rollen wechseln, solange noch ein paar Blätter übrig sind. Dies scheint mir keine zufriedenstellende Lösung zu sein. Ich hätte lieber eine "out" -Anzeige und einen hörbaren Summer, um den Benutzer zum Ersetzen der Rolle aufzufordern / zu beschämen.

Dieses Design könnte unter Verwendung einer eigenständigen Elektronik erreicht werden (kein Arduino erforderlich). Wollten Sie jedoch das Ändern der Rolle spielen, könnten Sie dafür ein Arduino verwenden.

Beachten Sie auch, dass bei farbbasierten optischen Sensoren die überwiegende Mehrheit der für diesen Zweck verwendeten Pappröhren braun ist. Ich habe jedoch auch weiße Röhren im Einsatz gesehen.

Reed-Sensor-Diagramm


6
Schöne Diagramme. Womit hast du sie gemacht?
Jmathew

1
Nur eine wichtige Bemerkung: Sie brauchen in dieser Situation nicht einmal einen Reed- Kontakt, sondern nur zwei Metallteile, die als einfacher Schalter verwendet werden. Ein Reedkontakt basiert auf Magnetkräften, die einen Schalter öffnen oder schließen. das war in meiner Antwort erforderlich, wo es keinen wirklichen Kontakt zwischen beiden Teilen gab. Aber hier scheint die Verwendung eines Schilfs einfach nutzlos zu sein, denke ich.
Jfpoilpret

@jfpoilpret Ich wusste nicht, dass der Begriff eine bestimmte Art von Schalter ist. Ich dachte an das allgemeinere Konzept eines steifen, biegsamen Materials. Danke für die Klarstellung!
Jmathew

@jmathew kein Problem, schließlich sind wir alle hier, um Wissen zu teilen!
Jfpoilpret

2
Ich habe MS Visio 2007 verwendet.
Arluin

14

Ich glaube, ich habe das in Folge 1 von James Mays Manlab gesehen.

Verwenden Sie ähnlich wie bei jfpoilpret ein breites Stück Material für eine Feder, die jederzeit Kontakt mit der Rolle hat. Ich sage "breit", damit das Schilf bei leerer Rolle mit einem Kontakt an einem der seitlichen Rollenhalter in Berührung kommt. Wenn es berührt wird, wird ein Stromkreis zu Ihrem Alarm hergestellt.

Hier ist ein grobes Bild, das beschreibt, was ich meine.

In Arluins Antwort wurde erwähnt, dass diese Methode nicht zeigen würde, dass die Rolle leer war. Das stimmt so ziemlich. Wenn der obere Kontakt so dick ist wie die TP-Papprolle und der untere Kontakt sich im inneren Teil der Papprolle befindet, sollte er für praktische Zwecke nahe genug sein. Ein Fuß TP-Rolle ist nach der Taco-Nacht nicht genug.

Seht das Bild meiner Vorstellungskraft


9

Verwenden Sie einen Strahlungsdetektor, um die Menge des auf der Rolle verbleibenden Papiers zu ermitteln. Legen Sie eine gewisse Menge radioaktiven Materials in die Mitte des Spulenstabs und platzieren Sie den Strahlungsdetektor an einer anderen Stelle (Sie können ihn auf der anderen Seite der Oberfläche anbringen, auf der der Rollenhalter montiert ist, wenn Sie möchten; Strahlungssensoren sind äußerst flexibel). und messen Sie die Strahlungsmengen, um festzustellen, wie viel Papier noch auf der Rolle ist.

Alternativ können Sie einen elektronisch gesteuerten Toilettenpapierspender (Druckknopf zum Spenden einer vorprogrammierten Länge von Toilettenpapier) verwenden und den Arduino so einstellen, dass er einfach nachverfolgt, wie viel ausgegeben wurde.

Oder befestigen Sie einen Drehgeber an der Seite der Spulenstange (stellen Sie sicher, dass er nicht in die Rolle rutscht), und zählen Sie die Umdrehungen der Rolle, um festzustellen, wie viel davon verbraucht wurde.

Natürlich müssen Sie bei jeder dieser Methoden Tests durchführen und Daten sammeln, abhängig von der genauen Art / Marke / Material / usw. des Toilettenpapiers.

Speziell für die zweite und dritte Idee würde ich empfehlen, regelmäßig Daten aus dem System zu entnehmen, um die typische Länge einer Rolle zu verfolgen und das Programm auf signifikante Abweichungen einstellen zu können. Sogar innerhalb einer Art Toilettenpapier würde ich mir vorstellen, dass es einige Variationen in der Rollenlänge geben würde.

Für noch mehr Spaß können Sie den Detektor so instrumentieren, dass er Zeitreihendaten sammelt, sodass Sie diese später auf einen Computer hochladen und ein Diagramm über den zeitlichen Verlauf des Toilettenpapiers erstellen können.


2
Ich bin ein großer Fan von Drehgebern. Es könnte sogar entworfen werden, dass der TP-Halter den Encoder durch die Rolle an der Stange befestigt hat, wodurch keine Bewegung auf dem Encoder verursacht wird. Es kann auch eine Taste zum Zurücksetzen des Zählers verwendet werden.
Steven10172

1
Ein häufiges Problem wäre jedoch, die maximale Anzahl von Umdrehungen zu bestimmen, da dies von der Anzahl der Blätter und ihrer Dicke abhängt.
jfpoilpret

Ich würde dies von "Bestrahlungsgerät an Toilettenpapier anbringen" auf das Anbringen an der mittleren Rolle ändern, auf der es sitzt. Der gleiche Effekt, aber weniger Wartung, da der Sensor für jede Rolle neu angebracht werden muss
Robotnik

1
Sie können die Anzahl der Umdrehungen bestimmen, indem Sie den gesamten TP von einer neuen Rolle auf die Spule in Ihrer gemessenen Rolle übertragen und die Umdrehungen mit dem Encoder zählen (mit einem einfachen DYI-Ding wie ein paar vertikalen Dübeln und einfach aufeinander wickeln). . Dann, wenn es leer ist, wiederholen. Vereinfacht auch die Verwendung des Ganzen, da Sie immer wieder dieselbe Spule verwenden können, an die Sie den Encoder bereits angeschlossen haben, und immer wieder neue TP darauf wickeln können.
Jason C

1
@AJMansfield Ich frage mich, ob einige Kreise, die an den Seiten der Empfangsrolle aus Pappe ausgeschnitten sind (und etwas Sorgfalt), zufriedenstellende Ergebnisse liefern würden. Wenn sich die Rollen zum Übertragen auf Passstangen befinden, können Sie einfach ein Loch in die Mitte der Scheiben stechen und sie aufschieben. Wenn Sie jedoch immer die gleiche TP-Marke kaufen, müssen Sie dies nur einmal tun (und Sie können die Anzahl der Drehungen für verschiedene Marken / Typen, die Sie entdecken, in einer Liste bereithalten - das könnte der Fall sein der stolze Betreuer der weltweit ersten OpenSource-TP-Spin-Count-Datenbank).
Jason C

7

Ich denke, 'Arluin' und 'Jmathew' haben die richtige Idee. Verwenden Sie einen Hebel oben auf der Rolle.

Ich würde es jedoch etwas anders machen. Anstatt sich auf das Schließen von Kontakten zu verlassen, können Sie ein Potentiometer verwenden. Mit diesem System können Sie die verbleibende Menge messen, anstatt einfach benachrichtigt zu werden, wenn sie niedrig wird.

Bei einem Kontakt, wie er bereits vorgeschlagen wurde, kann es vorkommen, dass beim Schließen des Kontakts Papier im Kontakt steckt und dann kein Papier mehr erkannt wird.

(Möglicherweise benötigen Sie ein in der Abbildung blau dargestelltes Gewicht, um den Hebel nach unten zu drücken, während die Rolle verwendet wird.)

Sie müssten versuchen, den Pot so nah wie möglich an die Rolle zu bringen, damit der Pot maximal geschwungen und die verbleibende Menge maximal aufgelöst wird.

Möglicherweise möchten Sie auch eine Rolle am Ende des Hebels, damit sich die Papierrolle leicht und mit geringem Widerstand an der Stelle bewegen kann, an der der Hebel das Papier berührt.

Vorgeschlagenes Setup


4

Sie könnten einfach eine dieser Geburtstagskarten aufschlagen und den Schalter an den Halterarm anpassen. Sobald Sie "Happy Birthday" von der Toilette hören, wissen Sie, dass Sie in Schwierigkeiten sind! (Und weil sie sehr stromsparend sind, läuten diese Dinge für immer ein ;-)) Ich habe hier ein LED-Setup gezeigt, aber Sie haben die Idee ...

alles Gute zum Geburtstag


Können Sie bitte Ihre Frage bearbeiten, um zu erfahren, wie Sie dieses Element mit einem Arduino-Board verbinden können? Vielen Dank!
Anonym Pinguin

3

Ich habe einen Reflexions-Tachometer für einen Arduino gebaut, der wahrscheinlich Ihr Problem lösen würde. Die Grundschaltung ist ganz einfach:

Drehzahlmesserschaltung

Ich hatte einen Fotoransistor, der gut auf rotes Licht reagierte, und einen anderen von Radio ShackDas war ziemlich empfindlich gegenüber dem IR-Ausgang alter fernsehferngesteuerter LEDs. Für Ihre Zwecke wird ein grüner Draht an den analogen Pin 0 von Arduino angeschlossen, und Sie müssen nur in regelmäßigen Abständen ein Sample erstellen, ohne eine Interrupt-gesteuerte Skizze zu erstellen. Der Trick, um eine reflektierte Signaldifferenz zwischen weißem Papier und Graurolle zu erhalten, besteht darin, zu wissen, dass die Lichtempfindlichkeit eines Fototransistors den GND-Widerstand erhöht, aber auch die Dunkelspannung steigt. Die Werte von 5 und 3 Megaohm habe ich empirisch ermittelt, indem ich die AtoD-Werte von dunklen und hellen Objekten in einem Abstand von einigen Zentimetern vom Detektor überprüft habe. Das gleiche Verfahren sollte für die Erkennung von Grau und Weiß gelten. Obwohl einige Dinge, die sichtbar ganz anders aussehen, das gleiche Reflexionsvermögen im IR haben. Hier ist ein Bild des fertigen Rotlicht-Drehzahlmessers: Bildbeschreibung hier eingeben

Es sollte einfach sein, die Sensorplatine so klein zu machen, dass sie in die Rückseite Ihres Papierspenders passt. Die IR-Version ist noch kleiner, aber in einer selbstgebauten Zentrifuge zu tief verborgen, um heute ein Bild davon zu bekommen.


3

Ich denke, eine andere anständige und kostengünstige Option ist ein Näherungssensor wie der am Telefon oder ein Infrarot-Sensor mit festem Feld. Diese Sensoren sind ziemlich genau und können leicht verwendet werden, um auf die Rückseite der Toilettenrolle zu "schauen", indem der Sensor an der Halterung oder der Wand angebracht wird, an der die Toilettenrolle platziert ist. Alle anderen Ideen, die ich auf der Post gesehen habe, waren entweder ziemlich ungenau oder wirkten sich aufdringlich auf die Toilettenpapierrolle aus, was auf lange Sicht eine Verunreinigung bedeuten könnte. Ein Näherungssensor ist nicht nur recht billig und einfach zu bedienen, er kann bei guter Kalibrierung auch ein hohes Maß an Genauigkeit und Zuverlässigkeit gewährleisten. Dieses Modell wird bereits häufig in Männer-Urinalen zum automatischen Spülen verwendet. Beispiel für Ihr Telefon: Ihr Telefon bietet eine genaue Entfernung von 2,0 Zoll oder unendlich, wenn sich Ihre Hand oder Ihr Gesicht in der Nähe des Bildschirms befinden.


Für 10 US-Dollar erhalten Sie diese Produktreihe von adafruit.com/products/466 1 cm bis 15 cm (perfekt für TP-Rollen), die problemlos in einen Mikrocontroller integriert werden kann.
Jason C

@Jason C: Der erste Versuch war die Verwendung von VCNL4000, aber wie bei anderen Berichten wurde auch beim Ablesen angehalten / angehalten / eingefroren. Ich habe noch niemanden gesehen, der das behoben hat, auch wenn der mA abgesenkt wurde.
Jose Leon

@Aditya Die Verwendung des Näherungssensors HC-SR04 hat nicht geholfen. Es gab keinen Unterschied zwischen einer vollen und einer leeren TP-Rolle. Das Beste, was ich vermuten kann, ist, dass das 'Echo' direkt durch das Gewebe lief und an der Metallstange anhielt, die das TP hielt. Zumindest für diesen Sensor hat es also nicht funktioniert.
Jose Leon

@ JoseLeon Ich verstehe. Das ist in der Tat ziemlich seltsam. Ich stimme Ihrer Argumentation zu. Vielleicht gibt es da draußen einen anderen Sensor, der funktionieren könnte, aber ich denke, Ihre Argumentation, dass die Infrarotwellen nur durch das Toilettenpapier gehen sollten, scheint gültig zu sein.
Aditya Somani

2

Ein Ultraschallsensor für kurze Entfernungen ist möglicherweise eine effektive (und recht kostengünstige) Option. Sie können eine Emitter-Sensor-Kombination auf einen Chip montieren lassen. Verschiedene Sensoren können auf unterschiedliche Weise funktionieren (siehe immer das Datenblatt). Ein gewöhnlicher Ausgang verwendet jedoch die Länge eines Impulses, um die erfasste Entfernung anzuzeigen. Sie könnten das in Arduino mit der pulseIn()Funktion verarbeiten.

In Bezug auf die Installation würden Sie es wahrscheinlich direkt hinter dem Toilettenpapier anbringen und auf die Mitte der Spule zeigen. Die Messwerte sind oft sehr unregelmäßig, daher möchten Sie mehrere Messungen durchführen und diese mitteln (oder einen einfachen gleitenden Durchschnitt verwenden). Mit ein wenig Kalibrierung können Sie feststellen, welcher Abstand eine leere Spule darstellt.

Wenn Sie diesen Abstand über einen längeren Zeitraum (z. B. eine Minute oder länger) wiederholt feststellen, wird der Alarm ausgelöst.

Ein Reflexionssensor könnte eine andere Möglichkeit sein, obwohl ich mich frage, ob Sie möglicherweise Schwierigkeiten haben, einen Sensor zu finden, der auf Toilettenpapier einwandfrei funktioniert (je nachdem, wie weich Ihre bevorzugte Marke ist!).


Ich bin mir nicht sicher, ob Sie mit einem Ultraschallsensor eine ausreichende Genauigkeit erzielen würden. IIRC, die meisten von ihnen haben eine Genauigkeit von ca. 3-4 mm; Das ist im Allgemeinen gut genug, aber angesichts des Durchmessers einer Toilettenpapierrolle kann dies zu ungenau sein.
jfpoilpret

Ja, das gilt oft für eine Einzellesung. Die Schwankungen sind jedoch recht gleichmäßig, sodass Sie mehrere aufeinander folgende Messwerte mitteln können, um dem entgegenzuwirken. Dies kann möglicherweise zu einer Genauigkeit von ~ 1 mm führen.
Peter Bloomfield

Was passiert, wenn das Toilettenpapier einen Millimeter wackelt, während es sich mit ein wenig Papier vom Sensor weg dreht?
Anonymous Penguin

1
@AnnonomusPerson Bei Bewegung werden immer falsche Messwerte angezeigt. Aus diesem Grund warten Sie, bis der Messwert über einen längeren Zeitraum konstant ist, bevor Sie darauf reagieren.
Peter Bloomfield

@ Peter R: Die Verwendung des Näherungssensors HC-SR04 hat nicht geholfen. Es gab keinen Unterschied zwischen einer vollen und einer leeren TP-Rolle. Das Beste, was ich vermuten kann, ist, dass das 'Echo' direkt durch das Gewebe lief und an der Metallstange anhielt, die das TP hielt. Zumindest für diesen Sensor hat es also nicht funktioniert.
Jose Leon

2

Eine Idee, die mir einfällt, wäre etwa so:

  • kleben Sie einen kleinen Magneten in die Papierrolle, dh in den Karton (dies muss jedoch jedes Mal gemacht werden, wenn Sie ihn wechseln)
  • Verwenden Sie einen Reed-Kontakt (elektromagnetischer Schalter) an der Spitze eines Stabs, der mit einer Feder befestigt ist, um immer in Kontakt mit der Papierrolle zu sein
  • Ein Pin des Reed-Kontakts kann direkt mit einem logischen Pin des Eingangs verbunden werden (als Pullup-Widerstandseingang einrichten).
  • Der andere Stift des Reed-Kontakts ist mit Masse zu verbinden

Sobald der Abstand zwischen dem Magneten und dem Reedkontakt eine Grenze erreicht, schließt der Schalter den Stromkreis. Dieser Abstand verringert sich, während die Papierrolle gezogen wird.

Beachten Sie, dass Sie anstelle eines Reed-Kontakts auch einen Hall-Effekt-Sensor verwenden können. Die Prinzipien bleiben unverändert, nur die Technologie und die Eigenschaften ändern sich.

Hier besteht die Schwierigkeit darin, die richtige Empfindlichkeit des Reed-Kontakts (oder die Kraft des Magneten) zu finden, damit der Reed-Kontakt geschlossen wird, wenn der Abstand zwischen ihm und dem Magneten klein genug ist, um einen Alarm zu vermeiden, der zu früh ausgelöst würde ).


Das geht nicht, genauso wenig wie ein Ultraschallsensor. Es wird immer noch mit mindestens 10 Fuß noch drauf losgehen . Der Farbsensor ist eine bessere Idee.
Anonym Penguin

Ich sehe die Beziehung zum Ultraschallsensor nicht. Könnten Sie weiterentwickeln, WARUM es nicht funktioniert? Es gibt große Mengen an Reed-Kontakt- und Hall-Effekt-Sensoren, geschweige denn verschiedene Arten von Magneten.
jfpoilpret

Eine TP-Schicht ist so dünn, dass sie sich mit ein wenig Links aktivieren kann. Es könnte theoretisch optimiert werden, aber es ist wirklich ineffizient, das Mikroskop herauszunehmen oder was auch immer, um eine Rolle Toilettenpapier zu wechseln.
Anonymous Penguin

Das Aktivieren mit ein wenig links ist nicht so schlimm, da die OP-Frage lautet "... Toilettenpapier ist niedrig "; niedrig bedeutet nicht unbedingt leer.
jfpoilpret

2

Die einfachste und dennoch beste Lösung wäre die Verwendung eines Optokopplers aus einer IR-LED und einem Optotransistor. Sie lassen die LED in Richtung der Rolle aufleuchten, wobei die LED in der Rolle am "Griff" befestigt ist. Sobald Sie die Kartonrolle entfernen, empfängt der Optotransistor das IR-Licht von der LED und löst eine Pinwechselunterbrechung auf dem Arduino aus, die Sie auf viele Arten alarmieren kann (Licht, SMS, Twitter, Alarm…).

Dieses Design ist wirklich billig, einfach und schnell zu bauen. Eines müssen Sie jedoch noch tun: Wenn kein Toilettenpapier mehr vorhanden ist, müssen Sie die Kartonrolle tatsächlich entfernen lassen ;-)

Ansonsten ist die gleiche Lösung für die Ersatzrollen sogar eine bessere Idee :-)


Sind Optokoppler nicht einzelne Chips, die sowohl den Sender als auch den Empfänger enthalten? Siehe hier: en.wikipedia.org/wiki/Opto-isolator
jfpoilpret

[…] Ist eine Komponente, die elektrische Signale unter Verwendung von Licht zwischen zwei isolierten Stromkreisen überträgt. […] Im Grunde ist es das, was wir zwischen einer IR-LED (einem Stromkreis) und einem Fototransistor tun. Obwohl Sie Recht haben, handelt es sich nicht um eine einzelne Komponente (wie das MOC3020).
Zmo

2

Viele der hier angebotenen Optionen wirken zu kompliziert und aufdringlich.

Farbsensor

Eine andere Option, die etwas kompliziert (aber unterhaltsam) zu implementieren ist, aber nicht aufdringlich und einfach zu installieren ist, besteht darin, einen billigen Farbsensor zu bauen und ihn an der Wand hinter der Rolle zu montieren. Wenn Sie die Farbe der Rolle (oder das Fehlen der Farbe von TP) erkennen, ist sie niedrig.

Sie können auch nur eine für 8 $ kaufen .

Sie können den Schwellenwert anpassen, indem Sie die Dünnheit von TP und die Tatsache ausnutzen, dass es ein wenig dunkler aussieht, wenn nur noch wenige Blätter übrig sind.

Bei Bedarf kann die Kalibrierung per Knopfdruck durchgeführt werden, nachdem eine neue Rolle mit eingeschalteter Badezimmerbeleuchtung installiert wurde.

Abhängig von den Besonderheiten Ihres Badezimmers müssten Sie einige Anpassungen vornehmen. Wenn Sie zusätzliche Komplexität hinzufügen und die Stromversorgung über eine Steckdose unterbrechen, die mit dem Lichtschalter des Badezimmers verbunden ist, können Sie sie nur dann einschalten, wenn die Badezimmerbeleuchtung eingeschaltet ist, wodurch viele unzuverlässige Daten herausgefiltert werden.

Dies ist sehr einfach zu installieren und erfordert keine Modifikation der Rolle. Sie können den Sensor mit doppelseitigem Klebeband an der Wand befestigen oder ihn auf ein winziges Regal unter der Rolle mit der Oberseite nach oben (oder mit der Oberseite nach unten) legen.

IR-Strahlbruch

Montieren Sie eine kleine IR-LED an einer Seite des Spenders direkt über der Spule. Montieren Sie einen IR-Fotosensor auf der anderen Seite des Spenders. Wenn der Sensor die LED sieht, ist die Rolle niedrig. Könnte auch mit einem billigen Laser gemacht werden (z. B. ein handelsüblicher Laserpointer auf der einen Seite und ein Photosensor auf der anderen Seite; aber verletzen Sie nicht Ihre Augen!)

Dies ist auch einfach zu installieren (z. B. Heißkleber zum Spender) und erfordert keine Modifikation der Rolle, obwohl die Position der Sensoren zu einer leichten Beschädigung führen kann, wenn Sie die Rollen austauschen.


Ich mag auch die Optionen des Reedsensors und des Entfernungssensors (Übrigens: 10 US-Dollar für einen großartigen Sensor für kurze Entfernungen ).


1
IR-Strahl war mein erster Gedanke. Einfach und leicht zu implementieren und wahrscheinlich zuverlässiger als einige der anderen Lösungen, obwohl es vielleicht weniger Spaß macht :)
Kevin

Hehe, ich stimme zu. Ich denke, ein Farbsensor würde Spaß machen, zumindest von der Softwareseite; Es wäre eine schöne Herausforderung, Daten zu sammeln und zu versuchen, einen Algorithmus zu entwickeln, der unempfindlich gegen z. B. Änderungen des natürlichen Lichts oder andere falsche Auslöser ist.
Jason C

1

Sie haben einige Möglichkeiten:

Hinweis: Die angegebenen Links sind nur die ersten, die angezeigt werden. Die meisten von ihnen sind im Vergleich zu anderen Websites teuer. eBay kann für die meisten dieser Artikel recht günstig sein. Überprüfen Sie auch andere Orte, einschließlich Sparkfun .

  • Ultraschall-Ping-Sensor . Dies ist keineswegs ideal, aber sie sind einfach zu bedienen. Fügen Sie einfach eine mit einem Gehäuse hinzu. Es ist nicht ideal, weil es nicht genau genug ist, um zu sagen, wann es genau leer ist. Es könnte etwas über- / unterempfindlich sein. Das Gewicht wäre allerdings schwieriger, wenn es sich überhaupt verschiebt.
  • Farbsensor (vorzuziehen, kostet aber mehr) . Sie haben das erwähnt und das ist wahrscheinlich die beste Idee. Sie erhalten analoge Werte (zum Lesen mit Arduino) für Rot, Grün und Blau. [Angenommen, je höher der Gehalt dieser Farbe ist, desto höher ist die Spannung.] Weiß sollte so ziemlich alle bei 100% und Braun sein. Ich würde mir vorstellen, dass die meisten von ihnen etwa 30-40% betragen würden. (Mehr dazu später, wenn Sie das nicht verstehen, überspringen Sie diesen Teil.)

Ich werde auf den Farbsensor näher eingehen:

Farben werden hier mit drei Werten gelesen: Rot, Grün und Blau. Auf der Platine befinden sich drei Sensoren. Einer filtert alles aus, außer Rot, einem anderen Blau und dem anderen Grün. Die Sensoren auf der Platine erkennen die einfallende Lichtmenge und wandeln diese in eine Spannung zwischen 5 V ("100% Rot / Grün / Blau") oder 0 V ("0% Rot / Grün / Blau") um. Dies kann dann vom Arduino in eine Zahl umgewandelt werden (0-1024 auf einem analogen Pin).

Ein Problem mit der Beleuchtung: Soweit ich weiß, hat dieser Sensor eine LED, die immer leuchtet. Sie möchten das entweder entlöten oder vertuschen, es sei denn, Sie möchten einen beleuchteten Toilettenpapierhalter. Jetzt warte ... dein Sensor wird denken, dass es braun ist, wenn es dunkel ist. Kein Problem ... hier ist etwas, worüber Sie nachdenken sollten.

Verwenden Sie einen Farbwähler, wie ich ihn verwende, und wählen Sie ein Braun aus . Links von diesem können Sie die "simulierte Helligkeit" steuern. Daneben ist die hexadezimale Form von RGB. Sie werden das mit diesem Rechner in Standardwerte konvertieren wollen .

In Braun ist die Farbe Blau fast nicht vorhanden. Wir sollten diese Farbe ignorieren, es sei denn, Sie möchten überprüfen, ob sie braun ist. Ich würde sagen, es sollte immer unter 40% für so ziemlich jeden Braunton sein.

Nach dem, was ich an einem Beispiel für einen Braunton erkennen kann, ist das Rot so ziemlich doppelt so groß wie das Grün. Dieses Verhältnis kann variieren, aber Sie sollten sicherstellen , dass es ist etwas vorhanden. Für Weiß / Grau / Schwarz sind alle Farben 1: 1: 1 proportional. Sie können dies verwenden, um festzustellen, ob es dunkel oder braun ist.

int rPin = A0;      //Red Pin
int gPin = A1;      //Green Pin
int bPin = A2;      //Blue Pin
int ledPin = 13;    //I made this code with a LED, not a speaker
boolean testTwice = false;

void setup() {
  pinMode(ledPin, OUTPUT);  
}

void loop() {
  int rValue = analogRead(rPin);
  int gValue = analogRead(gPin);
  int bValue = analogRead(bPin);

  if (bPin < 256) { //If this is false, either something is in the way or it's white. Going to verify that something's not in the way...
    int minRed = rPin * 0.4; //A little under a half for padding... this values may need to be adjusted. Adjust this one and the one below farther apart for less sensitive.
    int maxRed = rPin * 0.6; //A little over a half for padding... this values may need to be adjusted.
    if (gPin < maxRed && gPin > minRed) { //Verifys that red between minRed and maxRed
      digitalWrite(ledPin, HIGH);
      delay(5000);
      digitalWrite(ledPin, LOW);
    }
  }
  delay(5000); // No need to waste power... you might want to add an actutal sleep function if on battery power
}

Zunächst wird überprüft, ob der Blauanteil weniger als 25% beträgt. Dann wird überprüft, ob Rot und Grün gleich sind. Geben oder Nehmen Sie 20%. (dh rot = 100 grün = 80, rot = 110 grün = 90 usw.). Wenn das stimmt, können Sie ziemlich genau feststellen, dass es braun ist. Dann leuchtet eine LED fünf Sekunden lang auf.

Sie können die LED ändern, um ein Summer zu sein, wenn Sie möchten. Möglicherweise müssen Sie die if-Anweisung anpassen, indem Sie überprüfen, ob das Blau weniger als 256/1024 (1024 = Auflösung des analogen Pins) ist, wenn es nicht in viel Licht oder in dunklem Licht arbeitet. Da der Code später bestätigt, dass das Rot ungefähr das Zweifache des Grüns ist, sollte ein Weißton die if-Anweisung nicht bestehen. Sie können auch die neu einstellen müssen minRedund maxRedweiter zu sein (wenn nicht sogar Nachweis braun) oder näher (falls Erfassung braun , wenn es weiß). Ich kann diesen Code ohne Farbsensor nicht wirklich testen.


Hinweis: Diese können etwas unruhig sein. Ich würde stattdessen eine LED empfehlen, damit das ganze Haus nicht mitten in der Nacht wegen zu wenig Toilettenpapier aufgeweckt wird. Auch, wenn Sie den Sensor überhaupt blockieren ... Wenn er nicht im Badezimmer wäre, würde ich eine Kamera empfehlen, die jedes Mal eine Aufnahme macht, wenn sie mit einem Reedschalter wie @ jfpolipret's answer ... sehr niedrig wird ... (kein Wortspiel beabsichtigt) :)


Soll der Farbsensor gleich funktionieren (dh ohne die Skizze anpassen zu müssen), wenn Sie die Farbe Ihres Toilettenpapiers ändern :-)?
jfpoilpret

@jfpoilpret Ich weiß nicht, ob Sie Ihr Toilettenpapier wiederverwenden oder nicht, aber ... :) Ich füge Code mit Mechanismen hinzu, damit es "ähnlich", aber nicht genau ist.
Anonym Pinguin

Ich denke, Toilettenpapier ist weich genug, um den Ultraschallstoß eines Ultraschallsensors zu absorbieren
TheDoctor

@TheDoctor Es ist keine gute Idee, wie ich schon sagte. Es ist viel zu ungenau.
Anonymous Penguin

1
@jfpoilpret Wenn Sie einen "Kalibrierungs" -Knopf hinzugefügt und ihn bei eingeschalteter Badezimmerbeleuchtung gedrückt haben, nachdem Sie eine neue Rolle installiert haben, können Sie die richtige Farbe messen.
Jason C

1

Klingt nach einem coolen Projekt, hier sind meine 2 ct:

Richten Sie eine Kamera aus, um Fotos von der Rolle von der Seite aufzunehmen. Dies ist wahrscheinlich die einzige Möglichkeit, um herauszufinden, wie viel Papier noch vorhanden ist. (Bearbeiten: Sie könnten einen Himbeer-Pi mit der CSI-Kamera verwenden und ein der Anzahl der Blätter entsprechendes Ausgangssignal erzeugen und dieses Signal dem Arduino zuführen ?!)

Für eine Schätzung ist es möglicherweise auch ausreichend, die Umdrehungen der Rolle zu zählen, aber Sie müssen die Rolle besser fixieren, damit sie nicht verrutscht. Sie können aber auch Magnete wie bei Fahrrädern verwenden, die jedoch direkt an der Rolle befestigt werden müssen.

(edit: noch eine idee, messe die dicke der rolle durch messen des deckelwinkels)


Hallo und willkommen bei Arduino Stack Exchange! Können Sie bitte sagen, wie Sie es mit einem Arduino verbinden? Vielen Dank! Ich weiß auch nicht, wie gut eine Idee ist, eine Kamera in ein Badezimmer zu stecken. :)
Anonymous Penguin

Ich mag deine letzte bearbeitete Idee. es könnte weiter vereinfacht werden, indem nur ein Schalter am Deckel verwendet wird, der den Stromkreis schließen würde, wenn der Deckel einen bestimmten Winkel erreicht hat; Das scheint einfacher zu sein, als den Winkel selbst zu messen.
jfpoilpret

1

Am besten befestigen Sie einen Drehgeber an der Seite der Rolle und zählen die Umdrehungen der Rolle, um festzustellen, wie viel davon verbraucht wurde. Sobald Sie die Anzahl der Umdrehungen pro Rolle kennen, können Sie festlegen, wo Ihre Benachrichtigung ausgelöst werden soll. Schließen Sie es an eine Art Protokollierungssystem an, und Sie erhalten historische Daten zum Papierverbrauch sowie zum Toilettenverbrauch.


Genau. Die Leute scheinen das zu komplizieren. Sie können dieselbe Rolle mit dem daran angebrachten Encoder auch weiterverwenden, indem Sie TP beim Nachfüllen von einer neuen Rolle auf die Sensorrolle übertragen (z. B. Rollen auf ein paar billige Dübelstangen legen und einwickeln). Auf diese Weise können Sie auch zählen, wie viele Umdrehungen für diese Rolle ausgeführt wurden (beim Nachfüllen).
Jason C

1

Ich sage, nimm einen Gewichtssensor und programmiere ihn für das Gewicht der Rolle. Wenn ein bestimmtes Gewicht unterschritten wird, blinkt eine LED oder es ertönt ein Piepton.


0

Eine andere Möglichkeit, dies zu tun, besteht darin, einen Metallstab in die Rolle und eine Metallplatte an der Außenseite zu legen und die Kapazität zu messen, die sich ändern sollte, während der TP aufgrund der Spannung verbleibt Dielektrizitätskonstante des Papiers.

Aber das wäre mit Sicherheit die "landschaftlich reizvolle Route". Trotzdem kann der Arduino die Kapazität ziemlich einfach messen und ist möglicherweise sogar empfindlich genug. Er würde aus dem Weg gehen, weil er nur eine Metallplatte hinter der Walze und eine Metallstange in der Walze wäre. Möglicherweise können Sie sogar einen vorhandenen Halter nachrüsten, ohne dass dies bemerkt wird.

Ein einfacher Weg wäre ein Stab, der an der Welle eines Potentiometers befestigt ist, das von der Oberseite der Rolle gehalten wird. Weniger TP, Welle geht tiefer und dreht den Topf. Könnte einen langen Schaft für die Hebelwirkung benötigen, da Sie nicht zu fest drücken können, ohne die Funktion zum Ziehen von Toilettenpapier zu beeinträchtigen.

Wie AJMansfield vorschlug, wird Radioaktivität tatsächlich verwendet, um die Dicke von Dingen in industriellen Umgebungen zu messen. Wenn Sie wirklich verrückt werden wollen, können Sie eine extrem energiearme radioaktive Quelle wie eine Dose dieses seltsam schmeckenden Salzersatzes verwenden, der ein kleines bisschen über dem Hintergrund liegt und über extrem lange Zeiträume durchschnittlich ist (Toilettenpapier sollte sich von Stunde zu Stunde nicht viel ändern) zu Stunde), so könnte dies tatsächlich eine vernünftige, wenn auch teure Möglichkeit sein, Dinge zu tun.

Infrarot-Strahlbruchsensoren sind ebenfalls gut, und wenn Sie sie richtig positionieren, können Sie sie dazu bringen, mehr Licht zu blockieren, je voller die Rolle war, anstatt nur ein Ein- oder Ausschaltsignal zu geben.

EDIT: Working Proof of Concept des kapazitiven Ansatzes. Benötigt nur ein Arduino und 2 steife Drähte. Genau auf einen Zentimeter genau, mit viel Lärm. Ziemlich sicher, dass Sie zuverlässig mindestens 1 Zoll Genauigkeit erhalten können. Die Messzeit beträgt ungefähr eine Minute. Es reagiert sehr empfindlich auf die Umgebung. Sie müssten sicherstellen, dass alles Metall in einem Fuß dort bleibt, wo es ist, oder eine Abschirmung verwenden.

float difference;
unsigned long i;
unsigned long j;
unsigned int temp;
volatile unsigned char blah;

void setup()
{
  pinMode(5,OUTPUT);
  Serial.begin(9600);
}

void loop()
{
 difference =0;
 Serial.print("Measuring: ");

 for(i=0;i<100;i++)
   {
     for(j=0;j<5000;j++)
     {
       digitalWrite(5,LOW);

       temp=analogRead(A0);

       digitalWrite(5,HIGH);

       temp = analogRead(A0)-temp;
       if(temp<1024)
       {
         difference += temp;
       }

     }
     //Random delay every 5000 samples helps avoid problems with interference by staggering the samples to cancel aliasing.
     delay(random(1,50));
     Serial.print("|");

   }
   Serial.print("\n");
   Serial.print("Value: ");
   Serial.print(difference/500000);
   Serial.print("\nMeasurement Complete. Press Enter to begin another test.\n");

   while(!Serial.available())
   {
     blah = 20;
   }
   Serial.read();


}

http://pastebin.com/2W5y81AB


Es ist besser, Code in Ihre Antwort aufzunehmen, als einen externen Link. Wenn der Link in Zukunft unterbrochen wird, ist Ihre Antwort weiterhin relevant.
Sachleen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.