Arduino Splash Resistant Toilet Foamer
Splash back is a scourge of our archaic crapping technology. As alternative to perching several feet above the bowl comes the Arduino Toilet Foamer -- permitting a user to create a more splash-resistant, sanitary and refreshing bowl environment.


Bowels a-grumblin'? Activate the Arduino Toilet Foamer from your phone app -- triggering the Arduino relay(s) for the aerator and solenoid value which injects a specified dosage of glycerin and soap in to the bowl water where it becomes en-frothed by gyrating bubbling action. Exhume waste as necessary.

Ingredients
1. Arduino Uno
2. 1/8ID 1/4OD Vinyl Tube
3. TIP120 (2)
4. 2.2K R (2)
5. 4001 Diode (2)
6. 5V Relay
7. Aerator (40 Gal)
8. 1/8 Tee for Two
9. 12V Solenoid Valve
10. Plastic Container
11. 1/8 Check Valve
12. 12V Power Supply
13. Glycerin
14. Liquid Dish Soap
15. Aerator Bubbler
16. Bluetooth or WiFi
(Optional)
Adafruit Neopixel Strip
1Knf C
47 R

Notations
1. Advice to straighten vinyl tubing is to boil water and quickly submerge.
Dry in the desired angle. Cure shorter pieces by submerging in cold water.
2. Do not use concentrated liquid dish or hand soap -- aka "Ultra" brand.
3. Would-a could-a shd-a larger aerator, (2) more valves and a variant bubbler to increase foaming efficiency.
4. Hypothetically, water reduction could be obtained by foaming water in a toilet. Elon Musk, you can send a check or money order to...
5. Bubble Recipe: Soap 4:1 Glycerin

Foam Code (Bluetooth and Neopixel Version)
// Toilet Foamer
// Vije Miller

// Neopixel
#include <Adafruit_NeoPixel.h>
#define PINSTRIP 10
Adafruit_NeoPixel strip = Adafruit_NeoPixel(5,
PINSTRIP, NEO_GRB + NEO_KHZ800);

// Aerator
int aerator = 7;
// Valve
int valve = 8;

void setup() {

Serial.begin(9600);

// Pin Values
pinMode(aerator, OUTPUT);
pinMode(valve, OUTPUT);

// Load Neopixel
strip.begin();
strip.show();

digitalWrite(aerator, LOW);
digitalWrite(valve, LOW);

}

void loop() {

// Listen
if (Serial.available() > 0)
{
digitalWrite(aerator, HIGH);
// Prime Soap Container
delay(3000);
digitalWrite(valve, HIGH);
// FOR to Delay w/ LED
for (int i = 0; i < 15; i++) {
colorWipe(strip.Color(255, 0, 0), 70);
colorWipe(strip.Color(0, 255, 0), 70);
colorWipe(strip.Color(0, 0, 255), 70);
}
digitalWrite(valve, LOW);
// FOR to Delay w/ LED
for (int i = 0; i < 1000; i++) {
colorWipe(strip.Color(255, 0, 0), 70);
colorWipe(strip.Color(0, 255, 0), 70);
colorWipe(strip.Color(0, 0, 255), 70);
}
digitalWrite(aerator, LOW);
}

}

void colorWipe(uint32_t c, uint8_t wait) {
for (uint16_t i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}

Archive
http://hackaday.com/2017/05/04/hackaday-prize-entry-arduino-splash-resistant-toilet-foamer
https://hackaday.io/project/21257-arduino-splash-resistant-toilet-foamer

13:23:0 10-017