Fingerprint Based Attendance System Using ESP32
1. Introduction
This project is a Fingerprint Based Attendance System developed using ESP32, R307 Fingerprint Sensor, 16×2 I2C LCD, and Firebase Realtime Database.
The system is designed for Vigyan Ashram Kitchen Attendance, where attendance is required during fixed meal timings such as:
- Breakfast: 9:00 AM – 9:30 AM
- Lunch: 1:00 PM – 2:00 PM
- Dinner: 8:00 PM – 9:00 PM
The system automatically blocks attendance during restricted time periods and records valid attendance in Firebase, along with finger ID, name, date, time, and status.
Stored data can be downloaded day-wise, week-wise, or month-wise from Firebase.
2. Components Required
| Component | Quantity | Description |
| ESP32 Development Board | 1 | Main controller with WiFi |
| R307 Fingerprint Sensor | 1 | Biometric authentication |
| LCD 16×2 (I2C) | 1 | Displays system messages |
| LEDs (Green & Red) | 2 | Status indication |
| Buzzer | 1 | Audio feedback |
| Push Buttons | 2 | Add / Delete fingerprint |
| Jumper Wires | As required | Connections |
| Breadboard / PCB | 1 | Circuit assembly |
| 5V Power Supply | 1 | Power source |
3. Circuit Diagram (Description)
- ESP32 communicates with the fingerprint sensor using UART (Serial2).
- LCD is connected using I2C protocol.
- LEDs and buzzer provide visual and audio feedback.
- Buttons are used to add or delete fingerprints.
- ESP32 connects to WiFi and sends attendance data to Firebase.
4. Circuit and Connections
Fingerprint Sensor (R307)
| Sensor Pin | ESP32 Pin | Function |
| VCC | 5V | Power supply |
| GND | GND | Ground |
| TX | GPIO 16 | ESP32 RX2 |
| RX | GPIO 17 | ESP32 TX2 |
LCD 16×2 (I2C)
| LCD Pin | ESP32 Pin |
| SDA | GPIO 21 |
| SCL | GPIO 22 |
| VCC | 5V |
| GND | GND |
Other Connections
| Device | ESP32 Pin | Function |
| Green LED | GPIO 25 | Attendance accepted |
| Red LED | GPIO 26 | Error / blocked |
| Buzzer | GPIO 27 | Audio alert |
| Add Button | GPIO 32 | Add fingerprint |
| Delete Button | GPIO 33 | Delete fingerprint |
5. Working Explanation
- The user places a finger on the R307 fingerprint sensor.
- ESP32 captures the fingerprint image and matches it with stored templates.
- If the fingerprint is not found, access is denied.
- If the fingerprint is found:
- System checks current time using NTP.
- If the time is blocked (meal closed) → attendance is rejected.
- If the time is allowed → attendance is accepted.
- Attendance data is sent to Firebase with:
- Finger ID
- Finger name
- Date & time
- Status (Accepted / Blocked)
- Green LED + buzzer indicates success, red LED indicates error.
- Admin can:
- Add new fingerprints using ADD button
- Delete fingerprints using DEL button or Serial command
- Attendance data can be downloaded from Firebase:
- Daily
- Weekly
- Monthly
6. Advantages
- Contactless biometric attendance
- Prevents proxy attendance
- Time-based meal control
- Real-time cloud data storage
- Easy data download and monitoring
- Suitable for kitchen & hostel systems
8. Software / Platforms Used
| Software | Purpose |
| Arduino IDE | Code development |
| Firebase Realtime Database | Cloud data storage |
| ESP32 WiFi Library | Internet connectivity |
| Adafruit Fingerprint Library | Fingerprint control |
| LiquidCrystal I2C Library | LCD control |
| NTP Server | Real-time clock |
Solar Lamp
1. Introduction
This project is a DIY Solar Powered USB Lamp, designed to provide light during night time using solar energy.The system stores solar energy in a 3.7V lithium battery during the daytime and automatically provides power to a USB LED lamp at night.The project is low cost, portable, and environment-friendly, making it ideal for school students, rural areas, and emergency lighting applications.
2. Components Required
| Component | Quantity | Description |
| Solar Panel | 1 | Converts sunlight into electrical energy |
| Charging Module | 1 | Charges the lithium battery safely |
| USB Step-Up Power Boost Module (PFM Controller) | 1 | Boosts 3.7V battery voltage to 5V |
| 3.7V Lithium Battery | 1 | Stores solar energy |
| Battery Holder | 1 | Holds the lithium battery safely |
| USB LED Lamp | 1 | Provides lighting |
| Mini USB Fan | 1 | Optional load for airflow |
| Plastic Storage Box | 1 | Enclosure for the project |
| Jumper Wires | As required | For electrical connections |
3. Circuit Diagram (Description)
- The solar panel is connected to the charging module.
- The charging module charges the 3.7V lithium battery.
- The battery output is connected to the USB step-up boost module.
- The boost module converts 3.7V to 5V USB output.
- The USB LED lamp and mini USB fan are powered from the 5V output.
- All components are mounted inside a plastic storage box.
4. Circuit Diagram and Connections
| Module | Pin / Terminal | Pin / Terminal | Function |
| Solar Panel | + | Charging Module IN+ | Supplies solar power |
| Solar Panel | − | Charging Module IN− | Ground |
| Charging Module | B+ | Battery + | Charges battery |
| Charging Module | B- | Battery − | Battery ground |
| Battery | + | Boost Module IN+ | Supplies stored energy |
| Battery | − | Boost Module IN− | Ground |
| Boost Module | OUT +5V | USB Lamp / USB Fan | Power output |
| Boost Module | GND | USB Lamp / Fan GND | Ground |
5. Working Principle
- During daytime, the solar panel generates electricity.
This electricity is used to charge the 3.7V lithium battery through the charging module. - At night, solar power is not available.
- The battery supplies power to the USB step-up boost module.
- The boost module increases voltage from 3.7V to 5V.
- The USB LED lamp turns ON and provides light.
- The project can also power a mini USB fan if required.
6. Advantages
- Uses renewable solar energy
- Low cost and portable
- No external electricity required
- Suitable for rural and emergency use
- Easy to build and maintain
7. Applications
- Emergency night lamp
- Study lamp for students
- Camping and outdoor lighting
- Power cut backup light
- Rural home lighting
8. Safety Precautions
- Do not overcharge the lithium battery
- Use proper polarity while connecting modules
- Avoid short circuiting battery terminals
- Keep the project dry and away from water
9. Conclusion
The DIY Solar Powered USB Lamp is a simple and effective project that demonstrates the use of solar energy for practical applications.
It is an excellent learning project for school students to understand renewable energy, battery charging, and power conversion concepts.
10. References
- Arduino & DIY Electronics Tutorials
- Solar Charging Module Datasheets
- Lithium Battery Safety Guidelines
- Basic Renewable Energy Concepts

Automatic Water Overflow
1. Introduction
- Float Sensor to detect water level
- Arduino Uno to process the signal
- Relay Module to control the AC buzzer
Working Principle:
- When water touches the float sensor, it sends a signal to the Arduino.
- Arduino activates the relay, which turns ON the AC buzzer.
- No pump is used in this setup; only a buzzer is powered to alert overflow.
- This system is low-cost, portable, and can be safely mounted inside a junction box.
2. Components Required
| Component | Quantity | Description |
| Arduino Uno | 1 | Main controller to read float sensor signal |
| Float Sensor | 1 | Detects high water level |
| Relay Module (5V) | 1 | Controls AC buzzer ON/OFF |
| Buzzer (AC 220V) | 1 | Provides audible alert for water overflow |
| Jumper Wires | As required | Connect Arduino and relay module |
| 5V Adapter | 1 | Powers Arduino and relay |
| Junction Box | 1 | Safe housing for electronics |
| AC 2-pin / 3-pin socket | 1 | Connects AC buzzer safely |
3. Circuit Diagram
- Float sensor provides digital HIGH signal when water reaches max level.
- Arduino reads the signal and triggers the relay module.
- The relay switches AC supply to the buzzer.
- Neutral of buzzer goes directly to AC neutral; Live goes through relay COM/NO.
4. Circuit Diagram and Connections
| Module / Sensor | Module Pin | Arduino Uno Pin | Function |
| Float Sensor | Signal | Digital Pin D2 | Sends HIGH signal when water reaches sensor |
| Float Sensor | GND | GND | Common ground |
| Relay Module | VCC | 5V | Powers relay module |
| Relay Module | GND | GND | Ground connection |
| Relay Module | IN | Digital Pin D3 | Receives control signal from Arduino |
| AC Buzzer | Live | Relay COM & NO | AC supply controlled by relay |
| AC Buzzer | Neutral | AC Neutral | Completes AC circuit |
| Jumper Wires | – | – | Connect Arduino to relay module |
5. Code
int floatPin = 2; // Float sensor digital pin
int relayPin = 3; // Relay digital pin
void setup() {
pinMode(floatPin, INPUT);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // Relay OFF initially
Serial.begin(9600);
}
void loop() {
int floatState = digitalRead(floatPin);
Serial.println(floatState);
if (floatState == HIGH) { // Water touches float sensor
digitalWrite(relayPin, HIGH); // Relay ON → Buzzer ON
} else {
digitalWrite(relayPin, LOW); // Relay OFF → Buzzer OFF
}
delay(500);
}
Explanation:
- Float sensor sends HIGH when water is high.
- Arduino turns ON relay → AC buzzer sounds.
- When water is below sensor, relay OFF → buzzer OFF.
6. Connecting Diagram (Working)
- Float sensor mounted at maximum water level inside tank.
- Signal pin → Arduino Digital Pin D2, GND → Arduino GND.
- Relay IN → Arduino Digital Pin D3.
- AC Buzzer Live → Relay COM & NO, Neutral → AC Neutral.
- Entire electronics placed inside junction box for safety.
- System alerts water overflow automatically via buzzer.
7. Applications
- Home water tank overflow alert system
- School / college science project for automation learning
- Small water storage tanks for portable use
- Demonstration of Arduino + relay + float sensor automation
8. Advantages
- Automatic water overflow alert
- Safe, portable, and low-cost
- Easy to build and maintain
- AC buzzer alert is loud and noticeable
9. Software / Tools Used
| Software / Tool | Purpose |
| Arduino IDE | Write and upload code to Arduino Uno |
| Jumper Wires / Breadboard | For testing connections |
| Optional: Fritzing | Draw circuit diagram for report |
10. Referenc
- Arduino Official Website – https://www.arduino.cc
- Float Sensor Basics – Electronics Tutorials
- Relay Module Working – Arduino Project Hub
- AC Buzzer Control Projects – Online Arduino resources

Temperature Display Using Arduino Uno and P10 LED Matrix
1. Introduction
- Arduino Uno as the main controller
- P10 LED Matrix Display to show data
- DS18B20 waterproof temperature sensor to measure water temperature
The system also displays a scrolling welcome message every minute. It is mounted on an acrylic sheet for better visibility.
This setup is portable, low-cost, and suitable for school or college demonstrations.
2. Components Required
| Component | Quantity | Description |
| Arduino Uno | 1 | Main microcontroller |
| P10 LED Matrix Display | 1 | Displays text and temperature |
| DS18B20 Waterproof Sensor | 1 | Measures water temperature |
| Jumper Wires | As required | For connections between Arduino and display/sensor |
| 4.7kΩ Resistor | 1 | Pull-up resistor for DS18B20 data line |
| Acrylic Sheet | 1 | Mounting display |
| USB Cable / 5V Adapter | 1 | Power supply for Arduino and display |
3. Circuit Diagram
- Arduino Uno powers the P10 display via SPI pins.
- DS18B20 sensor connected via OneWire digital pin (e.g., D2).
- 4.7kΩ pull-up resistor connected between DS18B20 data line and 5V.
- GND of sensor connected to Arduino GND.
4. Arduino Uno → P10 LED Matrix Pin Connections
| P10 LED Pin | Arduino Uno Pin | Description |
| OE | Digital 12 | Output Enable |
| A | Digital 8 | Row select A |
| B | Digital 9 | Row select B |
| NC | Not connected | Not used |
| CLK | Digital 11 | Clock line for shifting data |
| SCLK | Not connected | Not used |
| DATA | Digital 10 | Serial data input |
| NC | Not connected | Not used |
| NC | Not connected | Not used |
| GND | GND | Common ground |
5. DS18B20 Sensor Connection
| Sensor | Pin | Arduino Pin | Description |
| DS18B20 | Data | Digital Pin D2 | OneWire data line |
| DS18B20 | VCC | 5V | Power supply |
| DS18B20 | GND | GND | Ground |
| Pull-up resistor | 4.7kΩ | Between Data & 5V | Required for OneWire communication |
6. Arduino Code Overview
- Uses OneWire and DallasTemperature libraries
- Displays scrolling welcome message every 1 minute
- Reads temperature from DS18B20
- Converts float temperature to string using dtostrf()
- Shows temperature (°C) on P10 display
Code Snippet:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include “SystemFont5x7.h”
#include “Arial_black_16.h”
#define DISPLAYS_ACROSS 1
#define DISPLAYS_DOWN 1
DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float t;
unsigned long lastWelcomeTime = 0;
const unsigned long welcomeInterval = 60000;
void ScanDMD() { dmd.scanDisplayBySPI(); }
void showWelcome() {
dmd.clearScreen(true);
dmd.selectFont(Arial_Black_16);
const char *msg = “WELCOME TO VIGYAN ASHRAM”;
int msgLength = strlen(msg);
dmd.drawMarquee(msg, msgLength, (32*DISPLAYS_ACROSS)-1, 0);
long timer = millis();
boolean ret = false;
while(!ret) {
if ((timer+30) < millis()) { ret = dmd.stepMarquee(-1,0); timer = millis(); }
}
delay(2000);
dmd.clearScreen(true);
}
void setup() {
Serial.begin(115200);
sensors.begin();
Timer1.initialize(5000);
Timer1.attachInterrupt(ScanDMD);
showWelcome();
lastWelcomeTime = millis();
}
void loop() {
if (millis() – lastWelcomeTime >= welcomeInterval) { showWelcome(); lastWelcomeTime = millis(); }
sensors.requestTemperatures();
t = sensors.getTempCByIndex(0);
char st[6];
dtostrf(t, 2, 1, st);
dmd.clearScreen(true);
dmd.selectFont(System5x7);
dmd.drawString(2, 0, “T:”, 2, GRAPHICS_NORMAL);
dmd.drawString(11, 0, st, strlen(st), GRAPHICS_NORMAL);
dmd.drawCircle(24, 1, 1, GRAPHICS_NORMAL);
dmd.drawString(27, 0, “C”, 1, GRAPHICS_NORMAL);
delay(2000);
}
7. Working
- Arduino reads temperature from the DS18B20 waterproof sensor.
- P10 LED display shows current temperature in °C.
- Welcome message scrolls every 1 minute.
- Display updates every 2 seconds.
- Mounted on acrylic sheet for clear visibility.
8. Software / Tools Used
| Software / Tool | Purpose |
| Arduino IDE | Write and upload code |
| DMD Library | Control P10 LED matrix |
| OneWire Library | Communication with DS18B20 |
| DallasTemperature Library | Read temperature from DS18B20 |
| TimerOne Library | Handle DMD display scan updates |
| Fritzing (optional) | Draw circuit diagram |
9. References
- Arduino Official Website – https://www.arduino.cc
- Circuit Digest – Digital Notice Board using P10 LED Matrix – https://circuitdigest.com/microcontroller-projects/digital-notice-board-using-p10-led-matrix-display-and-arduino
- DallasTemperature Library Documentation
- OneWire Library Documentation
Diwali Akash Kandil
1. Project Title
Diwali Akash Kandil Made Using Laser Cutting Technology
2. Project Duration
Total Duration: 1 Week
3. Project Objective
This project was completed with the active participation of DBRT trainees. The main objectives of the project were to prepare attractive and durable Akash Kandils for Diwali, to gain hands-on experience with laser cutting machines, to develop teamwork, planning and time management skills, and to learn basic wiring and decorative techniques.
4. Materials Used
- Card sheet
- Colored glitter paper
- Adhesive gum
- LED bulbs and wiring materials
- Laser cutting machine
- Computer with Inkscape and RD software
5. Methodology / Work Procedure
The Diwali Akash Kandil project was carried out in a planned and systematic manner with the involvement of DBRT trainees. Initially, the idea of making decorative and illuminated Akash Kandils for Diwali was finalized, and the work was divided into different stages.
First, suitable designs for laser cutting were searched on Google. After reviewing multiple designs, attractive and laser-cut-friendly designs were selected. The selected designs were then opened in Inkscape software, where proper outlines were created to ensure accurate and clean laser cutting.
After preparing the outlines, the design files were converted into DXF format, which is required for laser cutting machines. The DXF files were then uploaded into RD software. In RD software, necessary parameters such as size, speed, and power were properly set before sending the file to the laser cutting machine.
Once all settings were completed, card sheets were placed in the laser cutting machine and cutting was carried out safely and accurately. After cutting, all the parts were carefully checked. Decorative work was then done by applying adhesive gum and pasting colored glitter paper on the cut card sheets to enhance the appearance of the Akash Kandils.
Next, all cut and decorated parts were assembled using gum to form complete Akash Kandils. LED bulbs were installed inside each Kandil, and proper wiring was done with full attention to electrical safety. Finally, the completed Akash Kandils were installed at different locations. Additionally, a special 2-foot square Akash Kandil was prepared for the workshop, which was the largest among all.
6. Project Outcome
- A total of 13 Akash Kandils were successfully prepared before Diwali
- Practical knowledge of laser cutting technology was gained
- Hands-on experience in wiring and decorative work was achieved
- Teamwork and coordination skills were improved
7. Problems Faced and Solutions
- Proper quantity of adhesive gum was required to avoid damage to paper
- Electrical safety precautions were followed carefully during wiring
8. DBRT Contributed
The following DBRT actively contributed to the completion of this project:
- Mitesh ,Dnyaneshwar,Aditya,Badal,Mukesh,Omkar.
9. Conclusion
The Diwali Akash Kandil project was very useful and educational. Through this project, trainees gained technical skills, creativity, and teamwork experience. The project was successfully completed within the given time and resulted in attractive decorative items for Diwali celebrations


Automatic UV Water Sterilization System
1. Introduction
This project demonstrates a simple UV water sterilization system for small-scale use.
A UV Tubelight (11W) is used to kill bacteria (like E.coli) present in water.
The system uses Arduino Nano, a Relay Module, and a 3-pin AC socket to automatically turn ON the UV light for 5 minutes whenever water sterilization is needed.
The project is low-cost, portable, and safe to use at home or school experiments.
A junction box is used to mount the Arduino, relay, and UV light socket safely.
2. Components Required
| Component | Quantity | Description |
| Arduino Nano | 1 | Main microcontroller to control the relay |
| Relay Module (5V) | 1 | Switches AC supply of the UV tubelight |
| 11W UV Tubelight | 1 | Used for sterilizing water (kills bacteria) |
| 3-pin AC Socket | 1 | Connects UV tubelight to AC mains |
| Jumper Wires | As required | For making connections between Arduino and relay |
| 5V Adapter / USB Power | 1 | Powers Arduino Nano and relay module |
| Junction Box | 1 | Housing for Arduino, relay, and socket for safety |
3. Diagram

The UV tubelight is connected to the AC mains via a relay module.
The Arduino Nano triggers the relay for 5 minutes to switch ON the UV light.
After 5 minutes, the relay automatically switches OFF the UV light.
4. Circuit Diagram and Connections
| Module / Sensor | Module Pin | Arduino Nano Pin | Function |
| Relay Module | VCC | 5V | Powers the relay |
| Relay Module | GND | GND | Ground connection |
| Relay Module | IN | Digital Pin D3 | Control signal to turn relay ON/OFF |
| UV Tubelight | Live wire | Relay COM & NO | AC supply controlled by relay |
| UV Tubelight | Neutral | AC Neutral | Completes AC circuit |
| Jumper Wires | – | – | Connect Arduino and relay module |
5. Code
Since you mentioned you don’t have the code, here is a simple Arduino Nano code to turn ON the relay for 5 minutes (300,000 ms) when powered:
int relayPin = 3; // Relay connected to digital pin D3
void setup() {
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // Relay OFF by default
}
void loop() {
digitalWrite(relayPin, HIGH); // Turn ON UV Light
delay(300000); // Keep UV light ON for 5 minutes
digitalWrite(relayPin, LOW); // Turn OFF UV Light
while(true); // Stop further execution
}
Explanation:
- Relay turns ON UV light immediately after power.
- UV light stays ON for 5 minutes to sterilize water.
- After 5 minutes, UV light turns OFF automatically.
6. Connecting Diagram (Working)
- Arduino Nano powered by 5V adapter.
- Relay Module connected to Digital Pin D3 of Arduino Nano.
- AC Live wire of UV Tubelight goes to COM & NO terminals of relay.
- AC Neutral wire goes directly to UV Tubelight.
- UV Light sterilizes water for 5 minutes after relay activation.
- Entire circuit mounted inside a junction box for safety and portability.
7. Applications
- Small-scale water sterilization at home or school experiments
- Portable sterilization setup for kitchen or outdoor water containers
- Demonstration for students on Arduino automation and UV sterilization
8. Advantages
- Automatic operation with Arduino
- Low-cost and easy to build
- Portable and safe when housed inside a junction box
- Effective in killing bacteria like E.coli
9. Software / Tools Used
| Software / Tool | Purpose |
| Arduino IDE | To write and upload Arduino Nano code |
| Jumper wires / Breadboard | For prototyping and connections |
| Optional: Fritzing | For drawing circuit diagram |
10. References
- Arduino Official Website – https://www.arduino.cc
- UV Sterilization Basics – Electronics Tutorials
- Relay Module Working – Arduino Project Hub
- Simple Arduino Projects for Students – Online resources

Automatic Light Control System
1. Introduction
Automation plays an important role in modern electronic systems to reduce manual work and save energy.
This project demonstrates an Automatic Light Control System using an LDR module, Arduino Nano, and a Relay module.
The LDR module senses ambient light intensity. The Arduino Nano processes this signal and controls the relay module accordingly. When it becomes dark, the relay switches ON the load (light). When sufficient light is present, the relay switches OFF the load automatically.
This project is compact, low-cost, and suitable for home and industrial automation applications.
2. Components Required
| Component | Quantity | Description |
| Arduino Nano | 1 | Main microcontroller for controlling the system |
| LDR Module | 1 | Used to detect light intensity |
| Relay Module (5V) | 1 | Used to switch the electrical load |
| 5V Adapter | 1 | Power supply for Arduino and relay |
| Junction Box | 1 | Used for safe and compact circuit housing |
| Jumper Wires | As required | Used for electrical connections |
3. Circuit Diagram
The circuit diagram shows the interconnection between the LDR module, Arduino Nano, and Relay module.
The LDR module provides an analog signal to the Arduino Nano. Based on this signal, the Arduino controls the relay module, which switches the load ON or OFF.
4. Circuit Diagram and Connections
Connection Table
| Module / Sensor | Module Pin | Arduino Nano Pin | Function |
| LDR Module | VCC | 5V | Supplies power to the LDR module |
| LDR Module | GND | GND | Common ground |
| LDR Module | AO | A0 | Sends analog light intensity signal |
| Relay Module | VCC | 5V | Supplies power to the relay |
| Relay Module | GND | GND | Common ground connection |
| Relay Module | IN | Digital Pin D3 | Controls relay ON/OFF |
| Relay Module | COM | AC Phase | Common terminal for load |
| Relay Module | NO | Load Phase | Supplies power to load when relay is ON |
5. Code
int ldrPin = A0;
int relayPin = 3;
int threshold = 780;
void setup() {
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // Relay OFF by default
Serial.begin(9600);
}
void loop() {
int ldrValue = analogRead(ldrPin);
Serial.println(ldrValue);
if (ldrValue < threshold) {
digitalWrite(relayPin, HIGH); // Dark condition → Relay ON
} else {
digitalWrite(relayPin, LOW); // Light condition → Relay OFF
}
delay(1000);
}
6. Connecting Diagram (Working Explanation)
- The LDR module continuously senses the surrounding light.
- The Arduino Nano reads the analog value from pin A0.
- When the light level falls below the set threshold, the Arduino sends a HIGH signal to the relay.
- The relay module activates and turns ON the connected load.
- When sufficient light is detected, the relay is turned OFF automatically.
- The entire circuit is safely mounted inside a junction box and powered using a 5V adapter.
7. Applications
- Automatic street lighting
- Home lighting automation
- Garden and outdoor lighting
- Energy-saving systems
8. Advantages
- Automatic operation
- Energy efficient
- Low cost and compact design
- Easy to install and maintain
9. Conclusion
The Automatic Light Control System using LDR, Arduino Nano, and relay module was successfully designed and implemented. The system effectively switches the light ON and OFF based on ambient light conditions. This project is reliable, cost-effective, and suitable for real-world automation applications.
10. Reference
- Arduino Official Website – https://www.arduino.cc
- LDR Sensor Working – Electronics Tutorials
- Relay Module Basics – Arduino Project Hub

Polyhouse Automation System
1. Introduction
This project details the development of an automated system built on the Arduino Uno microcontroller platform. The primary goal is to continuously monitor key environmental parameters—namely soil moisture, temperature, and humidity—and automatically control external appliances (a Fan and a Water Pump) using a 2-channel relay module. All measured data and system status are displayed on a 16×2 I2C LCD. This system is ideal for small-scale home automation or plant monitoring applications, providing real-time data and autonomous control based on predefined conditions.
2. Components Required
| Component | Quantity | Description |
| Arduino Uno Board | 1 | The main microcontroller. |
| 16×2 I2C LCD Display | 1 | For displaying real-time data. |
| Soil Moisture Sensor | 1 | Measures the water content in the soil. |
| DHT Temperature/Humidity Sensor | 1 | Measures ambient temperature and humidity. |
| 2-Channel Relay Module | 1 | To control AC or high-power DC devices (Fan/Pump). |
| Breadboard | 1 | For easy power and ground distribution (VCC and GND). |
| Connecting Wires | As needed | Male-to-Male and Male-to-Female jumper wires. |
| External Loads | 2 | Fan and Water Pump (connected via the relay). |
3.Circut diagram

4. Circuit Diagram and Connections
The connections are established on a breadboard for distributing the VCC (5V) and GND lines to all sensors and modules. The key connections from the modules to the Arduino Uno are detailed below.
| Module/Sensor | Module Pin | Arduino Uno Pin | Function |
| Soil Moisture Sensor | AO (Analog Output) | A0 | Reads the analog moisture level from the soil. |
| VCC | Breadboard VCC (5V) | Power supply. | |
| GND | Breadboard GND | Ground connection. | |
| 16×2 I2C LCD | SDA (Serial Data) | A4 | I2C Data line. |
| SCL (Serial Clock) | A5 | I2C Clock line. | |
| VCC | Breadboard VCC (5V) | Power supply. | |
| GND | Breadboard GND | Ground connection. | |
| DHT Sensor | Data Pin | Digital Pin 2 | Digital signal for Temperature and Humidity data. |
| VCC | Breadboard VCC (5V) | Power supply. | |
| GND | Breadboard GND | Ground connection. | |
| 2-Channel Relay | IN1 (Control Pin for Fan) | Digital Pin 5 | Controls the first relay (Fan). |
| IN2 (Control Pin for Pump) | Digital Pin 6 | Controls the second relay (Water Pump). | |
| VCC | Breadboard VCC (5V) | Power for the relay module’s control logic. | |
| GND | Breadboard GND | Ground connection. |
5.Code
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// LCD
LiquidCrystal_I2C lcd(0x27, 16, 2); // Try 0x3F if LCD shows nothing
// DHT11
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// Soil Moisture
#define MOISTURE_PIN A0
int dryValue = 1023; // Adjust after calibration
int wetValue = 300; // Adjust after calibration
// Relays (Active LOW)
#define RELAY_FAN 5
#define RELAY_PUMP 6
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
pinMode(RELAY_FAN, OUTPUT);
pinMode(RELAY_PUMP, OUTPUT);
// Turn off relays initially
digitalWrite(RELAY_FAN, HIGH);
digitalWrite(RELAY_PUMP, HIGH);
lcd.setCursor(0, 0);
lcd.print(“System Starting”);
delay(2000);
lcd.clear();
Serial.println(“=== Smart Plant System Started ===”);
}
void loop() {
delay(2000); // 2 sec delay between readings // — Read Sensors —
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
int moistureRaw = analogRead(MOISTURE_PIN); // — Validate DHT Reading —
if (isnan(temperature) || isnan(humidity)) {
Serial.println(“Error: DHT sensor not reading!”);
return;
}
// — Convert Temperature to % (0°C = 0%, 50°C = 100%) —
int tempPercent = map(temperature, 0, 50, 0, 100);
tempPercent = constrain(tempPercent, 0, 100);
// — Convert Moisture to % —
int moisturePercent = map(moistureRaw, dryValue, wetValue, 0, 100);
moisturePercent = constrain(moisturePercent, 0, 100);
// — Fan Control by Temperature —
if (temperature > 30) // Fan ON above 30°C
digitalWrite(RELAY_FAN, LOW);
else
digitalWrite(RELAY_FAN, HIGH);
// — Pump Control by Moisture —
if (moisturePercent < 40) // Pump ON below 40%
digitalWrite(RELAY_PUMP, LOW);
else
digitalWrite(RELAY_PUMP, HIGH);
// — Serial Monitor Output —
Serial.print(“Temp: “);
Serial.print(temperature);
Serial.print(” °C | Humidity: “);
Serial.print(humidity);
Serial.print(“% | Soil: “);
Serial.print(moisturePercent);
Serial.print(“% | Fan: “);
Serial.print(digitalRead(RELAY_FAN) == LOW ? “ON” : “OFF”);
Serial.print(” | Pump: “);
Serial.println(digitalRead(RELAY_PUMP) == LOW ? “ON” : “OFF”);
// — LCD Display Output —
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“T:”);
lcd.print(temperature, 1);
lcd.print((char)223);
lcd.print(“C “);
lcd.print(digitalRead(RELAY_FAN) == LOW ? “F:ON” : “F:OFF”);
lcd.setCursor(0, 1);
lcd.print(“M:”);
lcd.print(moisturePercent);
lcd.print(“% “);
lcd.print(digitalRead(RELAY_PUMP) == LOW ? “P:ON” : “P:OFF”);
}
7.Reference
- https://projecthub.arduino.cc/djomaro/greenhouse-automation-63a3ac
- https://projecthub.arduino.cc/TechnicalEngineer/greenhouse-monitoring-with-arduino-cd9841


VIGYAN ASHRAM – KITCHEN DISPLAY & AUTOMATION SYSTEM
1. Introduction
This project presents the development of a digital information display system for the Vigyan Ashram Kitchen.
The system uses:
- Arduino Uno
- P10 LED Display (32×16)
- HC-05 Bluetooth Module
- EEPROM Memory
The main purpose of the system is to display:
- Present Students Count
- Absent Students Count
- Remaining Food / Waste Food (in KG)
- Scrolling Header: VIGYAN ASHRAM KITCHEN
All the data is sent wirelessly through Bluetooth, processed by Arduino, and displayed on a P10 LED board using a marquee scrolling effect. EEPROM is used to store values even after power restart.
This project is useful for daily kitchen management, record maintaining, and smart automation inside the Vigyan Ashram campus.
2. Components Required
| Component | Quantity | Description |
| Arduino UNO | 1 | Main microcontroller |
| P10 LED Display (32×16) | 1 | Main scrolling display |
| HC-05 Bluetooth Module | 1 | Wireless data communication |
| 5V 10A SMPS | 1 | Power supply for P10 display |
| Connecting Wires | As required | Jumper wires |
| EEPROM (Internal) | – | For storing data permanently |
3. Block Diagram
Mobile App → Bluetooth Module → Arduino UNO → P10 LED Display
↓
EEPROM Storage
4. Circuit Connections
| Module / Sensor | Pin | Arduino Pin | Description |
| Bluetooth HC-05 | TX | D5 | Software Serial RX |
| RX | D6 | Software Serial TX | |
| VCC | 5V | Power | |
| GND | GND | Ground | |
| P10 LED Display | HUB12 Connector | SPI Pins | Controlled through DMD library |
| Power Supply | 5V (10A) | P10 VCC | High-current supply for LED display |
P10 LED display requires strong power, hence external SMPS is used.
5. Working / System Operation
Step 1: Data Entry from Mobile App
Mobile sends formatted messages:
- “M2xx” → Present Students
- “M3xx” → Waste Food (KG)
Step 2: Arduino Processing
Arduino:
- Reads values from Bluetooth
- Calculates Absent = 72 − Present
- Converts float values
- Stores values in EEPROM (for memory retention)
Step 3: Display on P10 LED
The board shows a scrolling text:
VIGYAN ASHRAM KITCHEN PRESENT:65 ABSENT:07 WASTE FOOD:1.250KG
6. Code
#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include <SoftwareSerial.h>
#include <EEPROM.h>
#include “Arial_black_16.h”
#define DISPLAYS_ACROSS 1
#define DISPLAYS_DOWN 1
DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);
SoftwareSerial BT(5, 6);
int totalStudents = 72;
int presentCount;
int absentCount;
float wasteFoodKg;
char header[] = ” VIGYAN ASHRAM KITCHEN “;
int headerLen;
void ScanDMD() {
dmd.scanDisplayBySPI();
}
void setup() {
Timer1.initialize(5000);
Timer1.attachInterrupt(ScanDMD);
dmd.clearScreen(true);
dmd.selectFont(Arial_Black_16);
BT.begin(9600);
Serial.begin(9600);
EEPROM.get(0, presentCount);
EEPROM.get(4, wasteFoodKg);
if (presentCount < 0 || presentCount > totalStudents) presentCount = 0;
if (wasteFoodKg < 0 || wasteFoodKg > 100) wasteFoodKg = 0;
absentCount = totalStudents – presentCount;
headerLen = strlen(header);
Serial.println(“System Ready. Waiting for Bluetooth data…”);
}
void loop() {
if (BT.available()) {
String newMsg = BT.readStringUntil(‘\n’);
newMsg.trim();
Serial.print(“Received: “);
Serial.println(newMsg);
if (newMsg.startsWith(“M2”)) {
presentCount = newMsg.substring(2).toInt();
if (presentCount > totalStudents) presentCount = totalStudents;
absentCount = totalStudents – presentCount;
EEPROM.put(0, presentCount);
}
else if (newMsg.startsWith(“M3”)) {
wasteFoodKg = newMsg.substring(2).toFloat();
EEPROM.put(4, wasteFoodKg);
}
}
char wasteStr[10];
dtostrf(wasteFoodKg, 6, 3, wasteStr);
char scrollText[128];
sprintf(scrollText, “%s PRESENT:%d ABSENT:%d WASTE FOOD:%sKG “,
header, presentCount, absentCount, wasteStr);
int textLen = strlen(scrollText);
dmd.clearScreen(true);
dmd.selectFont(Arial_Black_16);
dmd.drawMarquee(scrollText, textLen, (32 * DISPLAYS_ACROSS) – 1, 0);
long start = millis();
long timer = start;
boolean ret = false;
while (!ret) {
if ((timer + 30) < millis()) {
ret = dmd.stepMarquee(-1, 0);
timer = millis();
}
}
}
7. Advantages
- Wireless data entry
- Large clear P10 LED display
- Auto calculation of absent count
- EEPROM memory storage
- Easy to install in kitchen area
- Useful for hostel/kitchen daily reporting
8. Applications
- School or Hostel Kitchen
- Mess Management
- Attendance & Food Tracking Systems
- Digital Notice Board
- Smart Campus Projects
9. Conclusion
The Vigyan Ashram Kitchen Display System successfully automates the daily reporting process for present students and food waste. The combination of Arduino + Bluetooth + P10 LED makes the system smart, efficient, and user-friendly. The scrolling display ensures visibility from a long distance, improving kitchen management efficiency.
10. References
- Arduino Documentation
- DMD LED Library Guides
- Vigyan Ashram FabLab Experiment Notes
- Custom Bluetooth Data Format (M2, M3 commands)

LCD Display
उद्देश :–
वातावरणातील मधील तापमान आणि आद्रता दाखवणे.
साहित्य:–
ऍक्रेलिक, LED डिस्प्ले, Arduino ,आर्डिनो , जम्पिंग वायर, स्क्वेअर बॉक्स, पावर जॉक, टेंपरेचर सेन्सर.
कृती:–
1. पहिल्यांदा डिस्प्ले जुने होते ते खोलून घेतले व त्याला रिपेरिंग केले.
2. त्यांच्या मध्ये आर्डिनो खराब झाले होते त्यांचे बदल करून घेतले
3. पहिल्यांदा डिस्प्ले एलईडी डिस्प्ले घेतला त्याला वायर शोल्डरिंग करून घेतली
4. त्याच्यानंतर डिस्प्ले सोल्डिंग केलेल्या वायरचे आर्डिनोला पिन कनेक्शन सोल्डिंग करून घेतले.
5. त्याच्यानंतर पावर जातीला शोल्डरग करून घेतले आर्डिनोला पावर देण्यासाठी
6. त्याच्यानंतर टेंपरेचर हुमेंटरी सेंसर घेतला व त्याला 3.3 होटेल ला व ग्राउंड ला असे तीन कनेक्शन केले व आर्डिनोला शोल्डरिंग करून घेतले
7. सर्व डिस्प्ले तयार झाल्यानंतर ट्रबल टेस्टिंग केली
8. चेकिंग झाल्यानंतर आर्डिनो मध्ये कोड अपलोड केला व चेकिंग ल रात्रभर ठेवून दिला.
9. चेक झाल्यानंतर त्याच्यामध्ये ग्लू गनने वायरिंग वरती ग्लू टाकून घेतला. सर्व झाल्यानंतर डिस्प्ले पॅकिंग करून घेतला.
10. त्याच्या वरती लावण्यासाठी माप घेतले त्याच्या मापाचे ऍक्रेलक मटेरियल कापून घेतले व त्याच्या ला बसवले

Data Logar
उदेश :–
पॉलीहाऊस मधील तापमान आणि आद्रता मोजणे.
साहित्य :–
स्क्वेअर बॉक्स , शोल्डिंग गन
कृती:–
- पहिल्यांदा डाटा लोकरचे सर्किट बघून घेतले त्याच्यानंतर कशी जोडणी केली आहे हे बघितले.
- डाटा लोकर च्या आयसी ला बॅटरी होल्डर यांना शोल्डरग करून घेतले.
- त्याला चार्जिंग मॉडेल आणि चार्जिंग रिटन नाही यावे त्याच्यासाठी मॉडेल बसवले.
- चल नंतर डाटा लॉगर चा स्क्वेअर बॉक्स घेऊन आलो त्याला ड्रिल मशीन ने पावर जॅक टेंपरेचर सेंसर हॉलमार करून घेतले.
- त्याच्यानंतर आय सी शोल्डरिंग करून घेतली त्याचे पिन कनेक्शन आणि टेंपरेचर सेंसर चे पिंक कनेक्शन करून घेतले
- बॅटरी होल्डर होते त्याचे कनेक्शन आयसीला दिले आणि एक कनेक्शन हे चार्जिंग सॉकेट ला लावून घेतले.
- पूर्ण बॉक्स व कनेक्शन झाल्यानंतर तो पॅक करून घेतला सरांकडे जाऊन कोण टाकून घेतला.

3d Printer
उदेश:–
प्रोजेक्ट साठी डिझाईन बनवणे
साहित्य:–
सॉलिड वर्क सॉफ्टवेअर थ्रीडी प्रिंटर आणि तयार केलेली डिझाईन
कृती:–
1. पहिल्यांदा सॉलिड वर्क मध्ये डिझाईन तयार करून घेतले
2. डिझाईन तयार केल्यानंतर तिला पेन ड्राइव मध्ये घेतले व थ्रीडी प्रिंटर चा फ्लॅश प्रिंट मध्ये त्याला किती मटेरियल वापरायचे आणि कुठे साईज वापरायची हे ऍडजेस्ट केले आणि हाईट चेंज केले.
3. सॉ सॉफ्टवेअर झाल्यानंतर थ्रीडी प्रिंटर मध्ये फाईल घेतली व त्याला कॉपी करून फाईल डिझाईन लावली
4. थ्री पेंटर मध्ये बेड लेवल कसे सेट करायचे ते शिकलो आणि फिलामेंट चेंज कसे करायचे हे त्यातून शिकलो.
5. डिझाईन व्हायला किती वेळ लागेल हे आपण त्याच्यामध्ये पाहू शकतो.

Vinay cutting mashine
उदेश:–
विनायक कटिंग चा उपयोग करून नाव बनवणे
साहित्य:–
विनायक कटिंग मशीन, लॅपटॉप,विनायक पेपर.
कृती:–
1. पहिल्यांदा विनर कटिंग क्रिकॅट ॲप डाऊनलोड करून घेतली आणि त्याचे करून घेतली .
2. ॲप ओपन करून घेतली व त्याच्यामध्ये टॅक्स ओपन केले व त्याच्या मध्ये नाव लिहिले .
3. डिझाईन तयार केल्यानंतर मेक वरती क्लिक केले की ब्लूटूथ ऑन करून मशीनला कनेक्ट करून घेतले
4. मशीन कनेक्ट केल्यानंतर बेड चेक होतो त्याच्यानंतर डिझाईन कट करायला सुरुवात होते.
5. कट झाले वरती सेलोटेपणी पेपर लावून त्याला काढून आपण कुठे पण शिकवू शकतो.

Lezar cutting
उदेश:–
लेझर मशीन शिकून घेणे व डिझाईन कट करणे
साहित्य:–
अॅक्रीलिक मटेरियल, एम डी एफ सीट , कार्डशिट, कार्ड पेपर, लेझर कटिंग मशीन, RD वर्क सॉफ्टवेअर
कृती:–
1. पहिल्यांदा सॉलिड वर्कमध्ये डिझाईन तयार करून घेतली व तिला पेन ड्राइव्ह मध्ये घेतले.
2. कंप्यूटर मध्ये डिझाईन आल्यानंतर आरडीवर मध्ये डिझाईन करून घेतली नंतर त्याला किती पावर आणि स्पीड द्यायचा हे ठरवून घेतले
3. प्रत्येक मटेरियल साठी वेगळे आवर आणि स्पीड चेंज करावा लागतो.
4. लेझर कटर चालवताना 30 डिग्री पेक्षा जास्त टेंपरेचर नसले पाहिजे पेक्षा कमी पाहिजे
5. लेझर कटर चालवायला शिकून घेतले.


Wood Routar
उदेश:–
लॅपटॉप गरम होऊ नये त्या साठी लॅपटॉप स्टँड बनवले
साहित्य:–
लॅपटॉप, प्लायवूड, वुड राउटर मशीन, क्लॅप.
कृती:–
1. पहिल्यांदा वर्कमध्ये डिझाईन तयार करून घेतली.
2. आईला व्ही पॅनल कन्वर्टर मध्ये dxf फाईल टाकली तिला कट करण्यासाठी तयार केले.
3. फाईल तयार करून घेतल्यानंतर मशीन चालू केली मशीन चालू असताना त्याच्या ओरिजिन सेट करून घेतला व तिला पार्ट वेगवेगळे कट करण्यासाठी चालू करून दिले.
4. लॅपटॉप टेबल कट केला व उड राऊटर मशीन कशी चालवायची हे शिकून घेतले.

PCB Mashine
उद्देश:—
प्रिंटेड सर्किट बोर्ड PCB मिलिंद मशीन ची माहिती घेणे व सर्किट समजून घेणे व पीसीबी कट करणे
साहित्य:–
पीसीबी मीनिंग मशीन, प्रेस कट आणि आउट कट बीट ,Ln की, कॉपर पीसी प्लेट, पाना,
कृती:–
1. पहिल्यांदा मिलिंद करताना kikad सॉफ्टवेअर वापरून डिझाईन तयार केली.
2. मशीन सेटअप केली x अक्ष y अक्ष z अक्ष यांची सेटिंग करून घेतली.
3. त्याच्यानंतर pcb कट करण्यासाठी जेपीजी फाईल मशीन ला लागणाऱ्या फाईल मध्ये व कन्व्हर्ट करून घेतले.
4 फाईल घरभर फाईल मध्ये कन्व्हर्ट केली व ती मशीनला फाईल चालते.
5. Pcb मिलिंग सॉफ्टवेअर ओपन करून त्याच्यावर बेडशीट करून घेतला.
6. बेड पूर्ण झाल्यानंतर पीसीबी मशीन चालू करून पीसीबी कट केली.
7. पीसीबी कट झाल्यानंतर बीट साफ करून घेतला व पीसीबी पेट्रोल साफ करून घेतली.
8. सीबी बोर्ड तयार झाल्यानंतर बर घासणे घासून घेतले.
