Smart Dispenser: Dispenses solutions based on the VOC

By Dan Chen, September 28, 2017

In this experiment we are dispensing mouthwash, but you can dispense any solution that you like base off your sensor data. This is a close loop control system where the output is based on the sensor data.

In this example, bad breath can be measured via volatile sulfur sensor, however but we are using the TVOC sensor … it’s tracking all VOC compound but can not isolate bad breath compound, sulfur . This sensor will be sufficient for what we are doing. Imagine you can dispense water pairing with humidity sensor, this could give you the right amount of water based on how dry your mouth is … I am not totally sure the science behind this, it’s  just an example.

 

What you will need

 

  1. Adafruit CCS811 Air Quality Sensor Breakout – VOC and eCO2
    https://www.adafruit.com/product/3566
  2. Sharp GP2Y0D810Z0F Digital Distance Sensor with Pololu Carrier – GP2Y0D810Z0F
    https://www.adafruit.com/product/1927
  3. Adafruit Feather M0 Basic Proto – ATSAMD21 Cortex M0
    or any micro controller with M0 chip so it’s easier to port my code over
    https://www.adafruit.com/product/2772
  4. Monochrome 128×32 I2C OLED graphic display
    or larger screen
    https://www.adafruit.com/product/931
  5. 4700uF 10v Electrolytic Capacitor
    https://www.adafruit.com/product/1589
  6. 3D printed parts
    Download the STL file for 3D printing
  7. EWP-2502HT6V High Temperature(100°C) Mini DC6V Water Pump, Food Grade, Sous Vide, 15 GPH
    http://amzn.to/2k8HKbg
  8. Learn To Brew LLC Food Grade Vinyl Tubing – 10 feet 5/16 ID – 7/16 OD
    http://amzn.to/2fBx9UF
  9. NeoPixel Mini PCB – Pack of 5
    https://www.adafruit.com/product/1612
  10. Airline Tubing
    http://amzn.to/2xFgZhI
  11. Listerine Cool Mint Listerine Antiseptic Mouthwash
    http://amzn.to/2wZCOLP

 

Wiring

 

 

 

Software & Interaction Design

You can download the sketch here, make sure that you include all the right libraries.
http://danchen.work/wp-content/uploads/2017/09/VOC_OLED_Graph2.ino_.zip

Feel free to tweak the software, but in this sketch it work as follow.

  • Standby State: Measure and display the TVOC level / neopixel reflects the TVOC level
  • When TVOC level went above the threshold, the neopixel will starts blinking
  • The user can now place the cup under the distance sensor to activate the pump
  • The pump will not activate when TVOC is below the threshold (optional)

Extra Credit

You can log your TVOC via wifi with this setup

Plotting Realtime WiFi Data with canvas.js