Embedded Systems and IoT Overview
Embedded Systems and IoT Overview
CHAPTER 1
COMPANY PROFILE
1.1 INTRODUCTION
1.2 HISTORY
➢ The company was legally registered in the year 2013, but it made its humble beginning
in the year 2012 with a team of six members. In the beginning the team started designing
some protocols for wireless communication with a range up to 4 to 5 km line of sight.
The company handled various projects and successfully completed them satisfying the
client requirement. After the successful completion of the project and achieving
customer satisfaction the number of clients increased who sincerely served with respect
and faith.
➢ That is how the company started generating the revenue. Even though the team
members were experts in embedded electronics, Java, Dot net and android, the company
simultaneously established itself to develop websites and few latest apps based on the
client requirement. The company was later registered on 24th December 2013 and
established a well-equipped office space with good R&D unit and supporting
infrastructure. It started recruiting people with great skills and expertise for different
domains of company and started working with new hopes and enthusiasm. Presently
the company have around 25 employees including all the departments like Embedded,
Java, Dot net, android, Testing, PCB design, IOT and so on. The company is working
with many Industrial projects in different domains and working for its own products
1.3 COMPANY STRATERGY
➢ Purpose: To be a leader in the software Industry by providing enhanced services,
relationship and profitability.
➢ Vision: To provide quality services that exceeds the expectations of our esteemed
customers.
➢ Mission: To build long term relationships with our customers and clients and provide
exceptional customer services by pursuing business through innovation and advanced
technology.
➢ Core values:
▪ To integrate honesty, integrity and business ethics into all aspects of the business
functioning.
➢ Goals:
▪ To improve, grow and become more efficient in the field electronics engineering and
software development and develop a strong base of key clients.
▪ Increase the assets and investments of the organization to support the development of
services and expansion of the organization.
• IT Service.
• Server Maintenance
• Project Management
• Company Product
• Industrial Automation
• Hone Automation
• Biometrics
• LED Products
• Government
• Health Care
• Outsourcing
• HR Management
1.6 DEPARTMENTS
• Production: Production is the functional area responsible for turning inputs into
finished outputs through a series of production processes. The Production Manager is
responsible for making sure that the materials required are available at the time of
developing the product. The Production manager must make sure the work is carried
out smoothly and must supervise procedures for making work more efficient. A product
is anything that can be offered to a market that might satisfy a want or need.
• Marketing: These are the main section of the market departments:
• Sales department is responsible for the sales and distribution of the products to the
different regions.
• Research & Department is responsible for market research and testing new products
to make sure that they are suitable to be sold.
• Promotion department decides on the type of promotion method for the products,
arranges advertisements and the advertising media used.
CHAPTER 2
DEPARTMENTAL ACTIVITIE
• Processor
• Memory
• Timers/Counters
• Communication ports
• Assembler
• Interrupt controller
density at every junction. Traffic jam is a major problem in many cities across the
world and gives regular nightmares to the commuters and travelers.
• APPLICATION OF EMBEDDED SYSTEM FOR VEHICLE TRACKING
The main purpose of this project is to find the exact location of a vehicle by using a GPS
modem and in order to reduce vehicle thefts. The GSM modem sends an SMS to a
predefined mobile which stores the data in it. An LCD display is used to display the
location information in terms of latitude and longitude values. The microcontroller
(AT89C52) is preprogrammed with the Kiel software and therefore, continuously
checks the GPS modem.
• EMBEDDED SYSTEM FOR AUTO INTENSITY CONTROL
This project is designed to auto intensity control of LED based street lights by using
solar power from the photovoltaic panels. The awareness for solar energy is increasing,
and many institutions and peoples are opting solar energy. In this project, Photovoltaic
panels are used for charging batteries by converting the sun energy into electrical
energy. A solar charge controller circuit is used to control the charging.
• APPLICATION OF EMBEDDED SYSTEM FOR HOME AUTOMATION
SYSTEM
The main purpose of this project is to design a home automation system with the
Android application based remote control. Remote operation is performed by Android
OS based smart-phone or Tablet etc., upon a Graphical User Interface based touch
screen operation.
2.3 Computing System vs Embedded System
Introduction to Computing System:
A computing system refers to an integrated set of hardware and software that
works together to perform tasks, process data, and execute instructions. These systems are
designed to receive input, process it using a central processing unit (CPU), store
information in memory, and produce output in a meaningful form. The hardware includes
physical components like the processor, memory units (RAM/ROM), storage devices, and
input/output peripherals. Computing systems are categorized into general-purpose systems
such as personal computers, laptops, and servers and special-purpose or embedded systems
found in devices like washing machines, smartphones, and medical instruments. They are
essential across various domains including education, healthcare, manufacturing,
transportation, and communication, enabling automation, faster computation, and
intelligent decision-making.
It is widely used in embedded systems, IoT devices, robotics, and prototyping due to its
compact size and plug-and-play nature. Unlike SoC, which is just a chip, SoB includes both
the SoC and supporting components on one board, offering a ready-to-use development
and deployment platform.
• A fairly large number of basic CPU architectures are used- Von Neumann and Harvard
architectures.
• RISC and CISC.
• Word lengths vary from 4- bits to 64- bits and beyond (mainly in DSP processors).
1. Fetch cycle:
In the fetch cycle, the processor retrieves the next instruction from memory using the Program
Counter (PC). The instruction is then placed into the Instruction Register (IR).
Example: Fetches ADD A, B from address 1000.
2. Decode Cycle:
The fetched instruction is sent to the Control Unit, where it is decoded to determine the
operation to perform and the resources (ALU, registers, memory) required.
Example: Understands ADD A, B means add two registers.
[Link] Cycle:
The processor performs the operation specified by the instruction. This may include arithmetic,
logical operations, data movement, or control functions, often using the ALU.
Example: Adds values in A and B, stores result in A.
The Harvard architecture is a computer design in which the instruction memory and
data memory are physically separated and use different buses. This allows the CPU to fetch
instructions and read/write data simultaneously, improving performance and efficiency. This
architecture is commonly used in microcontrollers, DSPs (Digital Signal Processors), and
embedded systems, where speed and real-time processing are important. It is more complex
than Von Neumann but offers better performance for specific tasks
2.8 INTRODUCTION TO IOT (Internet of Things)
The internet of Things (IOT) is the network of physical objects or “things” embedded with
electronics, software, sensors, and network connectivity, which enables these objects to collect
and exchange data. IOT has many applications in agriculture, smart cities, smart home,
healthcare, business sectors, Traffic monitoring, transport and logistics etc. This is growing
mega trend that will influence everything from businesses to our daily personal lives.
market, IoT technology is most synonymous with products pertaining to the concept of the
"smart home", covering devices and appliances (such as lighting fixtures, thermostats, home
security systems and cameras, and other home appliances) that support one or more common
ecosystems, and can be controlled via devices associated with that ecosystem, such as smart
phones and smart speakers.
2.9 APPLICATIONS OF IOT
CONSUMER APPLICATIONS:
A growing portion of IOT devices are created for consumer use, including connected
vehicles, home automation, wearable technology (as part of Internet of Wearable Things
(IOWT), connected health, and appliances with remote monitoring capabilities.
a. Smart home
IOT devices are a part of the larger concept of home automation, which can include lighting,
heating and air conditioning, media and security systems. Long-term benefits could include
energy savings by automatically ensuring lights and electronics are turned off. A smart home
or automated home could be based on a platform or hubs that control smart devices and
appliances. For instance, using Apple's Home Kit, manufacturers can have their home products
and accessories controlled by an application in IOS devices such as the iphone and the Apple
Watch. This could be a dedicated app or IOS native applications such as Siri. This can be
demonstrated in the case of Lenovo's Smart Home Essentials, which is a line of smart home
devices that are controlled through Apple's Home app or Siri without the need for a Wi-Fi
bridge
b. Elder care
One key application of a smart home is to provide assistance for those with disabilities and
elderly individuals. These home systems use assistive technology to accommodate an owner's
specific disabilities. Voice control can assist users with sight and mobility limitations while
alert systems can be connected directly to cochlear implants worn by hearing-impaired
users. They can also be equipped with additional safety features. These features can include
sensors that monitor for medical emergencies such as falls or seizures. Smart home technology
applied in this way can provide users with more freedom and a higher quality of life. The term
"Enterprise IoT" refers to devices used in business and corporate settings. By 2019, it is
estimated that the EIoT will account for 9.1 billion devices.
c. Commercial applications in medical and health care
The Internet of Medical Things (also called the internet of health things) is an application of
the IoT for medical and health related purposes, data collection and analysis for research, and
monitoring. This 'Smart Healthcare', as it is also called, led to the creation of a digitized
healthcare system, connecting available medical resources and healthcare services. IoT devices
can be used to enable remote health monitoring and emergency notification systems. These
health monitoring devices can range from blood pressure and heart rate monitors to advanced
devices capable of monitoring specialized implants, such as pacemakers, Fit bit electronic
wristbands, or advanced hearing aids. Some hospitals have begun implementing "smart beds"
that can detect when they are occupied and when a patient is attempting to get up. It can also
adjust itself to ensure appropriate pressure and support is applied to the patient without the
manual interaction of nurses. A 2015 Goldman Sachs report indicated that healthcare IoT
devices "can save the United States more than $300 billion in annual healthcare expenditures
by increasing revenue and decreasing cost." Moreover, the use of mobile devices to support
medical follow-up led to the creation of 'm-health', used "to analyze, capture, transmit and store
health statistics from multiple resources, including sensors and other biomedical acquisition
systems".
● Infrastructure management
float b = 3.14;
Variables and Constants
➢ Declaration:
int age;
char grade;
➢ Constant:
#define PI 3.14 // Preprocessor Constant
const int MAX = 100; // Constant variable
Loops:
▪ while, do-while, for
for(int i = 0; i < 5; i++) { ... }
Functions
• Declaration: int add(int, int);
• Definition:
int add(int a, int b) {
return a + b;
}
• Call by Value / Reference
Arrays
• 1D Array: int a[10];
• 2D Array: int matrix[3][3];
Strings
• Declared as character arrays.
char name[20];
scanf("%s", name);
• Functions from <string.h>: strlen(), strcpy(), strcmp(), strcat()
Example
#include <stdio.h>
#include <string.h>
int main() {
// Single character
char grade = 'B';
printf("Grade: %c\n", grade);
// String functions
char copiedName[50];
strcpy(copiedName, fullName); // Copy fullName to copiedName
printf("Copied Name: %s\n", copiedName);
if (strcmp(fullName, copiedName) == 0) {
printf("Names are the same.\n");
} else {
printf("Names are different.\n");
}
return 0;
}
Output
Grade: B
Greeting: Welcome
Length of greeting: 7
Project Description:
The project “IoT Bot” involves creating an embedded system that collects sensor data from
multiple sources—specifically an IR sensor, DC motor and motor driver, and an ultrasonic
sensor—using an ESP32 microcontroller. The sensors measure parameters like object presence
(IR sensor), DC motor, and motor driver. The ESP32 microcontroller reads these sensor values
and processes them accordingly. The system uses the UART communication protocol to
transmit the processed sensor data from to an ESP32. The ESP32 acts as a Wi-Fi module,
enabling the system to send the sensor data to the Ubidots cloud platform over the internet.
Infinity free is an IoT platform that allows for the visualization and analysis of real-time data
from connected devices.
Development tools such as ESP32CubeIDE and Arduino IDE are used in this project.
STM32CubeIDE is utilized to configure and program the ESP32 microcontroller, while the
Arduino IDE is used for programming the ESP32 to handle Wi-Fi communication and transmit
the data to Infinity free. The project aims to demonstrate how different sensors can be
interfaced with a microcontroller, communicate over UART, and leverage the ESP32's Wi-Fi
capabilities to send sensor data to the cloud for remote monitoring and control. This solution
can be extended to various IoT applications, making it ideal for smart home automation,
environmental monitoring, and industrial monitoring systems.
• Dc Motor
• HC-SR04 Ultrasonic Sensor
• Motor Driver
Software Requirements:
• Infinity free
• Arduino IDE
Hardware Requirements:
1.ESP32 Microcontroller
The sensor outputs a digital signal (HIGH or LOW) when motion is detected. Most IR sensors
like the KY-022 module operate on a 5V or 3.3V supply and can be connected directly to the
STM32 microcontroller for motion detection. This sensor is crucial for applications where
monitoring the presence or movement of objects is required, such as in security systems or
smart home applications.
A DC motor is an electric motor that converts direct current (DC) electrical energy into
mechanical rotational motion. It works on the principle of electromagnetic induction, where a
current-carrying conductor placed in a magnetic field experiences a force. DC motors have two
main parts: a stator (stationary part) and a rotor (rotating part). They are widely used in
applications like robots, toys, fans, electric vehicles, and industrial machines due to their simple
control over speed and direction.
1. Infinity free
Infinity Free is a free web hosting platform designed for users who need a cost-effective
solution to host websites, particularly useful for students, hobbyists, and developers working
on small to medium-scale projects. It offers completely free hosting services without any forced
advertisements, making it an attractive choice for those wanting a clean and professional-
looking website. Infinity Free supports essential web technologies such as PHP (up to version
8.3) and MySQL databases, which allows users to create dynamic websites and web
applications. Users can install a variety of web applications easily using the built-in Softaculous
installer, which includes options like WordPress, Joomla, and many others.
Arduino IDE is a simple, open-source development environment mainly used for writing and
uploading programs to Arduino boards and many other microcontrollers, including the ESP32.
It is lightweight, beginner-friendly, and supports a large number of libraries.
Working Methodology:
The project was carefully planned and executed in several well-defined phases to successfully
design an IoT-based embedded system capable of sensing environmental parameters and
transmitting them to a cloud platform for remote monitoring.
The project began with identifying the key requirements: sensing temperature, humidity, object
presence, and distance, transmitting the collected data to a cloud platform. Based on these
needs, appropriate hardware components were selected, including the Raspberry Pi
microcontroller for sensor data acquisition, the ESP32 module for Wi-Fi connectivity, and
infinity free as the cloud platform for visualization and analysis.
The DC motor was connected to the ESP32 to convert energy into different type. The IR sensor
was connected for object detection. The Ultrasonic sensor was used to measure distance. The
ESP32 microcontroller was configured to collect data from all these sensors. UART
communication was established between the ESP32 to enable the transmission of sensor data.
Care was taken to ensure proper voltage levels, pin connections, and stable power supply for
all components.
Software development was divided into two parts: ESP32 programming was done using
ESP3232CubeIDE. Peripheral configurations (GPIO, UART, timers) were set up using
ESP32CubeMX, and C code was developed to read sensor data and send it via UART. ESP32
programming was done using Arduino IDE. The ESP32 was programmed to receive the UART
data from the ESP32, connect to a Wi-Fi network, and send the received data to the Ubidots
cloud using HTTP or MQTT protocols. Both firmwares were tested individually first before
full system integration.
After the ESP32 were individually tested, they were integrated together: The UART
communication was validated to ensure that sensor readings from ESP32 were correctly
received by [Link] ESP32 was tested to confirm successful Wi-Fi connection and data
transmission to Ubidots. Necessary error handling and retries were implemented to ensure
robust communication even in case of connection loss.
The fully integrated system was tested in a real environment: Multiple sensor readings were
taken and verified for accuracy. UART transmission was monitored using serial terminals to
ensure correct data transfer. The data successfully appeared on the infinity free dashboard,
validating the end-to-end data flow from sensors to the cloud.
Hardware Implementation:
The IoT bot project shown in the image utilizes several key hardware components to
achieve remote control and automation. At the core is the ESP32 microcontroller, which
handles processing and Wi-Fi connectivity. It connects to an online interface hosted on
InfinityFree, allowing the bot to be controlled via a smartphone or computer browser. For
mobility, DC motors are used, driven through a motor driver module (likely an L298N or
similar), enabling forward, backward, left, and right movement. The bot also includes IR
sensors for line-following or obstacle detection and ultrasonic sensors to measure distance and
avoid collisions. These sensors send data to the ESP32, which then makes decisions or sends
updates to the web interface. The tracked chassis allows the bot to operate on various surfaces,
while the robotic arm (visible in the image) may be controlled for gripping or manipulating
objects. The entire system is powered via a battery pack, and the control interface is accessed
through a website hosted on Infinity Free, where the user can issue commands, such as move
directions or stop via buttons. This combination of hardware and IoT integration makes the bot
suitable for tasks like surveillance, remote inspection, or basic automation applications.
Software Implementation:
To implement a project using InfinityFree hosting with an Arduino, you can integrate
web-based control and monitoring of hardware components like bulbs and fans. InfinityFree
provides free web hosting that supports PHP and MySQL, allowing you to create a website that
acts as a user interface for your IoT system. On the website, you can design a simple HTML
form with radio buttons or toggle switches to control devices. These inputs send commands to
a PHP script that updates a MySQL database hosted on the InfinityFree server. Meanwhile, the
Arduino—connected to the internet via a Wi-Fi module like the ESP8266 or ESP32—
periodically checks the server for changes in device states. It does this by sending HTTP GET
or POST requests to the PHP script, which responds with the required control signals. Based
on the response, the Arduino can turn devices ON or OFF. Additionally, the Arduino can log
sensor data or device status back to the database using HTTP requests, allowing the website to
display real-time or historical logs. This setup effectively bridges web software with physical
hardware, creating a functional IoT application using free tools.
Results:
In addition to the core functions, this IoT bot demonstrates effective integration of hardware
and web technologies. The ESP32, equipped with built-in Wi-Fi, plays a critical role by
connecting to the InfinityFree-hosted website, which serves as the command interface. This
site likely includes buttons for directional control and status indicators for sensor feedback.
When a user presses a button (e.g., “Forward” or “Stop”) on the web page, the ESP32 receives
the HTTP request and sends appropriate signals to the motor driver, which then activates the
corresponding DC motors. This enables real-time, wireless operation without the need for
Bluetooth or RF modules.
The IR sensors can be used for edge detection or line-following functionality, allowing the bot
to follow a predefined path or stop at edges to prevent falls. Meanwhile, the ultrasonic sensor,
usually mounted at the front, continuously measures the distance to obstacles and sends this
data to the ESP32, which can make automatic decisions like halting the bot or alerting the user
through the web interface.
The bot's robotic arm or gripper, as visible in the image, is controlled by additional motors or
servos, allowing it to interact with physical objects. This can be particularly useful in
warehouse automation, object retrieval, or hazardous environments. Internally, a veroboard
(stripboard) setup is used to neatly organize circuit connections, and jumper wires connect all
the modules, making it modular and easy to troubleshoot. This hardware configuration
combined with a simple HTML/PHP web interface hosted for free online offers a low-cost yet
powerful IoT robotics solution, ideal for student projects, research, and prototyping in
automation and remote robotics.
The above image displays the homepage of an IoT Bot Control web interface hosted
on InfinityFree. It offers users a simple and clean design with a blue gradient background and
two main control options: Movement Control and Arm Control. These options allow users
to remotely manage the bot’s movement and robotic arm actions over the internet. The page
welcomes users with a friendly message and provides an intuitive interface for operating a
robotic bot using IoT technology. The footer also mentions that it’s specifically designed for
an IoT_Bot Project, highlighting its purpose-built nature for robotics control experiments.
The above figure showcases the IoT Bot Joystick Control page from a web-based robot
control system hosted on InfinityFree. It provides a simple and user-friendly interface to control
a robotic bot’s movement remotely over the internet. The layout includes five control buttons:
Front, Back, Left, Right, and Stop, arranged like a joystick pattern for intuitive navigation. A
yellow button at the bottom labeled "Back to Home" lets users return to the main control menu.
This setup allows users to manage their bot’s directions through a web browser, making it ideal
for IoT and remote robotics experiments.
The above figure displays the IoT Bot Joystick Control page for Arm Control in a web-
based robotics control system. This interface allows users to manage the bot’s robotic arm
remotely over the internet. The control layout includes buttons for Open, Close, Up, Down,
and two stop functions Stop_Clamp for halting the clamp motor and Stop_Angle for stopping
arm angle adjustments. It provides an interactive way to operate the robot’s gripper and arm
position. The familiar "Back to Home" button at the bottom returns users to the main control
dashboard. This design ensures easy and efficient arm control in IoT-based robotic
applications.
Conclusion
The internship at AIROBOSOFT Product and Services LLP, Bengaluru, has been a
transformative and enlightening experience that has significantly contributed to my personal
and professional development. Coming from a core Electronics and Communication
Engineering (ECE) background, I initially faced challenges stepping into the world of
Information Technology and software development. However, through continuous learning,
hands-on projects, and mentorship, I was able to overcome these challenges and build a strong
foundation in Embedded system and IoT. One of the most impactful aspects of the internship
was the real-time project work. This project helped me consolidate all the technologies I had
learned during training and gave me a platform to implement them in a practical scenario. From
designing the user interface and managing backend logic to frontend integrating handling user
data securely, I experienced the end-to-end lifecycle of a web application. This provided me
with insights into how real-world software and hardware products are built, tested, and
deployed.
The tools and technologies I used—such as Python, HTML, CSS, MySQL, Raspberry
Pi and Sensors and ESP32—allowed me to gain valuable technical expertise. More
importantly, I learned to approach problems analytically, work independently as well as
collaboratively, and adapt to unfamiliar tools quickly—skills that are essential in the
professional IT world. Beyond the technical learning, this internship also helped me grow in
terms of communication, time management, and understanding client-oriented software
development. It has given me the confidence to step into the software industry and continue
my journey as a budding developer, equipped with practical experience and a clear
understanding of modern development practices.
In conclusion, this internship has not only filled the gap between academic learning and
industry expectations but has also inspired me to pursue a career in software development and
hardware implementation. I am extremely grateful to AIROBOSOFT Product and Services
LLP for providing me with this opportunity, mentorship, and a platform to learn, grow, and
build something meaningful.
CHAPTER 3
INTRODUCATION
This project aims to solve the problem of tracking and accountability of vehicles by
providing a software platform. This project would serve as an important step to help in Vehicle
tracking, component monitoring, vehicle analysis and fleet management. An efficient vehicle
tracking system is implemented for monitoring of any equipped vehicle from any location at
any time with the help of Global Positioning System (GPS) and Arduino Board which will
enable users to locate their vehicles with ease and in a convenient manner. This web application
will offer a dashboard for improved and easy considerate of their vehicle positions and related
statistics.
PROBLEM STATEMENT
The crime involving vehicle theft has been increasing in the past few years in Malaysia
and from the latest update by General Insurance Association of Malaysia (PIAM) shows that
about 60 vehicles were stolen every day and there are 11,796 cases from January until Jun2016
and the numbers keep increasing until today. Any type of vehicle can be targeted by the thief
and stolen vehicles are generally sold or in worst case scenario, some parts of vehicle might be
separated and detached to be sold to different people, hence making it more difficult to find the
vehicle. Before the vehicle tracking system was introduced, the users have to report to the
police manually. The police have to initially investigate and then start to search for the car,
while at the same time, the car might have already been move far away from its original
location. This problem, generally, is wasting time and is causing trouble to not only the user,
but the police to find the car. Thus, knowing how important and crucial the vehicle tracking
system for the safety purposes is, we are proposing this project. In this project the design and
implementation of the vehicle tracking anti-theft system is proposed. This system not only
secures and protects the moving vehicles, but also uses real time GPS system along with the
GSM which will help the user in determining the precise location of the vehicle. This system
will update the user for every instant of the moving vehicle through their GPS receiver
OBJECTIVES
• Deliver precise and up-to-date GPS coordinates to track the movement of vehicles,
assets, or individuals.
• Present real-time tracking data using an interactive and user-friendly web or mobile
dashboard.
• Allow users to view route history, speed trends, and location logs for decision-making
and reporting.
• Notify users of unusual behavior or boundary violations using geofencing and alert
systems.
METHODOLOGY
GSM FREEBOARD
MODULE
ARDUINO
GPS THINGS BOARD
MODULE SETUP
USER
In this project, the major purpose is to track distinct vehicle that are traveling on the roads. The
vehicle being tracked can transfer the information of the receiver such as location and it’s
speed, etc. This device is installed inside the vehicle. The tracking system on a moving vehicle
basically works on the basis of the satellite through which the signals are being transmitted and
received. The block diagram of the GPS tracking system for anti-thefting
This design in used to transmit the location and speed of the vehicle to the
receiver’s side. The most important part of this project is the transmission of the signals from
the GSM module to the GPS receiver. An Arduino UNO has been used to manage the entire
mechanism of the vehicle tracking system. Since a receiver and a transmitter is required for a
tracking system, a GPS has been used to act as a receiver and a GSM module has been used to
act as a transmitter. The GPS will identify the coordinates of the location at which the vehicle
is at, while the GSM module will transmit those coordinates to ThingsBoard Setup via SIM
card internet data. ThingsBoard Setup is utilized as the platform where it stores the coordinates
that GSM module send to it and Freeboard as the platform for user to seek their vehicle location.
In this project, we have used ThingsBoard Setup Free-board, GPS Module and GSM Module
SIM9000 as the hardware to form a complete system.
HARDWARE REQUIREDMENT
• Arduino Uno
• Botletics SIM7000
• Hologram SIM
• Lithium -ion Battery
Arduino Uno
Items Features/Ratings
Microcontroller ATmega328
Operating Voltage 5V
SRAM 2Kbits
Botletics SIM7000
• Directly compatible with Arduino Uno, Mega, and Leonardo + easy connection for other
logic voltages
• Ultra low-power mode drawing < 8uA, ideal for battery-powered IoT devices + LiPo
battery charging
• Kit includes dual flexible LTE/GPS antenna and stacking female header kit
Hologram SIM
Hologram is a cellular platform designed for the Internet of Things. This product is a global
IoT SIM card that covers over 170 countries and partnerships with 200+ carriers.
Technical Specifications
USB cable
• You can use a car USB adapter to power your Arduino while testing the shield
on the road.
• Alternatively, you can use a battery pack (7-12V) to power the Arduino via the VIN
and GND pins
ARDUINO SETUP
The Arduino IDE supports the languages C and C++ using special rules of code
structuring. The Arduino IDE supplies a software library from the Wiring project, which
provides many common input and output procedures.
[Link] SETUP
[Link] a IoT dashboard that can connect with numerous cloud platforms like
PubNub and dweet, as well as other features like JSON and MQTT. we'll be also using [Link]
. As an important note, dragging panes in [Link] doesn't seem to work in Chrome so use
Firebox or Microsoft Edge instead. If you don't, it can be a real "pane" to re-arrange the items
on your screen!
• The first thing you'll need to do is create an account by clicking the red "START
NOW" button on the [Link] home page, enter credentials, and click "Create My
Account". You will then get an email notification confirming your new account.
• Now click "Login" at the top right of the home page and after signing in you
should see your "freeboards", which are just dashboards that you set up for your
projects. Enter a new project name and click "Create New" near the top right. This will
then bring you to an empty dashboard where you can set up the interface just how you
like it. In freeboard there you can set up various "panes", and each pane can have a
single or multiple "widgets" which are things like graphs, maps, gauges, etc. that
display your data in some way.
• The first thing we need to do now is to set up the actual source of data, which is
your Arduino + LTE shield. To do that, click "ADD" on the top right under "Data
sources". Next, select "[Link]" and enter any name you want under the "Name" field.
However, make sure that under the "Thing Name" field you enter the shield's IMEI
number instead of any arbitrary name, because that's what freeboard will use to pull
data from dweet.
• After clicking "Save" you should see your device appear under "Data sources"
as well as the last time it sent data to the dweet. You can also click the refresh button
to check for the latest values, but freeboard will update by itself so you normally
shouldn't have to use that button.
Dashboard Setup
• To add a pane, click the "ADD PANE" button at the top left and you will see it
add a small window on your screen. However, there's nothing here yet because we
haven't added any widgets!
• To add a widget click the little "+" button on the pane. This will bring up a
dropdown menu with various widget options. Since we're going to be doing some GPS
tracking let's pick the "Google Map" widget. You should then see two fields, the latitude
and longitude. In order to fill these out properly your device needs to have posted to
dweet already. Assuming it has, you should be able to click "+ Data source", click on
the data source (the "SIM7000 GPS Tracker"), then click on "lat", which is the variable
name that the shield uses when posting to dweet. Repeat the procedure for the longitude
field and click the slider at the bottom if you want the map to draw lines between data
points to mark where you've been.
• Now you should see a small map of your approximate location! To test if the
map works, try changing your current GPS long to something slightly different
changing,
• Example the first digit after the decimal point of the lat/long values in the dweet
URL that was printed in the serial monitor in Arduino IDE when the shield posted data.
After tweaking them, copy and paste the URL and execute it in your browser.
• Now switch back to freeboard and you should see that it graphed your tweaked
location and drew an orange line between the points! Cool stuff huh? So I think you get
the picture that our GPS tracker will send location data to dweet for you to see it on
freeboard in real time or after your adventure is over
• Since our little GPS tracker sends not only lat/long data but also altitude, speed,
heading, and temperature, let's throw in a few more widgets to make our dashboard
more colorful!
• Let's begin by adding a new pane then to add a gauge within the new pane click
the "+" button in the pane and select "Gauge". Just like before, use the data source and
select "speed" as the data we're interested in fetching for this gauge. You should then
see a nice gauge on your dashboard!
• Repeat this for the altitude and temperature values.
• Now for the heading let's add a "Pointer" instead. This is essentially a compass
because it starts off pointing up (North) at 0 degrees and rotates clockwise for positive
headings Perfecto!
• To change the size of the pane, hover over the pane which contains the map and you
should see a little wrench symbol at the top right. Click that and enter a title for the pane
and enter "2" under "Columns" to increase the width of the pane.
• To change the locations of the panes simply drag them around! You can also experiment
adding a "Sparkline" which is basically just a line graph so you can see not only the
latest data but historic data as well.
THINGSBOARD SETUP
The first thing you should do is go to the Things Board home page then create an account by
clicking the top right menu button and selecting "Live Demo". Create an account, verify your
account in an email they send you, then log back in to the ive demo homescreen This should
bring you to a screen where you can manage all your devices, edit dashboards, etc
Next, select the "Devices" tab on the left hand side. This should bring up a bunch of demo
devices like ESP8266, DHT22, Arduino and Pi demos, etc. Create a new device by clicking
the red "+" button at the bottom right and enter a name and choose "default" for device type.
After clicking "ADD" you should see your new device in the Devices tab. Click on "Manage
Credentials" and you should see a small window pop up showing the device's access token.
This is essentially the device ID and is analogous to the device ID used for posting data to
[Link]. You can change this device ID to the IMEI number of your shield if you want, but
you can also just use the auto-generated token. Copy this token as you will need it in the
Arduino sketch.
In order to actually verify that data is being sent to ThingsBoard correctly, go to the
same device details page (click on the GPS Tracker device tile in the "Devices" page) then
click the "Latest Telemetry" tab. If your GPS tracker is sending values to ThingsBoard you
should see the latest values here and they will update in real time as they come in.
Now that you've verified that ThingsBoard is actually getting the data it's time to set up the
dashboard so we can visualize our data when as we collect it!
SETTING UP DASHBOARD
Now click the "Dashboards" tab on the left and select your GPS tracker device. This should
bring up a new page that asks you to add widgets. Click the bottom right "+" button and "create
new widget" to bring up a dropdown menu of widgets to choose from. For now let's add a
"digital gauge". Selecting this should load a bunch of previews for all the different types of
digital gauges you can choose from. When you click on one it will bring up another screen for
you to set up the widget parameters. The first thing you need to add is the datasource (your
GPS tracker device which sends the data to ThingsBoard). Press the "+ ADD" button and select
your "GPS Tracker" device and select the appropriate variable that you want the widget to
display. In this case, let's choose the variable "temp" (temperature).
ADDING A MAP!
GPS tracker a map is a must-have! Let's add one by creating a new widget (bottom
right "+" button again) and this time scroll down and select "Maps". Go ahead and click on one
and it will bring up the options for it. Add the datasource as usual but this time, select both
"lat" and "long" variables since it will need both of these to get the location. Next, go to the
"Settings" tab and here you can set the timewindow of the data to display on the map. For
example, you may only want the last 2 minutes of data to appear, or you may want all data
since yesterday,
Fig 3.20 Adding and Configuring a Map Widget with Latitude and Longitude in
ThingsBoard
If you want you can then go to the "Advanced" tab and select the map type (roadmap, satellite,
hybrid, or terrain). Perhaps the most important part of all this is to check the latitude and
longitude key names. Make sure these names correspond exactly to the variable names you're
actually sending to ThingsBoard. For example, if your Arduino sketch says it's sending "lat"
and "long" variables (which it is by default) then you need to change the key names to "lat"
and "long" and using "latitude" and "longitude" won't fetch your data!
Again, after adding the map it will appear at the bottom of the dashboard. Simply drag it to re-
position it on the dashboard and click and drag the edges to resize it. If your time window was
set correctly, you should see your current location appear on the map. Super neat huh? Now
we're ready for a real test!
RESULTS
THINGSBOARD RESULTS
In the pictures above you can see my dashboard setup. I added charts to graph historical
data for things like speed, altitude, and temperature, and also included real-time gauges in case
I want to see them in real time on another road trip (image this in an RV!)
Fig 3.21 Displaying Real-Time Location and Sensor Data on the Dashboard
The map was killer awesome and I managed to collect some really accurate data of a route I
took. Also, the speed data was extremely accurate because we never exceeded about 40mph
(the graph is in kph) on the city roads.
The many fluctuations in speed can be explained by the traffic lights. Overall, great results and
just imagine what else we could use this for! You could install this on an RV, motorcycle, car,
etc. and have it track all the time and pull up the results on ThingsBoard
OUTCOME
CHAPTER 4
REFLECTION NOTES
Organizational Experience and Assessment
My internship at AIROBOSOFT Product and Services LLP was an enriching journey that
provided a comprehensive understanding of real-world applications in embedded systems and
IoT. Being part of a professional engineering environment allowed me to witness the lifecycle
I actively contributed to a live project, the “IoT Bot”, which involved interfacing sensors with
the ESP32 microcontroller and transmitting real-time data to a cloud server using InfinityFree
hosting. This hands-on exposure helped me connect theoretical knowledge with practical
implementation.
Technical Outcomes
• IoT Integration: Learned to program ESP32 using Arduino IDE and ESP32CubeIDE
for cloud-based monitoring and control via InfinityFree and Ubidots.
• Web and Database Interaction: Built a web interface for controlling the bot,
demonstrating real-time synchronization between hardware and hosted web
applications.
Non-Technical Outcomes
Conclusion
The internship at AIROBOSOFT Product and Services LLP was not only a valuable
academic requirement but a transformative milestone in my journey as an Electronics and
Communication Engineering student. It provided me with a unique platform to apply my
theoretical knowledge in a practical environment, helping bridge the gap between academic
learning and industry practices.
Throughout the internship, I was exposed to various facets of embedded systems, IoT
technologies, and real-time system design, which are essential pillars in modern electronics
and automation fields. By working on the IoT Bot project, I gained end-to-end experience in
project development — right from hardware setup and microcontroller programming to cloud
communication and web interface design. This helped me understand how multidisciplinary
knowledge in electronics, coding, networking, and UI/UX design come together in real-world
applications.
Equally significant were the soft skills I developed. Regular team meetings, collaborative
project development, and technical presentations improved my communication and
interpersonal skills. Managing time between multiple development tools, documentation, and
testing schedules helped me become more organized and efficient. I learned the importance of
resilience and adaptability, especially when debugging errors or dealing with unexpected
hardware failures.
This internship has shaped me into a more confident, skilled, and industry-aware engineer. I
now understand the workflow of a tech company from requirement gathering and prototyping
to testing and deployment. I’ve seen how professionalism, collaboration, and technical
proficiency are all crucial to success in an engineering role.
In summary, this internship not only enhanced my technical skills and practical knowledge but
also laid the foundation for my personal and professional development. It has strengthened my
aspiration to pursue a career in embedded systems and IoT and instilled in me a lifelong
commitment to learning, innovation, and excellence.
REFERENCES
1. Kabalci, Y.; Kabalci, E.; Padmanaban, S.; Holm-Nielsen, J.B.; Blaabjerg, F. Internet of
things applications as energy internet in smart grids and smart environments.
Electronics 2019, 8, 972. [CrossRef]
2. Farmanbar, M.; Parham, K.; Arild, O.; Rong, C. A widespread review of smart grids
towards smart cities. Energies 2019, 12, 4484. [CrossRef]
3. Yao, L.; Chen, Y.Q.; Lim, W.H. Internet of Things for Electric Vehicle: An Improved
Decentralized Charging Scheme. In Proceedings of the 2015 IEEE International
Conference on Data Science and Data Intensive Systems, Sydney, Australia, 11–13
December 2015; pp. 651–658. [CrossRef]
4. Benedetto, M.; Ortenzi, F.; Lidozzi, A.; Solero, L. Design and Implementation of
Reduced Grid Impact Charging Station for Public Transportation Applications. World
Electr. Veh. J. 2021, 12, 28. [CrossRef]
5. Sousa, R.A.; Melendez, A.A.N.; Monteiro, V.; Afonso, J.L.; Ferreira, J.C.; Afonso, J.A.
Development of an IoT system with smart charging current control for electric vehicles.
In Proceedings of the IECON 2018-44th Annual Conference of the IEEE Industrial
Electronics Society, Washington, DC, USA, 21–23 October 2018; pp. 4662–4667.
[CrossRef]
6. Savari, G.F.; Krishnasamy, V.; Sathik, J.; Ali, Z.M. Abdel Aleem SHE. Internet of
Things based real-time electric vehicle load forecasting and charging station
recommendation. ISA Trans. 2020, 97, 431–447. [CrossRef] [PubMed]
7. Gao, D.; Zhang, Y.; Li, X. The internet of things for electric vehicles: Wide area
charging-swap information perception, transmission and application. Adv. Mater. Res.
2013, 608, 1560–1565. [CrossRef]
8. Asaad, M.; Ahmad, F.; Alam, M.S.; Rafat, Y. IoT enabled Electric Vehicle’s Battery
Monitoring System. EAI SGIOT 2017, 8. [CrossRef]
9. Helmy, M.; Wahab, A.; Imanina, N.; Anuar, M.; Ambar, R.; Baharum, A.; Shanta, S.;
Sulaiman, M.S.; Fauzi, S.S.M.; Hanafi, H.F. IoT-Based Battery Monitoring System for
Electric Vehicle. Int. J. Eng. Technol. 2018, 7, 505–510.
10. Divyapriya, S.; Amudha, A.; Vijayakumar, R. Design and Implementation of Grid
Connected Solar/Wind/Diesel Generator Powered Charging Station for Electric
Vehicles with Vehicle to Grid Technology Using IoT. Curr. Signal Transduct. Ther.
2018, 13, 59–67. [CrossRef]
11. Muralikrishnan, P.; Kalaivani, M.; College, K.R. IOT based electric vehicle charging
station using Arduino Uno. Int. J. Sci. Technol. 2020, 29, 4101–4106.
12. Ayob, A.; Wan Mahmood, W.M.F.; Mohamed, A.; Wanik, M.Z.C.; Siam, M.F.M.;
Sulaiman, S.; Azit, A.H.; Mohamed Ali, M.A. Review on electric vehicle, battery
charger, charging station and standards. Res. J. Appl. Sci. Eng. Technol. 2014, 7, 364–
372.
13. Kong, P.Y.; Karagiannidis, G.K. Charging Schemes for Plug-In Hybrid Electric
Vehicles in Smart Grid: A Survey. IEEE Access 2016, 6846–6875. [CrossRef]
14. Phadtare, K.S. A Review on IoT based Electric Vehicle Charging and Parking System.
Int. J. Eng. Res. 2020, V9, 831–835. [CrossRef]
15. Vaidya, B.; Mouftah, H.T. IoT Applications and Services for Connected and
Autonomous Electric Vehicles. Arab. J. Sci. Eng. 2020, 45, 2559–2569. [CrossRef]
16. Florea, B.C.; Taralunga, D.D. Blockchain IoT for smart electric vehicles battery
management. Sustainability 2020, 12, 3984. [CrossRef]
17. Sun, Y.; Jin, K.; Guo, Z.; Zhang, C.; Wang, H. Research on Intelligent Guidance
Optimal Path of Shared Car Charging in the IOT Environment. Wirel. Commun. Mob.
Comput. 2020, 2020. [CrossRef]
18. MDPI journel, Energies, Jose P. Martins , Joao C. Ferreira , Vitor Monteiro, Jose A.
Afonso and Joao L. Afonso, Article, IoT and Paradigms for EV Charging System.
19. Al-Fuqaha, A.; Guizani, M.; Mohammadi, M.; Aledhari, M.; Ayyash, M. Internet of
things: A survey on enabling technologies, protocols, and applications. IEEE Commun.
Surv. Tutor. 2015, 17, 2347–2376.
20. Axsen, J.; Goldberg, S.; Bailey, J.; Kamiya, G.; Langman, B.; Cairns, J.; Wolinetz, M.;
Miele, A. Electrifying Vehicles: Insights from the Canadian Plug-in Electric Vehicle
Study; Simon Fraser University: Vancouver, BC, Canada, 2015.