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

ComponentQuantityDescription
ESP32 Development Board1Main controller with WiFi
R307 Fingerprint Sensor1Biometric authentication
LCD 16×2 (I2C)1Displays system messages
LEDs (Green & Red)2Status indication
Buzzer1Audio feedback
Push Buttons2Add / Delete fingerprint
Jumper WiresAs requiredConnections
Breadboard / PCB1Circuit assembly
5V Power Supply1Power 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 PinESP32 PinFunction
VCC5VPower supply
GNDGNDGround
TXGPIO 16ESP32 RX2
RXGPIO 17ESP32 TX2

LCD 16×2 (I2C)

LCD PinESP32 Pin
SDAGPIO 21
SCLGPIO 22
VCC5V
GNDGND

Other Connections

DeviceESP32 PinFunction
Green LEDGPIO 25Attendance accepted
Red LEDGPIO 26Error / blocked
BuzzerGPIO 27Audio alert
Add ButtonGPIO 32Add fingerprint
Delete ButtonGPIO 33Delete fingerprint

5. Working Explanation

  1. The user places a finger on the R307 fingerprint sensor.
  2. ESP32 captures the fingerprint image and matches it with stored templates.
  3. If the fingerprint is not found, access is denied.
  4. 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.
  5. Attendance data is sent to Firebase with:
    • Finger ID
    • Finger name
    • Date & time
    • Status (Accepted / Blocked)
  6. Green LED + buzzer indicates success, red LED indicates error.
  7. Admin can:
    • Add new fingerprints using ADD button
    • Delete fingerprints using DEL button or Serial command
  8. 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

SoftwarePurpose
Arduino IDECode development
Firebase Realtime DatabaseCloud data storage
ESP32 WiFi LibraryInternet connectivity
Adafruit Fingerprint LibraryFingerprint control
LiquidCrystal I2C LibraryLCD control
NTP ServerReal-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

ComponentQuantityDescription
Solar Panel1Converts sunlight into electrical energy
Charging Module1Charges the lithium battery safely
USB Step-Up Power Boost Module (PFM Controller)1Boosts 3.7V battery voltage to 5V
3.7V Lithium Battery1Stores solar energy
Battery Holder1Holds the lithium battery safely
USB LED Lamp1Provides lighting
Mini USB Fan1Optional load for airflow
Plastic Storage Box1Enclosure for the project
Jumper WiresAs requiredFor 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

ModulePin / TerminalPin / TerminalFunction
Solar Panel+Charging Module IN+Supplies solar power
Solar PanelCharging Module IN−Ground
Charging ModuleB+Battery +Charges battery
Charging ModuleB-Battery −Battery ground
Battery+Boost Module IN+Supplies stored energy
BatteryBoost Module IN−Ground
Boost ModuleOUT +5VUSB Lamp / USB FanPower output
Boost ModuleGNDUSB Lamp / Fan GNDGround

5. Working Principle

  1. During daytime, the solar panel generates electricity.
    This electricity is used to charge the 3.7V lithium battery through the charging module.
  2. At night, solar power is not available.
  3. The battery supplies power to the USB step-up boost module.
  4. The boost module increases voltage from 3.7V to 5V.
  5. The USB LED lamp turns ON and provides light.
  6. 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

ComponentQuantityDescription
Arduino Uno1Main controller to read float sensor signal
Float Sensor1Detects high water level
Relay Module (5V)1Controls AC buzzer ON/OFF
Buzzer (AC 220V)1Provides audible alert for water overflow
Jumper WiresAs requiredConnect Arduino and relay module
5V Adapter1Powers Arduino and relay
Junction Box1Safe housing for electronics
AC 2-pin / 3-pin socket1Connects 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 / SensorModule PinArduino Uno PinFunction
Float SensorSignalDigital Pin D2Sends HIGH signal when water reaches sensor
Float SensorGNDGNDCommon ground
Relay ModuleVCC5VPowers relay module
Relay ModuleGNDGNDGround connection
Relay ModuleINDigital Pin D3Receives control signal from Arduino
AC BuzzerLiveRelay COM & NOAC supply controlled by relay
AC BuzzerNeutralAC NeutralCompletes AC circuit
Jumper WiresConnect 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)

  1. Float sensor mounted at maximum water level inside tank.
  2. Signal pin → Arduino Digital Pin D2, GND → Arduino GND.
  3. Relay IN → Arduino Digital Pin D3.
  4. AC Buzzer Live → Relay COM & NO, Neutral → AC Neutral.
  5. Entire electronics placed inside junction box for safety.
  6. 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 / ToolPurpose
Arduino IDEWrite and upload code to Arduino Uno
Jumper Wires / BreadboardFor testing connections
Optional: FritzingDraw 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

ComponentQuantityDescription
Arduino Uno1Main microcontroller
P10 LED Matrix Display1Displays text and temperature
DS18B20 Waterproof Sensor1Measures water temperature
Jumper WiresAs requiredFor connections between Arduino and display/sensor
4.7kΩ Resistor1Pull-up resistor for DS18B20 data line
Acrylic Sheet1Mounting display
USB Cable / 5V Adapter1Power 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 PinArduino Uno PinDescription
OEDigital 12Output Enable
ADigital 8Row select A
BDigital 9Row select B
NCNot connectedNot used
CLKDigital 11Clock line for shifting data
SCLKNot connectedNot used
DATADigital 10Serial data input
NCNot connectedNot used
NCNot connectedNot used
GNDGNDCommon ground

5. DS18B20 Sensor Connection

SensorPinArduino PinDescription
DS18B20DataDigital Pin D2OneWire data line
DS18B20VCC5VPower supply
DS18B20GNDGNDGround
Pull-up resistor4.7kΩBetween Data & 5VRequired 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

  1. Arduino reads temperature from the DS18B20 waterproof sensor.
  2. P10 LED display shows current temperature in °C.
  3. Welcome message scrolls every 1 minute.
  4. Display updates every 2 seconds.
  5. Mounted on acrylic sheet for clear visibility.

8. Software / Tools Used

Software / ToolPurpose
Arduino IDEWrite and upload code
DMD LibraryControl P10 LED matrix
OneWire LibraryCommunication with DS18B20
DallasTemperature LibraryRead temperature from DS18B20
TimerOne LibraryHandle DMD display scan updates
Fritzing (optional)Draw circuit diagram

9. References

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

ComponentQuantityDescription
Arduino Nano1Main microcontroller to control the relay
Relay Module (5V)1Switches AC supply of the UV tubelight
11W UV Tubelight1Used for sterilizing water (kills bacteria)
3-pin AC Socket1Connects UV tubelight to AC mains
Jumper WiresAs requiredFor making connections between Arduino and relay
5V Adapter / USB Power1Powers Arduino Nano and relay module
Junction Box1Housing 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 / SensorModule PinArduino Nano PinFunction
Relay ModuleVCC5VPowers the relay
Relay ModuleGNDGNDGround connection
Relay ModuleINDigital Pin D3Control signal to turn relay ON/OFF
UV TubelightLive wireRelay COM & NOAC supply controlled by relay
UV TubelightNeutralAC NeutralCompletes AC circuit
Jumper WiresConnect 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)

  1. Arduino Nano powered by 5V adapter.
  2. Relay Module connected to Digital Pin D3 of Arduino Nano.
  3. AC Live wire of UV Tubelight goes to COM & NO terminals of relay.
  4. AC Neutral wire goes directly to UV Tubelight.
  5. UV Light sterilizes water for 5 minutes after relay activation.
  6. 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 / ToolPurpose
Arduino IDETo write and upload Arduino Nano code
Jumper wires / BreadboardFor prototyping and connections
Optional: FritzingFor 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

ComponentQuantityDescription
Arduino Nano1Main microcontroller for controlling the system
LDR Module1Used to detect light intensity
Relay Module (5V)1Used to switch the electrical load
5V Adapter1Power supply for Arduino and relay
Junction Box1Used for safe and compact circuit housing
Jumper WiresAs requiredUsed 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 / SensorModule PinArduino Nano PinFunction
LDR ModuleVCC5VSupplies power to the LDR module
LDR ModuleGNDGNDCommon ground
LDR ModuleAOA0Sends analog light intensity signal
Relay ModuleVCC5VSupplies power to the relay
Relay ModuleGNDGNDCommon ground connection
Relay ModuleINDigital Pin D3Controls relay ON/OFF
Relay ModuleCOMAC PhaseCommon terminal for load
Relay ModuleNOLoad PhaseSupplies 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

ComponentQuantityDescription
Arduino Uno Board1The main microcontroller.
16×2 I2C LCD Display1For displaying real-time data.
Soil Moisture Sensor1Measures the water content in the soil.
DHT Temperature/Humidity Sensor1Measures ambient temperature and humidity.
2-Channel Relay Module1To control AC or high-power DC devices (Fan/Pump).
Breadboard1For easy power and ground distribution (VCC and GND).
Connecting WiresAs neededMale-to-Male and Male-to-Female jumper wires.
External Loads2Fan 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/SensorModule PinArduino Uno PinFunction
Soil Moisture SensorAO (Analog Output)A0Reads the analog moisture level from the soil.
VCCBreadboard VCC (5V)Power supply.
GNDBreadboard GNDGround connection.
16×2 I2C LCDSDA (Serial Data)A4I2C Data line.
SCL (Serial Clock)A5I2C Clock line.
VCCBreadboard VCC (5V)Power supply.
GNDBreadboard GNDGround connection.
DHT SensorData PinDigital Pin 2Digital signal for Temperature and Humidity data.
VCCBreadboard VCC (5V)Power supply.
GNDBreadboard GNDGround connection.
2-Channel RelayIN1 (Control Pin for Fan)Digital Pin 5Controls the first relay (Fan).
IN2 (Control Pin for Pump)Digital Pin 6Controls the second relay (Water Pump).
VCCBreadboard VCC (5V)Power for the relay module’s control logic.
GNDBreadboard GNDGround 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

  1. https://projecthub.arduino.cc/djomaro/greenhouse-automation-63a3ac
  2. 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

ComponentQuantityDescription
Arduino UNO1Main microcontroller
P10 LED Display (32×16)1Main scrolling display
HC-05 Bluetooth Module1Wireless data communication
5V 10A SMPS1Power supply for P10 display
Connecting WiresAs requiredJumper 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 / SensorPinArduino PinDescription
Bluetooth HC-05TXD5Software Serial RX
RXD6Software Serial TX
VCC5VPower
GNDGNDGround
P10 LED DisplayHUB12 ConnectorSPI PinsControlled through DMD library
Power Supply5V (10A)P10 VCCHigh-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

  1. Arduino Documentation
  2. DMD LED Library Guides
  3. Vigyan Ashram FabLab Experiment Notes
  4. 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

पॉलीहाऊस मधील तापमान आणि आद्रता मोजणे.

स्क्वेअर बॉक्स , शोल्डिंग गन

  1. पहिल्यांदा डाटा लोकरचे सर्किट बघून घेतले त्याच्यानंतर कशी जोडणी केली आहे हे बघितले.
  2. डाटा लोकर च्या आयसी ला बॅटरी होल्डर यांना शोल्डरग करून घेतले.
  3. त्याला चार्जिंग मॉडेल आणि चार्जिंग रिटन नाही यावे त्याच्यासाठी मॉडेल बसवले.
  4. चल नंतर डाटा लॉगर चा स्क्वेअर बॉक्स घेऊन आलो त्याला ड्रिल मशीन ने पावर जॅक टेंपरेचर सेंसर हॉलमार करून घेतले.
  5. त्याच्यानंतर आय सी शोल्डरिंग करून घेतली त्याचे पिन कनेक्शन आणि टेंपरेचर सेंसर चे पिंक कनेक्शन करून घेतले
  6. बॅटरी होल्डर होते त्याचे कनेक्शन आयसीला दिले आणि एक कनेक्शन हे चार्जिंग सॉकेट ला लावून घेतले.
  7. पूर्ण बॉक्स व कनेक्शन झाल्यानंतर तो पॅक करून घेतला सरांकडे जाऊन कोण टाकून घेतला.

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. सीबी बोर्ड तयार झाल्यानंतर बर घासणे घासून घेतले.