Skip to content

This project is to automate the refrigerator water dispenser. We prototyped it on Arduino first then moved on the ESP32 platform with internet capabilities. The whole system now runs on a Firebase database. All informations about individual water consumption can be seen on its webapp

Notifications You must be signed in to change notification settings

loty2019/RefrigeratorWaterDispenser

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛜 Smart Refrigerator Water Dispenser

Schematics, code, Web-app and 3D files all available.

ℹ️ Overview

This project aims to automate the refrigerator water dispenser. Originally located inside the fridge, it has been moved outside using a custom 3D-designed fountain. We first prototyped it on Arduino and then transitioned to the ESP32 platform with internet capabilities. The entire system now operates on a database hosted on Firebase.

Purpose (Why should this exist?)

The fridge has an internal water dispensing system that is manual. You have to hold the water bottle up, then at the same time press a hard button. In this process, the refrigerator loses coldness, and you get cold. Our system, however, utilizes an external custom-designed fountain that provides cold water after just 2 seconds of water flowing with no need to hold or press anything.

🗂️ Features

1. Remote Control

Our system reads signals from a remote controller, a simple numeric keypad used to navigate menus, set parameters, and choose which water bottle to fill and how.

2. Display

The 1602 display with I2C protocol provides real-time information.

3. Motion Activation

We've integrated a motion sensor that wakes the device from deep sleep only when someone approaches for water, enhancing energy efficiency.

4. Web App

We chose to use Next.js, React and Tailwind CSS to develop a simple yet useful UI to keep track of the water consumption of each user.

5. Custom Feature

Hosting guests or following a recipe that demands an exact amount of water? Input the desired ounces, enable unlimited fill, and so on... a handy extra feature for any occasion.

6. Relay

To communicate with the fridge on when to open the flow, we decided to use a relay since it allows handling 120V currents with just a 3.3V board.

7. Internet

Everything from water consumption to settings will be stored on a Firebase real-time database.

Settings, Error Handling, and Details

We calculated the dispenser's flow rate and programmed the ESP to adjust the dispensing time accordingly. The user can also adjust it, and everything will be stored on the Flash memory and the database.

Error Documentation:

Error #01 = Failed to record individual water consumption.

Error #02 = Failed to push consumption to the database.

Error #03 = Failed to generate date or hour due to connection issues.

Others coming soon...

How to Build (soldering might be required)

  • Follow the schematics and picture attached below (these are for the prototype) if you are not using the I2C protocol to cominicate with the display then use a NPN transistor to turn off the screen. I actually used a 3 pin relay so the image below is not accurate
[Water Dispenser.pdf](https://github.com/loty2019/RefrigeratorWaterDispenser/files/13521786/Water.Dispenser.pdf)
  • 3D printable files are in STL_files folder

fusion fauntain v2

  • Set up a database and a web app
Screenshot 2024-03-16 at 11 35 05 AM
  • Final Product
Untitled.mov

Collaboration: Lorenzo, Jongsoo, Minh

About

This project is to automate the refrigerator water dispenser. We prototyped it on Arduino first then moved on the ESP32 platform with internet capabilities. The whole system now runs on a Firebase database. All informations about individual water consumption can be seen on its webapp

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 69.5%
  • C 30.5%