ES&IOT Unit 3
ES&IOT Unit 3
Introduction to the Concept of IoT Devices – IoT Devices Versus Computers – IoT
Configurations – Basic Components – Introduction to Arduino – Types of Arduino –
Arduino Toolchain – Arduino Programming Structure – Sketches – Pins –Input/Output
From Pins Using Sketches – Introduction to Arduino Shields –Integration of Sensors and
Actuators with Arduino.
What Is Iot:
IoT stands for Internet of Things. It refers to the interconnectedness of physical devices,
such as appliances and vehicles, that are embedded with software, sensors, and connectivity
which enables these objects to connect and exchange data. This technology allows for the
collection and sharing of data from a vast network of devices, creating opportunities for more
efficient and automated systems.
IOT enablers:
• RFIDs: uses radio waves in order to electronically track the tag attached to each physical
object.
• Sensors: devices that are able to detect changes in an environment (ex:motion detectors).
Different types of Sensors:
1. Temperature Sensors
2. Image Sensors
3. Gyro Sensors
4. Obstacle Sensors
5. RF Sensor
6. IR Sensor
7. MQ-02/05GasSensor
8. LDR Sensor
9. Ultrasonic Distance Sensor
• Nano technology: as the name suggests, these are extremely small devices with dimensions
usually less than a hundred nanometers.
• Smart networks:(ex:meshtopology).
WorkingofIoT
CharacteristicsoftheInternetofThings
The Internet of Things (IoT) is characterized by the following key features that arementioned
below.
1. Connectivity
The extraction of knowledge from the generated data is very important. For example, asensor
generates data, but that data will only be useful if it is interpreted properly. Each IoT device
has a unique identity. This identification is helpful in tracking the equipment and at times for
querying its status.
3. Scalability
The number of elements connected to the IoT zone is increasing day by day. Hence, an IoT
setup should be capable of handling the massive expansion. The data generated as anoutcome
is enormous, and it should be handled appropriately.
1. Architecture
IoT architecture cannot be homogeneous in nature. It should be hybrid, supporting different
manufacturers' products to function in the IoT network. IoT is not owned by any one engineering
branch. IoT is a reality when multiple domains come together.
2. Safety
There is a danger of the sensitive personal details of the users getting compromised when all
his/her devices are connected to the internet. This can cause a loss to the user. Hence, data
security is the major challenge. Besides, the equipment involved is huge. IoT networks may also
be at risk. Therefore, equipment safety is also critical.
3. Self-Configuring
This is one of the most important characteristics of IoT. IoT devices are able to upgrade their
software in accordance with requirements with a minimum of user participation. Additionally,
they can set up the network, allowing for the addition of new devices to an already-existing
network.
4. Interoperability
IoT devices use standardized protocols and technologies to ensure they can communicate with
each other and other systems. Interoperability is one of the key characteristics of the Internet of
Things (IoT). It refers to the ability of different IoT devices and systems to communicate and
exchange data with each other, regardless of the underlying technology or manufacturer.
5. Embedded Sensors and Actuators
Embedded sensors and actuators are critical components of the Internet of Things (IoT). They
allow IoT devices to interact with their environment and collect and transmit data.
6. Autonomous Operation
Autonomous operation refers to the ability of IoT devices and systems to operate independently
and make decisions without human intervention. This is a crucial characteristic of the Internet of
Things (IoT) and enables a wide range of new applications and services.
**Security Measures:**
Implement security mechanisms to protect your IoT ecosystem from unauthorized access, data
breaches, and cyberattacks. This could involve using encryption, secure bootstrapping, device
authentication, and firewalls.
TypesofIoT Applications:
BenefitsofIoT Devices:
Efficiency: IoTdevicescanoptimizeprocesses,reducewaste,andenhanceresource
utilization.
Automation: Taskscanbeautomatedbasedonreal-timedata,leadingtoimproved
productivity.
Data-DrivenInsights: IoTdevicesprovidedatathatcanbeanalyzedtogaininsights,make
informed decisions, and identify trends.
RemoteMonitoringand Control: Devicescanbemonitoredandcontrolledremotely,
enabling real-time adjustments.
EnhancedUserExperience: IoTdevicescreatepersonalizedexperiencesandconvenience for
users.
ChallengesandConsiderations:
BasiccomponentsofIoT:
• Devices/Things: These are physical objects embedded with sensors, actuators, and communication
modules that enable them to collect data, perform actions, and communicate over the internet. Devices can
range from simple sensors to complex machinery.
• Sensors: Sensors are components that detect changes in the environment and convert physical
phenomena (like temperature, light, pressure, humidity, etc.) into electrical signals that can be processed by
IoT devices.
• Actuators: Actuators are devices that perform actions based on the data received from sensors or
commands from remote systems. Examples include motors, servos, solenoids, and relays.
• Computing Units: These are the computing units within IoT devices. They process data from sensors,
control actuators, and execute programmed instructions. They also manage communication with other
devices and systems.
• Communication Modules: IoT devices need communication capabilities to send and receive data over
the internet. Communication modules can include Wi-Fi, Bluetooth, Zigbee, LoRa, cellular, Ethernet, and
more.
• Network Infrastructure: This includes the underlying network that enables devices to connect to the
internet. It can be wired (like Ethernet) or wireless (like Wi-Fi, cellular, or satellite).
• Internet Connectivity: The devices need access to the internet to communicate with other devices and
central systems. This connectivity can be through Wi-Fi, cellular networks, satellite connections, or other
means.
• Cloud Platforms: Cloud platforms provide storage, computing power, and services that enable data
processing, analysis, storage, and remote control of IoT devices. Cloud services facilitate the scalability and
management of IoT solutions.
• Data Processing and Storage: IoT devices generate a vast amount of data. Data processing involves
analyzing and interpreting this data to extract meaningful insights. Data storage involves storing the
collected data for future reference and analysis.
• User Interfaces: User interfaces can be web applications, mobile apps, or dashboards that allow users to
monitor and control IoT devices remotely. These interfaces provide real-time information and enable users
to set preferences or receive alerts.
• Security: Security is critical in IoT to protect data, devices, and networks from unauthorized access and
cyberattacks. Security measures include encryption, authentication, access controls, and regular software
updates.
• Power Management: IoT devices often operate on limited power sources such as batteries. Power
management strategies are essential to optimize energy consumption and extend the device's operational
lifespan.
• Data Analysis: Analyzing the data collected from IoT devices can yield valuable insights for making
informed decisions, predicting trends, and improving operations.
• Machine Learning and Artificial Intelligence (AI): IoT systems can leverage machine learning and AI
to improve automation, anomaly detection, and decision-making based on real-time data.
ModernApplications:
• Smart Grids and energy saving
• Smart cities
• Smart homes/Home automation
• Healthcare
• Earthquake detection
• Radiation detection/hazardous gas detection
• Smartphone detection
• Water flow monitoring
• Traffic monitoring
• Wearables
• Smart door lock protection system
• Robots and Drones
• Healthcare and Hospitals, Telemedicine applications
• Security
• Biochip Transponders (For animals in farms)
• Heart monitoring implants (Example: Pacemaker, ECG real-time tracking)
Advantages of IoT:
1. Improved efficiency and automation of tasks.
2. Increased convenience and accessibility of information.
3. Better monitoring and controlof devices and systems.
4. Greater ability together and analyze data.
5. Improved decision-making.
6. Cost savings.
Disadvantages of IoT:
• Security concerns and potential for hacking or data breaches.
• Privacy issues related to the collection and use of personal data.
• Dependence on technology and potential for system failures.
• Limited standardization and interoperability among devices.
• Complexity and increased maintenance requirements.
• High initial investment costs.
• Limited battery life on some devices.
• Concerns about job displacement due to automation.
• Limited regulation and legal framework for IoT, which can lead to confusion and uncertainty.
IOT Vs Computers:
Computers
IOT Devices
Arduino is a project, open-source hardware, and software platform used to design and
build electronic devices. It designs and manufactures microcontroller kits and single-board
interfaces for building electronics projects.
The Arduino boards were initially created to help the students with the non-technical
background. The designs of Arduino boards use a varietyof controllers and microprocessors.
The Arduino board consists of sets of analog and digital I/O (Input / Output) pins, which
are further interfaced to breadboard, expansion boards, and othercircuits. Such
boardsfeaturethemodel,UniversalSerialBus(USB),andserialcommunicationinterfaces, which
are used for loading programs from the computers.
Types ofArduino
The flexibility of the Arduino board is enormous so that one can do anything they
imagine. This board can be connected very easily to different modules such as obstacle sensors,
presence detectors, fire sensors, GSM Modules GPS modules, etc.
The main function of the Arduino board is to control electronics through reading inputs
&changing it into outputs because this board works like a tool. This boardis also used to make
different electronics projects in the field of electronics, electrical, robotics, etc.
6 input,
Arduino Uno 16MhzATmega328 2KBSRAM, 32KB flash 14
0 output
12 input,
Arduino Due 84MHz AT91SAM3X8E 96KBSRAM, 512KB flash 54
2 output
16 input,
Arduino Mega 16MHz ATmega2560 8KBSRAM, 256KB flash 54
0 output
12 input,
Arduino Leonardo 16MHz ATmega32u4 2.5KBSRAM, 32KB flash 20
0 output
• Arduino Uno(R3)
• Arduino Nano
• Arduino Micro
• ArduinoDue
• LilyPadArduinoBoard
• Arduino Bluetooth
• Arduino Diecimila
• RedBoardArduino Board
• ArduinoMega(R3) Board
• ArduinoLeonardoBoard
• Arduino Robot
• Arduino Esplora
• ArduinoPro Mic
• Arduino Ethernet
• ArduinoZero
• FastestArduino Board
Arduino Uno(R3)
The Uno is a huge option for your initial Arduino. This Arduino board depends on an
ATmega328P based microcontroller. As compared with other types of arduino boards, it is
verysimpletouseliketheArduinoMegatypeboard..Itconsistsof14-digital I/Opins, where 6-pins
can be used as PWM(pulse width modulation outputs), 6-analog inputs, a reset button, a power
jack, a USB connection, an In-Circuit Serial Programming header (ICSP), etc.
ArduinoUno(R3)
Arduino Uno is the most frequently used board and it is the standard form apart from
all the existing Arduino Boards. This board is very useful for beginners. Please refer to this link
to know more about Arduino Uno Board
Arduino Nano
This is a small board based on the microcontrollers like ATmega328P otherwise
ATmega628 but the connection of this board is the same as to the Arduino UNO board. This
kind of microcontroller board is very small in size, sustainable, flexible, and reliable.
ArduinoNano
As compared with the Arduino Uno board, it is small in size. The devices like mini USB
and Arduino IDE are necessaryto build the projects. This board mainlyincludes analog pins-8,
digital pins-14 with the set of an I/O pin, power pins-6 & RST (reset) pins-2. Please refer to
this link to know more about Arduino Nano Board.
Arduino Micro
The Arduino Micro board mainly depends on the ATmega32U4 based Microcontroller
that includes 20-sets of pins wherethe7-pins are PWM pins, 12-analoginput pins. This board
includes different components like an ICSP header, RST button, small USB connection, crystal
oscillator-16MHz. The USB connection is inbuilt and this board is the shrunk version of the
Leonardo board.
Arduino Micro
Arduino Due
This Arduino board depends on the ARM Cortex-M3 and it is the first Arduino
microcontroller board. This board includes digital I/O pins-54 where 12-pins are PWM o/p
pins, analog pins -12, UARTs-4, a CLK with 84 MHz, an USB OTG, DAC-2, a power jack,
TWI-2, a JTAG header, an SPI header, two buttons for reset & erase.
ArduinoDue
This board works with 3.3V where the highest voltage that the pins of input/outputcan
stand is 3.3V because providing a high voltage to any I/O pin can lead to damage the board
This board is simply connected to a computer through a small USB cable otherwise it can be
powered through an AC to DC adapter. This Arduino Due board is suitable with all shields of
Arduino at 3.3V.
LilyPadArduinoBoards
Arduino Bluetooth
This Bluetooth mainly depends on the microcontroller like ATmega168 and thisboard
is also called Arduino BT. This kind of board includes different components likedigital pins-
16, analog pins-6, crystal oscillator-16MHz, reset button, screw terminals, ICSP header. In this
board, the screw terminals are mainly used for power. The programming ofthis Bluetooth
microcontroller can be done with Bluetooth like a wireless connection.
Arduino Diecimila
The microcontroller board like Arduino Diecimila mainly depends on the ATmega168.
This board includes digital I/O pins -14 where 6-pins can be used like PWM outputs & analog
inputs-6, a USB connection, a crystal oscillator-16 MHz, an ICSP header, a reset button & a
power jack. This board can be connected to a computer through a USB cable and it can be
activated using a battery and an AC-DC adapter.
Arduino Diecimila
As the name suggests, the meaning of Diecimila in Italian is 10,000 which means that
marks the truth that above 10k Arduino boards have been designed. In a set of USB Arduino
boards, it is the latest one as compared with other versions.
RedBoardArduino Boards
Arduino Mega(R3)Board
The Arduino Mega is similar to the UNO‟s big brother. It includes lots of digital I/O
pins (from that, 14-pins can be used as PWM o/ps), 6-analog inputs, a reset button, a power
jack, a USB connection, and a reset button. It includes everything required to hold up the
microcontroller; simply attach it to a PC with the help of a USB cable and give the supply to
get started with an AC-to-DC adapter or battery. The huge number of pins make this Arduino
board very helpful for designing projects that need a bunch of digital i/ps or o/ps like lots of
buttons. Please refer to this link to know more about Arduino Mega (R3) Board
ArduinoMega(R3) Board
Arduino Robot
This kind of board is the first Arduino over wheels. This Arduino robot includes two
processors on each of its boards. The two boards are the motor board and control board where
the motor board controls the motors & the control board is used to read the sensors for
operating. Every board is a complete Arduino board and its programming can be done through
the Arduino IDE. These are microcontroller boards that depend on the ATmega32u4.
The pins of this Robot are mapped to actuators and sensors onboard.The process of
programming the robot is the same as the Arduino Leonardo board. It is also named a small
computer and it is extensively used in robotics.
This board includes the speaker, color screen, buttons-5, motors-2, a digital compass,
an SD card reader, potentiometers-2 & floor sensors-5. The library of this robot can be used for
controlling the sensors as well as the actuators.
Arduino Esplora
Arduino Esplora
So connecting the components like actuators or sensors is very simple. Thus,
programming is somewhat different as compared with other types of Arduino boards. This
esplora board includes its own library so that the data from the sensors & actuators are very
easy to read and write.
Arduino ProMic
The Arduino Pro Micro board is the same as the Arduino Mini board apart from the
ATmega32U4 Microcontroller. This pro mic board includes digital I/O pins-12, pulse width
modulation (PWM) pins-5, serial connections of Tx & Rx &10-bit ADC.
Arduino Ethernet
The Arduino Ethernet board depends on the microcontroller like ATmega328. This kind
of microcontroller board includes analog pins-5, digital I/O pins-14, RST button, an RJ45
connection, crystal oscillator, a power jack, ICSP header, etc. The connection of the Arduino
board can be done through the Ethernet shield to the internet.
Arduino Zero
This is a powerful as well as simple 32-bit board and it provides the best platform for
innovative projects like wearable technology, smart IoT devices, crazy robotics, high-tech
automation, etc. This board expands by providing improved performance, permitting a range
of project opportunities & performs like a great educational tool.
ArduinoZero
Thisboardincludesanaloginputpins-6,digitalI/Opins-14,apowerjack,AREF button,
UART port pins, a USB connector & an In-Circuit Serial Programming (ICSP) header, a
power header, etc.
This board is power-driven through the SAMD21 microcontroller based on Atmel. The
main feature of this is EDBG (Embedded Debugger) based on Atmel and it provides a complete
debug interface without using extra hardware.
• RAM– 1 Mbyte
• DMAcontrollers-4
• Communication peripherals-Upto 35
• 16-bitMaxResolutionwith3×ADCs
• D/Aconverterswith2× 12-bit
• Hardware with JPEG Codec
• Timers-22&Watchdogs– 200Mhz
• HW Calendar &RTC with Sub-second Accuracy
• Cryptographic Acceleration
Toolchain(IDE)
A toolchain is a set of programming tools that is used to perform a complex set of
operations. In the Arduino Software (IDE), the toolchain is hidden from the user, but it is used
to compile and upload the user Sketch. It includes a compiler, assembler, linker, and Standard
C & math libraries.The source code for the Java environment is released under the GPL and
the C/C++ microcontroller libraries are under the LGPL.
StructureofSketch
A sketch can be divided into two parts:
• Setup()
• Loop()
Thefunctionsetup()isthepointwherethecodestarts,justlikethemain()functionin C and
C++
I/OVariables, pinmodes are initializedintheSetup() function
Loop()function, as the namesuggests, iterates the specified task in the program
Structure
Arduino programs can be divided in three main parts: Structure, Values (variables and
constants), and Functions. In this tutorial, we will learn about the Arduino software program,
step by step, and how we can write the program without any syntax or compilation error.
Let us start with the structure. Software structure consists of two main functions. −
• Setup( ) function - The setup() function is called when a sketch starts. Use it to
initializethe variables (not declaration),pin modes, start using libraries, etc. Thesetup
function will only run once, after each power up or reset of the Arduino board.
• Loop( ) function - After creating a setup() function, which initializes and sets theinitial
values, the loop() function does precisely what its name suggests, and loops
consecutively, allowing your program to change and respond. Use it to activelycontrol
the Arduino board
Voidsetup ( ){
}
•PURPOSE− Thesetup()function is called when a sketch starts. Use it to initializethe
variables, pin modes, start using libraries, etc. The setup function will only run once,
after each power up or reset of the Arduino board.
• INPUT −-
• OUTPUT−-
• RETURN−-
VoidLoop( ){
}
• PURPOSE− After creating asetup()function, which initializes and sets the initial
values, theloop()function does precisely what its name suggests, and loops
consecutively, allowing your program to change and respond. Use it to activelycontrol
the Arduino board.
• INPUT −-
• OUTPUT−-
• RETURN−-
ArduinoUnoPinsDiagram
ARDUINOI/O(Input,Output)Functions
1. Pin Mode()-The pin Mode()function is used to configure a specific pin to behave either
as an input or an output.
2. digitalWrite()-
ThedigitalWrite()functionisusedtowriteaHIGHoraLOWvaluetoadigitalpin.
3. digitalRead()-Readsthevaluefromaspecifieddigitalpin,eitherHIGHorLOW.
4. analogRead( ) function- we can read the voltage applied to one of the pins. This
functionreturnsanumberbetween0and1023,whichrepresentsvoltagesbetween0 and 5 volts.
5. analogWrite()function-Writesananalogvaluetoapin.
Input/Ouput(I/O)inArduino
• Setsapintoactaseitheraninputoranoutput
• pinisthenumberofthepin
▪ 1-13forthedigitalpins
▪ A0-A5fortheanaloginputpins
• ModeistheI/Omodethepinissetto
▪ INPUT,OUTPUT
DigitalInput
val;
Pin val=digitalRead(3);
• pinvalissettothestateofdigitalpin3
Digital Output
• Assigns thestateofanoutputpin
• AssignseitherLOW(0volts)orHIGH(5volts)
digitalWrite(3, HIGH);
• Digitalpin3issetHIGH(5volts)
Analog Input
pin val;
Pin val=analogRead(A3);
ARDUINO SHIELDS
TypesofShields
• Ethernet shield
• XBee shield
• Proto shield
• Relay shield
• Motor shield
• LCD shield
• Bluetooth shield
• Capacitive Touchpad shield
• The Ethernet shields are used to connect the Arduino board to the Internet. We need to mount the
shield on the top of the specified Arduino board.
• The USB port will play the usual role to upload sketches on the board.
• The latest version of Ethernet shields consists of a micro SD card slot. The micro SD card slot can
be interfaced with the help of the SD card library.
Xbee Shield
o WecancommunicatewirelesslywiththeArduinoboardbyusingtheXbeeShield with
Zigbee.
o Itreducesthehassleofthecable,whichmakesXbeeawirelesscommunication model.
o TheXbeewirelessmoduleallowsustocommunicateoutdoorupto300feetand indoor upto
100 feet.
o TheXbeeshield is shown below:
Proto shield
Relay shield
• The Arduino digital I/O pins cannot bear the high current due to its voltage and current limits. The
relay shield is used to overcome such situations. It provides a solution for controlling the devices
carrying high current and voltage.
• The shield consists of four relays and four LED indicators.
• It also provides NO/NC interfaces and a shield form factor for simple connection to the Arduino
board.
• The LED indicators depict the ON/OFF condition of each relay.
• The relay used in the structure is of high quality.
• The NO (Normally Open), NC (Normally Closed), and COM pins are present on each relay.
Motor shield
• The motor shield helps us to control the motor using the Arduino board.
• It controls the direction and working speed of the motor. We can power the motor shield either by
the external power supply through the input terminal or directly by the Arduino.We can also
measure the absorption current of each motor with the help of the motor shield.
o The motor shield is based on the L298 chip that can drive a step motor or two DC
motors. L298 chip is a full bridge IC. It also consists of the heat sinker, which increases
the performance of the motor shield.
o It can drive inductive loads, such as solenoids, etc.
o Theoperatingvoltageisfrom5Vto12V.
LCDshield
• The keypad of the LCD (Liquid Crystal Display) shield includes five buttons called up, down, left,
right, and select.
• There are 6 push buttons present on the shield that can be used as a custom menu control panel.
• It consists of the 1602 white characters, which are displayed on the blue backlight LCD.
• The LED present on the board indicates the power ON.
• The five keys present on the board help us to make selections on menus and from the board to our
project.
o The LCD shield is popularly designed for the classic boards such as Duemilanove,
UNO, etc.
Bluetooth shield
o The Bluetooth shield can be used as a wireless module for transparent serial
communication.
o It includes a serial Bluetooth module. D0 and D1 are the serial hardware ports in the
Bluetooth shield, which can be used to communicate with the two serial ports (from D0
to D7) of the Arduino board.
o We can install Groves through the two serial ports of the Bluetooth shield called a Grove
connector. One Grove connector is digital, while the other is analog.
• The communication distance of the Bluetooth shield is up to 10 m at home without any obstacle in
between.
• It has a touchpad interface that allows integration of the Arduino board with the touch shield.
• The Capacitive touchpad shield consists of 12 sensitive touch buttons, which include 3 electrode
connections and 9 capacitive touch pads.
Selecting the appropriate sensors and actuators: Identify the specific sensors and
actuators you need for your project. Arduino supports a wide range of sensors such as
temperature sensors, motion sensors, light sensors, and actuators such as motors, servos, and
LEDs.
Actuators are basically mechanical or electro mechanical devices. They convert energy
or signals into motion. And mainly use to provide controlled motion to other components of
various mechanical structures or devices.
Power supply: Ensure that your sensors and actuators have a suitable power supply.
Arduino boards can usually provide power to low-power sensors and actuators directly from
theirdigitaloranalogpins.However,high-powerdeviceslikemotorsmayrequirean external power
source.
Wiring connections: Connect the sensors and actuators to the Arduino board using
jumper wires or appropriate connectors. Arduino boards typically have digital input/output
(I/O) pins, analog input pins, and power pins that you can use for wiring.
For digital sensors and actuators, you can connect them to the digital I/O pins. These
pins can be configured as either input or output. Analog sensors can be connected to the analog
input pins, which can read continuous voltage values.
Power and ground connections should be made to provide appropriate voltage and
common reference for the sensors and actuators.
Library installation: Some sensors and actuators require specific libraries to be installed
in the Arduino Integrated Development Environment (IDE). These libraries provide pre-written
code and functions that make it easier to interface with the devices. You can install libraries by
navigating to Sketch -> Include Library -> Manage Libraries in the Arduino IDE.
Code development: Write the Arduino code to read sensor data and control the
actuators. The code should include appropriate functions and commands to initialize the
sensors, read their values, and control the actuators based on the sensor inputs. The specific
code will depend on the sensors and actuators you are using, so refer to their respective
documentation and examples.
Uploading and testing: Upload the code to the Arduino board and test the integration.
Use the Serial Monitor in the Arduino IDE to view sensor readings or debug any issues.Make
sure the sensors and actuators are functioning as expected.
By following these steps, you can integrate sensors and actuators with Arduino to create
interactive projects and prototypes. The possibilities are vast, ranging from simple projects like
temperature monitoring and LED control to complex robotics and automation systems.