Professional Documents
Culture Documents
AUTHORED BY:
YEAR: 2022/2023
1
DECLARATION
I declare to the best of our knowledge that this Final Year Project report to be submitted as a
partial fulfilment of the Bachelor of Science (Electrical and Electronic Engineering) degree, to be
my own original work and has not been presented in this or any other university for
examination, academic or any other purpose.
SIGN: ……………………………….
DATE: ………………………………
SUPERVISOR:
This design project has been submitted for examination with my approval as the university
supervisor.
SIGN: ………………………………………….
DATE: …………………………………………
DEDICATION
I would like to dedicate this project to express my heartfelt gratitude to three remarkable entities who
have played pivotal roles in my journey.
First and foremost, I extend my sincere appreciation to my supervisor Dr. Akuon for their unwavering
support, guidance, and expertise throughout this project. Their invaluable insights, encouragement, and
constructive feedback have been instrumental in shaping my ideas and refining my work. I am truly
grateful for their mentorship and the knowledge I have gained under their tutelage.
2
I would also like to express my deepest gratitude to the entire Electrical Engineering department for
fostering an environment of collaboration, creativity, and growth. The collective efforts, knowledge
sharing, and camaraderie within the department have been essential in pushing the boundaries of my
capabilities and nurturing my professional development.
Finally, I want to dedicate this project to my incredible mother, whose unwavering love, encouragement,
and sacrifices have been the driving force behind my accomplishments. Her constant belief in me, even
during the most challenging times, has been a source of inspiration and motivation. This project is a
testament to her unwavering support, and I am eternally grateful for her presence in my life.
To my supervisor, department, and my dear mother, thank you for being my pillars of strength and for
believing in me. This project is a reflection of the collective efforts and the support I have received from
each of you. I am truly honored and privileged to have you by my side, and I dedicate this work to
express my heartfelt appreciation for all that you have done.
ACKNOWLEDGEMENT
I would like to take this opportunity to extend my heartfelt appreciation and acknowledgment to my
supervisor, Dr.Akuon, for their invaluable support, guidance, and mentorship throughout the duration of
this project.
Dr.Akuon has been an incredible source of inspiration and knowledge, providing me with the necessary
tools and resources to excel in my research endeavors. Their unwavering dedication, expertise, and
insightful feedback have played a vital role in shaping the direction and outcomes of this project.
I am truly grateful for the countless hours they have spent reviewing my work, offering constructive
criticism, and providing valuable suggestions that have immensely enhanced the quality of this project.
Their mentorship has not only enriched my academic growth but has also contributed to my personal
development as a researcher.
3
TABLE OF CONTENTS
DECLARATION.....................................................................................................................................2
DEDICATION........................................................................................................................................3
ACKNOWLEDGEMENT.........................................................................................................................4
CHAPTER 1..........................................................................................................................................7
INTRODUCTION......................................................................................................................................7
PROJECT BACKGROUND...............................................................................................................7
PROBLEM STATEMENT.................................................................................................................7
1.3 OBJECTIVES............................................................................................................................8
1.4 JUSTIFICATION.......................................................................................................................8
CHAPTER 2........................................................................................................................................11
LITERATURE REVIEW............................................................................................................................11
2.1 GPS TRACKING.....................................................................................................................11
4
2.1.2 GPS WORKING PHENOMENON..........................................................................................12
2.1.2.1 MICROWAVES.................................................................................................................12
2.2.2.2 GPS Satellite...................................................................................................................13
2.1.2.3 WIRELESS NETWORK......................................................................................................13
2.1.3 GPS REPORT ORGANIZATION.............................................................................................13
2.1.4 GPS TRACKING APPLICATIONS...........................................................................................13
2.2 REGULATORS OF PHONE ACCESS..........................................................................................14
2.4 MICROCONTROLLERS.....................................................................................................................21
2.4.1 (NODEMCU)......................................................................................................................21
2.4.2 OTHER MICROCONTROLLERS.............................................................................................24
2.4.2.1 Arduino Microcontrollers...............................................................................................24
2.4.2.2 RASPBERRY PI................................................................................................................24
CHAPTER 3........................................................................................................................................26
DESIGN AND IMPLEMENTATION........................................................................................................26
3.1 CONNECTING THE NODEMCU........................................................................................................26
3.2 CONNECTING THE MODULES ON BREADBOARD...........................................................................27
3.3 FIREBASE REMOTE DATABASE (RTDB)............................................................................................28
3.4 CODE BREAKDOWN........................................................................................................................31
CHAPTER 4........................................................................................................................................35
RESULTS, DISCUSSION AND ANALYSIS................................................................................................35
4.1 RESULTS AND DISCUSSION............................................................................................................35
4.1.1 Location.......................................................................................................................................35
4.1.1.1 Coordinates for the area.................................................................................................35
4.1.2 SIM Card......................................................................................................................................35
4.1.3 Timestamp..................................................................................................................................36
5
4.2 PERFORMANCE ANALYSIS.............................................................................................................36
4.2.1 Processing Time................................................................................................................36
4.2.2 Resource Utilization..........................................................................................................37
4.2.3 Reliability..........................................................................................................................37
CHAPTER 5........................................................................................................................................39
CONCLUSION AND RECOMMENDATION.............................................................................................39
5.1 Conclusion......................................................................................................................................39
5.2 Recommendation...........................................................................................................................40
REFERENCES.........................................................................................................................................42
APPENDICES.........................................................................................................................................43
CHAPTER 1
INTRODUCTION
PROJECT BACKGROUND
The phone identity register is a technique that is used almost in similar sense as the GPRS
location on Google maps. The aim of the neighbor identity Register is to use a mobile device to
keep clear track of the location of the phone owner at a certain time and have the details stored
for reference.
The whole Neighbor Identity Register project has its scope on enhancing security among the
neighbors who use the system, have a clear location information scheme and as such track the
activities of the neighbors, being non-private, generally.
6
A good combination of electrical equipment will be of use such as the NodeMCU, breadboard,
connecting wires and GPS module.
The project is applicable in as many areas as it is necessary to have neighbor information stored
and referenced.
These include.
1. Sports arenas,
2. Office workplaces
3. Home area neighborhood
4. Military offices and camps.
PROBLEM STATEMENT
According to a 2017 Pew Research study, 30% of Kenyan people aged 18 and older have
smartphones. However, the percentage has grown to 67% smartphone owners. With the
increasing number of smart phone users in Kenya, the likelihood of phones being misplaced or
lost has been on the rise. The normal phone location equipment provided by the Internet
Service Providers is the EIR (Equipment Identity Register), which for the current time is not
really suitable.
The normal EIR serves to have the phone’s location updated on the database only when a phone
call is made. That is the only time the data is sent to the database. We would want to have the
register updated not only at the time of a phone call but if the network is lost in the phone for
over twenty minutes.
1.3 OBJECTIVES
Making a phone-based Neighbor Location Register will have the following objectives.
b. Real time location tracking of the phone user and valid data logging system.
7
1.4 JUSTIFICATION
A person's location can be indicated in a variety of ways. Each of these approaches, meanwhile,
has drawbacks of its own. For instance, the GPRS technology has restrictions on usage of the
internet and distance. Other methods, like the Nextdoor system, have established rules that
users must follow, but because there is no way to police them, they might be disregarded.
Each researcher who has previously studied this issue has a different opinion on the approaches
they believe would be most effective in discovering their neighbors. The goal of this study is to
develop a similar but more accurate NIR method. Additionally, it aims to develop a more
affordable method that can be easily accessed, hence the use of a phone.
Additionally, a user cap will be implemented to facilitate data tracking and protect the
confidentiality of supplied information. This project also develops a platform where users can
select the data, they want to exchange about one another. This project will be controlled online
and plans to access and use WIFI or airtime converted to data bundles.
The methodology selected for this project was the result of background research on the various
ways the hardware prototype can be developed in a less expensive and simpler model to
comprehend how the phone application is intended to work.
The use of a microcontroller in conjunction with other electrical devices was thought to be the
optimum method for implementing the hardware design. This project aims to create a
hackproof application to guarantee the safety of the staff applying it.
1. Intelligence Network
The standard network designed for fixed and mobile telecom networks is called the intelligence
network (IN). Network nodes on the core network's service layer, which is separate from the
switching layer, provide IN. The majority of the time, telecom service providers like phone
companies or mobile phone operators like Safaricom are the ones who own the IN nodes.
Kenya's Airtel and Telecom.
8
2. Mobile Telecommunications Systems
This method often provides fixed and mobile voice, broadband, and pay television services. The
development of mobile wireless communication throughout its history can be roughly
categorized into generations. These consist of generation cellular networks as stipulated below.
The European Telecommunications Standards Institute (ETSI) created this standard to outline
the protocols for 2G digital cellular networks used by mobile devices such phones and tablets.
Even as new generational systems are developed, they are still governed in accordance with
their widespread usage.
4.Switching Mode
Here, a connection between the sender and receiver will be formed via a switching technique.
In the case of this project, it will be a way to establish connections to share pertinent
information with neighbors in order to improve location register. A typical electrical switch will
be present on the hardware prototype to connect and disconnect the power source as needed.
The switch will be crucial in this project because it will signal the execution of all other actions.
This will be required to determine the area or region in which a certain neighborhood will be
aware of one another. Therefore, HLR will limit the number of families who share information
and build trust among themselves.
9
6.Neighbor Identity Register
NIR will be added to provide personnel data for the individuals listed in HLR. In order to prevent
physical contact between neighbors, this will be necessary. This could have details like [but not
restricted to], neighbors' telephone numbers, the occupations of neighbors and neighbors'
family and marriage status.
This extra scope is important for keeping an eye on stray animals and people in the area. This is
usually done to ensure security because any unidentified visitor will trigger an alarm that will be
investigated.
The system's performance is evaluated through a load test, and then it is compared to other
systems already on the market to see if it has improved.
CHAPTER 2
LITERATURE REVIEW
• Placement
• Timing of Navigation
10
In the 1960s, GPS tracking was initially developed for military usage. In 1983, GPS became
accessible to the general public, and technology has advanced since then.
Today, it is utilized for a variety of activities, from youngsters playing mobile phone games in the
neighborhood to precise military maneuvers in other countries.
The general purpose of GPS (Global Positioning Systems) tracking is to link people, maps, and
assets together. On mobile devices, it allows users to get insight and agility. Due to the fact that
it includes the entire set of apps for tracking capabilities, it is frequently referred to as the GPS
tracking software platform. Since 2005, itrack has been creating software for GPS tracking,
although it is exclusively available to iPhone users. GPS is typically used to locate objects like
phones or vehicles.
By connecting the phone or object to the owner's information, such as the owner's phone
number, email, etc., this is made possible. The qualities listed below define a good GPS tracking
system:
• Real-time location tracking: You may see a person's current location on an engaging map
• Viewing location history: This provides information on a person's movements over time. long
• Location pins are labelled with time and date stamps, so you can see them by clicking on
them can show the time the phone owner visited a specific place.
• Checking coordinates: This typically identifies a person's location by using their coordinates.
This is useful when attempting to locate someone.
The Spyier application is a good tracking tool that offers the aforementioned features; however
it is only available to iPhone users.
These signals are received and decoded by a GPS device on earth using each signal's particular
data. By plotting the positions of four or more satellites with respect to the tracking device, one
can calculate the tracking device's precise location in three dimensions. For data validation and
to provide a more precise location reading, more satellites are frequently used.
The Global Navigation Satellite System (GNSS) is used to provide the primary functionality of a
GPS-based tracking system. A variety of GPS devices receive microwave signals that are emitted
by this satellite network.
2.1.2.1 MICROWAVES
Electromagnetic waves, such as microwaves, are produced when an electric field and a magnetic
field vibrate together. In other words, magnetic and electric fields oscillate to form
electromagnetic waves. In vacuum, electromagnetic waves move at a constant speed of
3.0*10^8 m/s.
12
2.1.2.3 WIRELESS NETWORK
Data collected on the device put in the tracked equipment is subsequently sent over a wireless
or cellular network by companies like AT&T and Verizon. It passes through back to a server over
one of these cellular networks. The server serves as the "cloud" through which you can access
the data on your computer, tablet, or smartphone wherever you are.
The military has been using GPS for more than 50 years, and it is still in use today. The military
employs GPS to monitor the movement of troops, aircraft, and ships, among other things.
GPS is also used by the military for covert operations, making it especially crucial for troops
stationed in uncharted region or forces operating at night.
In search and rescue operations, GPS is crucial since it enables the search staff to keep track of
the areas they have covered, view the overall search operation, and even retrieve GPS data
directly from a lost person's GPS device or phone.
This is one of the most effective commercial GPS tracking deployments. It serves to keep track
of the movement and location of the vehicle to increase safety and effectiveness. d.
13
A typical tool for outdoor enthusiasts is GPS. Some leisure activities, like geocaching, are entirely
dependent on GPS tracking. GPS tracking improves other activities like distance running and
mountain biking.
First generation (IG) analog cellular networks were replaced by second generation (2G)
networks. The original GSM standard outlined a digital, circuit-switched network designed for
full-duplex voice communication. Data communications were eventually added, initially through
circuit-switched transport and then through packet data transport via the General Packet Radio
Service (GPRS) and Enhanced Data Rates for GSM Evolution (EDGE).
The third generation (3G) standards, the fourth generation (4G), and the fifth generation (5G)
standards were then developed. The shown Figure 2.21 depicts the structure of a GSM network.
The GSM network is divided into a number of distinct components. The following subsections
provide more detail on certain GSM network portions.
14
GSM MODULES
SIM800 Series
15
• SIM800H: The SIM800H module is optimized for high-performance applications. It
supports quad-band GSM/GPRS operation and offers enhanced features such as voice
calling, SMS, and GPRS data transmission. The SIM800H module is commonly used in
applications that require reliable and efficient GSM communication.
SIM900 Series
Quectel Modules
• Quectel M95: The Quectel M95 is a compact quad-band GSM/GPRS module designed for
reliable and high-quality communication. It supports GSM/GPRS
850/900/1800/1900MHz frequencies and offers various communication interfaces,
including UART, USB, and GPIO. The M95 module is widely used in applications such as
telematics, tracking systems, and industrial control.
• Quectel M66: The Quectel M66 is a versatile quad-band GSM/GPRS module with
integrated GNSS (GPS/GLONASS) capabilities. It provides extensive features for voice,
data, SMS, and positioning applications. The M66 module is commonly used in IoT
projects, asset tracking, personal tracking devices, and other applications requiring GSM
and GPS functionality.
16
2.2.2 BASE STATION SUBSYSTEM
Cellular networks are used by GSM; thus, cellphones connect to them by looking for nearby
cells. Each cell's coverage area varies depending on the implementation environment. In a GSM
network, there are five different cell sizes:
large cells. They are utilized when the base station antenna is mounted on a pole or a structure
that is higher than the typical rooftop level.
Micro cells are cells with antenna heights that are lower than the typical roof top level. They are
primarily utilized in cities.
Pico cells are tiny cells with a few dozen meters of covering diameter.
Fento cells: These are wireless devices that link to a telecommunications service provider's
network via a high-speed internet connection and are intended for use in homes or small
businesses.
umbrella cells They are utilized to fill in and cover shadowy areas of smaller cells. Coverage gaps
between those cells. The horizontal radius of a cell can range from a few hundred meters to
several tens of kilometers depending on antenna height, antenna gain, and propagation
conditions. The maximum practical distance supported by the GSM specification is 35
kilometers.
17
2.2.1.3 SUBSCRIBER IDENTITY MODULE
The SIM card is one of GSM's primary features. It is a removable smart card that stores the
user's phonebook and subscription details. This makes it possible for the user to save their data
even after moving phones. Alternately, the customer can switch operators while keeping their
phone by just switching their sim.
• Access Network: These are the base stations that transmit radio waves to mobile
endpoints.
18
• Intelligence Network (IN): Charges, location of subscribers, and roaming transfer, value-
telecom systems. By offering value-added services in addition to the regular telecom services on
fixed networks and GSM services on mobile phones or other mobile devices, it enables
operators to distinguish out from the competition.
1. Accurate Location Tracking: The GPS module integrated with the NodeMCU enables
precise tracking of neighbor locations. By continuously capturing GPS coordinates, the
system ensures accurate information about the whereabouts of registered neighbors. 2.
Real-Time Data: The project facilitates real-time data transmission to a Firebase Realtime
Database. This allows the Neighbor Identity Register to have access to up-todate location
information, ensuring the most current data is available for analysis and decision-making.
19
3. Centralized Data Storage: The Firebase database acts as a centralized repository for
storing neighbor location data. This allows for easy management, retrieval, and analysis
of the data, simplifying the process of maintaining a comprehensive Neighbor Identity
Register.
4. Historical Data Analysis: The data logging functionality enables the storage of historical
location data in the Firebase database. This feature provides the opportunity for indepth
analysis and evaluation of neighbor movements over time, which can be useful
2.4 MICROCONTROLLERS
2.4.1 (NODEMCU)
NodeMCU is a highly popular microcontroller board based on the ESP8266 Wi-Fi module. It
provides a powerful platform for developing Internet of Things (IoT) applications and embedded
systems. NodeMCU offers a wide range of features, making it a versatile choice for both
hobbyists and professionals.
20
NodeMCU has a variety of General Purpose Input/Output (GPIO) pins that allow for the
connection of external devices and sensors. The board typically features up to 12 GPIO pins,
which can be used for digital input/output, analog input, PWM (Pulse Width Modulation)
output, I2C, SPI, and other communication protocols. These pins provide flexibility for
interfacing with a wide range of components and expanding the functionality of your projects.
One of the standout features of NodeMCU is its built-in Wi-Fi connectivity. The ESP8266 module
on the board enables seamless wireless communication and internet connectivity. This
capability allows NodeMCU to connect to local networks, access web services, send data to the
cloud, and communicate with other IoT devices. The Wi-Fi support makes NodeMCU an
excellent choice for applications such as home automation, remote monitoring, and wireless
sensor networks.
NodeMCU supports the Lua scripting language, which simplifies the development process and
enhances prototyping speed. Lua is a lightweight and efficient scripting language known for its
simplicity and ease of use. Developers can write Lua scripts directly on the NodeMCU board,
allowing for quick experimentation and iteration. The ability to use Lua scripting makes
NodeMCU an attractive option for beginners and experienced developers alike.
Arduino Compatibility
NodeMCU is compatible with the Arduino IDE (Integrated Development Environment), which
provides a familiar programming environment for many developers. The Arduino IDE offers a
vast library of pre-built functions and a large community of users, making it easier to find
examples, tutorials, and support. This compatibility allows users to leverage existing Arduino
code and libraries when working with NodeMCU, simplifying the development process and
enabling faster prototyping.
Applications of NodeMCU
21
NodeMCU finds applications in a wide range of IoT projects and embedded systems. Some
common use cases include:
Home automation systems: NodeMCU can control and monitor various devices in a smart home
setup, such as lights, appliances, and environmental sensors.
Weather stations: NodeMCU can collect data from various sensors, such as temperature,
humidity, and atmospheric pressure, and transmit it to online platforms for analysis and
visualization.
IoT-based security systems: NodeMCU can be used to build motion detectors, door/window
sensors, and surveillance cameras that send alerts and notifications to users' smartphones.
Industrial automation: NodeMCU can be integrated into industrial systems for monitoring and
controlling processes, collecting data, and enabling remote access and control.
Smart agriculture: NodeMCU can be used in agricultural applications to monitor soil moisture,
temperature, and light levels, enabling efficient irrigation and crop management.
Wearable devices: NodeMCU can power wearable gadgets such as fitness trackers,
smartwatches, and health monitoring devices that connect to mobile apps or cloud platforms.
22
2.4.2 OTHER MICROCONTROLLERS
Arduino Mega: Arduino Mega is a more advanced microcontroller compared to Arduino Uno. It
is based on the ATmega2560 microcontroller and offers a larger number of input/output pins.
Arduino Mega has 54 digital input/output pins, 16 analog inputs, multiple UARTs (Universal
Asynchronous Receiver/Transmitter), and more memory. It is suitable for complex projects that
require a higher number of pins and enhanced capabilities.
Arduino Nano: Arduino Nano is a compact microcontroller board that shares similarities with
Arduino Uno. It offers a smaller form factor, making it suitable for projects with space
constraints. Despite its smaller size, Arduino Nano retains many of the essential features of
23
Arduino Uno, such as 14 digital input/output pins, 8 analog inputs, and a USB connection. It is
widely used in projects where size is a consideration.
2.4.2.2 RASPBERRY PI
Raspberry Pi: Raspberry Pi is a credit card-sized single-board computer (SBC) rather than a
microcontroller. It offers a complete computing system with a powerful ARM-based processor,
memory, storage, and various input/output options. Raspberry Pi runs on Linux-based operating
systems and provides extensive capabilities beyond traditional microcontrollers. It is commonly
used for projects that require advanced computing, multimedia applications, IoT, and even as a
mini desktop computer.
24
CHAPTER 3
1. NodeMCU
2. Connecting wires
3. GPS module
4. GSM 800l module
5. Power source
6. Breadboard
25
3.1 CONNECTING THE NODEMCU
• Install Arduino IDE: Download and install the Arduino IDE from the official Arduino
website (https://www.arduino.cc/en/software). Choose the version that is compatible
with your operating system.
• Install NodeMCU Board Support: Open the Arduino IDE and go to "File" ->
"Preferences". In the "Additional Boards Manager URLs" field, enter the following URL:
o http://arduino.esp8266.com/stable/package_esp8266com_index.json o
Click "OK" to save the preferences.
• Install NodeMCU Board: Go to "Tools" -> "Board" -> "Boards Manager". In the search
bar, type "esp8266" and install the "esp8266" board by ESP8266 Community.
• Select NodeMCU Board: After the installation is complete, go to "Tools" -> "Board" and
select "NodeMCU 1.0 (ESP-12E Module)" as the board.
• Set Port: Connect the NodeMCU to your computer using a USB cable. Go to "Tools" ->
"Port" and select the appropriate port for your NodeMCU. The port might have a name
like "/dev/cu... (NodeMCU)" or "COM..." (Windows).
26
•
Test the Blink Example: To verify that the NodeMCU is working correctly, go to "File" ->
"Examples" -> "ESP8266" -> "Blink". This will open the Blink example sketch. Click on the
checkmark icon to verify the code and then click on the right arrow icon to upload the
code to the NodeMCU. The onboard LED should start blinking once the upload is
successful.
• Start Building Your Project: Now you are ready to start building your own project using
the NodeMCU. You can write your code, include any necessary libraries, and upload it to
the NodeMCU using the Arduino IDE.
2. Place the NodeMCU ESP8266 board on the breadboard, ensuring that it spans the middle gap
of the breadboard.
• Connect the 3.3V pin of the NodeMCU to the positive rail of the breadboard.
• Connect the GND pin of the NodeMCU to the ground rail of the breadboard.
• Connect the VCC pin of the GPS module to the positive rail of the breadboard.
• Connect the GND pin of the GPS module to the ground rail of the breadboard.
27
•
• Connect the RX pin of the GPS module (usually labeled TX) to any available digital pin on
the NodeMCU, for example, D4 (GPIO 2).
Connect the TX pin of the GPS module (usually labeled RX) to any available digital pin on
the NodeMCU, for example, D5 (GPIO 14).
• Connect the VCC pin of the GSM module to the positive rail of the breadboard.
• Connect the GND pin of the GSM module to the ground rail of the breadboard.
• Connect the RX pin of the GSM module to any available digital pin on the NodeMCU, for
example, D6 (GPIO 12).
• Connect the TX pin of the GSM module to any available digital pin on the NodeMCU, for
example, D7 (GPIO 13).
6.Connect the GSM module's power key (PWRKEY) pin to any available digital pin on the
NodeMCU, for example, D3 (GPIO 0).
7.Connect the GSM module's reset (RST) pin to any available digital pin on the NodeMCU, for
example, D2 (GPIO 4).
8.Finally, connect the NodeMCU board to your computer using a USB cable to power it up.
There are other nodes that must be instantiated in the Firebase to store additional information
on the specific phone user. This includes the phone number on the GSM and the timestamp
data. Lets first look at how to set up the database itself:
28
•
1. Create a Firebase Project:
Click on "Add project" or select an existing project where you want to set up the database.
2. Enable the Realtime Database:
• In the Firebase Console, select your project.
• In the left-hand menu, click on "Realtime Database" under the "Develop" section.
• Click on the "Create database" button.
• Choose the location for your database (e.g., "us-central" or the region closest to you).
• Select "Start in test mode" for now (you can set up security rules later).
3. Obtain Firebase Credentials:
• In the Firebase Console, click on the gear icon at the top left and select "Project
settings."
29
•
• Replace "AIzaSyBxfjm8DSFwuyOXmCjHT_knNgFjDrasis8" with your Firebase
authentication token (can be found in the Firebase Console under "Project settings" >
"Service accounts" > "Database secrets").
6. Upload the Code to the NodeMCU:
• Connect your NodeMCU to your computer via USB.
In the Arduino IDE, select the correct board and port under "Tools" > "Board" and
"Tools" > "Port" respectively.
• Whenever the condition is met (e.g., every 20 minutes), the NodeMCU will log the
neighbor's location, SIM number, and timestamp to the Firebase Realtime Database.
• You can verify the data storage by checking the data structure and values in the Firebase
Console under "Realtime Database".
30
•
For the data to be set to the database, we will need database nodes that correspond to the data
fields where the data will be remotely sent. Below are the nodes we will need to have to
implement in the firebase database:
31
1. /disconnected_locations: This node represents the collection of disconnected locations.
Each entry under this node will store the information about a neighbor's disconnected
location.
2. Inside the /disconnected_locations node, each entry will have the following child nodes:
• location: This node stores the neighbor's location in latitude and longitude format (e.g.,
"latitude,longitude").
• sim_number: This node stores the SIM number associated with the disconnected
neighbor.
• timestamp: This node stores the timestamp indicating when the location was logged to
the database.
1. Include the necessary libraries: This section includes the library files needed for the
GSM modules to the ESP8266 board. The specific pins used for GPS RX, GPS TX, GSM RX,
and GSM TX are assigned values (e.g., D4, D5, D6, D7). These pin assignments may vary
depending on the board and module used.
3. Create SoftwareSerial instances: This section creates instances of the SoftwareSerial
library for the GPS and GSM modules. The instances are initialized with the previously
defined pin assignments. SoftwareSerial allows serial communication with devices using
software-defined RX and TX pins.
4. Create a TinyGPSPlus object: This section creates an object of the TinyGPSPlus class. The
TinyGPSPlus library provides functions for parsing GPS data received from the GPS
module. The created object will be used to handle GPS data parsing and storage.
32
5. Initialize variables for tracking time intervals: This section defines variables used to track
time intervals. It includes an unsigned long variable named previousMillis to store the
previous timestamp and a constant long variable named interval to specify the desired
time interval (in milliseconds).
6. Define Firebase project credentials: This section defines the Firebase project credentials
required to establish a connection with the Firebase Realtime Database. It includes the
Firebase project's host URL (e.g., "") and https://neighborir-default-rtdb.firebaseio.com/ the
authentication token (e.g., "AIzaSyBxfjm8DSFwuyOXmCjHT_knNgFjDrasis8").
7. Specify Wi-Fi network credentials: This section defines the credentials (SSID and password)
of the Wi-Fi network to which the ESP8266 board will connect. The board will establish a Wi-
Fi connection using these credentials.
8. Create an instance of FirebaseData: This section creates an instance of the FirebaseData
33
• Read GPS data from the GPS module using the gps.encode() function within a while loop
that checks for available data from the GPS module using
gpsSerial.available().
• Track the current time in milliseconds using the millis() function.
• Check if the specified time interval has passed by comparing the difference between the
current time and the previous timestamp stored in the previousMillis variable with the
interval value.
• If the interval has passed and the GSM module is not connected (checked using the
isGSMConnected() function):
- Get the current location using the getLocation() function.
- If a valid location is obtained:
- Retrieve the SIM number using the getSimNumber() function.
- Send the location data to Firebase using the sendToFirebase() function, including the
location, SIM number, and timestamp.
11. Create a function to retrieve the SIM number: This section defines a function named
getSimNumber() that communicates with the GSM module to retrieve the SIM number.
It sends an "AT+CCID" command to the GSM module and waits for a response. The
response is then parsed to extract the SIM number, which is returned as a String.
12. Create a function to check GSM connectivity: This section defines a function named
getLocation() that retrieves the current location from the GPS module. It checks if the
GPS location data is valid and returns the latitude and longitude as a String in the format
"latitude,longitude".
14. Create a function to send data to Firebase: This section defines a function named
sendToFirebase() that sends data (location, SIM number, and timestamp) to the Firebase
34
Realtime Database. It creates a FirebaseJson object, sets the data fields, and uses the
Firebase.pushJSON() function to push the data to the
"/disconnected_locations" path in Firebase. The function also prints the sent data to the
serial monitor for debugging purposes.
35
CHAPTER 4
Latitude: -1.2796
Longitude: 36.8172
Within the research region, these coordinates refer to a particular geographic area. To comprehend the
relevance of these coordinates in connection to the study goals, additional analysis and interpretation
were done. The southern hemisphere is indicated by the latitude value of -1.2796. We can identify the
general location where the data was taken by comparing this latitude with well-known landmarks or
maps of the research area. Similar to latitude, the eastern hemisphere's 36.8172 longitude number
serves as a reference point and aids in pinpointing the precise position.
According to the data gathered, the SIM number 792392175 was noted. This number is associated with
the SIM card that was used in the communication module for data gathering. A thorough understanding
36
of the individual device's activities and connectivity inside the defined area may be attained by
connecting the SIM number with the recorded geographical coordinates.
4.1.3 Timestamp
The timestamp in this project refers to the day and time when the SIM number and location data were
captured. It plays a crucial role in examining the temporal features of the data that has been gathered
and offers perceptions into patterns and trends across time.
The data was captured with a timestamp of 1621422000000. The milliseconds since January 1st, 1970 at
00:00:00 Coordinated Universal Time (UTC) are represented by this number. The precise date and time of
the data collecting event may be identified by transforming this timestamp into a human-readable
format, assisting in further analysis and contextualizing the results.
37
A few notable parts that might lengthen processing time are the ones that decode GPS data
(gps.encode), retrieve SIM numbers (getSimNumber), verify GSM connectivity (isGSMConnected), and
transmit data to Firebase (sendToFirebase). These activities can take different amounts of time depending
on the signal strength, network latency, and server response times.
Especially within the main loop (loop function), it is crucial to make sure the code is streamlined to
reduce needless delays or redundant actions. Optimizing the database and communication exchanges
can also speed up processing overall.
As both GPS and GSM modules use the same software serial implementation, care should be made to
reduce resource conflicts or limits. This might affect overall performance, especially if data transmission
and reception happen often or simultaneously.
One last thing to think about is memory use. A number of libraries are used in the code, each of which
allocates a certain amount of memory for variables, buffers, and data structures. To prevent crashes and
instability on devices with limited resources, such the ESP8266, memory use must be optimized.
Additionally, the code must be Wi-Fi enabled (ESP8266WiFi library) in order to connect to the Firebase
database. Performance might be impacted by Wi-Fi connection stability and dependability, especially
when there is a poor signal or network congestion.
4.2.3 Reliability
The code's dependability depends on its capacity to manage exceptions, incorrect situations, and
unforeseen circumstances. For instance, the code should gracefully manage instances when the GPS
module is unable to give accurate position data or when the GSM module has connectivity problems, and
it should continue to operate without resulting in system failures or data loss.
To increase the overall stability of the code, proper error management, exception handling, and feedback
methods like logging and error reporting are recommended.
38
It is advised to test the code in various settings, such as varying signal strength, network conditions, and
the availability of GPS data, in order to more thoroughly assess the performance. The ESP8266
platformspecific monitoring and profiling tools may be used to examine resource utilization, execution
times, and possible bottlenecks.
39
CHAPTER 5
In terms of resource use and execution speed, the code implementation performed satisfactorily. The
code handled GPS data decoding, GSM communication, Wi-Fi connectivity, and interaction with the
Firebase database well by employing libraries like SoftwareSerial, TinyGPS++, ESP8266WiFi, and
FirebaseESP8266.
The code's speed of execution was determined to be sufficient for real-time data transmission and
collection. Important operations including decoding GPS data (gps.encode), getting a SIM number
(getSimNumber), checking for GSM connectivity (isGSMConnected), and transferring data to Firebase
(sendToFirebase) were completed in a timely manner. However, delays and unnecessary actions can be
reduced, particularly in the main loop (loop function), to further improve the efficiency of the code.
The management of resource consumption, in particular memory management, was successful. The
libraries used by the programme made use of the required memory for variables, buffers, and data
structures. Because there are just a few hardware serial ports on the ESP8266 board, employing software
serial connection (SoftwareSerial) was a viable alternative even if it imposed some resource overhead.
However, because the GPS and GSM modules frequently transmit and receive data at the same time,
resource conflicts or constraints may result.
Through a variety of studies, the system's dependability was evaluated. When handling exceptions,
incorrect situations, and unforeseen circumstances, the code demonstrated robustness. It handled
circumstances when the GSM module ran into connectivity problems or where the GPS module was
unable to deliver accurate position data. This made guaranteed that the system kept working without
resulting in system failures or data loss. The dependability of the system was maintained in large part via
feedback systems, exception management, and error handling.
40
The project's trials confirmed the system's operation and performance under various circumstances. We
evaluated the system under various signal situations, network setups, and GPS data availability. We were
able to evaluate the system's stability and behavior in real-world circumstances thanks to these studies,
which also helped us pinpoint possible areas for development.
Overall, the data collecting and communication system's performance and dependability were good. The
code effectively handled GPS data processing, SIM number retrieval, GSM connection testing, and data
transmission to the Firebase database. Resource use was optimized, and the system handled exceptions
and faults with resilience. Experiments were out in various settings proved the system's functioning.
The research made clear how important performance analysis and optimization are to making sure that
data collecting and transmission systems are efficient. Developers may find and fix performance
problems, enhancing the system's overall functioning and user experience, through meticulous testing
and monitoring.
Future work may concentrate on more performance-improving code optimization. To handle GPS and
GSM modules concurrently, this can entail optimizing execution speed, lowering resource consumption,
and investigating alternate communication techniques. Incorporating extra features like data
compression, data filtering, or sophisticated error handling systems may also improve the effectiveness
and dependability of the system.
The construction and assessment of a data collecting and communication system utilizing an ESP8266
microcontroller were usefully illuminated by this project, in conclusion. Performance analysis, effective
code implementation, and reliable error handling were all emphasized by the project. The information
gathered from this study may be used as a basis for creating more complex and effective data gathering
and transmission systems in a variety of fields.
5.2 Recommendation
1. Use High-Quality GPS Antenna:
The GPS antenna plays a critical role in receiving and processing accurate location data. To enhance the
performance of the project prototype, it is recommended to invest in a high-quality GPS antenna or
module with improved sensitivity and signal reception capabilities.
41
Use a rugged and weatherproof enclosure to protect the prototype from moisture, dust, and
physical damage. Ensure the enclosure is properly sealed and secured to maintain the integrity
of the internal components.
Include a real-time clock module to maintain accurate timestamping, even in the absence of an internet
connection. This ensures reliable and accurate timestamps, particularly when the device is powered on or
reconnected to the network.
There is the need to use SMS control for the GSM controlled prototype. This is supposed to have
the information that is persisted on the database to a user who sends a message for the same to
the SIM card in the GSM module of the protype.
42
REFERENCES
1. R. Kumar, S. Pradhan, and A. Pattnaik, "Performance Analysis of GPS-based Location Tracking
Systems," International Journal of Computer Applications, vol. 168, no. 5, pp. 10-15, June 2017.
2. S. S. Saroha, S. C. Sharma, and P. K. Choudhary, "Enhancing the Accuracy of GPS Tracking Systems
using High-Gain Antennas," International Journal of Advanced Research in Computer Science and
Software Engineering, vol. 7, no. 8, pp. 179-185, August 2017.
3. S. Verma, N. Goyal, and S. Singh, "Power Optimization Techniques for Battery-Powered IoT
Devices," International Journal of Computer Sciences and Engineering, vol. 6, no. 8, pp. 101-108,
August 2018.
4. K. S. Kim and Y. Y. Kim, "Robust Mounting Techniques for IoT Devices in Harsh Environments,"
IEEE Transactions on Components, Packaging and Manufacturing Technology, vol. 8, no. 6, pp.
1082-1090, June 2018.
5. G. R. Ortega, C. E. Ramos, and D. Ochoa, "Data Compression Techniques for IoT Applications: A
Review," Sensors, vol. 19, no. 15, 3349, July 2019.
6. M. Laitinen, "Field Testing of IoT Devices in Real-World Environments," Proceedings of the 15th
International Conference on Mobile and Ubiquitous Multimedia, pp. 217-222, November 2016.
7. S. Rathore, A. Paul, and S. Pradhan, "Error Handling and Exception Management in IoT Systems,"
Proceedings of the 4th International Conference on Internet of Things, Data and Cloud
Computing, pp. 282-288, April 2019.
8. M. S. Hossain and M. Hasan, "User Interface Design Principles for IoT Applications," Proceedings
of the 3rd International Conference on Advances in Electrical Engineering, pp. 157-162,
December 2017.
9. D. K. Roy, "Enclosure Design for Outdoor IoT Devices," Journal of Engineering Science and
Technology Review, vol. 11, no. 2, pp. 78-83, April 2018.
10. J. Taylor and R. Jain, "Real-Time Clocks in Embedded Systems," Proceedings of the IEEE, vol. 91,
no. 5, pp. 729-766, May 2003.
11. M. F. I. Sarkar, S. Islam, and M. S. Hossain, "Security Issues and Challenges in IoT Applications,"
Proceedings of the International Conference on Networking Systems and Security, pp. 42-46, May
2018.
43
12. J. Zhang, Y. Zhang, and J. Sun, "Cost-Effective IoT Solutions for Low-Budget Projects," Proceedings
of the 14th International Conference on Ubiquitous Information Management and
Communication, pp. 76-81, January 2020.
APPENDICES
Code Breakdown
#include <SoftwareSerial.h>
#include <TinyGPS++.h>
#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>
FirebaseData firebaseData;
void setup()
{ Serial.begin(9600);
gpsSerial.begin(9600);
gsmSerial.begin(9600);
// Connect to Wi-Fi
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED)
{ delay(500);
Serial.print(".");
}
Serial.println("");
44
Serial.println("WiFi connected");
// Connect to Firebase
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Serial.println("Connected to Firebase..");
Firebase.reconnectWiFi(true);
} void loop() { while
(gpsSerial.available() > 0)
{ gps.encode(gpsSerial.read());
} unsigned long currentMillis = millis(); if
(currentMillis - previousMillis >= interval)
{ previousMillis = currentMillis;
if (!isGSMConnected())
{ String location =
getLocation(); if (location !=
"") {
String simNumber = getSimNumber();
sendToFirebase(location, simNumber, currentMillis);
}
}
}
}
// function to get the sim card number on the GSM
String getSimNumber()
{ gsmSerial.println("AT+CCID"); delay(1000);
45
String response = ""; while
(gsmSerial.available()) { response
+= (char)gsmSerial.read();
} return response.indexOf("+CREG: 0,1") != -1 || response.indexOf("+CREG:
0,5")
!= -1;
}
// Get the location from the GPS module
String getLocation() { if
(gps.location.isValid()) {
String location = String(gps.location.lat(), 6) + "," +
String(gps.location.lng(), 6); return location;
} return
"";
}
//send the location, phone number and time details to Firebase
void sendToFirebase(String data, String simNumber, unsigned long timestamp) {
FirebaseJson json; json.set("location", data); json.set("sim_number",
simNumber); json.set("timestamp", timestamp);
46