Introduction: The Paper Preserver: Save Toilet Paper With Shock Therapy
We've all seen the empty shelves at the grocery store and it looks like there's going to be a toilet paper shortage for a while. If you didn't stock up early you're probably in the situation I'm in. I've got a house of 6 and only a few rolls to last us the rest of the month.
My solution is a little impractical but it gets the job done: If someone uses too much toilet paper, give them a little shock. Nothing harmful but enough to get the message across that they're taking too much.
This is done using an old electric arc lighter. If you separate the leads so they don't arc, they'll give a shock similar to a prank shock pen.
Supplies
The best part is it can be done with stuff most hobbyists already have, so you don't have to wait for that super backed up Amazon shipping. Just in case though, here's some links: Use the affiliate links to support my content!
Buttons, Resistors, transistors, and diodes - https://amzn.to/3bzLf0c
Arduino Nano - https://amzn.to/33TrKgd
Electric Lighter (Not the exact one I used) - https://amzn.to/2Ur9ojR
Motor - https://amzn.to/2Ur9ojR Relay - https://amzn.to/2Ur9ojR
Bread board - https://amzn.to/2Ur9ojR
WS2812b LEDs (Optional) - https://amzn.to/2Ur9ojR
Black PLA - https://amzn.to/2Ur9ojR
3D Printer - https://amzn.to/2Ur9ojR
Step 1: Build the Circuit
The circuit shown above can be built on a bread board or soldered to a proto board if you want this solution to be permanent. In the video linked above I left them on the breadboard and didn't run into any lose connections during testing.
Optionally, you can choose to include LEDs to let the user know when the device is armed and when it's safe to take more. This isn't shown in the schematic but you could easily add some ws2812b LEDs by connecting them to 5V, GND, and D5.
Step 2: Write the Code
Here's a link to my code on GitHub: https://github.com/mrme88/TP-Taser
My code will dispense at the maximum motor speed for one second, shocking each press after the first, and resetting after two minutes so the next person to use the bathroom isn't immediately shocked.
If you want to modify my code you should be able to do it changing only the defined values at the top. The first three are the pins each component goes on. Next is the number of presses you can have before getting shocked. I like one free press, the user can always get more, just not for free. Then you have the reset time. I like two minutes but you can shorten or lengthen if desired. Finally you have the motor speed. For larger rolls, max speed is the best best you can experiment with different speeds depending on the motor you use.
If you want to write your own code from scratch I left plenty of comments in mine so you can still use it as an example template.
Step 3: Print the Enclosure
Here's a link to my enclosure on thingiverse: https://www.thingiverse.com/thing:4247646
If you print this enclosure I can't really give any advice on using it other than telling you to watch that part of the video.
Full disclosure, this enclosure was a pain to put everything in. If you're making this project you'll want to remove the wall with the TP holder and attach it with magnets or some other latching system. This will make it much easier to replace the roll when it runs out. Also separating the electronics from the roll would prevent jams and other issues.
I don't plan on redoing this project but if you redesign the enclosure feel free to message me and I can link it here and give you credit!
Step 4: Profit
This project was a lot of fun to build and took less than a day to throw together. My roommates and I have already had a lot of fun messing with it and shocking ourselves. The shock is bearable enough to push the button a few times if you need the extra TP but not worth it if you don't and over the past couple days I've noticed a slight decrease in use so it seems to be working!
If you have any suggestions or just want to say cheers don't be afraid to leave a comment, I read all of them!