Process
Water Consumption
The project started off by creating a circuit with two potentiometers, one representing a hot knob and the other a cold knob. We implemented a code that would start a timer whenever the knobs are turned on. Based on the angle at which the knob is turned on, the particle code will also record a reading from each potentiometer. This reading is meant to represent how much water is sent to the shower head from either the cold valve of hot valve. Since the use of water to test our device may damage our electronic devices and circuit board, we decided to simulate the flow of water using the reading from the potentiometer. When this reading is multiplied by the amount of time during which the knob has been turned on, the resulting value will represent the volume of water that has been used up. We encountered some challenges in this process while writing the code to ensure the volume measurement was accurate over time. Since the water consumption is not only a function of time but it is also a function of any previous knob readings; the code needed to continuously update the volume by recording the new volume reading and adding it to any previous volume readings.
Once the water volume is measured in one particle argon board (B1), this value will be sent to another particle argon board (B2). B2 consists of a servo and button. The water volume is translated into a value along the water consumption meter, and the servo acts as an indicator along this meter. As the volume changes, the servo angle changes to indicate that more water is being used up. A challenge with using the servo is that its movement is specific to the range of water volume displayed in the meter indicator; depending on the range we select, the servo may not be sensitive enough to detect minute changes in the consumption. The button on this board is used to reset the water volume reading when the user is done recording.
Temperature Indication
To help the user understand what the temperature of the water is before getting into the shower, we used a neopixel ring and a waterproof TMP sensor. Initially, we had planned to map the potentiometer readings to a temperature reading based on the angle at which the hot and cold knobs are turned to; however, based on the feedback we received, we decided to use a TMP sensor to record a temperature reading since this will provide a more accurate measurement of temperature for the user. As the TMP sensor measure a value between 10°C and 35°C, the neopixel ring will change in color from blue to yellow. Between 35°C and 60°C, the neopixel ring will change from yellow to red. Thus, as the temperature of the water approaches the normal body temperature (~35°C), the color of the neopixel ring approaches yellow.