Overview

In this project, a multi-functional water dispenser is designed and successfully developed based on Arduino uno, together with general codes compatible to various types of MCUs. This water dispenser is an all-in-one portable device, with its basic water dispensing function, hourly reminding function, fluid intake recording and daily dehydrated warning functions, and real time and water volume information display function.

To achieve these fantastic functions, lots of electronic parts are applied and well organized. For sensors, an ultrasonic sensor detects the approaching cup. A real time circuit communicates and provides current time information to MCU. For actuators, a pump charged by 9-12V batteries are controlled by a relay, transferring the water in a container to the cup, a buzzer and a LCD.

To realize human computer interaction, a passive buzzer plays various lovely music segments. It reminds the user to drink every hour and warns at the customized time every day if the recorded fluid intake level is lower than the required drinking amount. The reminding interval, daily warning time and liquid drinking goal can be set by users. To visually present the information, there is a LCD screen showing the current time, fluid intake each time, accumulated water drinking amount, and the fully hydrated goal.

The original idea turns out to be a useful gadget, helping people live with a healthy lifestyle.

Inspiration

To stay hydrated, having plenty of drinks is a daily necessity. However, as Harvard Health Publishing states, many of us aren't getting enough to drink, especially older adults. "Older people don't sense thirst as much as they did when they were younger. And that could be a problem if they're on a medication that may cause fluid loss, such as a diuretic," says Dr. Julian Seifter, a kidney specialist and associate professor of medicine at Harvard Medical School.

Not only for old adults, the Quench study found that more than three-quarters (77%) of surveyed people do not think they consume enough water on a daily basis to meet their health needs2. Nevertheless, water acts as a significant role in our daily life. “Think of water as a nutrient your body needs that is present in liquids, plain water, and foods. All of these are essential daily to replace the large amounts of water lost each day," says Joan Koelemay, RD, dietitian for the Beverage Institute, an industry group.Kaiser Permanente nephrologist Steven Guest, MD, agrees: "Fluid losses occur continuously, from skin evaporation, breathing, urine, and stool, and these losses must be replaced daily for good health."

The issue that is revealed by the above data and research also perplexed our students in daily life. My teammate and I find it is hard to drink on a regular basis during extremely busy final weeks. It is often the case that we get dehydrated and are bothered putting brakes on the ongoing work to drink water, which leads to body unwell and several physical problems. To make a rehydrating habit, a lot of methods have been tried, i.e., using an App to record fluid intake and setting alarms for reminds, but it turns out not to be an efficient solution.

Lack of corresponding effective solutions, we are motivated by the ambition to address such an issue for a wide range of people, taking care of their body health. We decide to design a multi-functional water dispenser, a small, portable device that can be placed on the desk. Once this gadget reminds to have liquid, users can take action immediately, without wasting time to fetch water and being distracted. Additionally, it is able to record user drinking amount and let them know when they still need liquid. We believe that this multi-functional water dispenser can definitely help people to live in a healthier lifestyle.

What it does

The goal of this project is to design a multi-functional water dispenser, with the basic function of dispensing water automatically when the cup is near to the dispenser. To add more functions which can benefit the user’s normal life, a buzzer, which can be used to give reminders to users of drinking water and an LCD, which can be used to display the information of the amount of water can be added to the dispenser.

A. Milestone 1

For the first 3 weeks, the goals are achieving the following functions of water dispenser:

  1. Dispenses water when the cup is under the water outlet.

  2. Gives warnings by buzzer every 1 hour to remind the user of drinking water.

B. Final Demo

For the following 2 weeks, the goals are achieving the following functions of water dispenser:

  1. Sets daily drinking water goals, and sets a time to remind the user of achieving goals.

  2. Gives warnings at a set time by buzzer if the user does not achieve the daily drinking water goal.

  3. Displays information about the time, the amount of water dispensing this time and the amount of water that the user has already drunk in the day.

How we built it

For sensors, we changed the infrared sensor to the ultrasonic senser to detect an approaching cup. A real time circuit DS1307 is used to communicate with the MCU and provide real time information. For actuators, a pump charged with 9-12V batteries is controlled by a relay. It can pump water from the container to the cup according to the commands of Arduino uno. A passive buzzer plays various music segments, serving as an hourly reminder and a dehydrated warner. To decide the conditions of driving buzzer to ring with different music, both the reminding time interval and the calculated fluid intake level are offered by the timers of Arduino uno. Additionally, a LCD ST7735R is to show the user-computer interaction information, i.e., current time, water volume taken this time, sum water volume this day, the required fluid intake level this day, and the daily drinking goal together with daily dehydrated warning time are set by users.

All the parts are well fastened and connected with a self-made shelf, allowing the whole design to be more portable and convenient for use.

Challenges we ran into

There are also some unexpected turns but we finally come up with our effective solutions. One of the pins of LCD ,i.e., PB0, is collided with the interrupt capture pin of the ultrasonic sensor. Since PB0 serves as a GPIO pin for LCD, we revised the LCD graphics library and use another pin PD2 to achieve the same aim. Additionally, we found that the water transferring speed is too fast and the volume values may be not precise. To solve this problem, we reset the resolution of the dispensing time to be finer.

Accomplishments that we're proud of

The codes are written neatly and generally, not Arduino like codes, so that can be used in various MCUs. For example, a self-defined delay function is helpful to drive the buzzer to play different melodies. Idle ‘for’ loops and volatile local variables are a smart way to drive the buzzer to ring with a set of varying beats. This method deals with the issue that the _delay_ms() function can only receive constant parameters. We also encapsulated each function into their sub-function blocks and let main function to call them smoothly and effectively. In addition, RTC is most difficult part of this project, but we successfully accomplish the library and build the communication between RTC and MCU.

What we learned

In this project, we learned how to choose and use a wide range of electronic parts properly, and how to connect and control them by Arduino uno. The interesting self-designed functions are well realized, original and practical.

What's next for Multi-functional Water Dispenser

In the future, advanced functions should be added. For instance, either a real keyboard or a virtual keyboard together with wireless communication between MCU and a smartphone app can be an interesting human-computer interaction design. Users can simply set the reminding interval, warning time, and desired drinking goal rather than revising the code. In addition, an exquisite model should be made, for a more fantastic look and higher quality. It can also protect the circuit not to be ruined by the splashing water.

Built With

Share this project:

Updates