We can save water by having an automated system that handles hot/cold water blending based on our needs.
What it does
It learns form each consumer what are his/her daily water usage scenario. After that, if the consumer is in the proximity, the system can adjust the tap water flow and temperature in a closed PID. By doing this it saves time and makes it all optimised and "hands-free".
An arduino board handles peripherals ( servos, water flow & blending temperature sensors, RFID authentication, 3D gestures sensor ). Artik 5 DevKit acts ( for this early stage ) as a Node.js gateway to the REST API and also renders by local processing the PID algorithm for the closed loop. Artik board communicates over serial connection with Arduino and over HTTP with Node.js API.
Challenges I ran into
The hard part was the plumbing, which had to be an easy fit for all market connections. More than that, selecting proper servos and water flow meters. The communication over serial between boards got us in some tricky CRCs handling. It was difficult to maintain real-time behaviour of all I/Os on Arduino board: this will be easier when I'll move all Arduino code to Artik.
Accomplishments that I'm proud of
The whole system is functional in our bathroom for the last 2 weeks. My wife founds it useful to fast adjust water temperature for our daughter's daily bath, and in the same time scary because of all the open wires... :) But this will change once we got of the prototype stage.
What I learned
I've learnt that is not easy to tamer water, but is so useful when all the pieces are coming together: a truly hands-free system that knows you by day it passes, controls the water flow and temperature, and keeps it all sync in cloud, securely through Artik platform.
What's next for WaterTamer
We hope that we can get to the next step of the challenge: put all code from Arduino on Artik. Also, make use of hardware SPI and BLE connection once they will be available in a future firmware.