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
![](images/toiletfoamer_3.jpg)
- // Toilet Foamer
- // pkvi
- // 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);
- }
- }