You are on page 1of 21

INTERNET OF THINGS

Submitted in partial fulfillment of the requirements for the award of Bachelor of


Engineering degree in ELECTRONICS AND COMMUNICATION
ENGINEERING.

by

BUPELLI AKHIL TEJA (39130082)

DEPARTMENT OF ELECTRONICS AND COMMUNICATION


ENGINEERING

SATHYABAMA INSTITUTE OF SCIENCE AND


TECHNOLOGY (DEEMED TO BE UNIVERSITY)
Accredited with Grade “A” by NAAC JEPPIAAR NAGAR, RAJIV GANDHI
SALAI, CHENNAI - 600 119
INTERNSHIP CERTIFICATE

SATHYABAMA
INSTITUTE OF SCIENCE AND TECHNOLOGY
(DEEMED TO BE UNIVERSITY)
Accredited with Grade “A” by NAAC
JEPPIAAR NAGAR, RAJIV GANDHI SALAI, CHENNAI - 600 119
www.sathyabama.ac.in

DEPARTMENT OF ELECTRONICS AND COMMUNICATION


ENGINEERING

BONAFIDE CERTIFICATE

This is to certify that this Project Report is the bonafide work of


BUPELLI AKHIL TEJA who carried out the project entitled “INTERNET OF
THINGS” under our supervision from 01 AUGUST 2021 to 30
SEPTEMBER 2021.

Head of the Department


Internal Examiner External Examiner

ACKNOWLEDGEMENT

I am pleased to Acknowledge my Sincere thanks to


Board of Management of Sathyabama Institute of
Science and Technology for their kind encouragement in
doing this Internship and for completing it Succesfully

I Convey my thanks to Dr. N.M. Nandhitha, M.E,


P,hd, Dean School of Electronics and Communication
Engineering and Dr. T.Ravi, M.E. P.hd, Head of the
Department, for providing me necessary support and
details at the right time during the progressive reviews.

I Would like to Express my sincere and deep sense


of gratitude to my Tutor Mr. Lakshmanan for his
valuable guidance , suggestion and constant
encouragement paved way for the successful completion
of my Internship.

I wish to express my thanks to all teaching and


Non teaching Staff members of the Department of
Electronics and Communication Engineering who were
helpful in many ways for the completion of the
Internship.

BUPELLI AKHIL TEJA


Declaration

I BUPELLI AKHIL TEJA (39130082) hearby declare


that the project report entitled “Internet of things” done
by me at Verzeo is submitted in partial fulfilment of the
requirements for the award of Bachelors of engineering
degree in Electronics and Communication Engineering

DATE:

PLACE: SIGNATURE OF THE CANDIDATE

PREFACE
With the on going INTENRET OF THINGS revolution where innovations are
taking place at the blink of an eye, it is impossible to keep the pace with the
emerging trends. In organization where Making Things Right in the first instance is
the driving motto, perfection and accuracy are inevitable.

Excellence is an attitude that the whole of the human race is born with. It is the
environment that makes sure that whether the result of this attitude is visible or
otherwise. A well planned, properly executed and evaluated industrial training
helps a lot in inculcating a professional attitude. It provides a linkage between the
student and industry to develop an awareness of industrial approach to problem
solving, based on a broad understanding of process and mode of operation of
organization.

During this period, the students get the real, first hand experience for working in the
actual environment. Most of the theoretical knowledge that has been gained during
the course of their studies is put to test here. Apart from this, the students get an
opportunity to learn the latest technology, which immensely helps them in building
their career.
I had the opportunity to have a real experience on many ventures, which enhanced
my sphere of knowledge to a great extent and all the credit goes to organization
which in true self made the embedded revolution happen.

INDEX

S.No. Contents

1. Introduction to Internet of things

2. How Does IOT Work?

3. Why is IOT Important?

4. Pros and Cons of IOT

5. Introduction to Arduino

6. Arduino Board Pin Description

7. Arduino Features

8. Arduino IDE

9. Introduction to Node MCU


1. Introduction to Internet of Things

The internet of things, or IoT, is a system of interrelated computing devices,


mechanical and digital machines, objects, animals or people that are provided with
unique identifiers (UIDs) and the ability to transfer data over a network without
requiring human-to-human or human-to-computer interaction.

A thing in the internet of things can be a person with a heart monitor implant, a farm
animal with a biochip transponder, an automobile that has built-in sensors to alert the
driver when tire pressure is low or any other natural or man-made object that can be
assigned an Internet Protocol (IP) address and is able to transfer data over a
network.

Increasingly, organizations in a variety of industries are using IoT to operate more
efficiently, better understand customers to deliver enhanced customer service,
improve decision-making and increase the value of the business.

2. How Does IOT work?

An IoT ecosystem consists of web-enabled smart devices that use embedded


systems, such as processors, sensors and communication hardware, to collect, send
and act on data they acquire from their environments. IoT devices share the sensor
data they collect by connecting to an IoT gateway or other edge device where data is
either sent to the cloud to be analyzed or analyzed locally. Sometimes, these
devices communicate with other related devices and act on the information they get
from one another. The devices do most of the work without human intervention,
although people can interact with the devices -- for instance, to set them up, give
them instructions or access the data.

The connectivity, networking and communication protocols used with these web-
enabled devices largely depend on the specific IoT applications deployed.

IoT can also make use of artificial intelligence (AI) and machine learning to aid in
making data collecting processes easier and more dynamic.

3. Why is IOT Important ?

The internet of things helps people live and work smarter, as well as gain complete
control over their lives. In addition to offering smart devices to automate homes, IoT
is essential to business. IoT provides businesses with a real-time look into how their
systems really work, delivering insights into everything from the performance of
machines to supply chain and logistics operations.
IoT enables companies to automate processes and reduce labor costs. It also cuts
down on waste and improves service delivery, making it less expensive to
manufacture and deliver goods, as well as offering transparency into customer
transactions.

As such, IoT is one of the most important technologies of everyday life, and it will
continue to pick up steam as more businesses realize the potential of connected
devices to keep them competitive.

4.Pros and cons of IoT


Some of the Advantages of IoT include the following:

 ability to access information from anywhere at any time on any device;

 improved communication between connected electronic devices;

 transferring data packets over a connected network saving time and


money; and

 automating tasks helping to improve the quality of a business's services


and reducing the need for human intervention.

Some Disadvantages of IoT include the following:

 As the number of connected devices increases and more information is


shared between devices, the potential that a hacker could steal
confidential information also increases.

 Enterprises may eventually have to deal with massive numbers -- maybe


even millions -- of IoT devices, and collecting and managing the data from
all those devices will be challenging.

 If there's a bug in the system, it's likely that every connected device will
become corrupted.

 Since there's no international standard of compatibility for IoT, it's difficult


for devices from different manufacturers to communicate with each other.
5. Introduction to Arduino

A microcontroller board, contains on-board power supply, USB port to communicate


with PC, and an Atmel microcontroller chip.

It simplify the process of creating any control system by providing the standard board
that can be programmed and connected to the system without the need to any
sophisticated PCB design and implementation.

It is an open source hardware, any one can get the details of its design and modify it
or make his own one himself.
 Different Type of Arduino Boards

6. Arduino Board Pin Description

VCC Digital supply voltage.

GND Ground.

Port B (PB[7:0]) XTAL1/XTAL2/TOSC1/TOSC2 Port B is an 8-bit bi-


directional I/O port with internal pull-up resistors (selected for each bit).

PB[7:6] is used as TOSC[2:1] input for the Asynchronous


Timer/Counter2

Port C (PC[5:0]) Port C is a 7-bit bi-directional I/O port with internal


pull-up resistors (selected for each bit).

PC6/RESET If the RSTDISBL Fuse is programmed, PC6 is used as an


I/O pin.
.Port D (PD[7:0]) Port D is an 8-bit bi-directional I/O port with internal
pull-up resistors (selected for each bit).

AVCC is the supply voltage pin for the A/D Converter

AREF is the analog reference pin for the A/D Converter.


7. Arduino Features

High Performance, Low Power Atmel® AVR® 8-Bit Microcontroller


Family

Advanced RISC Architecture – 131 Powerful Instructions

–32 x 8 General Purpose Working Registers

• 32KBytes of In-System Self-Programmable Flash program Memory

– 1KBytes EEPROM
– 2KBytes Internal SRAM

[7:25 pm, 02/11/2021] AKHIL [+x]: Special Microcontroller Features

– Power-on Reset and Programmable Brown-out Detection

– External and Internal Interrupt Sources – Six Sleep Modes: Idle, ADC
Noise Reduction, Power-save, Power-down, Standby, and Extended
Standby

• I/O and Packages – 23 Programmable I/O Lines – 28-pin PDIP,

• Operating Voltage: – 1.8 - 5.5V

• Temperature Range: – -40°C to 105°C

• Power Consumption at 1MHz, 1.8V, 25°C – Active Mode: 0.2mA –


Power-down Mode: 0.1μA – Power-save Mode: 0.75μA (Including
32kHz RTC)
8.Arduino IDE (Integrated Development Environment)

The Arduino Integrated Development Environment (IDE) is a cross-


platform application (for Windows, macOS, Linux) that is written in functions
from C and C++.[3] It is used to write and upload programs to Arduino compatible
boards, but also, with the help of third-party cores, other vendor development
boards.[4]
The source code for the IDE is released under the GNU General Public License,
version 2.[5] The Arduino IDE supports the languages C and C++ using special rules
of code structuring.[6] The Arduino IDE supplies a software library from
the Wiring project, which provides many common input and output procedures. User-
written code only requires two basic functions, for starting the sketch and the main
program loop, that are compiled and linked with a program stub main() into an
executable cyclic executive program with the GNU toolchain, also included with the
IDE distribution.[7] The Arduino IDE employs the program avrdude to convert the
executable code into a text file in hexadecimal encoding that is loaded into the
Arduino board by a loader program in the board's firmware. [8] By default, avrdude is
used as the uploading tool to flash the user code onto official Arduino boards. [9]
Arduino IDE is a derivative of the Processing IDE,[10] however as of version 2.0, the
Processing IDE will be replaced with the Visual Studio Code-based Eclipse
Theia IDE framework.[2]
With the rising popularity of Arduino as a software platform, other vendors started to
implement custom open source compilers and tools (cores) that can build and
upload sketches to other microcontrollers that are not supported by Arduino's official
line of microcontrollers.
9. Introduction to Node MCU

NodeMCU is an open-source Lua based firmware and development board specially


targeted for IoT based Applications. It includes firmware that runs on the ESP8266
Wi-Fi SoC from Espressif Systems, and hardware which is based on the ESP-12
module.

NodeMCU Development Board Pinout Configuration

Pin Name Description

Category

Power Micro-USB, 3.3V, GND, Vin Micro-USB: NodeMCU can be

powered through the USB port

 3.3V: Regulated 3.3V can

be supplied to this pin to power the

board
GND: Ground pins

Vin: External Power Supply

Control EN, RST The pin and the button resets

Pins
the microcontroller

Analog Pin A0 Used to measure analog voltage

in the range of 0-3.3V

GPIO Pins GPIO1 to GPIO16 NodeMCU has 16 general purpose

input-output pins on its board

SPI Pins SD1, CMD, SD0, CLK NodeMCU has four pins available for SPI

communication.

UART Pins TXD0, RXD0, TXD2, RXD2 NodeMCU has two UART interfaces,

UART0 (RXD0 & TXD0) and UART1

(RXD1 & TXD1).

UART1 is used to upload the

firmware/program.

I2C Pins   NodeMCU has I2C functionality support

but due to the internal functionality

of these pins, you have to find which

pin is I2C.
 

NodeMCU ESP8266 Specifications & Features

 Microcontroller: Tensilica 32-bit RISC CPU Xtensa LX106


 Operating Voltage: 3.3V
 Input Voltage: 7-12V
 Digital I/O Pins (DIO): 16
 Analog Input Pins (ADC): 1
 UARTs: 1
 SPIs: 1
 I2Cs: 1
 Flash Memory: 4 MB
 SRAM: 64 KB
 Clock Speed: 80 MHz
 USB-TTL based on CP2102 is included onboard, Enabling Plug n Play
 PCB Antenna
 Small Sized module to fit smartly inside your IoT projects

ESP8266 Arduino Core

As Arduino.cc began developing new MCU boards based on non-AVR processors


like the ARM/SAM MCU and used in the Arduino Due, they needed to modify the
Arduino IDE so that it would be relatively easy to change the IDE to support
alternate toolchains to allow Arduino C/C++ to be compiled for these new
processors. They did this with the introduction of the Board Manager and the SAM
Core. A "core" is the collection of software components required by the Board
Manager and the Arduino IDE to compile an Arduino C/C++ source file for the
target MCU's machine language. Some ESP8266 enthusiasts developed an Arduino
core for the ESP8266 WiFi SoC, popularly called the "ESP8266 Core for the Arduino
IDE".[16] This has become a leading software development platform for the
various ESP8266-based modules and development boards, including NodeMCUs.

NodeMCU is an open source LUA based firmware developed for ESP8266 wifi chip. By
exploring functionality with ESP8266 chip, NodeMCU firmware comes with ESP8266
Development board/kit i.e. NodeMCU Development board.

NodeMCU Development Board/kit v0.9 (Version1)

Since NodeMCU is open source platform, their hardware design is open for
edit/modify/build.

NodeMCU Dev Kit/board consist of ESP8266 wifi enabled chip. The ESP8266 is a
low-cost Wi-Fi chip developed by Espressif Systems with TCP/IP protocol. For more
information about ESP8266, you can refer ESP8266 WiFi Module.

There is Version2 (V2) available for NodeMCU Dev Kit i.e. NodeMCU Development
Board v1.0 (Version2), which usually comes in black colored PCB.

NodeMCU Development Board/kit v1.0 (Version2)

For more information about NodeMCU Boards available in market refer NodeMCU
Development Boards

NodeMCU Dev Kit has Arduino like Analog (i.e. A0) and Digital (D0-D8) pins on its
board.

It supports serial communication protocols i.e. UART, SPI, I2C etc.

Using such serial protocols we can connect it with serial devices like I2C enabled
LCD display, Magnetometer HMC5883, MPU-6050 Gyro meter + Accelerometer,
RTC chips, GPS modules, touch screen displays, SD cards etc.

How to start with NodeMCU?

NodeMCU Development board is featured with wifi capability, analog pin, digital
pins and serial communication protocols.

To get start with using NodeMCU for IoT applications first we need to know about
how to write/download NodeMCU firmware in NodeMCU Development Boards.
And before that where this NodeMCU firmware will get as per our requirement.
There is online NodeMCU custom builds available using which we can easily get
our custom NodeMCU firmware as per our requirement.

To know more about how to build custom NodeMCU firmware online and
download it refer Getting started with NodeMCU

How to write codes for NodeMCU?

After setting up ESP8266 with Node-MCU firmware, let’s see the IDE (Integrated
Development Environment) required for development of NodeMCU.

NodeMCU with ESPlorer IDE

Lua scripts are generally used to code the NodeMCU. Lua is an open source,
lightweight, embeddable scripting language built on top of C programming
language.

For more information about how to write Lua script for NodeMCU refer Getting
started with NodeMCU using ESPlorerIDE NodeMCU with Arduino IDE

Here is another way of developing NodeMCU with a well-known IDE i.e. Arduino
IDE. We can also develop applications on NodeMCU using Arduino development
environment. This makes easy for Arduino developers than learning new language
and IDE for NodeMCU.

For more information about how to write Arduino sketch for NodeMCU refer
Getting started with NodeMCU using ArduinoIDE

Difference in using ESPlorer and Arduino IDE

Well, there is a programming language difference we can say while developing


application for NodeMCU using ESPlorer IDE and Arduino IDE.

We need to code in C\C++ programming language if we are using Arduino IDE for
developing NodeMCU applications and Lua language if we are using ESPlorer IDE.

Basically, NodeMCU is Lua Interpreter, so it can understand Lua script easily. When
we write Lua scripts for NodeMCU and send/upload it to NodeMCU, then they will
get executes sequentially. It will not build binary firmware file of code for
NodeMCU to write. It will send Lua script as it is to NodeMCU to get execute.

In Arduino IDE when we write and compile code, ESP8266 toolchain in background
creates binary firmware file of code we wrote. And when we upload it to
NodeMCU then it will flash all NodeMCU firmware with newly generated binary
firmware code. In fact, it writes the complete firmware.

That’s the reason why NodeMCU not accept further Lua scripts/code after it is
getting flashed by Arduino IDE. After getting flashed by Arduino sketch/code it will
be no more Lua interpreter and we got error if we try to upload Lua scripts. To
again start with Lua script, we need to flash it with NodeMCU firmware.

Since Arduino IDE compile and upload/writes complete firmware, it takes more
time than ESPlorer IDE.

You might also like