Development of IoT Water Dispenser Vending Machine with
Integrated Coin Change Dispensing System
An Embedded Systems Device with Manuscript
Submitted by:
Radin, Jofel
A Final Course Requirements for CompTech 326 – Embedded
Systems
2025
Acknowledgement
ii
Abstract
The development of an IoT-enabled Water Dispenser Vending
Machine with an Integrated Coin Change Dispensing System
aims to provide an automated and efficient water
dispensing solution, especially in areas where reliable
water dispensers and coin exchange services are scarce.
This project introduces an intelligent, self-operating
vending system that incorporates Internet of Things (IoT)
technology for remote monitoring and management via a web
interface. The system includes critical components such
as a coin acceptor for validating 5- and 10-peso coins, a
coin hopper for providing change, and a water pump for
controlled dispensing of water. Powered by a NodeMCU
ESP8266, the IoT feature enables real-time tracking of
water usage, machine performance, and operational data.
The Arduino Uno microcontroller ensures that the water
dispensing, coin validation, and change delivery
functions are executed precisely. This solution aims to
enhance user convenience by automating the coin exchange
process, reducing the need for manual interactions, and
improving operational efficiency through remote
monitoring. The proposed system addresses the increasing
need for accessible water and offers a forward-thinking
approach to vending, fostering the modernization and
iii
automation of routine transactions within local
communities.
Table of Contents
Tittle Page...............................................
Acknowledgement..........................................
Abstract................................................iii
Table of Contents........................................
List of Figure...........................................
List of Image............................................
List of Table............................................
Chapter I-Introduction....................................
Purpose and Description of the project...................
Objectives of the Project................................
CHAPTER II – TECHNICAL BACKGROUND.........................
Technicality of the project..............................
Details of the technologies to be used...................
How the project will work................................
Circuit diagram of the project...........................
CHAPTER III- METHODOLOGY.................................
Data and Process Modeling...............................
iv
Context Diagram.........................................
Data Flow Diagram.......................................
System Flow chart.......................................
Program Flowchart.......................................
System Architecture.....................................
Network Topology.....................................................................................................
Parts and Equipment Needed...........................................................................
Software specification.....................................................................................
Installation Process..........................................................................................
Users Guide.............................................
Introduction...............................................................................................................
System Overview.......................................................................................................
Hardware Setup..........................................................................................................
Software Installation and Configuration.........................................
System Operation.....................................................................................................
Safety Considerations........................................................................................
Frequently Asked Questions (FAQs).........................................................
Support and Contact Information..............................................................
REFERENCES..............................................
v
List of Figure
Figure 1. Context Diagram..............................................................................
Figure 2. Data Flow Diagram.........................................................................
Figure 3. System Flow Chart Diagram......................................................
Figure 4. Network Topology of Temperature and Humidity
Readings with Fan.................................................................................................
List of Image
Image 1. Circuit Diagram..................................................................................
Image 2. Actual Image of the device......................................................
Image 3. During the Creation of the Device......................................
Image 4. Testing the Components................................................................
Image 5. Revising Research Paper.............................................................
List of Table
Table 1. Parts and Equipment Needed...................................................................
vi
Chapter I-Introduction
Project Context
The IoT Water Dispenser Vending Machine with Integrated Coin
Change Dispensing System addresses the growing need for
convenient water dispensing solutions in Barangay Esperanza,
Poro, Cebu. The local community faces challenges due to a
lack of reliable water vending machines and coin exchange
services, leading to inefficiencies and inconvenience for
customers. Residents often struggle to use existing
dispensers, which typically require exact 1-peso coins, as
there are limited businesses offering currency exchange.
This solution eliminates the hassle of manual coin exchanges
by combining an automated water dispenser with a coin change
system, creating a smoother user experience. The integration
of IoT technology allows for real-time monitoring of water
usage, sales, and system status through a web interface,
simplifying operations for the machine owner.
This innovation not only enhances customer convenience but
also improves business efficiency. As a result, the project
not only addresses an immediate need but also prepares the
community for the benefits of modern, sustainable technology
that streamlines daily operations. The successful completion
1
of this project will improve the accessibility and
reliability of water dispensing services in the area.
Purpose and Description of the project
The objective of this project is to create a smart, user-
friendly, and efficient IoT-based water dispenser vending
machine with an integrated coin change dispensing system.
This solution aims to address the lack of adequate water
dispensers and limited coin exchange services in Barangay
Esperanza, Poro, Cebu. By automating the coin change process
and enabling customers to pay with 5- and 10-peso coins, the
system provides a seamless and convenient water dispensing
experience. The project aims to simplify water access for
local residents while offering machine operators an
intuitive online platform for real-time data monitoring and
management. The focus is on integrating mechanical and
digital technologies to create a practical, sustainable, and
easy-to-use solution. Ultimately, this system seeks to
modernize water dispensing services, enhancing both customer
convenience and operational efficiency.
2
Objectives of the Project
General Objectives
This study aims to develop of IoT Water Dispenser Vending
Machine with Integrated Coin Change Dispensing System
this research study a line with 17th SDG goals in the
Philippines (6# Clean Water and Sanitation, 1# No
Poverty, 17# Partnerships for the Goals), while
supporting Ambisyom Natin 2040 goals of every Filipino
the future will be a great help to people. Matatag,
Maginhawa, Panatag
Specifically, it aims to;
1. develop a system that change coins such as 5 and 10-
peso coins and uses coin hopper to change coins;
2. develop a system that uses LCD to display the coin
inserted and the status of the system;
3. develop a system that uses 2 push button to trigger the
water pump and coin hopper to dispense and to press on
how much the costumer want to dispense water;
4. develop a system with real time water capacity
detection and water consumption and water sales. And
uses Web application for receiving notification and
displaying the output and value of water;
5. develop a system that uses Arduino Uno to manage and
utilize operations,
3
6. design a system that uses NodeMCU V3 ESP8266 to
interpret the bytecodes and executes the commands, and
for serial communication to the Arduino Uno the store
the data to the web application;
7. Create a Graphical User Interface GUI for monitoring
the inventory system, and;
8. determine the quality of the developed system using
ISO/IEC 25010 Systems and Software Quality Requirements
and Evaluation (SQuaRE).
4
CHAPTER II – TECHNICAL BACKGROUND
Technicality of the project
This project aims to address the limited availability of
coin-compatible water dispensers in Barangay Esperanza,
Poro, Cebu, where residents face difficulties due to a lack
of businesses that can exchange 5- and 10-peso coins for 1-
peso coins. Traditional vending machines require exact coin
denominations, causing inconvenience for both customers and
operators.
The project develops an embedded IoT-based system that
combines coin change functionality with real-time monitoring
through a web application. The scope of the project focuses
on creating a prototype system managed by BIT-CT 3G
students, excluding commercial deployment, other academic
levels, and unrelated departments.
Targeted at end users in the local community, particularly
those who frequently use coin-operated vending services,
this project has the potential to make a significant
contribution to the field of embedded systems and IoT. It
offers a smart, user-friendly solution that integrates
mechanical vending with digital management, enhancing both
convenience and operational efficiency.
5
Details of the technologies to be used
To ensure optimal performance, the system integrates both
hardware and software components. The central
microcontroller is an Arduino Uno, which manages inputs from
push buttons and sensors, while also controlling the LCD
display and the water pump. The NodeMCU ESP8266 is
responsible for transmitting wireless data to a web server.
The system also features a coin hopper for automatic change
dispensing and ultrasonic sensors to monitor water levels.
The Arduino IDE is used to program the microcontroller in
C/C++, while the web interface is built using HTML, CSS,
PHP, and JavaScript. Serial communication is established
between the Arduino and NodeMCU, and HTTP protocols are used
to send data to the web application. The entire system is
powered by a 12V DC power supply, with careful regulation of
voltage and current to optimize energy efficiency and
maintain system stability. This design ensures smooth
connectivity between all system modules.
How the project will work
The IoT Water Dispenser Vending Machine's system
architecture consists of two primary microcontrollers: the
Arduino Uno for local hardware management and the NodeMCU
(ESP8266) for wireless data transmission. The Arduino is
6
responsible for tasks such as coin detection, water
dispensing, handling push button inputs, and controlling the
LCD display, while the NodeMCU transmits data to the web
application. This technology enables users to insert 5- or
10-peso coins, which are identified by the coin acceptor.
Users can then select the desired amount of water by
pressing a button. The system activates the water pump to
dispense the water, and the LCD displays relevant
information and the system's status. If the inserted amount
exceeds the required cost, the coin hopper automatically
dispenses the correct change.
Real-time data such as water levels, consumption, and total
sales are collected by sensors, which are processed by the
Arduino. This data is then sent to the cloud via the NodeMCU
through a serial connection. The web application receives
and displays this information for monitoring and
notifications. The Arduino and NodeMCU communicate via
serial connection protocols, ensuring seamless data flow
between the hardware and cloud systems. To enhance stability
and responsiveness, challenges in synchronizing real-time
data with hardware responses were addressed by implementing
scheduled data buffering, voltage-level shifting, and
precise sensor calibration.
7
Circuit diagram of the project
Image 1. Circuit Diagram
The circuit diagram for the IoT Water Dispenser Vending
Machine includes several key components to ensure the system
functions smoothly. The central controller, an Arduino Uno,
is connected to various peripherals, such as push buttons,
an LCD screen, a coin acceptor, a coin hopper, and a water
pump. The push buttons enable users to select the desired
water volume and activate the system, while the LCD displays
real-time information, including water levels, transaction
details, and system status. The coin acceptor is connected
8
to the Arduino to detect inserted coins, and the coin hopper
is linked to provide automatic change dispensing.
The NodeMCU ESP8266 communicates with the Arduino through
serial communication, allowing data like water consumption
and sales information to be transmitted wirelessly to the
web application. The system is powered by a 12V DC power
supply, with careful attention given to the voltage
requirements of each component. Specific parameters, such as
resistor values, sensor thresholds, and power ratings, are
carefully defined to ensure all components operate correctly
and maintain system stability.
9
CHAPTER III- METHODOLOGY
Data and Process Modeling
Data and process modeling are essential techniques for
system design and analysis. Data modeling involves
defining and organizing data elements within a system,
showing how data is stored, structured, and
interconnected. Tools like Entity Relationship Diagrams
(ERDs) are used to represent entities, attributes, and
their relationships, facilitating better understanding
and management of data consistency.
On the other hand, process modeling focuses on a
system's operations and workflows. It visually
represents the sequence of tasks, inputs, and outputs,
illustrating how different processes interact and work
together. Data Flow Diagrams (DFDs) and Business Process
Model and Notation (BPMN) are commonly used for this
purpose.
Together, data and process modeling help stakeholders
gain a clearer understanding of system requirements,
improve communication, and make informed decisions,
leading to more effective and efficient information
systems.
10
Context Diagram
Figure 1. Context Diagram
The Context Diagram for the IoT Water Dispenser Vending
Machine illustrates the system as a single process
interacting with several external entities. The system
includes three key components: the Customer (who inserts
coins and selects the water volume), the Owner/Admin (who
receives notifications and monitors sales), and the Cloud
Database (which stores information about water levels,
usage, and profits). Communication between the system and
the NodeMCU ESP8266 is bidirectional, with the NodeMCU
11
serving as a link to the web application. Inputs include
coin values, water selection, and system usage, while
outputs include LCD display updates, water dispensing, and
coin change. The diagram helps identify system boundaries
and clarifies data exchanges between internal processes and
external entities, aiding in defining the system's scope and
focusing on key interactions.
Data Flow Diagram
Figure 2. Data Flow Diagram
The Data Flow Diagram (DFD) outlines how data is processed
within the IoT Water Dispenser system. It includes several
processes, such as coin validation, water selection, change
12
dispensing, water dispensing, and data monitoring. When a
coin is inserted, the Coin Validation process checks the
coin’s denomination. Then, the Water Selection process
determines the appropriate amount of water to dispense based
on the user’s input through the push button. If necessary,
the Change Dispensing process activates the coin hopper to
return the correct amount of change. The Water Dispensing
process turns on the pump to release the water. Lastly, the
Data Monitoring process gathers water usage data and sends
it to the Cloud Server via the NodeMCU ESP8266. This DFD
provides a clear view of how data flows between users,
processes, and data stores, illustrating the system’s
functionality.
13
System Flow chart
Figure 3. System Flow Chart Diagram
The System Flowchart illustrates the series of steps and
decision-making logic for the water dispenser system. The
14
process starts when the customer inserts a coin, which is
read and validated by the coin acceptor. A decision point
checks if the coin is valid and identifies its denomination.
If the coin is accepted, the system displays the balance on
the LCD. The customer then selects the desired water amount
by pressing a button. Another decision point evaluates
whether the balance is enough for the selected quantity. If
it is, the system activates the pump to dispense the water.
If there is an excess amount, the coin hopper is triggered
to provide the correct change. Lastly, data on water usage
and sales are collected and sent to the cloud. This
flowchart provides a clear understanding of the system's
logic, how the components interact, and how different
conditions affect its operation.
Program Flowchart
Start
// --- Initialization Phase ---
Initialize Arduino Uno
Initialize NodeMCU (ESP8266)
Initialize LCD display
Initialize Coin Acceptor
Initialize Coin Hopper
Initialize Water Pump
Initialize Push Buttons (for water selection)
Connect to Wi-Fi via NodeMCU
Initialize Web App communication
15
// --- Main Operational Loop ---
Loop Forever:
Display "Insert Coin" on LCD
// --- Coin Handling ---
IF Coin Inserted THEN
Read and validate coin
IF Coin is valid (1, 5, or 10 peso) THEN
Add coin value to balance
Display updated balance on LCD
ELSE
Reject coin
END IF
END IF
// --- User Input for Water Dispensing ---
IF Button 1 (small amount) Pressed THEN
RequiredAmount ← 1 peso
ELSE IF Button 2 (large amount) Pressed THEN
RequiredAmount ← 5 pesos
ELSE
Continue Loop
END IF
// --- Balance Verification ---
IF Balance ≥ RequiredAmount THEN
Activate Water Pump
Dispense water based on RequiredAmount
Deduct RequiredAmount from Balance
// --- Change Dispensing ---
IF Balance > 0 THEN
Calculate Change = Balance
Activate Coin Hopper
Dispense appropriate change
Set Balance = 0
END IF
16
// --- Data Transmission to Web App ---
Send water usage, balance, and sales data to Web Application via NodeMCU
// --- Display Updated Info ---
Display "Thank you!" on LCD
ELSE
Display "Insufficient Balance" on LCD
Delay for 3 seconds
END IF
End Loop Program Flowchart
The Program Flowchart outlines the internal logic and
control structure of the software running on the Arduino
Uno. The process starts with the initialization of all
components, such as the coin acceptor, LCD, buttons, water
pump, coin hopper, and NodeMCU for communication. After
initialization, the system enters a loop that constantly
checks for user input. When a coin is inserted, its value is
recorded, and the balance is displayed.
To determine how much water to dispense, the system waits
for the user to press a button. A conditional check verifies
if the balance is sufficient for the selected volume. If the
balance is adequate, the water pump is activated for the
appropriate duration based on the volume, and change is
calculated. If too much money is entered, the coin hopper
dispenses the excess amount. All transaction details are
then sent to the NodeMCU for cloud synchronization. This
flowchart provides a clear view of how each function is
17
triggered and the decision-making process, making it a
useful tool for understanding and troubleshooting the
program logic.
System Architecture
Network Topology
Figure 4. Network Topology of Temperature and Humidity
Readings with Fan
To facilitate smooth communication between the components,
the IoT Water Dispenser Vending Machine uses a star topology
within its IoT architecture. At the core of the system is
the Arduino Uno, which manages the physical elements such as
the coin acceptor, coin hopper, water pump, LCD display, and
push buttons.
18
The Arduino communicates with the NodeMCU V3 ESP8266 through
serial communication (UART), enabling seamless data
transfer. The NodeMCU acts as a bridge to the web
application, using Wi-Fi to transmit real-time information
such as water usage, coin transactions, and system status.
This design ensures that all devices are connected directly
to a central hub (Arduino), improving scalability and ease
of maintenance. The web application collects data for
monitoring and notifications, accessible remotely by users
and system administrators. This network topology is ideal
for IoT-powered vending systems, offering centralized
control and cloud-based data accessibility.
Parts and Equipment Needed:
To automate water dispensing and coin exchange, the IoT
Water Dispenser Vending Machine with Integrated Coin Change
System relies on various electronic and mechanical
components. The Arduino Uno serves as the main
microcontroller, handling both inputs and outputs, while the
NodeMCU ESP8266 facilitates IoT connectivity for real-time
monitoring. A coin acceptor ensures coins are validated, and
a coin hopper dispenses the correct change. The LCD display
shows transaction information, and push buttons allow users
to make selections. Water flow is managed by a water pump
19
and a solenoid valve. Additionally, an ultrasonic sensor
tracks water levels, and a relay module controls power
activation.
Parts and Equipment Quantity Description
1 Microcontroller that
Arduino manages input/output
Uno operations such as coin
validation, water
dispensing, and change
dispensing.
NodeMCU 1 Wi-Fi-enabled
ESP8266 microcontroller
responsible for IoT
connectivity, enabling
real-time data
transmission to the web
application.
Coin 1 Detects and validates
Acceptor inserted coins, ensuring
secure and accurate
payment processing.
Coin Hopper 1 Dispenses change for
users who insert higher-
value coins, making
transactions more
convenient.
LCD 1
Provides stable
electrical power to the
system components.
Web Application 1 for real-time monitoring,
(Software) transaction tracking, and
system management.
Relay Module 1 Controls high-power
components such as the
water pump and solenoid
valve, ensuring safe
operation.
Water pump 1 water pump and solenoid
20
valve regulate water flow.
Table 1. Parts and Equipment Needed
Software specification
The "IoT Water Dispenser Vending Machine with Integrated
Coin Change Dispensing System" will employ a combination of
software tools, frameworks, and libraries to ensure seamless
integration between hardware and software. The Arduino IDE
will be used to program the Arduino Uno microcontrollers,
supporting C/C++ programming and working with a variety of
sensors, pumps, and coin mechanisms. For the NodeMCU V3
ESP8266, PlatformIO within Visual Studio Code will be used
to manage code, facilitate debugging, and enhance Wi-Fi
capability management.
C++ will be used on the Arduino Uno to handle coin change
logic, pump control, and sensor data processing. The web
application will be developed using JavaScript, HTML, and
CSS to ensure compatibility across both mobile and desktop
platforms. On the backend, Node.js will handle real-time
data processing and web connectivity, while Firebase will be
21
utilized to store water usage data, as well as to send
notifications.
Installation Process:
Here’s a more detailed breakdown of how to install the
Arduino
IDE: First, go to the Arduino Software official page
(https://www.arduino.cc/en/software). Second, choose the
version suitable for your operating system such as Windows,
macOS, Linux. For Windows, run the download .exe file and
follow the installation prompts. For macOS, open the .dmg
file and drag the Arduino IDE into your application folder.
And for Linux, extract the downloaded file and run the
install.sh script. Once the installation is complete, you
can choose to launch the Arduino IDE immediately or find it
later in the Start Menu (Windows) or applications folder
(macOS).
Fourth, open the IDE from your application or program list.
Fifth, go to Tools > Board, and select the model of your
Arduino board (e.g., Arduino UNO). Then install additional
libraries if needed, if your project requires specific
libraries, go to Sketch > Include Library > Manage Libraries
to install them. Lastly, you can code now such as creating a
22
new sketch and upload a simple code to make sure everything
is working properly.
How to download:
Choose Arduino software in the site Choose compatible software .
.
Just download for free Installation Update Arduino IDE if needed .
23
Building Circuits:
Image 2. Actual Image of the device
This image displays the front view of the wooden enclosure
for the IoT Water Dispenser Vending Machine. The structure,
featuring a white-painted top and a striking design, seems
24
to be in the process of assembly. The image highlights the
electrical components and wiring inside. Key components such
as the coin mechanism, coin hopper, and electronic control
boards, including an Arduino and a power supply module, are
visible. The wiring setup suggests that the system's
functions, including coin validation, change dispensing, and
water dispensing, are efficiently integrated.
25
Image 3. During the Creation of the Device
In the image above, we began constructing our device using
plywood. The team's collaborative spirit is evident,
ensuring that the desired outcome is achieved correctly.
This photo also reflects the teamwork and effort involved in
creating something exceptional.
26
Image 4. Testing the Components
As shown above, we test the components as soon as they
arrive to confirm they are functioning correctly. We are
also evaluating other components like water pump motors and
coin acceptors. Although the components and code may not be
fully finished, we begin writing the code once we have
verified that all parts are operational.
Image 5. Revising Research Paper
27
In this image, we began organizing the documents for our
research, making sure to incorporate the panelists' feedback
and suggestions. Some of my teammates are not pictured as
they are focused on their tasks, such as building the device
and writing the code. Everyone is working efficiently to
complete the task more quickly.
Program/Sketch
const int coinSlotPin = 2; // Coin slot signal
const int hopper5Pin = 12; // ₱5 coin hopper
const int hopper1Pin = 13; // ₱1 coin hopper
const int waterValvePin = 8; // Water valve
const int hopper5PinSensor = 11; // Coin slot signal
const int hopper1PinSensor = 10;
volatile unsigned long lastPulseTime = 0;
volatile unsigned long pulseWidth = 0;
int totalInserted = 0;
const int waterPrice = 1; // ₱1 per dispense
void setup() {
Serial.begin(9600);
pinMode(coinSlotPin, INPUT_PULLUP);
pinMode(hopper5Pin, OUTPUT);
pinMode(hopper1Pin, OUTPUT);
pinMode(hopper5PinSensor, INPUT);
pinMode(hopper1PinSensor, INPUT);
pinMode(waterValvePin, OUTPUT);
digitalWrite(hopper5Pin, LOW);
digitalWrite(hopper1Pin, LOW);
digitalWrite(waterValvePin, LOW);
attachInterrupt(digitalPinToInterrupt(coinSlotPin), detectPulse, CHANGE);
}
void loop() {
if (pulseWidth > 0) {
Serial.print("Pulse Width Detected: ");
Serial.println(pulseWidth);
int coinValue = classifyCoin(pulseWidth);
if (coinValue > 0) {
totalInserted += coinValue;
Serial.print("Coin inserted: ₱");
Serial.println(coinValue);
}
// Reset for next detection
}
if (totalInserted >= waterPrice) {
dispenseWater();
int change = totalInserted - waterPrice;
giveChange(change);
totalInserted = 0;
}
pulseWidth = 0;
}
28
void detectPulse() {
unsigned long currentTime = micros();
if (digitalRead(coinSlotPin) == LOW) {
lastPulseTime = currentTime; // Start timing
} else {
pulseWidth = currentTime - lastPulseTime; // Measure width
}
}
int classifyCoin(unsigned long width) {
Serial.println("width:");
Serial.println(width);
Serial.print("sensor 5:");
Serial.println(digitalRead(hopper5PinSensor));
Serial.print("sensor 1:");
Serial.println(digitalRead(hopper1PinSensor));
if (width > 77148) return 10; // ₱10 coin (adjust threshold)
if (width > 68092) return 5; // ₱5 coin
if (width > 10) return 1; // ₱1 coin
return 0; // Invalid
}
void dispenseWater() {
Serial.println("Dispensing Water...");
digitalWrite(waterValvePin, HIGH);
delay(5000);
digitalWrite(waterValvePin, LOW);
}
void giveChange(int change) {
Serial.print("Giving Change: ₱");
Serial.println(change);
while (change >= 5) {
Serial.println("Dispensing ₱5 coin...");
digitalWrite(hopper5Pin, HIGH);
delay(5000);
digitalWrite(hopper5Pin, LOW);
change -= 5;
}
while (change >= 1) {
Serial.println("Dispensing ₱1 coin...");
digitalWrite(hopper1Pin, HIGH);
delay(5000);
digitalWrite(hopper1Pin, LOW);
change -= 1;
}
}void setup() {
// put your setup code here, to run once:
void loop() {
// put your main code here, to run repeatedly:
Users Guide
Introduction:
29
Current water dispensers offer only basic functions and lack
advanced technology that could enhance the user experience
and meet modern demands. This project seeks to address this
gap by upgrading an existing dispenser with innovative
features like a coin changer, web application, and IoT
integration.
The proposed device will be deployed in Brgy. Esperanza,
Poro, Cebu, enabling users to easily purchase water without
requiring manual transactions. The study on the Coin Change
Dispensing System aims to reduce user frustration and
improve convenience.
System Overview:
The IoT Water Dispenser Vending Machine with an Integrated
Coin Change Dispensing System aims to provide users with a
convenient, automated method for purchasing water while
ensuring accurate monetary transactions. By incorporating
IoT technology, the system enables real-time monitoring of
water levels and equipment status. Central to the system is
the Arduino Uno, which manages essential functions such as
coin validation and water dispensing.
The NodeMCU V3 ESP8266 facilitates remote monitoring and
notifications by processing bytecode commands and connecting
30
to a web application. The coin change system, driven by a
coin hopper, ensures accurate change dispensing, minimizing
transaction errors and enhancing customer convenience. This
vending machine combines advanced hardware and software
components to deliver an innovative, efficient, and user-
friendly solution for automated water dispensing while
reducing maintenance needs and minimizing downtime.
Hardware Setup:
The IoT Water Dispenser Vending Machine with Integrated Coin
Change Dispensing System consists of several essential
hardware components that collaborate to ensure smooth and
automated operation. The system's main controller, the
Arduino Uno, oversees functions like coin validation and
water dispensing. It is complemented by the NodeMCU V3
ESP8266, which handles wireless communication and links the
system to a web application for real-time monitoring and
notifications. To facilitate accurate transactions, the
machine is equipped with a coin acceptor that validates 5
and 10-peso coins. The coin hopper is responsible for
dispensing the correct change once a coin is validated.
After a successful payment, the water pump is activated to
31
dispense water, while water level sensors monitor the
storage tank and notify the system when water is available.
Software Installation and Configuration:
Here is the step-by-step and more detailed of how to install
the Arduino IDE: First, go to the Arduino Software official
page (https://www.arduino.cc/en/software). Second, choose
the version suitable for your operating system such as
Windows, macOS, Linux. For Windows, run the download .exe
file and follow the installation prompts. For macOS, open
the .dmg file and drag the Arduino IDE into your application
folder. And for Linux, extract the downloaded file and run
the install.sh script. Once the installation is complete,
you can choose to launch the Arduino IDE immediately or find
it later in the Start Menu (Windows) or applications folder
(macOS). Fourth, open the IDE from your application or
program list. Fifth, go to Tools > Board, and select the
model of your Arduino board (e.g., Arduino UNO). Then
install additional libraries if needed, if your project
requires specific libraries, go to Sketch > Include Library
> Manage Libraries to install them. Lastly, you can code now
such as creating a new sketch and upload a simple code to
make sure everything is working properly.
32
System Operation:
The IoT Water Dispenser Vending Machine with Integrated Coin
Change Dispensing System operates through a combination of
embedded hardware and IoT-enabled software, providing an
automated and user-friendly experience. Users insert a 5 or
10-peso coin into the coin acceptor, which verifies the
coin's authenticity and sends the data to the Arduino Uno to
initiate the process. Once the user presses the dispense
button after inserting the required amount, the water pump
dispenses the appropriate amount of water. Water level
sensors track the tank's water levels to ensure enough water
is available for dispensing. If the inserted amount exceeds
the required payment, the coin hopper will automatically
provide the correct change.
The system incorporates IoT functionality through the
NodeMCU ESP8266, which enables real-time monitoring and
notifications via a web application, along with water
dispensing. This allows administrators to remotely monitor
the machine's status, coin inventory, and water levels. If
the water level falls below a certain threshold, the system
33
notifies maintenance staff to refill it. Designed for
minimal human intervention, the system ensures reliability
and efficiency, making it an effective and practical
solution for automated water dispensing with precise water
control, automatic coin validation, ongoing monitoring, and
real-time IoT updates that guarantee smooth operations.
System Maintenance:
Monitoring your system is essential for maintaining optimal
performance and extending its lifespan. Regular cleaning of
both the interior and exterior surfaces is necessary to
prevent dirt and bacteria buildup. Use a soft, dry cloth to
wipe down surfaces and avoid applying liquids directly to
electronic components. Establish a routine for checking and
updating the firmware to enhance the system's performance
and security. If the coin acceptor is not working correctly,
check for jams or misalignment in the coin slot. If the
water isn't dispensing properly, inspect the water line for
blockages or a malfunctioning pump. Additionally, if the web
app is not receiving notifications, verify the Wi-Fi
connection.
The system does have limitations, such as its reliance on a
stable network connection for mobile alerts and updates.
34
Weak connectivity can disrupt functionality. To ensure
optimal performance, it's recommended to regularly monitor
device performance through the mobile app to detect any
issues early. Additionally, be open to feedback from users,
as it can help identify areas for improvement and enhance
the overall user experience.
Safety Considerations:
When creating this type of system or equipment, it is
essential to prioritize safety throughout the design,
installation, and operation phases. Key safety
considerations include ensuring all electrical components
are correctly wired according to safety standards to prevent
electrical fires or short circuits. Handle delicate
electronic components carefully to avoid electrical damage.
Additionally, take care when assembling parts to prevent
harm to sensitive areas such as circuit boards and sensors.
Regular maintenance is also crucial to ensure all components
are functioning safely and effectively. This maintenance
should include inspecting the water system, evaluating
software performance, and checking internal electrical
connections.
Frequently Asked Questions (FAQs):
35
Support and Contact Information:
For quarries and questions, you can contact us on our email
analisaalbesamaratas@gmail.com, aurlodaro08@gmail.com. On
the other hand, you can message or call us on this phone
numbers 09309468716, 09812929843. For support, feedback, and
clarifications.
REFERENCES
[1] Chen, Mingzhong. (2017). 3. IoT (internet of things)-
based smart vending machine and vending system based
on IoT-based smart vending machine.
[2] Gu, Desheng. (2007). 4. Coin-feed water-vending
machine.
[3] James, M., Padilla. (1987). 1. Water vending system.
[4] Li, Jun. (2013). 13. Purified water liquid beverage
automatically producing and vending multimedia all-in-
one machine.
[5] Saito, Taiyu. (2016).Coin collector provided with
auxiliary coin dispenser, vending machine and coin
dispensing method.
[6] V.Karthika., S.Jagadeesh., Kogili.Sai, Teja., Ashwin,
Karthick. (2019). 1. Smart computerized vending
machine enhanced with iot technology.
36
[7] Wiedjaja, Atmadja., Hansel, Pringgiady., K., Lie.
(2023). 1. IoT Based Beverage Dispenser Machine. doi:
10.1007/978-3-031-29078-7_75
[8] Wahidul, Alam., Dhiman, Sarma., Rana, Joyti, Chakma.,
Mohammad, Jahangir, Alam., Sohrab, Hossain. (2021). 1.
Internet of things based smart vending machine using
digital payment system. Indonesian Journal of
Electrical Engineering and Informatics, doi:
10.52549/.V9I3.3133
[9] Wang, Weidi., Wan, Lingzhi., Dang, Xinbo., Yu,
Junchao. (2019). 1. Purified water vending machine
based on Internet of Things.
[10] Zuo, Zhiyu., Yi, Pengping., Dong, Weiwei., Ding,
Zhenxing. (2015). 2. Paper money and coin integrated
change machine.
[11] Aniruddha, Badodkar., Abhishek, Pindoriya., Himanshu,
Mukati., Rishabh, Darwai., Mrs., Varsha, Khule. (2024)
Smart Water Dispensing: Enhancing Convenience Through
App-Controlled Vending Machines
[12] (Abellan, Vivo, Juan, Pedro. (2002) Coin-operated
automatic, unbottled mineral water vending machine in
domestic form, using beakers.
37
[13] (Ali, Ali., Athir, Jaafar. (2020) Smart vending
machine counter using IOT
[14] (Huang, Yiping., Nong, Liping., Huang, Kun., Zhang,
Kexiang., Zhou, Runchang., Liang, Zichen. (2019)
Internet-of-Things water dispenser system with APP
identity authentication and encryption functions and
control method thereof
[15] (James, M., Padilla. (1987) Water Vending System
[16] (Jnr, Sam, B, Norris. (1970) Coin Operated Water
Vending Machine
[17] (Lin, Zongde., Xu, Shuyan., Chen, Bixia., Lin,
Xinying. (2016) Coin Change Machine
[18] (Seng, Kheau, Chung., Hoe, Tung, Yew., Aroland,
Kiring. (2024) IoT-Based Vending Machine(Matsuda,
Eiji., Kabasawa, Shigeo., Mannen, Hiroaki. (1989)
Change dispenser for vending machine
[19] (Xiufang, Zhang., Lei, Yang., Shaobo, He., Miaoqi,
Wang. (2024) Design of a Water Quality Monitoring
System for Self-Service Water Vending Machines Based
on Internet of Things Technology
38
CURRICULUM VITAE
PERSONAL INFORMATION
Name : Jofel L. Radin
: Unidos, San
Address
Francisco Cebu
Date of : November 28,
Birth 2001
Place of : Unidos, San
Birth Francisco, Cebu
Citizenship : Filipino
Gender : Male
Civil Status : Single
EDUCATIONAL BACKGROUND
Primary : Unidos Elementary
39
School
: Santiago National
Secondary
High School
: Cebu Technological
Undergraduate University San
Francisco Campus
Citizenship : Filipino
Gender : Male
40