Inspiration

According to science paper![“Perceptions of water use”, Shahzeen Z. Attari] Americans significantly underestimate their water use. A 10-minute shower with an EPA WaterSense labeled high efficiency showerhead consumes 22 gallons, while a 20 minute shower with an older, high flow showerhead could be as much as 100 gallons. As 39 millions of people in California take showers every day there is a huge opportunity to save water by providing proactive visibility on its use. . Tests demonstrated that we can easily reduce water use by more then 30% once we get visibility on water use in the shower. An additional benefit of saving water is that it saves energy to heat water. So it is a win-win situation for people and the environment as it's profitable for both of them. This information can therefore be used in countless other applications.

What it does

The smart sensor monitors water consumption and its temperature. After every minute it plays a sound, and after 5, 10, 15, 20 minutes it plays an alert sound. The immediate sound feedback gives instant awareness of time passed directly in the shower. It identifies different conditions as well as the amount of water usage from the measurements and generates alerts with different levels of severity based on water consumption, pressure. It can visualize water consumption trends in web dashboard. Alerts can be accessed from the HipChat cloud service, which can communicate to the HipChat mobile app or HipChat Web. The service supports group communications as well, which can be useful for collaboration on water consumption.

How I built it

The implementation of this idea consists of three major components. The first component is the smart shower sensor built from the shelf inexpensive components (WiFI MCU ESP-12, water flow sensor YF-S201, temperature sensor ds18b20). The second key component is the Artik10, which is the brain of the solution. It is securely hosting a MQTT broker, a telemetry database, a powerful IoT analytics platform, a data loader, a stream processing engine and a wireless network interface to the smart sensor. The third component is a cloud notification service, which distributes alerts and displays them on a mobile app or on the Web. Once water flow is detected, the smart sensor starts sending measurements as MQTT publications every 5 seconds over WiFi to Artik10. The MQTT Mosquitto broker receives publications and distributes to subscribers. Telegraf data loader subscribes to the MQTT publications and loads them as measurement points into InfluxDB telemetry database. This database becomes the data source for Grafana IoT web-based analytics. It can visualize water consumption trends and other information in an easy to use and customizable graphical dashboard. The stream processing engine Kapacitor is the brain that identifies different conditions as well as the amount of water usage from the stream of measurements and generates alerts with different levels of severity based on water consumption, pressure, as well sensor health characteristics. Once condition is detected, Kapacitor publishes alerts to the HipChat cloud service, which can communicate to the HipChat mobile app or HipChat Web. The service supports group communications as well, which can be useful for collaboration on water consumption.

Challenges I ran into

Different maturity issues related to products (SW/HW), building Linux SW for ARM Linux, learning Lua, upgrading Artik10 to Fedora 22, power management

Accomplishments that I'm proud of

Contributing to improving environment Reducing my personal water consumption by 30%

What I learned

Electronics, HW troubleshooting, HW design, Lua, InfluxDB, Grafana, MQTT, Artik10, ESP12

What's next for Smart Shower

Improve power management, move from WiFi to BLE, add new alerts, graphs, add presence sensor, user recognition, make it work without batteries, add social aspect

Built With

  • lua
  • esp-12
  • influxdb
  • mosquitto
  • mqtt
  • fedora
  • telegraf
  • kapacitor
  • hipchat
  • grafana
  • yf-s201
  • ds18b20
  • artik10
  • nodemcu
Share this project:
×

Updates