Capstone Project b8
Capstone Project b8
(AUTONOMOUS)
A Capstone Project Report on
COLLEGE TIME TABLE AND NOTICE BOARD DISPLAY WITH AUTO SMS TO
FACULTY
BACHELOR OF TECHNOLOGY
IN
www.audisankara.ac.in
2025
2
AUDISANKARA COLLEGE OF ENGINEERING & TECHNOLOGY
(AUTONOMOUS)
Accredited by NAAC with ‘A+’ Grade | Accredited by NBA Approved by AICTE | Affiliated to JNTUA
CERTIFICATE
This is to certify that the Capstone project report on entitled “COLLEGE TIME
TABLE AND NOTICE BOARD DISPLAY WITH AUTO SMS TO FACULTY” is the
Bonafide work done by the K. VENKATA RUCHITHA (21G21A0475), P. PAVITHRA
(21G21A04D4), M. SANTHOSH KUMAR (21G21A04A3), K. GAGAN CHANDRA
(21G21A0494), in partial fulfillment of the requirements for the award of the degree of
Bachelor of Technology in Electronics and Communication Engineering, from
Jawaharlal Nehru Technological University Anantapur, Anantapuramu, during the year
2024-2025.
i
AUDISANKARA COLLEGE OF ENGINEERING & TECHNOLOGY
(AUTONOMOUS)
Accredited by NAAC with ‘A+’ Grade | Accredited by NBA Approved by AICTE | Affiliated to JNTUA
DECLARATION
Date:
Place:
PROJECT ASSOCIATES
K. VENKATA RUCHITHA(21G21A0475)
P. PAVITRA(21G21A04D4)
M. SANTHOSH KUMAR(21G21A04A3)
K. GAGAN CHANDRA(21G21A0494)
ii
ACKNOWLEDGEMENT
We express our deepest gratitude to Dr. Vanki Penchalaiah, Chairman of Audisankara
College of Engineering & Technology, for providing us with an excellent academic environment
and unwavering support throughout our project.
We sincerely appreciate the guidance and support of Dr. Raja Murugadoss Jeyaraju,
Director (Engg., & Principal), whose leadership and vision have inspired us to strive for
excellence.
Our sincere gratitude goes to Mr. J. Amarendra M. Tech., (Ph.D)., Head of the
Department, for valuable insights, motivation, and support, which greatly contributed to the
successful completion of our project.
We also extend our appreciation to Dr. G. Chenchu krishnaiah, M.E, PhD, MISTE.,
Department Project Coordinator, for providing valuable feedback and ensuring the smooth
progress of our project.
We would like to extend our heartfelt appreciation to our parents and friends, whose
encouragement, patience, and moral support have been our driving force in completing this
capstone project successfully.
Finally, we acknowledge the collaborative efforts of our team members, whose dedication and
hard work made this project possible.
K. VENKATA RUCHITHA(21G21A0475)
P. PAVITHRA (21G21A04D4)
M. SANTHOSH KUMAR ( 21G21A04A3)
K. GAGAN CHANDRA (21G21A0494)
iii
CONTENTS
ABSTRACT 1
iv
3.3.2 Circuit Features 18
3.3.3 Block Diagram 19
3.3.4 Basic power Supply Circuit 19
3.4 Liquid crystal Display 20*4 20
3.4.1 What is a LCD? 20
3.4.2 How LCDs Work 21
3.4.3 20*4 LCD Display 21
3.4.4 Pin Functions 22
3.4.5 20*4 LCD Commands 23
3.5 GSM Module 25
3.5.1. Introduction 25
3.5.2 What Does GSM Offer 26
3.5.3 Frequency In GSM 26
3.5.4 Description 27
3.5.5 Features 28
3.6 I2C Protocol 29
3.6.1 Introduction Of I2C Protocol 29
3.6.2 What Is I2C 29
3.6.3 Features Of I2C Bus 30
3.6.4 Steps Of I2C data Transmitter 31
3.7 Voltage Regulator 34
3.7.1 Description 34
3.7.2 Types of Voltage Regulator 34
3.7.3 Step Up Voltage Regulator 37
3.7.4 Step Down Voltage Regulator 37
3.8 Real Time Clock DS1307 38
3.8.1 Breif About RTC 38
3.8.2 Pin Description Of RTC 39
3.8.3 Features 39
v
CHAPTER 4:SOFTWARE DESCRIPTION 41-47
4.1 Introduction to Arduino IDE 41
4.2 Steps of working 42
CHAPTER 5:SOFTWARE IMPLEMENTATION 48-82
CHAPTER 6:CONCLUSION AND FUTURE SCOPE 83
REFERENCES 84
vi
LIST OF FIGURES
2.1 Block diagram of College time table and notice board display with auto SMS to faculty 9
2.2 Schematic diagram of College time table and notice board display with auto sms to faculty 9
vii
LIST OF TABLES
DESCRIPTION PAGE NO
viii
ABSTRACT
In academic institutions, managing and communicating schedules efficiently is vital for smooth
operations. This project introduces an automated system for displaying the college timetable and notice
board on a digital display, complemented by an automated SMS notification system for faculty
members. The goal is to streamline the process of informing faculty members about their class
schedules, changes in timings, and important announcements, reducing manual errors and enhancing
overall efficiency in managing academic and administrative information.
The system is built around a centralized database that stores the college timetable and notice board
data. This database is continuously updated, ensuring that any changes to the schedule or new notices
are instantly reflected on the digital display. The timetable is automatically retrieved from the database
and shown in real-time on large digital screens across the campus, ensuring students and faculty can
access up-to-date information without delay.
Along with the digital display, the system integrates an automated SMS service that sends instant text
messages to faculty members whenever there is a change in their scheduled classes, a new notice is
posted, or important events are approaching. The SMS system ensures that faculty members are
immediately informed, even if they are not in proximity to the digital display. This helps in minimizing
any disruptions caused by last-minute changes and promotes smooth coordination between the faculty
and administration.
Overall, this project aims to provide a more efficient, streamlined, and automated way to handle
timetable management and communication. The integration of real-time updates on digital boards with
the convenience of SMS notifications ensures better communication, reduces administrative overhead,
and helps faculty stay informed and organized, leading to a more productive academic environment.
1
CHAPTER-1
An embedded system can be defined as a computing device that does a specific focused job.
Appliances such as the air-conditioner, VCD player, DVD player, printer, fax machine, mobile phone
etc. are examples of embedded systems. Each of these appliances will have a processor and special
hardware to meet the specific requirement of the application along with the embedded software that is
executed by the processor for meeting that specific requirement. The embedded software is also called
“firm ware”. The desktop/laptop computer is a general purpose computer. You can use it for a variety
of applications such as playing games, word processing, accounting, software development and so on.
Embedded systems do a very specific task, they cannot be programmed to do different things. .
Embedded systems have very limited resources, particularly the memory. Generally, they do not have
secondary storage devices such as the CDROM or the floppy disk. Embedded systems have to work
against some deadlines. A specific job has to be completed within a specific time. In some embedded
systems, called real-time systems, the deadlines are stringent. Missing a deadline may cause a
catastrophe-loss of life or damage to property. Embedded systems are constrained for power. As many
embedded systems operate through a battery, the power consumption has to be very low.
Some embedded systems have to operate in extreme environmental conditions such as very
high temperatures and humidity.
The first recognizably modern embedded system was the Apollo Guidance Computer, developed
by Charles Stark Draper at the MIT instrumentation Laboratory. The first mass-produced embedded
system was the automatics D-17 guidance Computer for the Minuteman (missile), released in 1961. It
was built from transistor logic and had a hard disk for main memory. Since these early applications in
the 1960s, embedded systems have come down in price. There has also be an enormous rise in
2
processing power and functionality. For example the first microprocessor was the Intel 4004, which
found its way into calculators and other small systems, but required external memory and support chips.
Every embedded system consists of custom-built hardware built around a Central Processing
Unit (CPU). This hardware also contains memory chips onto which the software is loaded. The software
residing on the memory chip is also called the ‘firmware’.
The operating system runs above the hardware, and the application software runs above the
operating system. The same architecture is applicable to any computer including a desktop computer.
However, there are significant differences. It is not compulsory to have an operating system in every
embedded system. For small appliances such as remote control units, air conditioners, toys etc., there is
no need for an operating system and you can write only the software specific to that application. For
applications involving complex processing, it is advisable to have an operating system. In such a case,
you need to integrate the application software with the operating system and then transfer the entire
software on to the memory chip. Once the software is transferred to the memory chip, the software will
continue to run for a long time you don’t need to reload new software.
Now, let us see the details of the various building blocks of the hardware of an embedded system. As
shown in Fig. the building blocks are;
3
Communication interfaces
Application-specific circuitry
The Central Processing Unit (processor, in short) can be any of the following: microcontroller,
microprocessor or Digital Signal Processor (DSP). A micro-controller is a low-cost processor. Its main
attraction is that on the chip itself, there will be many other components such as memory, serial
communication interface, analog-to digital converter etc. So, for small applications, a micro-controller
is the best choice as the number of external components required will be very less. On the other hand,
microprocessors are more powerful, but you need to use many external components with them. DSP is
used mainly for applications in which signal processing is involved such as audio and video processing.
1.3.2. Memory:
The memory is categorized as Random Access 11emory (RAM) and Read Only Memory
(ROM). The contents of the RAM will be erased if power is switched off to the chip, whereas ROM
retains the contents even if the power is switched off. So, the firmware is stored in the ROM. When
power is switched on, the processor reads the ROM; the program is program is executed.
Unlike the desktops, the input devices to an embedded system have very limited capability.
There will be no keyboard or a mouse, and hence interacting with the embedded system is no easy task.
Many embedded systems will have a small keypad-you press one key to give a specific command. A
keypad may be used to input only the digits. Many embedded systems used in process control do not
have any input device for user interaction; they take inputs from sensors or transducers 1’fnd produce
electrical signals that are in turn fed to other systems.
The output devices of the embedded systems also have very limited capability. Some embedded
systems will have a few Light Emitting Diodes (LEDs) to indicate the health status of the system
modules, or for visual indication of alarms. A small Liquid Crystal Display (LCD) may also be used to
display some important parameters.
4
1.3.5. Communication interfaces:
The embedded systems may need to, interact with other embedded systems at they may have to
transmit data to a desktop. To facilitate this, the embedded systems are provided with one or a few
communication interfaces such as RS232, RS422, RS485, Universal Serial Bus (USB), IEEE 1394,
Ethernet etc.
1.4. PERIPHERALS:
Peripherals are the various devices that are connected to the CPU, for performing various
functions. Embedded systems talk with the outside world via peripherals, such as:
1.5. PROCCESORS:
Processors are the key elements in any embedded system. They interact with the memory, where
the various instructions of useful functions into a single IC package.
The ability to execute a stored set of instructions to carry out user defined tasks.
The ability to be able to access external memory chips to both read and writes data from and to the
memory.
5
1.6 RELIABILITY:
Embedded systems often reside in machines that are expected to run continuously for years
without errors and in some cases recover by themselves if any error occurs. Therefore the software is
usually developed and tested more carefully than that for PC, and unreliable mechanical moving parts
such as Disk drives, switches or buttons are avoided.
The system cannot safely be shut down for repair, or it is too inaccessible to repair. Solutions
may involve subsystems with redundant spares that can be switched over to, or software “limp
modes” that provide partial function. Examples include space systems, undersea cables,
navigational beacons, bore-hole systems and automobiles.
The system must be kept running for safety reasons. “Limp modes” are less tolerable. Often
backups are selected by an operator. Examples include Aircraft, Navigation, Reactor control
systems, safety-critical Chemical factory controls, Train signals and engines on single-engine
Aircraft.
The system will lose large amounts of money when shutdown: Telephone switches, Factory
controls, Bridge and elevator controls, funds transfer and market making, automated sales and
service.
6
CHAPTER-2
2.1 OVERVIEW:
The College Time Table and Notice Board Display with Auto SMS to Faculty system is designed
to automate and enhance the management of academic schedules and communication within educational
institutions. The project combines the display of real-time timetables and notices on digital boards across
the campus with an automatic SMS notification service, ensuring seamless communication between the
administration and faculty members. The core functionality of the system revolves around a centralized
database where the timetable and notice board content are stored and maintained. Faculty and
administrative staff can easily update the timetable or post notices through a simple user interface. These
updates are automatically reflected on digital displays located in key areas of the campus, ensuring that
students and faculty have immediate access to the latest information. This minimizes the reliance on
physical notice boards and paper schedules, making the entire process more efficient and
environmentally friendly.
In addition to the digital display, the system features an automated SMS service that sends timely
notifications to faculty members. Whenever there is a change in the timetable, a new notice is posted,
or an important announcement is made, the relevant faculty members receive an SMS alert. This ensures
that faculty members are informed of any updates, even when they are away from their offices or not in
front of the notice board. The SMS service is designed to be simple and reliable, with automatic updates
triggered by changes in the database.
Overall, the system aims to simplify the communication process within the college by offering an
integrated solution for timetable management and faculty notifications. It ensures that all stakeholders
are well-informed and reduces the chances of miscommunication or missed updates.
7
2.2 BLOCK DIAGRAM:
8
2.4 STEPS OF WORKING:
Switch on the power supply.
The system initializes, and all components (LCD, GSM module, Microcontroller) are
activated.
The microcontroller retrieves the scheduled timetable from memory.
The LCD/LED display updates in real-time to show the current and upcoming classes.
Admins can update the notice board via a web or mobile interface.
The latest notices are displayed dynamically on the digital board.
Before a class starts, the system sends an SMS alert to the respective faculty.
SMS contains details like subject, time, and classroom.
Admins can send urgent messages that trigger SMS notifications to faculty and students.
These messages also appear on the display board.
The circuit for the College Time Table and Notice Board Display with Auto SMS to Faculty is
designed to provide seamless integration between digital displays, a centralized database, and an
automated SMS notification system. The heart of the circuit is a microcontroller such as an Arduino
or Node MCU, which coordinates all functions of the system. The microcontroller is connected to a
Wi-Fi or Ethernet module to enable real-time communication with a server that holds the timetable
and notice data. This allows the system to fetch the latest updates from the database and transmit them
to the digital display. The display, typically an LED or LCD screen, is interfaced with the
microcontroller, and it continuously shows the updated timetable and notices, ensuring that the
information is accessible to students and faculty members across campus.In addition to the real-time
display functionality, the circuit incorporates an SMS notification module, such as a GSM module or
a Wi-Fi-based SMS service, to send automatic updates to faculty members. When changes are made
to the timetable or new notices are posted, the microcontroller retrieves the relevant information from
the database and sends it to the SMS module. The SMS module then transmits the updatedirectly to the
affected faculty member’s mobile phone, ensuring they are promptly informed. This feature eliminates
the need for manual communication and enhances the speed and reliability of the notification process,
ensuring that faculty members never miss important updates.
9
The circuit also includes essential power management components, such as voltage regulators, fuses,
and capacitors, to ensure the stability and reliability of the system. The microcontroller and connected
modules operate efficiently at a consistent voltage, preventing damage from power fluctuations. The
entire system is designed to be low-power and cost-effective while ensuring robust performance. The
integration of a digital display for public information dissemination, combined with the automatic SMS
feature for personalized faculty updates, creates an efficient and user-friendly solution for managing
college timetables and notices, enhancing overall communication and coordination within the
institution.
10
CHAPTER-3
HARDWARE DESCRIPTION
Most people call ESP8266 as a WIFI module, but it is actually a microcontroller. ESP8266 is the name
of the microcontroller developed by Express if Systems which is a company based out of shanghai. This
microcontroller has the ability to perform WIFI related activities hence it is widely used as a WIFI
module.
There are many types of ESP8266 module available ranging from ESP8266-01 to ESP8266-12. The one
that we are using in the tutorial is the ESP8266-12. We already covered ESP8266-01 in our previous
article. However all the ESP modules have only one type of ESP processor, what differs is only the type
of breakout bard used. The breakout board of ESP8266-01 will have only 2 GPIO pins whereas ESP-12
has 16 GPIO Pins.
Many equipments around us cannot be connected to internet on its own. So, this chip enables these
equipment to connect with internet and make them IoT devices. Now, you can easily open your doors
for IoT Projects with the help of this module. This low cost, small size module could do wonders and is
really simple and easy to use, provided we follow the right steps.
11
3.1.2.PIN CONFIGURATION:
GPIO Pins: NodeMCU has 16 GPIO pins as shown in above diagram which can be used to
control other peripheral devices like sensors, LEDs, switches etc. These pins can also be used as
PWM pins.
ADC (Analog to Digital Converter) Pin: It has one ADC channel and can be accessed through
pin A0.
SPI Pins: There are 4 pins (SCK, MISO, MOSI etc) available for SPI communication as shown
in green rectangle in diagram.
I2C Pins: It has I2C functionality support but due to internal use of these pins, you have to find
which pin is I2C.
UART Pins: It has two UART interfaces. Since, RXD0 and TXD0 is used to upload codes to
board, we cannot use them while programming this module. We can use RXD1 and TXD1
anytime.
12
Operating Voltage 5V
GPIOs 16
ADC 1, 10-bit
3.2.SWITCHES:
3.2.1.INTRODUCTION:
An electrical switch is any device used to interrupt the flow of electrons in a circuit. Switches are
essentially binary devices: they are either completely on (“closed”) or completely off (“open”). There
are many different types of switches, and we will explore some of these types in this chapter.
Though it may seem strange to cover this elementary electrical topic at such a late stage in this
book series, I do so because the chapters that follow explore an older realm of digital technology based
on mechanical switch contacts rather than solid-state gate circuits, and a thorough understanding of
switch types is necessary for the undertaking. Learning the function of switch-based circuits at the same
time that you learn about solid-state logic gates makes both topics easier to grasp, and sets the stage for
an enhanced learning experience in Boolean algebra, the mathematics behind digital logic circuits.
3.2.2.Types Of Switches:
Any switch designed to be operated by a person is generally called a hand switch, and they are
manufactured in several varieties:
Toggle switches are actuated by a lever angled in one of two or more positions. The
13
common light switch used in household wiring is an example of a toggle switch. Most toggle switches
will come to rest in any of their lever positions, while others have an internal spring mechanism returning
the lever to a certain normal position, allowing for what is called “momentary” operation.
Pushbutton switches are two-position devices actuated with a button that is pressed and released.
Most pushbutton switches have an internal spring mechanism returning the button to its “out,” or
“unpressed,” position, for momentary operation. Some pushbutton switches will latch alternately on or
off with every push of the button. Other pushbutton switches will stay in their “in,” or “pressed,” position
until the button is pulled back out. This last type of pushbutton switches usually have a mushroom-
shaped button for easy push-pull action.
Electronic switches
A relay is an electrically operated switch. Many relays
use an electromagnet to operate a switching mechanism
mechanically, but other operating principles are also
used.
Solid-state relays control power circuits with no
moving parts, instead using a semiconductor device to
perform switching—often a silicon-controlled rectifier or triac.
The analogue switch uses two MOSFET transistors in a transmission gate arrangement as a switch
that works much like a relay, with some advantages and several limitations compared to an
electromechanical relay.
The power transistor(s) in a switching voltage regulator, such as a power supply unit, are used like a
switch to alternately let power flow and block power from flowing.
3.3.POWER SUPPLY:
3.3.1.DESCRIPTION:
A variable regulated power supply, also called a variable bench power supply, is one where you
can continuously adjust the output voltage to your requirements. Varying the output of the power supply
14
is the recommended way to test a project after having double checked parts placement against circuit
drawings and the parts placement guide.
This type of regulation is ideal for having a simple variable bench power supply. Actually this is
quite important because one of the first projects a hobbyist should undertake is the construction of a
variable regulated power supply. While a dedicated supply is quite handy e.g. 5V or 12V, it's much
handier to have a variable supply on hand, especially for testing.
Most digital logic circuits and processors need a 5 volt power supply. To use these parts we need
to build a regulated 5 volt source. Usually you start with an unregulated power supply ranging from 9
volts to 24 volts DC (A 12 volt power supply is included with the Beginner Kit and the Microcontroller
Beginner Kit.). To make a 5 volt power supply, we use a LM7805 voltage regulator IC (Integrated
Circuit). The IC is shown below.
15
Filtering unit:
Filter circuit which is usually a capacitor acts as a surge arrester always follows the rectifier unit. This
capacitor is also called as a decoupling capacitor or a bypass capacitor, is used not only to short the
ripple with frequency to ground but also leave the frequency of the DC to appear at the output.
Regulators:
The voltage regulators play an important role in any power supply unit. The primary purpose of a
regulator is to aid the rectifier and filter circuit in providing a constant DC voltage to the device. Power
supplies without regulators haveinherent problem of changing DC voltage values due to variations in
the load or due to fluctuations in the AC line voltage. With a regulator connected to DC output, the
voltage can be maintained within a close tolerant region of the desired output. IC 7805 and 7812
regulators are used in this project for providing a DC voltage of +5V and +12V respectively.
3.3.2.CIRCUIT FEATURES:
• Brief description of operation: Gives out well regulated +5V output, output current capability of 100
mA
• Circuit protection: Built-in overheating protection shuts down output when regulator IC gets too hot
• Circuit complexity: Very simple and easy to build
• Circuit performance: Very stable +5V output voltage, reliable operation
• Availability of components: Easy to get, uses only very common basic components
• Design testing: Based on datasheet example circuit, I have used this circuit successfully as part of
many electronics projects
• Applications: Part of electronics devices, small laboratory power supply
• Power supply voltage: Unregulated DC 8-18V power supply
• Power supply current: Needed output current + 5 mA
• Component costs: Few dollars for the electronics components + the input transformer cost
16
3.3.3.BLOCK DIAGRAM:
17
The principal advantage of a bridge rectifier is you do not need a centre tap on the secondary of
the transformer. A further but significant advantage is that the ripple frequency at the output is twice the
line frequency (i.e. 50 Hz or 60 Hz) and makes filtering somewhat easier.
Now the RMS secondary voltage (primary is whatever is consistent with your area) for our power
transformer T1 must be our desired output Vo PLUS the voltage drops across D2 and D4 ( 2 * 0.7V)
divided by 1.414.
This means that Vsec = [13V + 1.4V] / 1.414 which equals about 10.2V. Depending on the VA rating
of your transformer, the secondary voltage will vary considerably in accordancewith the applied load.
The secondary voltage on a transformer advertised as say 20VA will be much greater if the secondary
is only lightly loaded.
If we accept the 2.5% ripple as adequate for our purposes then at 13V this becomes 13 *
0.025 = 0.325 Vrms. The peak to peak value is 2.828 times this value. Vrip = 0.325V X 2.828 = 0.92 V
and this value is required to calculate the value of C1. Also required for this calculation is the time
interval for charging pulses. If you are on a 60Hz system it it 1/ (2 * 60 ) = 0.008333 which is 8.33
milliseconds. For a 50Hz system it is 0.01 sec or 10 milliseconds.
3.4.LCD 20X4:
3.4.1.What is a LCD(Liquid Crystal Display)?
A liquid crystal display or LCD draws its definition from its name itself. It is combination of two
states of matter, the solid and the liquid. LCD uses a liquid crystal to produce a visible image. Liquid
crystal displays are super-thin technology display screen that are generally used in laptop computer
screen, TVs, cell phones and portable video games. LCD’s technologies allow displays to be much
thinner when compared to cathode ray tube (CRT) technology.
Liquid crystal display is composed of several layers which include two polarized panel filters and
electrodes. LCD technology is used for displaying the image in notebook or some other electronic
devices like mini computers. Light is projected from a lens on a layer of liquid
crystal. This combination of colored light with the grayscale image of the crystal (formed as electric
current flows through the crystal) forms the colored image. This image is then displayed on the screen.
An LCD is either made up of an active matrix display grid or a passive display grid. Most of the
Smartphone’s with LCD display technology uses active matrix display, but some of the older displays
still make use of the passive display grid designs.
18
Liquid crystal display screen works on the principle of blocking light rather than emitting light.
LCD’s requires backlight as they do not emits light by them. We always use devices which are made up
of LCD’s displays which are replacing the use of cathode ray tube. Cathode ray tube draws more power
compared to LCD’s and are also heavier and bigger.
3.4.2.How LCDs Work?
The principle behind the LCD’s is that when an electrical current is applied to the liquid crystal
molecule, the molecule tends to untwist. This causes the angle of light which is passing through the
molecule of the polarized glass and also cause a change in the angle of the top polarizing filter. As a
result a little light is allowed to pass the polarized glass through a particular area of the LCD. Thus that
particular area will become dark compared to other. The LCD works on the principle of blocking light.
While constructing the LCD’s, a reflected mirror is arranged at the back. An electrode plane is made of
indium-tin oxide which is kept on top and a polarized glass with a polarizing film is also added on the
bottom of the device. The complete region of the LCD has to be enclosed by a common electrode and
above it should be the liquid crystal matter.
3.4.3.20X4 LCD Display Module:
19
Specifications: 20×4
Built-in controller (SPLC780D)
4-bit or 8-bit MPU interfaces
5×7 dot characters with cursor
20 character x 4 line display
Module Size: 98.0mm(L) * 60.0mm(W)* 13.5mm(H)
Viewing Area: 76.0mm(L)* 25.5mm(W)
5V / 3.3V input models available
3.4.4.PIN FUNCTIONS:
There are pins along one side of the small printed board used for connection to the microcontroller.
There are total of 14 pins marked with numbers (16 in case the background light is built in). Their
function is described in the table below:
Logic
Function Pin Number Name Description
State
Ground 1 Vss - 0V
Power
2 Vdd - +5V
supply
20
0 D0 – D7 are interpreted as commands
4 RS
1 D0 – D7 are interpreted as data
2 Return home
21
A Display off, cursor on
Advantages of an LCD’s:
LCD’s consumes less amount of power compared to CRT and LED
LCD’s are consist of some microwatts for display in comparison to some mill watts for LED’s
LCDs are of low cost
Provides excellent contrast
LCD’s are thinner and lighter when compared to cathode ray tube and LED
Disadvantages of an LCD’s:
Require additional light sources
22
Range of temperature is limited for operation
Low reliability
Speed is very low
LCD’s need an AC drive
Applications of Liquid Crystal Display
Liquid crystal technology has major applications in the field of science and engineering as well
on electronic devices.
Liquid crystal thermometer
Optical imaging
The liquid crystal display technique is also applicable in visualization of the radio frequency
waves in the waveguide
Used in the medical applications
3.5.GSM MODULE
3.5.1. INTRODUCTION:
GSM (Global System for Mobile communications) is an open, digital cellular technology used for
transmitting mobile voice and data services.GSM (Global System for Mobile communication) is a
digital mobile telephone system that is widely used in Europe and other parts of the world. GSM uses a
variation of Time Division Multiple Access (TDMA) and is the most widely used of the three digital
wireless telephone technologies (TDMA, GSM, and CDMA). GSM digitizes and compresses data, then
sends it down a channel with two other streams of user data, each in its own time slot. It operates at
either the 900 MHz or 1,800 MHz frequency band.
23
GSM supports voice calls and data transfer speeds of up to 9.6 kbit/s, together with the transmission of
SMS (Short Message Service).
GSM operates in the 900MHz and 1.8GHz bands in Europe and the 1.9GHz and 850MHz bands in the
US. The 850MHz band is also used for GSM and 3G in Australia, Canada and many South American
countries. By having harmonized spectrum across most of the globe, GSM’s international roaming
capability allows users to access the same services when travelling abroad as at home. This gives
consumers seamless and same number connectivity in more than 218 countries.
The network in the GSM operates at different frequencies based upon the location and spectrum.
The spectrums have been upgrading for every few years where the change of data rate and network
availability. These GSM networks have been divided as 2G, 3G, 4G and 5G (till date).
More than 90% of the world’s population covers the frequency of terrestrial networks and made
them to extend, where coverage is unavailable. Today more than 225 countries are under the same
connectivity of GSM satellite.
3.5.4.DESCRIPTION:
As for the above information we have understood the network of GSM which is used to transfer the
data with the high speed and security by allocating the band width. To utilize the network over a long
distance between the devices MODEM is usedBut the dial-up is the fixed lines which transfers electronic
signals over wire but whereas GSM Modem transfer the data via radio waves.
GSM Modem is a device which requires a memory based card that contains the information of the
user and also its allocated frequencies, this card is known as SIM (Subscriber Interface Module). By
using this SIM in the GSM Modem we can connect to wireless network under the globe. This SIM card
has the information of
24
By the help of SIM in this project we take a GSM Modem of model number SIM-900 which provides
us with the frequency 900MHz connected to the global network. The following functions can be done
by using some AT commands like
A brief description of the difference between SIM900 and SIM800 GSM modules. SIM800 modules are
upgraded version of its previous successful GSM/GPRS/GPRS module series SIM900. There are
multiple sub versions of each series, each of which cater to a different set of users and applications.
3.5.5.FEATURES:
Quad-band 850/900/1800/1900MHz
Supports A-GPS
25
3.6. I2C PROTOCOL
An I2C protocol is one of the serial communication protocols that are used for the chip to chip
communication. Similar to the I2C protocol, SPI and UART also used for the chip to chip
communication.
The I2C is the short form of Inter-Integrated Circuit, is a type of bus, which designed and
developed by Philips in 1980 for inter-chip communication.I2C is adopted by a lot of vendor companies
for the chip to chip communication.
It is a multi-master and multi-slave serial communication protocol means that we have the
freedom to attach multiple IC at a time with the same bus. In I2C protocol, communication always
started by the master and in the case of multi-master, only one master has the ownership of the bus.
3.6.2.WHAT IS I2C?
I2C is a serial communication protocol. It provides the good support to the slow devices, for
example, EEPROM, ADC, and RTC etc. I2c is not only used with the single board but also used with
the other external components which have connected with boards through the cables.
I2C is basically two-wire communication protocol. It uses only two wires for the
communication. In which one wire is used for the data (SDA) and other wire is used for the clock (SCL).
SDA (Serial Data) – The line for the master and slave to send and receive data.
SCL (Serial Clock) – The line that carries the clock signal.
26
I2C is a serial communication protocol, so data is transferred bit by bit along a single wire (the
SDA line).
In I2C, both buses are bidirectional, which means master able to send and receive the data from
the slave. The clock bus is controlled by the master but in some situations slave is also able to suppress
the clock signal, but we will discuss it later.
Additionally, an I2C bus is used in the various control architecture, for example, SMBus (System
Management Bus), PMBus (Power Management Bus), IPMI (Intelligent Platform Management
Interface) etc.
In I2C only two buses are required for the communication, the serial data bus (SDA) and serial
clock bus (SCL).
Each component in I2C bus is software addressable by a unique address, this unique address is
used by the master to communicate with a particular slave.
The I2C bus provides the ability of the arbitration and collision detection.
I2C is the 8-bit oriented serial bidirectional communication, there are following speed mode in
I2C
1. The master sends the start condition to every connected slave by switching the SDA line from
a high voltage level to a low voltage level before switching the SCL line from high to low:
27
2. The master sends each slave the 7 or 10 bit address of the slave it wants to communicate with,
along with the read/write bit:
3. Each slave compares the address sent from the master to its own address. If the address
matches, the slave returns an ACK bit by pulling the SDA line low for one bit. If the address
from the master does not match the slave’s own address, the slave leaves the SDA line high.
28
4. The master sends or receives the data frame:
5. After each data frame has been transferred, the receiving device returns another ACK bit to the sender
to acknowledge successful receipt of the frame:
29
6. To stop the data transmission, the master sends a stop condition to the slave by switching SCL high
before switching SDA high:
There is a lot to I2C that might make it sound complicated compared to other protocols, but there
are some good reasons why you may or may not want to use I2C to connect to a particular device:
Advantages
Disadvantages
30
3.7.VOLTAGE REGULATOR:
3.7.1.DESCRIPTION:
A variable regulated power supply, also called a variable bench power supply, is one where you
can continuously adjust the output voltage to your requirements. Varying the output of the power supply
is the recommended way to test a project after having double checked parts placement against circuit
drawings and the parts placement guide.
Most digital logic circuits and processors need a 5 volt power supply. To use these parts we need
to build a regulated 5 volt source. Usually you start with an unregulated power supply ranging from 9
volts to 24 volts DC (A 12 volt power supply is included with the Beginner Kit and the Microcontroller
Beginner Kit.). To make a 5 volt power supply, we use a LM7805 voltage regulator IC (Integrated
Circuit). The IC is shown below.
Definition
A voltage regulator is an electricity regulation device designed to automatically convert voltage into
a lower, usually direct current (DC), constant voltage.
Basically, there are two types of Voltage regulators: Linear voltage regulator and Switching voltage
regulator.
There are two types of Linear voltage regulators: Series and Shunt.
31
There are three types of Switching voltage regulators: Step up, Step down and Inverter voltage
regulators.
A series voltage regulator uses a variable element placed in series with the load. By changing
the resistance of that series element, the voltage dropped across it can be changed. And, the voltage
across the load remains constant.
The amount of current drawn is effectively used by the load; this is the main advantage of the series
voltage regulator. Even when the load does not require any current, the series regulator does not draw
full current. Therefore, a series regulator is considerably more efficient than shunt voltage regulator.
A shunt voltage regulator works by providing a path from the supply voltage to ground through
a variable resistance. The current through the shunt regulator is diverted away from the load and flows
uselessly to the ground, making this form usually less efficient than the series regulator. It is, however,
simpler, sometimes consisting of just a voltage-reference diode, and is used in very low-powered circuits
wherein the wasted current is too small to be of concern. This form is very common for voltage reference
circuits. A shunt regulator can usually only sink (absorb) current.
32
Switching Voltage Regulator
A switching regulator rapidly switches a series device on and off. The switch’s duty cycle sets
the amount of charge transferred to the load. This is controlled by a feedback mechanism similar to that
of a linear regulator. Switching regulators are efficient because the series element is either fully
conducting or switched off because it dissipates almost no power. Switching regulators are able to
generate output voltages that are higher than the input voltage or of opposite polarity, unlike linear
regulators.
Step-up switching converters, also called boost switching regulators, provides a higher voltage output
by raising the input voltage. The output voltage is regulated, as long as the power drawn is within the
output power specification of the circuit. For driving strings of LEDS, Step up Switching voltage
regulator is used.
Assume Lossless circuit Pin= Pout (input and output powers are same)
33
Powers remain same, Voltage increases, Current decreases, Equivalent to DC transformer
Step down converter is equivalent to DC transformer where in the turns ratio is in the range of 0-1
34
Real Time Clock DS1307 IC
The DS1307 IC is most widely used real time clock; it consists of a 3V external lithium battery to keep
functioning for over ten years maximum in the lack of external power supply. This IC (Integrated
Circuit) uses a CMOS technology to maintain low power consumption. This IC is used to keep track of
the date, month and year, hours, minutes and seconds and also day of week. This IC provides a leap year
facility that is valid up to 2100. The information about all these is provided in the form of HEX or BCD.
35
requires an external pull-up resistor. It requires application of either Vcc or Vb at to operate SQW/OUT,
with an allowable pull up voltage of 5.5V and can be left floating, if not used.
Pin 8: Primary power supply. When voltage is applied within normal limits, the device is fully
accessible and data can be written and read. When a backup supply is connected to the device and VCC
is below VTP, read and writes are inhibited. However at low voltages, the timekeeping function still
functions.
3.8.3. Features:
Programmable square wave output signal
Automatic power-fail detect and switch circuitry
Consumes less than 500nA in battery backup mode with oscillator running
Available in 8-pin DIP or SOIC
Applications
With the help of Arduino Real Time Clock interface, we can implement several project related
to data logging, alarms, clock, etc.
Since the RTC Module DS1307 is backed with a battery, it will continue to maintain time even
in the event of power fail.
36
CHAPTER-4
SOFTWARE DESCRIPTION
The Arduino Integrated Development Environment (IDE) is an open-source software platform used
for writing, compiling, and uploading code to Arduino microcontrollers. It is a primary tool for users
who want to develop programs that interact with physical hardware, from simple projects to more
complex systems. Designed to be accessible, the Arduino IDE simplifies the process of creating and
deploying applications on a variety of Arduino boards. With its straightforward user interface and
powerful features, it has become one of the most widely used development environments in the world
of electronics and embedded systems.
The core function of the Arduino IDE is to allow users to write code in a high-level programming
language (typically C++) and upload it to an Arduino board for execution. The software consists of a
text editor where users write their programs, a compiler that converts the written code into machine-
readable instructions, and an uploading feature that sends the compiled code to the Arduino
microcontroller via a USB connection. This interaction between the IDE and the hardware is crucial in
making the Arduino ecosystem user-friendly, even for those with little prior experience in electronics
or coding.
One of the key features that sets the Arduino IDE apart is its simplicity. The IDE provides a minimalist
interface that is designed to minimize complexity and make the process of writing and uploading code
as easy as possible. It includes syntax highlighting, which helps users identify different parts of their
code, such as functions, variables, and loops. The IDE also has a built-in error checker that highlights
mistakes in the code and provides helpful feedback, making it easier for users to debug their programs.
For example, if a user forgets to close a bracket or makes a typo, the IDE will underline the error and
typically give a description of the issue. This feature is particularly helpful for beginners, who are often
still learning the syntax and structure of the programming language.
37
4.2 Steps of working
STEP1:
Arduino microcontrollers come in a variety of types. The most common is the Arduino UNO, but there
are specialized variations. Before you begin building, do a little research to figure out which version
will be the most appropriate for your project.
STEP2:
To begin, you'll need to install the Arduino Programmer, Integrated development environment (IDE).
To install the software, you will need to click on the link that corresponds with your computer’s
operating system.Take some time to look around and get comfortable with it.
38
1. Menu Bar: Gives you access to the tools needed for creating and saving Arduino sketches.
2. Verify Button: Compiles your code and checks for errors in spelling or syntax.
3. Upload Button: Sends the code to the board that’s connected such as Arduino Uno in this
case. Lights on the board will blink rapidly when uploading.
5. Sketch Name: When the sketch is saved, the name of the sketch is displayed here.
6. Open Existing Sketch: Allows you to open a saved sketch or one from the stored examples.
7. Save Sketch: This saves the sketch you currently have open.
8. Serial Monitor: When the board is connected, this will display the serial information of your
Arduino
9. Code Area: This area is where you compose the code of the sketch that tells the board what to
do.
10. Message Area: This area tells you the status on saving, code compiling, errors and more.
11. Text Console: Shows the details of an error messages, size of the program that was compiled
and additional info.
12. Board and Serial Port: Tells you what board is being used and what serial port it’s connected to.
STEP3:
Connect your Arduino to the USB port of your computer. This may require a specific USB cable. Every
Arduino has a different virtual serial-port address, so you 'll need to reconfigure the port if you're using
different Arduinos.
39
STEP4:
Once the board is connected, you will need to go to Tools then Board then finally select Arduino Uno.
Next, you have to tell the Arduino which port you are using on your computer.
To select the port, go to Tools then Port then select the port that says Arduino.
40
STEP5:
Test the microcontroller by using one of the preloaded programs, called sketches, in the Arduino
Programmer. Open one of the example sketches, and press the upload button to load it. The Arduino
should begin responding to the program: If you've set it to blink an LED light, for example, the light
should start blinking
The “void setup()” section is widely used to initialize variables, pin modes, set the serial baud rate and
related. The software only goes though the section once.The “void loop()” section is the part of the code
that loops back onto itself and is the main part of the code. In the Arduino examples, this is called “Bare
Minimum” under File-> Examples -> Basics. Note that you are free to add subroutines using the same
syntax:
void subroutinename() {}
Almost every line of code needs to end with a semicolon ‘;’ (there are a few exceptions which we will
see later). To write single line comments in the code, type two back slashes followed by the text:
41
To write multi-line comments, start the comment with /* and end with */
/* This is a multi-line comment and saves you having to always use double slashes at the beginning of
every line. Comments are used used to explain the code textually. Good code always has a lot of
comments.*/
Step6:
To upload new code to the Arduino, either you'll need to have access to code you can paste into the
programmer, or you'll have to write it yourself, using the Arduino programming language to create your
own sketch. An Arduino sketch usually has five parts: a header describing the sketch and its author; a
section defining variables; a setup routine that sets the initial conditions of variables and runs
preliminary code; a loop routine, which is where you add the main code that will execute repeatedly
until you stop running the sketch; and a section where you can list other functions that activate during
the setup and loop routines. All sketches must include the setup and loop routines.
STEP7:
Once you've uploaded the new sketch to your Arduino, disconnect it from your computer and integrate
it into your project as directed.
42
CHAPTER-5
SOFTWARE IMPLEMENTATION
PROGRAM:
//#include <RoninDMD.h>
//#include <fonts/Arial_Black_16.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include <EEPROM.h>
#include "RTClib.h"
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday"};
#define mode_button D5
//#define FONT Arial_Black_16
//#define WIDTH 4
//#define HEIGHT 1
//RoninDMD P10(WIDTH, HEIGHT);
String Message = "Welcome to ASCET";
43
struct Period {
char subject[20];
char faculty[20];
char mobile[15]; // New field for mobile number
}
int Index = 0;
void setup(){
Serial.begin(9600);
EEPROM.begin(EEPROM_SIZE);
pinMode(mode_button, INPUT_PULLUP);
lcd.begin();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(Message);
delay(2000);
if (! rtc.begin()) {
//Serial.println("Couldn't find RTC"); //Serial.flush();
// while (1) delay(10);
}
if (rtc.lostPower()) {
//Serial.println("RTC lost power, let's set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
//rtc.adjust(DateTime(2014, 1, 21, 9, 30, 0));
}
//rtc.adjust(DateTime(2024, 3, 25, 9, 35, 0));
//Serial.println("WELCOME");
44
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GSM Initializing...");
if (initializeGSM()) {
lcd.clear();
lcd.print("GSM ready");
// Serial.println("GSM module ready.");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Sending SMS");
}
}
String Sub;
String Name;
String Number;
int currentTime;
int startTime;
int endTime;
bool period_1 = true;
bool period_2 = true;
bool period_3 = true;
45
bool period_4 = true;
bool period_5 = true;
bool period_6 = true;
bool period_7 = true;
46
if (unit_hh >= 12) {
time_unit = "PM";
}
else {
time_unit = "AM";
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Time:" + String(hh_buffer) + ":" + String(mm_buffer) + " " + time_unit);
lcd.setCursor(0, 1);
lcd.setCursor(14, 1);
lcd.print("1st-Pd");
//Serial.println("1st period");
readSchedule(2, Second_1st); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
lcd.print("2nd Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000);
47
//P10.loop();
//Scrolling_text(0 , 50 , "2nd Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_1 == true)
sendSMS(Number, "Dear Sir/Madam\n You have a class to 2nd Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "2nd year" + "," + "1st Hour" +
"@"); delay(1000);
readSchedule(3, Third_1st); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
lcd.print("3rd Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000);
//P10.loop();
//Scrolling_text(0 , 50 , "3rd Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_1 == true)
48
delay(2000);
//P10.loop();
//Scrolling_text(0 , 50 , "4th Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_1 == true)
lcd.setCursor(0, 2);
lcd.print("2nd Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "2nd Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_2 == true)
sendSMS(Number, "Dear Sir/Madam\n You have a class to 2nd Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "2nd year" + "," + "2nd Hour" +
"@"); delay(1000);
49
readSchedule(3, Third_2nd); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
50
}
convert_time(11, 10, 11, 30); //Break
// Check if the current time falls within the specified range
if (currentTime >= startTime && currentTime <= endTime){
lcd.setCursor(14, 1);
lcd.print(" ");
clear_lcd();
//Serial.println("Break...");
lcd.setCursor(0, 2);
lcd.print(" Break ");
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "Break"); delay(500);
}
convert_time(11, 30, 12, 20); //3rd period
// Check if the current time falls within the specified range
if (currentTime >= startTime && currentTime <= endTime) {
lcd.setCursor(14, 1);
lcd.print("3rd-Pd");//Serial.println("3rd period");
readSchedule(2, Second_3rd); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
51
if (period_3 == true)
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "2nd year" + "," + "3rd Hour" +
"@"); delay(1000);
readSchedule(3, Third_3rd); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
lcd.print("3rd Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "3rd Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_3 == true)
sendSMS(Number, "Dear Sir/Madam\n You have a class to 3rd Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "3rd year" + "," + "3rd Hour" +
"@"); delay(1000);
readSchedule(4, Fourth_3rd); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
lcd.print("4th Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "4th Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_3 == true)
sendSMS(Number, "Dear Sir/Madam\n You have a class to 4th Year\nSubject:" + Sub +
"\nThank you!");
52
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "4th year" + "," + "3rd Hour" +
"@"); delay(1000);
period_3 = false;
}
convert_time(12, 20, 13, 10); //4th period
// Check if the current time falls within the specified range
if (currentTime >= startTime && currentTime <= endTime) {
lcd.setCursor(14, 1);
lcd.print("4th-Pd");
//Serial.println("The current time is between 9:30 AM and 10:20 AM");
readSchedule(2, Second_4th); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
53
lcd.print("3rd Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "3rd year" + "," + "4th Hour" +
"@"); delay(1000);
readSchedule(4, Fourth_4th); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
lcd.print("4th Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "4th year" + "," + "4th Hour" +
"@"); delay(1000);
period_4 = false;
}
54
lcd.setCursor(14, 1);
lcd.print(" ");
//Serial.println("Lunch Break...");
clear_lcd();
lcd.setCursor(0, 2);
lcd.print(" Lunch Break ");
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "Lunch Break..."); delay(500);
if (Lunch_time == true)
//Serial.println("$Lunch,Lunch, ,Lunch,Lunch@"); delay(1000);
Lunch_time = false;
}
convert_time(14, 00, 14, 50); //5th period
// Check if the current time falls within the specified range
if (currentTime >= startTime && currentTime <= endTime) {
lcd.setCursor(14, 1);
lcd.print("5th-Pd");
//Serial.println("5th period");
readSchedule(2, Second_5th); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
55
if (period_5 == true)
sendSMS(Number, "Dear Sir/Madam\n You have a class to 2nd Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "2nd year" + "," + "5th Hour" +
"@"); delay(1000);
readSchedule(3, Third_5th); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
lcd.print("3rd Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "3rd Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_5 == true)
sendSMS(Number, "Dear Sir/Madam\n You have a class to 3rd Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "3rd year" + "," + "5th Hour" +
"@"); delay(1000);
readSchedule(4, Fourth_5th); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
lcd.print("4th Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "4th Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_5 == true)
56
sendSMS(Number, "Dear Sir/Madam\n You have a class to 4th Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "4th year" + "," + "5th Hour" +
"@"); delay(1000);
period_5 = false;
}
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "2nd Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_6 == true)
sendSMS(Number, "Dear Sir/Madam\n You have a class to 2nd Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "2nd year" + "," + "6th Hour" +
"@"); delay(1000);
57
lcd.setCursor(0, 2);
lcd.print("3rd Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "3rd Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_6 == true)
sendSMS(Number, "Dear Sir/Madam\n You have a class to 3rd Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "3rd year" + "," + "6th Hour" +
"@"); delay(1000);
readSchedule(4, Fourth_6th); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
lcd.print("4th Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "4th Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_6 == true)
sendSMS(Number, "Dear Sir/Madam\n You have a class to 4th Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "4th year" + "," + "6th Hour" +
"@"); delay(1000);
period_6 = false;
}
convert_time(15, 40, 16, 30); //7th period
// Check if the current time falls within the specified range
58
if (currentTime >= startTime && currentTime <= endTime) {
lcd.setCursor(14, 1);
lcd.print("7th-Pd");
//Serial.println("7th period");
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "2nd Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_7 == true)
sendSMS(Number, "Dear Sir/Madam\n You have a class to 2nd Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "2nd year" + "," + "7th Hour" +
"@"); delay(1000);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "3rd Year - Sub:" + Sub + " " + "Faculty:" + Name );
if (period_7 == true)
59
sendSMS(Number, "Dear Sir/Madam\n You have a class to 3rd Year\nSubject:" + Sub +
"\nThank you!");
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "3rd year" + "," + "7th Hour" +
"@"); delay(1000);
readSchedule(4, Fourth_7th); //YEAR,PERIOD NUMBER
delay(100);
clear_lcd();
lcd.setCursor(0, 2);
lcd.print("4th Year-Sub:" + Sub);
lcd.setCursor(0, 3);
lcd.print("Faculty:" + Name);
delay(2000); //P10.loop();
//Serial.println("$" + Sub + "," + Name + "," + Number + "," + "4th year" + "," + "7th Hour" +
"@"); delay(1000);
period_7 = false;
}
convert_time(16, 30, 23, 59); //Thank you
// Check if the current time falls within the specified range
if (currentTime >= startTime && currentTime <= endTime) {
lcd.setCursor(14, 1);
lcd.print(" ");
period_1 = true;
period_2 = true;
period_3 = true;
period_4 = true;
60
period_5 = true;
period_6 = true;
period_7 = true; //Serial.println("Thank you!");
clear_lcd();
lcd.setCursor(0, 2);
lcd.print(" Thank you! ");
delay(2000); //P10.loop();
//Scrolling_text(0 , 50 , "Thank You!" ); delay(500);
}
convert_time(01, 00, 9, 30); //Welcome
61
}
read_sms();
}
else {
lcd.setCursor(0, 2);
lcd.print("T - Update Time/Date");
lcd.setCursor(0, 3);
lcd.print("E - Exit");
delay(250);
if (Serial.available() > 0) {
while (!Serial.available()) {}
year = Serial.parseInt();
Serial.println(year);
if (year < 2 || year > 4) {
//return;
62
if (year == 0) {
break;
}
else {
Serial.println("Invalid year!");
goto ay;
}
}
ap:
Serial.readString();
}
else {
Serial.println("Invalid period number!"); //return;
goto ap;
}
}
63
char choice = Serial.read();
if (choice == 'v' || choice == 'V') {
readSchedule(year, period);
}
else{
Serial.println("Invalid choice!");
goto vu;
}
}
}
Serial.println("Enter minutes");
while (!Serial.available()) {}
int mm = Serial.parseInt();
Serial.readString();
Serial.println("Enter Date");
64
while (!Serial.available()) {}
int dd = Serial.parseInt();
Serial.readString();
Serial.println("Enter Month");
while (!Serial.available()) {}
int mn = Serial.parseInt();
Serial.readString();
Serial.println("Enter Year");
while (!Serial.available()) {}
int yy = Serial.parseInt();
delay(500);
// Convert current time to minutes for easier comparison
currentTime = now.hour() * 60 + now.minute();
// Convert the boundary times (9:30 AM and 10:20 AM) to minutes
startTime = sh * 60 + sm; // 9:30 AM
endTime = eh * 60 + em; // 10:20 AM
if (String(daysOfTheWeek[now.dayOfTheWeek()]) == "Monday") {
Second_1st = 4; Third_1st = 4; Fourth_1st = 1;
65
Second_2nd = 3; Third_2nd = 7; Fourth_2nd = 1;
Second_3rd = 1; Third_3rd = 7; Fourth_3rd = 1;
Second_4th = 2; Third_4th = 7; Fourth_4th = 1;
Second_5th = 3; Third_5th = 2; Fourth_5th = 1;
}
if (String(daysOfTheWeek[now.dayOfTheWeek()]) == "Wednesday") {
Scroll_status = true;
Second_1st = 3; Third_1st = 1; Fourth_1st = 1;
Second_2nd = 7; Third_2nd = 5; Fourth_2nd = 1;
Second_3rd = 7; Third_3rd = 3; Fourth_3rd = 1;
66
if ((daysOfTheWeek[now.dayOfTheWeek()]) == "Thursday") {
Scroll_status = true;
Second_1st = 1; Third_1st = 4; Fourth_1st = 1;
Second_2nd = 3; Third_2nd = 3; Fourth_2nd = 1;
if (String(daysOfTheWeek[now.dayOfTheWeek()]) == "Friday"){
Scroll_status = true;
Second_1st = 1; Third_1st = 5; Fourth_1st = 1;
Second_2nd = 7; Third_2nd = 4; Fourth_2nd = 1;
Second_3rd = 7; Third_3rd = 3; Fourth_3rd = 1;
Second_4th = 7; Third_4th = 1; Fourth_4th = 1;
67
Second_6th = 5; Third_6th = 8; Fourth_6th = 2;
Second_7th = 6; Third_7th = 8; Fourth_7th = 2;
}
}
// P10.setFont(FONT);
// P10.drawText(dsp_width - x, text_height, scroll_text);
// x++;
// if (x > txt_width + dsp_width) {
// x=0;
// scrl_while = 0 ;
// }
// pM = millis();
// }
// }
//}
68
void readSchedule(int year, int period) {
int address;
switch (year) {
case 2:
address = START_ADDRESS_YEAR_2;
break;
case 3:
address = START_ADDRESS_YEAR_3;
break;
case 4:
address = START_ADDRESS_YEAR_4;
break;
default:
Serial.println("Invalid year!");
return;
}
69
// Print faculty until null terminator
//Serial.print("Faculty: ");
//Serial.println(currentPeriod.faculty);
//Serial.print("Mobile: ");
//Serial.println(currentPeriod.mobile);
Sub = currentPeriod.subject;
Index = Sub.indexOf('$');
Sub = Sub.substring(0, Index);
Serial.println("Subject:" + Sub);
Name = currentPeriod.faculty;
Index = Name.indexOf('$');
Name = Name.substring(0, Index);
Serial.println("Name:" + Name);
Number = currentPeriod.mobile;
Number = Number.substring(0, 10);
Serial.println("Number:" + Number);
}
void updateSchedule(int year, int period) {
int address;
switch (year) {
case 2:
address = START_ADDRESS_YEAR_2;
break;
case 3:
address = START_ADDRESS_YEAR_3;
break;
case 4:
70
address = START_ADDRESS_YEAR_4;
break;
default:
Serial.println("Invalid year!");
return;
}
// Calculate the EEPROM address for the specified period
address += (period - 1) * PERIOD_SIZE;
// Clear the EEPROM location for the specified period
Period clearPeriod;
EEPROM.put(address, clearPeriod);
// Create a Period struct to hold the updated schedule data
Period updatedPeriod;
// Prompt user to enter subject and faculty
Serial.readString();
Serial.println("Enter subject name:");
while (!Serial.available()) {}
Serial.readBytesUntil('\n', updatedPeriod.subject, sizeof(updatedPeriod.subject) - 1); // Read subject
name
Serial.readString();
Serial.readString();
Serial.println("Enter faculty mobile number:"); // Prompt for mobile number
while (!Serial.available()) {}
71
Serial.readBytesUntil('\n', updatedPeriod.mobile, sizeof(updatedPeriod.mobile) - 1); // Read mobile
number
void clear_lcd(){
for (int l = 0; l < 20; l++){
lcd.setCursor(l, 2);
lcd.print(" ");
lcd.setCursor(l, 3);
lcd.print(" ");
}
}
/*GSM*/
bool initializeGSM(){
lcd.setCursor(0, 1);
lcd.print("ATE0-");
Serial.println("ATE0");
delay(1000);
if (Serial.find("OK")) {
lcd.setCursor(5, 1);
lcd.print("OK ");
}
else {
lcd.setCursor(5, 1);
72
lcd.print("Error");
}
lcd.setCursor(0, 1);
lcd.print("AT-");
Serial.println("AT");
delay(1000);
if (Serial.find("OK")){
lcd.setCursor(3, 1);
lcd.print("OK ");
}
else {
lcd.setCursor(3, 1);
lcd.print("Error");
}
lcd.setCursor(0, 1);
lcd.print("AT+CMGF-");
Serial.println("AT+CMGF=1");
delay(1000);
if (Serial.find("OK")) {
lcd.setCursor(8, 1);
lcd.print("OK ");
}
else {
lcd.setCursor(8, 1);
lcd.print("Error");
}
lcd.setCursor(0, 1);
73
lcd.print("AT+CREG?-");
Serial.println("AT+CREG?");
delay(1000);
if (Serial.find("+CREG: 0,1") || Serial.find("+CREG: 0,5")) {
lcd.setCursor(9, 1);
lcd.print("ok ");
return true;
}
else {
lcd.setCursor(9, 1);
lcd.print("Error ");
return false;
}
}
// Function to send SMS
void sendSMS(String num, String message){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sending SMS...");
lcd.setCursor(0, 1);
lcd.print(num);
Serial.println("AT+CMGF=1");
delay(1000);
Serial.println("AT+CMGS=\"" + num + "\"");
delay(1000);
Serial.print(message);
Serial.write(26); // CTRL+Z
74
delay(3000);
}
void read_sms(){
if (Serial.available()) {
75
//Serial.println("Message: " + message);
// Display on LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("From:" + incomingNumber);
lcd.setCursor(0, 1);
lcd.print("Msg: " + message);
Serial.println("AT+CMGD=1"); delay(3000);
// if (message.startsWith("Track"))
// {
}
}
76
CHAPTER-6
RESULT ANALYSIS
RESULT ANALYSIS
Fig.6.1:College Time table and notice board display with auto SMS to factly
The implementation of the College Time Table and Notice Board Display System with Auto SMS to
Faculty yields significant improvements in communication, organization, and administrative
efficiency within the institution. The digitalization of timetable and notice board management reduces
the reliance on physical mediums and manual coordination. The automatic SMS feature ensures that
faculty are immediately informed of any schedule changes or important announcements, leading to
improved punctuality, reduced confusion, and better preparedness for lectures and events. The real-
time update capability minimizes errors and ensures consistent dissemination of information.
From an analytical perspective, the system demonstrates a marked reduction in communication delays
and administrative workload. Faculty feedback often highlights increased satisfaction due to timely
updates and clarity in scheduling. The system’s performance metrics—such as message delivery rates,
update frequencies, and user engagement with digital boards—show a high degree of reliability and
efficiency. Furthermore, it lays a solid foundation for future enhancements, such as mobile app
integration, student notifications, and attendance tracking, thereby reinforcing its role as a scalable and
impactful solution in educational management.
77
CHAPTER-6
CONCLUSION:
The project is intended to present an overview of a College Timetable and Notice Board Display with
Auto SMS to Faculty, which automates timetable management and communication within an institution.
The system efficiently updates and displays timetables and important notices while sending instant SMS
alerts to faculty members.
1. Faculty members receive real-time SMS alerts regarding schedule changes, reducing
miscommunication.
2. The digital notice board ensures timely updates of announcements and event notifications.
From all these, we can conclude that if we implement this system, it will improve coordination, enhance
communication, and streamline administrative tasks in an educational institution.
FUTURE SCOPE:
The College Timetable and Notice Board Display with Auto SMS to Faculty system can be further
enhanced by integrating cloud-based services for real-time updates and automated scheduling.
Implementing AI-driven scheduling can optimize faculty and classroom allocations, reducing conflicts
and improving efficiency. Additionally, a mobile application can be introduced to provide instant
notifications, ensuring seamless communication between faculty and students.
Expanding the system with IoT-enabled smart displays and voice-assisted announcements will improve
accessibility and ensure timely dissemination of information. These advancements will make academic
schedule management more efficient and automated, reducing manual efforts and enhancing the overall
experience for faculty and students.
78
REFERENCES
[1] “College Time Table and Notice Board Display With Auto SMS to Faculty" by [Author
names not available in search results] (Journal of Engineering Sciences): This paper directly
addresses the combination of a timetable display, notice board, and auto SMS to faculty using
GSM technology.
[2] "E-Notice Board With Timetable Display in Class Room using GSM Technology" by
[Author names not available in search results] (International Journal of Engineering Research
and Technology): This paper focuses on using GSM to update both an electronic notice board
and potentially send SMS related to the timetable.
[3] "Development Of IOT Based Smart Scheduler And Faculty Notification System" by
[Author names not available in search results] (Indian Institution of Industrial Engineering):
This project explores an IoT-based system for scheduling and notifying faculty, likely
encompassing timetable-related information.
[4] Edumarshal's Dynamic Timetable Management: This resource highlights real-time
timetable adjustments and instant notifications for faculty absences and substitutions.
[5] Genius Time Table Management System: This software offers automated scheduling and
mentions improved communication, which could include notifications.
[6] EduSec ERP's Timetable Management System: This system emphasizes swift scheduling,
faculty switch management, and quick notifications (SMS/Email) for lecture updates and
faculty replacements.
[7] Fedena's Timetable Management System: This system includes features for easy
scheduling, managing substitutions, and sending instant notifications to teachers.
[8] "Digital Notice Boards for Schools and Corporate Environments" (Sparsa Digital): This
article discusses the advantages of digital notice boards for real-time updates and enhanced
communication in educational settings.
[9] "Digital Signage Software for Schools & Universities" (Wilyer): This resource focuses on
digital signage for displaying various information, including schedules and announcements,
potentially integrated with notification systems.
79