Vraag:
Hoe kan ik een alarm afgaan als het toiletpapier bijna op is?
Jose Leon
2014-03-03 02:18:51 UTC
view on stackexchange narkive permalink

Iedereen met kinderen weet dat ze nooit helpen met het toiletpapier. Weet iemand hoe hij moet volgen wanneer het laag of uit is en een hoorbaar alarm moet laten klinken? Ik weet gewoon niet welke sensor ik moet gebruiken die kan helpen.

Sommige die in me opkwamen zijn: door gewicht, door reflectie (de kleur van het papier) of een laser struikeldraad - allemaal precies op de spoel. Ik vind het niet erg om het te bouwen, ik weet alleen niet welke sensor. Weet iemand welke te gebruiken?

Misschien moet je er ook aan denken om een ​​sensor op de toiletbril te monteren, zodat hij alarm slaat als iemand gaat zitten zonder papier. :)
Misschien zou je gewoon kunnen proberen om de radiale weerstand van een rol te meten (hopelijk is die niet te hoog) en dan zal deze afnemen als er geen papier meer over is.
Vergeet de weerstand: probeerde het gewoon te meten, maar het is hoger dan het maximale kaliber van mijn multimeter (20M Ohm)
Welnu, wat volgt is misschien een discussie die beter op de meta.arduino is geplaatst, maar ik denk dat deze vraag er typisch een is die het punt van het hebben van een Arduino SE misleidt. Het is niet direct gebonden aan arduinos, want voor elk project zal men zijn oplossing niet ontwerpen op basis van een tool, maar de tools kiezen die het beste zijn voor de oplossing (wat als het gebruik van een RPi beter is, of een CC2540?). Het is inderdaad een mechanische + elektronische + software engineering-oplossing. En er is geen beste SE-plaats die ik ken om dat soort vragen te stellen.
@zmo Ik zou dan de OP aanraden om zijn vraag te bewerken om de noodzaak toe te voegen om het alarm door een Arduino te laten gaan; dat zou het beter maken voor Arduino.SE
http://www.motifake.com/macgyver-demotivational-posters-14554.html
Je zou het gewoon kunnen negeren en wachten tot je vrouw tegen je schreeuwt.
Ik zou het probleemdomein definiëren als # 1. Geef aan wanneer het papier bijna leeg is of wanneer het papier op is (erg laag - u wilt er zeker van zijn dat er een nieuwe vulling klaarstaat wanneer de storing optreedt) (storing - om de wijziging aan te zetten); # 2 oplossing moet een eenmalige aanpassing zijn - het is al moeilijk genoeg om onverantwoordelijke mensen de rol te laten vervangen, het zal nog moeilijker zijn om ze de rol te laten aanpassen voordat deze wordt geïnstalleerd; # 3 het probleemdomein moet ook de reden aangeven waarom een ​​processor nodig is (aantal storingen, tijd meten tussen uitvalindicator en vervanging, een spel ontwikkelen rond het wisselen van de rollen, enz.)
Waarom geen foto-elektrische sensor gebruiken?
Mysterieus genoeg slaagde deze vraag erin om meer dan 600 meer weergaven te krijgen dan de volgende meest bekeken vragen ...
Gerelateerd: [Hoe een tekort aan toiletpapier te voorkomen?] (Http://lifehacks.stackexchange.com/q/4184/2272) bij Life Hacks SE.
Of koop een van die toiletrol dispensers van industrieel formaat, dan raakt het papier veel minder vaak op.
Zeventien antwoorden:
JRobert
2014-03-03 03:11:46 UTC
view on stackexchange narkive permalink

Haal meerdere rollen tegelijk tevoorschijn en hang er een op voor gebruik. Zet de andere twee op een korte verticale paal binnen het bereik van de oppas. De oppas kan indien nodig nog een rol nemen.

Voel mechanisch gebrek aan gewicht op de plank onder aan de paal. Alarm gaat af wanneer de laatste rol wordt verwijderd. Niemand hoeft te kort te schieten.

Gebruik een krachtgevoelige weerstand zoals de FSR 400 (zie datasheet) om het gewicht te meten. Als alternatief kunt u een lichtgewicht spiraalveer gebruiken om het toiletpapier op te laten rusten met een microschakelaar die wordt vrijgegeven wanneer beide rollen worden verwijderd. Een andere optie is een IR-straalbreukdetector waar het circuit wordt voltooid wanneer de laatste rol wordt verwijderd.

@AnnonomusPerson Hij heeft het over het meten van het gewicht van _verschillende volle rollen_ toiletpapier, niet van losse vellen of lege rollen.
Dit is een geweldig idee: in plaats van de hoeveelheid papier op de rol te moeten meten, meet u het aantal resterende rollen om u te vertellen wanneer u meer rollen nodig heeft.
Welke sensor zou je gebruiken om het gebrek aan gewicht te detecteren?
Een doekdruksensor is een optie, of een lichtsensor op de basis die wordt afgedekt als er een rol aanwezig is.
Kunt u een voorbeeld geven van een specifieke sensor die het werk zou kunnen doen?
Afhankelijk van hoe je de basis zou construeren, een microschakelaar ([voorbeelden] (http://tinyurl.com/oj65sxa)) of een reflectiesensor ([voorbeelden] (http://tinyurl.com/npygbsk)) zou vrij eenvoudig aan te brengen zijn.
Je kunt de trigger een paar vragen over webpagina's laten doen en een paar nieuwe rollen toiletpapier van Amazon bestellen of zoiets als je bijna leeg bent. (Trouwens, dit doet me denken aan http://hackaday.com/2009/05/05/twittering-toilet/).
** Ik denk dat uw term voor de eindgebruiker een 'h' nodig heeft na de eerste letter. **
Arluin
2014-03-03 23:32:34 UTC
view on stackexchange narkive permalink

Ik geloof dat het concept van de reed-sensor van jfpoilpret en jmathew het gemakkelijkst te realiseren is. Ik heb een diagram getekend van hoe ik denk dat het eruit zou zien.

Je zou de gevoeligheid kunnen aanpassen door de hoogte van het onderste contact aan te passen.

Dit brengt je eigenlijk alleen naar een "laag" conditie en niet per se uit. Tenzij je van rol wilt wisselen terwijl er nog een paar vellen over zijn, lijkt dit mij geen bevredigende oplossing. Ik heb liever een "uit" -indicator en een hoorbare zoemer om de gebruiker te vragen / te schamen om de rol te vervangen.

Dit ontwerp zou kunnen worden bereikt met behulp van stand-alone elektronica (geen arduino nodig). Hoe je het wisselen van de rol ook wilde spelen, je zou daarvoor een Arduino kunnen gebruiken.

Opmerking ook voor op kleur gebaseerde optische sensoren, terwijl de overgrote meerderheid van de kartonnen kokers die voor dit doel worden gebruikt bruin zijn, heb ik ook witte in gebruik gezien.

Reed Sensor Diagram

Leuke diagrammen. Wat heb je gebruikt om ze te maken?
Even een belangrijke opmerking: je hebt in deze situatie niet eens een * reed * -contact nodig, maar slechts twee stukken metaal die als een simpele schakelaar worden gebruikt. Een reedcontact is gebaseerd op magnetische krachten die een schakelaar openen of sluiten; dat was nodig in mijn antwoord waar er geen echt contact was tussen beide delen. Maar hier lijkt het gebruik van een riet gewoon nutteloos, denk ik.
@jfpoilpret Ik wist niet dat de term een ​​specifiek soort schakelaar was. Ik dacht aan het meer algemene concept van een stijf buigbaar materiaal. Bedankt voor de verduidelijking!
@jmathew geen probleem, we zijn tenslotte allemaal hier om kennis te delen!
Dit ontwerp activeert de sensor nog steeds als er een klein beetje toiletpapier overblijft.
Ik heb MS Visio 2007 gebruikt.
@AnnonomusPerson Ik ben het ermee eens. En persoonlijk zou ik de voorkeur geven aan een absolute "geen papier meer" -indicator. Maar de vraag was "hoe te volgen wanneer het laag of uit is".
jmathew
2014-03-03 21:13:39 UTC
view on stackexchange narkive permalink

Ik denk dat ik dit zag in serie 1 aflevering 2 van James May's Manlab.

Net als bij jfpoilpret, gebruik een breed stuk materiaal op een veer die altijd contact maakt met de rol. Ik zeg 'breed' zodat wanneer de rol leeg is het riet een contact maakt met een van de rolhouders aan de zijkant. Wanneer het aanraakt, voltooit het een circuit naar je alarm.

Hier is een ruw beeld dat beschrijft wat ik bedoel.

In Arluin's antwoord werd vermeld dat deze methode niet zou aantonen dat de rol was leeg. Dat is vrijwel waar. Als het bovenste contact zo dik is als de TP-kartonnen rol en het onderste contact zich in het binnenste deel van de kartonnen rol bevindt, moet het voor praktische doeleinden dichtbij genoeg komen. Een voet TP-rol is niet genoeg na de taco-avond.

Behold the image of my imagination

AJMansfield
2014-03-03 08:45:31 UTC
view on stackexchange narkive permalink

Gebruik een stralingsdetector om de hoeveelheid papier op de rol te detecteren. Plaats wat radioactief materiaal in het midden van de spoelstang, en plaats de stralingsdetector ergens anders (je zou hem eventueel aan de andere kant van het oppervlak waarop de rolhouder is gemonteerd kunnen monteren; stralingssensoren zijn extreem flexibel) , en meet de stralingshoeveelheden om te bepalen hoeveel papier er nog op de rol zit.

Als alternatief zou je een elektronisch gestuurde toiletpapierdispenser kunnen hebben (drukknop om een ​​voorgeprogrammeerde lengte toiletpapier af te geven) en de arduino houdt gewoon bij hoeveel er is afgegeven.

Of bevestig een roterende encoder aan de zijkant van de spoelstang (zorg ervoor dat deze past zonder in de rol te glijden), en tel de rotaties van de rol om te bepalen hoeveel er is gebruikt.

Natuurlijk moet u bij elk van deze methoden tests uitvoeren en gegevens verzamelen, afhankelijk van het exacte type / merk / materiaal / enz. toiletpapier.

Vooral voor het tweede en derde idee, zou ik aanraden om gegevens uit het systeem te halen m regelmatig, om de typische lengte van een rol bij te houden, zodat u het programma kunt aanpassen voor elke significante variatie. Zelfs binnen één soort toiletpapier zou ik me voorstellen dat er enige variatie in rollengte zou zijn.

Voor nog meer plezier zou je de detector kunnen instrumenteren om tijdreeksgegevens te verzamelen, zodat je deze later kunt uploaden naar een computer en maak een grafiek "toiletpapiergebruik in de tijd" of zoiets.

Ik ben een grote fan van het gebruik van een roterende encoder. Het zou zelfs kunnen worden ontworpen als de TP-houder de encoder door de rol aan de staaf had bevestigd, waardoor er geen beweging op de encoder was. Ook zou een knop kunnen worden gebruikt om de telling te resetten.
Maar een veelvoorkomend probleem zou zijn om het maximale aantal rotaties te bepalen, aangezien dit afhangt van het aantal vellen en hun dikte.
Ik zou dit veranderen van 'Bevestig stralingsapparaat aan toiletrol' naar het bevestigen aan de middelste rol waarop het zit. Hetzelfde effect, maar minder onderhoud van het opnieuw moeten bevestigen van de sensor voor elke rol
Je zou het aantal rotaties kunnen bepalen door alle TP van een nieuwe rol over te brengen op de spoel in je gemeten rol en de rotaties te tellen met de encoder (met een eenvoudig DYI-ding zoals een paar verticale pluggen en gewoon de ene op de andere wikkelen) . Herhaal dan als het leeg is. Maakt het geheel ook gemakkelijk te gebruiken, omdat je gewoon dezelfde spoel kunt blijven hergebruiken waaraan je de encoder al hebt bevestigd, en er een nieuwe TP op kunt blijven wikkelen.
@JasonC, hoewel toiletpapier de neiging heeft om niet goed uitgelijnd te worden wanneer u het opnieuw probeert op te rollen, helaas. U zou een soort uitlijngeleiders moeten ontwerpen zodat het papier niet van het uiteinde van de rol morst. (Wanneer TP in de fabriek op rollen wordt geplaatst, wordt het gerold als een enorme rol van 5-10 voet breed die vervolgens wordt gesneden in de rollen van 4 inch die we gebruiken - daarom zijn de randen allemaal perfect uitgelijnd op de rollen die je in de winkel koopt. )
@AJMansfield Ik vraag me af of sommige uit karton gesneden cirkels aan de zijkanten van de ontvangende rol (en enige zorg) bevredigende resultaten zouden geven; als de rollen op deuvelstangen zitten voor overdracht, kun je gewoon een gat in het midden van de schijven prikken en ze erop schuiven. Aan de positieve kant, als je altijd hetzelfde merk TP koopt, hoef je het maar één keer te doen (en je kunt een lijst bij de hand houden van het aantal spins voor verschillende merken / typen die je ontdekt - dat zou je kunnen zijn de trotse onderhouder van 's werelds eerste opensource TP spin count-database).
(En als u * het een keer gaat doen, in plaats van over te dragen, zou u gewoon een rol kunnen ontrafelen en die tellen, en dan NAAR iemands huis gaan.)
DanJAB
2014-03-10 03:35:34 UTC
view on stackexchange narkive permalink

Ik denk dat 'Arluin' en 'jmathew' het juiste idee hebben. Gebruik een hendel die bovenop de rol rust.

Ik zou het echter iets anders doen. In plaats van te vertrouwen op contacten die je afsluiten kan een potentiometer gebruiken. Met dit systeem kunt u de resterende hoeveelheid meten in plaats van gewoon op de hoogte te worden gebracht wanneer deze laag wordt.

Met een contact zoals de reeds voorgestelde, kan het zijn dat er papier in het contact blijft steken terwijl het sluit en dan wordt laag papier niet gedetecteerd.

(Mogelijk hebt u een gewicht nodig, in blauw weergegeven op het diagram, om de hendel naar beneden te duwen terwijl de rol wordt gebruikt)

U zou moeten proberen de pot zo dicht mogelijk bij de rol te krijgen voor een maximale swing van de pot en dus een maximale resolutie van het resterende bedrag.

Een ander ding dat je misschien wilt is een soort roller aan het einde van de hendel zodat de papierrol gemakkelijk kan bewegen met weinig weerstand waar de hendel het papier raakt.

Proposed setup

Grit
2014-03-10 22:45:37 UTC
view on stackexchange narkive permalink

Je zou gewoon een van die spelende verjaardagskaarten kunnen openbreken en de schakelaar aan de houderarm kunnen aanpassen. Zodra je 'Happy Birthday' uit het toilet hoort klinken, weet je dat je in de problemen zit! (En omdat ze erg laag zijn, klinken deze dingen voor altijd ;-)) Ik heb hier een LED-opstelling laten zien, maar je snapt het idee ...

happy birthday

Kunt u uw vraag bewerken om te vertellen hoe u dat item op een Arduino-bord moet aansluiten? Bedankt!
Wayfaring Stranger
2014-03-04 03:15:47 UTC
view on stackexchange narkive permalink

Ik heb een reflectietachometer gebouwd voor een Arduino die waarschijnlijk je probleem zou oplossen. Het basiscircuit is vrij eenvoudig:

tachometer circuit

Ik had daar een fotoransistor omheen liggen reageerde goed op rood licht, en een andere van Radio Shack die behoorlijk gevoelig was voor de IR-output van oude tv-afstandsbedieningen LED's. voor uw doeleinden zou de groene draad worden aangesloten op analoge pin 0 van Arduino, en je hoeft alleen maar periodiek te bemonsteren, niet een interupt-gestuurde schets op te stellen. de truc om een ​​gereflecteerd signaalverschil te krijgen tussen wit papier en grijze rol is te weten dat de lichtgevoeligheid van een fotransistor toeneemt w waardoor de weerstand tegen GND toeneemt, maar de donkere spanning gaat ook omhoog. Ik kwam empirisch op de waarden van 5 en 3 megohm uit, door de AtoD-waarden van donkere en lichte objecten op een afstand van enkele centimeters van de detector te controleren. Dezelfde procedure zou moeten werken voor uw detectie van grijs versus wit. Hoewel sommige dingen die er zichtbaar anders uitzien, dezelfde reflectie hebben in IR. Hier is een foto van de voltooide roodlichttachometer: enter image description here

Het zou eenvoudig moeten zijn om het sensorbord klein genoeg te maken om in de achterkant van je papierdispenser te passen. De IR-versie is nog kleiner, maar te diep begraven in een zelfgebouwde centrifuge om er vandaag een foto van te maken.

Aditya Somani
2014-03-04 06:59:04 UTC
view on stackexchange narkive permalink

Ik denk dat een andere fatsoenlijke en goedkope optie om te gebruiken een naderingssensor is, zoals die op de telefoon, of een infraroodsensor met een vast veld. Deze sensor is redelijk nauwkeurig en kan gemakkelijk worden gebruikt om naar de achterkant van de toiletrol te "kijken" door de sensor op de houder of de muur waar de toiletrol is geplaatst te monteren. Alle andere ideeën die ik op de paal zag, waren ofwel redelijk onnauwkeurig of opdringerig voor de toiletrol, wat volgens mij op de lange termijn voor vervuiling kan zorgen. een naderingssensor is niet alleen redelijk goedkoop en gemakkelijk te gebruiken, mits goed gekalibreerd, kunnen ze een zeer goede mate van nauwkeurigheid en betrouwbaarheid mogelijk maken. Dit model wordt al veel gebruikt bij urinoirs voor mannen om automatisch door te spoelen. Bijvoorbeeld op uw telefoon: uw telefoon geeft nauwkeurig een afstand van 5 cm of oneindig aan wanneer uw hand of uw gezicht zich in de buurt van het scherm bevindt.

Voor $ 10 kun je dit http://www.adafruit.com/products/466 bereik van 1 cm-15 cm krijgen (perfect voor TP-rol) en ontworpen om eenvoudig te worden geïntegreerd met een microcontroller.
@Jason C: De eerste poging was met behulp van VCNL4000, maar net als andere rapporten stopte / stopte / bevriest het tijdens het aflezen. Ik heb niemand dit zien oplossen, zelfs niet bij het verlagen van de mA.
@Aditya Het gebruik van de HC-SR04 naderingssensor hielp niet. Er was geen verschil tussen een volle rol TP en een lege. Het beste wat ik kan raden is dat de 'echo' dwars door het weefsel ging en stopte bij de metalen staaf die de TP vasthield. Dus voor die sensor werkte het niet.
@JoseLeon Ik snap het. Dat is inderdaad nogal vreemd. Ik ben het eens met uw redenering. Misschien is er een andere sensor die zou kunnen werken, maar ik denk dat uw redenering dat de infraroodgolven gewoon door het toiletpapier zouden moeten gaan, geldig lijkt.
jfpoilpret
2014-03-03 02:40:40 UTC
view on stackexchange narkive permalink

Een idee dat in je opkomt zou zoiets zijn:

  • plak een kleine magneet in de papierrol, dwz in het kartonnen gedeelte (dit moet elke keer dat je het ; hoewel)
  • gebruik een reed-contact (elektromagnetische schakelaar) aan het uiteinde van een stok die is gemonteerd met een veer om altijd in contact te zijn met de papierrol
  • een pin van de reed-contact kan direct worden aangesloten op een logische ingangspin (stel deze in als een pullup-weerstandsingang)
  • de andere pin van het reed-contact moet met de aarde worden verbonden

Dus zodra de afstand tussen de magneet en het reedcontact een bepaalde limiet bereikt, zal de schakelaar het circuit sluiten. Die afstand zal afnemen terwijl de papierrol wordt getrokken.

Merk op dat u in plaats van een reedcontact ook een Hall Effect-sensor kunt gebruiken, de principes blijven hetzelfde, alleen technologie en kenmerken veranderen.

De moeilijkheid hier zal zijn om de juiste gevoeligheid van het reedcontact (of de kracht van de magneet) te vinden, zodat het reedcontact wordt gesloten wanneer de afstand tussen het en de magneet klein genoeg is om een ​​alarm te voorkomen dat zou te snel worden geactiveerd).

Dat zal niet werken, dezelfde reden als een ultrasone sensor. Het gaat nog steeds af met * minstens * 10 voet er nog steeds op. De kleurensensor is een beter idee.
Ik zie de relatie met ultrasone sensor niet. Kunt u zich verder ontwikkelen WAAROM het niet zal werken? Er zijn grote hoeveelheden reedcontact- en hall-effectsensoren, laat staan ​​verschillende soorten magneten.
Een laag TP is zo dun dat deze kan worden geactiveerd met een beetje links. Het zou theoretisch kunnen worden aangepast, maar het is echt inefficiënt om de microscoop of wat dan ook te verwijderen om een ​​rol toiletpapier te vervangen.
Activeren met een beetje links is niet zo erg, aangezien de OP-vraag is "... toiletpapier is * laag *"; laag betekent niet noodzakelijk leeg.
Peter Bloomfield
2014-03-03 02:49:38 UTC
view on stackexchange narkive permalink

Een ultrasone afstandssensor met een klein bereik kan een effectieve (en redelijk goedkope) optie zijn. U kunt een combinatie van zender en sensor op een chip laten monteren. Verschillende sensoren kunnen op verschillende manieren werken (raadpleeg altijd het gegevensblad). Een gemeenschappelijke uitgang gebruikt echter de lengte van een puls om de waargenomen afstand aan te geven. Je zou dat in Arduino kunnen verwerken met de functie pulseIn () .

In termen van installatie zou je het waarschijnlijk direct achter het toiletpapier plaatsen , wijzend naar het midden van de spoel. De metingen zijn vaak nogal grillig, dus u wilt verschillende metingen uitvoeren en deze middelen (of een eenvoudig voortschrijdend gemiddelde gebruiken). Met een beetje kalibratie zou je kunnen bepalen welke afstand een lege spoel vertegenwoordigt.

Als je die afstand herhaaldelijk detecteert gedurende een aanzienlijke periode (bijvoorbeeld een minuut of langer), zou je alarm slaan.

Een op reflectie gebaseerde sensor zou een andere mogelijkheid kunnen zijn, hoewel ik me afvraag of je misschien moeite zult hebben om er een te vinden die goed werkt op toiletpapier (afhankelijk van hoe zacht je favoriete merk is!).

Ik weet niet zeker of je voldoende nauwkeurigheid zou krijgen met een ultrasone sensor; IIRC, de meeste hebben een nauwkeurigheid van ongeveer 3-4 mm; Over het algemeen is dat goed genoeg, maar gezien de diameter van een wc-papierrol is dat misschien te onnauwkeurig.
Ja, dat geldt vaak voor een individuele lezing. De fluctuaties zijn echter vrij uniform, dus u kunt verschillende opeenvolgende metingen uit gemiddelde berekenen om dit tegen te gaan. Dat kan u mogelijk een precisie van ~ 1 mm geven.
Wat gebeurt er als het toiletpapier een mm wiebelt terwijl het wegdraait van de sensor met een klein beetje papier over?
@AnnonomusPerson U krijgt altijd valse metingen als er beweging is. Daarom wacht u tot de lezing gedurende een aanzienlijke periode stabiel is voordat u ernaar handelt.
@Peter R: Het gebruik van de HC-SR04 naderingssensor hielp niet. Er was geen verschil tussen een volle rol TP en een lege. Het beste wat ik kan raden is dat de 'echo' dwars door het weefsel ging en stopte bij de metalen staaf die de TP vasthield. Dus voor die sensor werkte het niet.
@Jose Hmm Ik dacht dat er een * klein * verschil zou zijn. Probeer de mijne of die met de gewichtssensor en de verticale beer.
zmo
2014-03-03 18:13:38 UTC
view on stackexchange narkive permalink

De eenvoudigste maar beste oplossing zou zijn om een ​​optocoupler te gebruiken die is gemaakt van één IR-led en een optotransistor. Je laat de LED lichter worden richting de rol, de LED zit in de rol vastgebonden aan het "handvat". Zodra u de kartonnen rol verwijdert, ontvangt de opto-transistor het IR-licht van de LED en activeert een onderbreking van de pinwissel op de Arduino, die u vervolgens op vele manieren kan waarschuwen (licht, sms, twitter, alarm ...).

Dat ontwerp is echt goedkoop, gemakkelijk en snel te bouwen. Er is echter nog één ding dat u moet doen: als er geen toiletpapier meer is, moet u de kartonnen rol daadwerkelijk laten verwijderen ;-)

Anders dezelfde soort oplossing voor de reservebroodjes is zelfs een beter idee :-)

Zijn optocouplers geen enkele chips die zowel de zender als de ontvanger bevatten? Zie hier: http://en.wikipedia.org/wiki/Opto-isolator
* […] Is een component die elektrische signalen overbrengt tussen twee geïsoleerde circuits met behulp van licht […] *, dus eigenlijk is dat wat we doen, tussen een IR-led (één circuit) en een fototransistor. Hoewel je gelijk hebt, is het geen enkel onderdeel (zoals de MOC3020).
Jason C
2014-03-05 19:55:57 UTC
view on stackexchange narkive permalink

Veel van de opties hier lijken te ingewikkeld en opdringerig.

Kleursensor

Een andere optie, ietwat gecompliceerd (maar leuk) om te implementeren, maar niet opdringerig en gemakkelijk te installeren , is om een ​​goedkope kleurensensor te bouwen en deze achter de rol aan de muur te monteren. Wanneer je de kleur van de rol (of de afwezigheid van de kleur van TP) detecteert, is deze laag.

Je kunt ook er een kopen voor $ 8.

U kunt de drempel aanpassen door te profiteren van de dunheid van TP en het feit dat het een beetje donkerder begint te lijken als er nog maar een paar vellen over zijn.

Indien nodig kan kalibratie worden uitgevoerd door op een knop nadat een nieuwe rol is geïnstalleerd met de badkamerverlichting aan.

Afhankelijk van de specifieke kenmerken van uw badkamer zou u een paar aanpassingen moeten doen. Als je wat extra complexiteit toevoegt en hem uitschakelt via een stopcontact dat aan de lichtschakelaar in de badkamer is gekoppeld, zou je hem alleen kunnen laten inschakelen als de badkamerverlichting aan was, waardoor veel onbetrouwbare gegevens eruit zouden worden gefilterd.

Dit is heel eenvoudig te installeren en er zijn geen aanpassingen aan de rol zelf nodig. Je zou de sensor met dubbelzijdig plakband aan de muur kunnen plakken, of op een kleine plank onder de rol naar boven (of naar boven gericht naar beneden) leggen.

IR-straalonderbreking

Monteer een kleine IR-LED aan één kant van de dispenser, net boven de spoel. Monteer een IR-fotosensor aan de andere kant van de dispenser. Als de sensor de LED ziet, is de rol laag. Kan ook met een goedkope laser worden gedaan (bijv. Een standaard laserpointer aan de ene kant en een fotosensor aan de andere; maar doe je ogen geen pijn!)

Dit is ook eenvoudig te installeren (bijv. hete lijm aan dispenser) en vereist geen aanpassing aan de rol, hoewel de locatie van de sensoren ze gemakkelijk kan beschadigen wanneer u rollen vervangt.


Ik vind het riet ook erg mooi sensor- en afstandssensor (tussen haakjes: $ 10 krijgt u hier een geweldige sensor voor korte afstanden).

IR-straal was mijn eerste gedachte. Eenvoudig en gemakkelijk te implementeren en waarschijnlijk betrouwbaarder dan sommige andere oplossingen, hoewel misschien minder leuk :)
Hehe, ik ben het ermee eens. Ik denk dat een kleurensensor leuk zou zijn, althans vanuit de software; het zou een mooie uitdaging zijn om gegevens te verzamelen en te proberen een algoritme te bedenken dat immuun is voor bijvoorbeeld veranderingen in natuurlijk licht of andere valse triggers.
Anonymous Penguin
2014-03-03 02:43:44 UTC
view on stackexchange narkive permalink

Je hebt een paar opties:

Opmerking: de gegeven links zijn slechts de eerste die verschijnen. De meeste zijn prijzig in vergelijking met andere sites. eBay buy it now kan voor de meeste van deze items redelijk goedkoop zijn. Controleer ook andere plaatsen, waaronder Sparkfun.

  • Ultrasone pingsensor. Dit is op geen enkele manier ideaal, maar ze zijn gemakkelijk te gebruiken. Voeg er gewoon een toe met een behuizing. Het is niet ideaal omdat het niet nauwkeurig genoeg zal zijn om te vertellen wanneer het precies leeg is. Het kan een beetje over / onder gevoelig zijn. Gewicht zou echter moeilijker zijn als het überhaupt verschuift.
  • Kleurensensor (bij voorkeur, maar kost meer). U noemde dit en dit is waarschijnlijk het beste idee. Het geeft je analoge waarden (om te lezen met Arduino) voor rood, groen en blauw. [Ervan uitgaande dat hoe hoger de inhoud van die kleur, hoe hoger de spanning,] wit zou vrijwel alle 100% en bruin moeten zijn, zou ik me voorstellen dat de meeste ongeveer 30-40% zouden zijn. (Later meer, als u dit niet begrijpt, slaat u dit deel over)

Ik ga dieper in op de kleurensensor:

Kleuren worden hier gelezen met drie waarden: rood, groen en blauw. Er zijn drie sensoren op het bord. De een filtert alles behalve rood, een ander blauw en de ander groen. De sensoren op het bord detecteren de hoeveelheid binnenkomend licht en zetten dat vervolgens om naar een spanning: tussen 5V ("100% rood / groen / blauw") of 0V ("0% rood / groen / blauw"). Dit kan dan door de Arduino in een nummer worden omgezet (0-1024 op een analoge pin).

Een probleem met verlichting: Deze sensor heeft, voor zover ik kan zien, een LED die altijd aan is. U wilt dat desolderen of bedekken, tenzij u een verlichte toiletpapierhouder wilt. Wacht nu ... je sensor zal denken dat als het donker is, hij bruin is. Geen probleem ... hier is iets om over na te denken.

Gebruik een kleurenkiezer zoals ik die gebruik en selecteer een bruine. Aan de linkerkant van deze kunt u de "gesimuleerde helderheid" regelen. Behalve dat is de hexadecimale vorm van RGB. U wilt dat met deze rekenmachine converteren naar standaard -waarden.

In bruin is de kleur blauw bijna onbestaande. We moeten die kleur negeren, tenzij je een manier wilt om dubbel te controleren of hij bruin is. Ik zou zeggen dat het altijd onder de 40% moet zijn voor vrijwel elke bruine tint.

Van wat ik kan zien aan de hand van een voorbeeldtint bruin, is rood vrijwel 2x zo groen. Die verhouding kan variëren, maar u moet controleren of deze enigszins bestaat. Voor wit / grijs / zwart zijn alle kleuren proportioneel 1: 1: 1. U kunt dit gebruiken om te detecteren of het donker of bruin is.

  int rPin = A0; // Rode pinint gPin = A1; // Groene Pinint bPin = A2; // Blauwe Pinint ledPin = 13; // Ik heb deze code gemaakt met een LED, niet met een speakerboolean testTwice = false; void setup () {pinMode (ledPin, OUTPUT); } void loop () {int rValue = analogRead (rPin); int gValue = analogRead (gPin); int bValue = analogRead (bPin); if (bPin < 256) {// Als dit niet waar is, staat er iets in de weg of is het wit. Ik ga verifiëren dat er iets niet in de weg zit ... int minRed = rPin * 0.4; // Iets minder dan de helft voor opvulling ... deze waarden moeten mogelijk worden aangepast. Pas deze en de onderstaande verder uit elkaar voor minder gevoelig. int maxRed = rPin * 0,6; // Iets meer dan de helft voor opvulling ... deze waarden moeten mogelijk worden aangepast. if (gPin < maxRed && gPin > minRed) {// Verifys dat rood tussen minRed en maxRed digitalWrite (ledPin, HIGH); vertraging (5000); digitalWrite (ledPin, LOW); }} vertraging (5000); // U hoeft geen stroom te verspillen ... misschien wilt u een actieve slaapfunctie toevoegen als de batterij werkt}  

Ten eerste verifieert het dat het blauw minder is dan 25%. Vervolgens verifieert het dat rood en groen gelijk zijn ... geef of neem 20%. (d.w.z. rood = 100 groen = 80, rood = 110 groen = 90, etc.). Als dat waar is, kun je vrijwel vaststellen dat het bruin is. Vervolgens gaat een LED vijf seconden aan.

U kunt de LED wijzigen om een ​​zoemer te laten zijn als u dat wilt. Mogelijk moet u de if-instructie aanpassen door te controleren of het blauw minder is dan 256/1024 (1024 = resolutie van analoge pin) als het niet werkt bij veel licht of bij donker licht. Aangezien de code later verifieert dat het rood ongeveer 2x zo groen is, mag elke witte tint die if-instructie niet doorgeven. Mogelijk moet u ook de minRed en maxRed aanpassen om verder (als bruin niet wordt gedetecteerd) of dichterbij te zijn (als bruin wordt gedetecteerd als het wit is). Ik kan deze code niet echt testen zonder kleursensor.


Opmerking: deze kunnen een beetje onrustig zijn. Ik zou in plaats daarvan een LED aanraden zodat het hele huis niet midden in de nacht wakker wordt, alleen vanwege het lage toiletpapier. En als je de sensor überhaupt blokkeert ... Als het niet in de badkamer was, zou ik een camera aanbevelen en elke keer dat het erg laag wordt een foto laten maken met een reed-schakelaar zoals het antwoord van @ jfpolipret ... maar ... (geen bedoelde woordspeling) :)

Zal de kleurensensor hetzelfde werken (dus zonder de schets af te stemmen) als je de kleur van je toiletpapier verandert :-)?
@jfpoilpret Ik weet niet of je je toiletpapier hergebruikt of niet, maar ... :) Ik voeg code toe met mechanismen zodat het "vergelijkbaar" zal zijn, maar niet exact.
Ik denk dat toiletpapier zacht genoeg is om de ultrasone uitbarsting van een ultrasone sensor te absorberen
@TheDoctor Het is eigenlijk geen goed idee, zoals ik al zei. Het is een manier om te onnauwkeurig.
Door van kleur te veranderen, bedoelde ik een nieuwe kleur te kopen :-)
Een verlichte toiletrolhouder klinkt niet al te slecht ...
de kleur werkt niet als er een vel op de rol blijft liggen (een punt waarop u wilt weten dat de rol eruit is voordat u deze moet afvegen)
@ratchetfreak Dat zal gebeuren als u de drempel goed instelt. De vellen zien er zichtbaar donkerder uit als er nog maar een paar over zijn.
@jfpoilpret Als je een "kalibreer" -knop hebt toegevoegd en erop hebt gedrukt met de badkamerverlichting aan nadat je een nieuwe rol hebt geïnstalleerd, kun je de juiste kleur meten.
@Jason Plaats gewoon geen bruin toiletpapier!
@Anonymous: Zie mijn resultaten met de HC-SR04 naderingssensor in deze thread. Het is niet gelukt.
Paperboy
2014-03-03 04:16:08 UTC
view on stackexchange narkive permalink

Klinkt als een gaaf project, hier zijn mijn 2 ct:

Richt een camera om vanaf de zijkant foto's van de rol te maken, dat is waarschijnlijk de enige manier om erachter te komen hoeveel papier er nog over is. (bewerken: je zou een raspberry pi kunnen gebruiken met de csi-camera en een uitgangssignaal kunnen creëren dat overeenkomt met het aantal bladen en dat signaal naar de arduino kunnen sturen ?!)

Voor een schatting kan het ook voldoende zijn om tel rotaties van de rol, maar je moet de rol beter vastzetten zodat hij niet wegglijdt. Of je kunt magneten gebruiken zoals op fietsen, maar ze moeten dan direct op de rol worden bevestigd.

(bewerken: nog een idee, meet de dikte van de rol door de hoek van het deksel te meten )

Hallo en welkom bij Arduino Stack Exchange! Kun je alsjeblieft zeggen hoe je hem op een Arduino aansluit? Bedankt! Ik weet ook niet hoe goed het is om een ​​camera in een badkamer te plaatsen. :)
Ik vind je laatst bewerkte idee leuk; het zou verder vereenvoudigd kunnen worden door gewoon een schakelaar op het deksel te gebruiken, die het circuit zou sluiten wanneer het deksel een bepaalde hoek heeft bereikt; dat lijkt makkelijker dan het meten van de hoek zelf.
stav
2014-03-03 22:28:29 UTC
view on stackexchange narkive permalink

De beste optie is om een ​​roterende encoder aan de zijkant van de rol te bevestigen en de rotaties van de rol te tellen om te bepalen hoeveel er is gebruikt. Zodra u het aantal rotaties per rol kent, kunt u instellen waar u wilt dat uw melding wordt geactiveerd. Bevestig het aan een soort logboeksysteem en je hebt historische gegevens over zowel papiergebruik als toiletgebruik.

Daar ben ik het mee eens. Mensen lijken dit te ingewikkeld te maken. Ook kunt u dezelfde rol blijven hergebruiken met de encoder eraan bevestigd door TP over te brengen van een nieuwe rol naar de sensorrol wanneer u deze opnieuw vult (bijv. Rollen op een paar goedkope deuvelstaven leggen en deze omwikkelen); waarmee je ook kunt tellen hoeveel rotaties voor die rol (terwijl je hem bijvult).
I. Golsby
2016-06-28 01:24:47 UTC
view on stackexchange narkive permalink

Ik zeg: neem een ​​gewichtsensor en programmeer deze voor het gewicht van de rol. Als het onder een bepaald gewicht komt, begin dan met het knipperen van een LED of maak een piep.

EternityForest
2014-03-05 22:32:44 UTC
view on stackexchange narkive permalink

Een andere manier om het te doen, voor het geval je het gewoon voor de lol wilt, is door een metalen staaf in de rol te plaatsen en een metalen plaat aan de buitenkant, en de capaciteit te meten die zou moeten veranderen met de resterende TP vanwege de diëlektrische constante van het papier.

Maar dat zou zeker de "landschappelijke route" zijn. Toch kan de Arduino de capaciteit vrij gemakkelijk meten en is hij misschien zelfs gevoelig genoeg, en hij zou uit de weg blijven omdat het gewoon een metalen plaat achter de rol en een metalen staaf in de rol zou zijn. U kunt zelfs een bestaande houder achteraf monteren zonder dat dit wordt opgemerkt.

Een gemakkelijkere manier zou zijn om een ​​stok aan de as van een potentiometer vast te maken die wordt vastgehouden door de bovenkant van de rol. Minder TP, schacht gaat lager en draait de pot. Misschien heb je een lange schacht nodig als hefboom, want je kunt niet te hard drukken zonder de functie van het trekken van toiletpapier te belemmeren.

Zoals AJMansfield suggereerde, wordt radioactiviteit eigenlijk gebruikt om de dikte van dingen in industriële omgevingen te meten. Als je echt gek wilde worden, zou je misschien een extreem energiezuinige radioactieve bron kunnen gebruiken, zoals een blikje van die vreemd smakende zoutvervanger die een klein beetje boven het achtergrondniveau ligt en gemiddeld over extreem lange tijdspannes (wc-papier zou niet veel moeten veranderen van uur tot uur), dus dit zou eigenlijk een redelijke, maar dure manier kunnen zijn om dingen te doen.

Sensoren voor het breken van de infraroodstraal zijn ook goed, en als je ze goed plaatst, kun je ervoor zorgen dat ze meer licht blokkeren, hoe voller de roll was in plaats van u alleen een aan of uit-signaal te geven.

EDIT: Working Proof of concept van de capacitatieve benadering. Heeft alleen een Arduino en 2 stijve draden nodig. Nauwkeurig tot ongeveer een 8ste van een inch, met veel ruis. Vrij zeker dat u op een betrouwbare manier een nauwkeurigheid van minimaal 1 inch kunt krijgen. De meettijd is ongeveer een minuut. Het is erg gevoelig voor zijn omgeving. Je zou ervoor moeten zorgen dat al het metaal in een voet bleef waar het was, of gebruik afscherming.

  float-verschil; unsigned long i;
unsigned long j; unsigned int temp; vluchtige unsigned char blah; void setup () {pinMode (5, OUTPUT); Serial.begin (9600);} void loop () {verschil = 0; Serial.print ("Meten:"); voor (i = 0; i<100; i ++) {voor (j = 0; j<5000; j ++) {digitalWrite (5, LOW); temp = analogRead (A0); digitalWrite (5, HIGH); temp = analogRead (A0) -temp; if (temp<1024) {verschil + = temp; }} // Willekeurige vertraging elke 5000 samples helpt interferentieproblemen te voorkomen door de samples te spreiden om aliasing te annuleren. vertraging (willekeurig (1,50)); Serial.print ("|"); } Serial.print ("\ n"); Serial.print ("Waarde:"); Serial.print (verschil / 500000); Serial.print ("\ nMeting voltooid. Druk op Enter om een ​​nieuwe test te starten. \ N"); while (! Serial.available ()) {blah = 20; } Serial.read ();}  

http://pastebin.com/2W5y81AB

Het is beter om code in uw antwoord op te nemen in plaats van een externe link. Als de link in de toekomst breekt, is uw antwoord nog steeds relevant.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...