unit 2 iot
unit 2 iot
ELEMENTS of IoT
Application Sensors & Actuators - Edge Networking (WSN) – Gateways - IoT Communication Model –
WPAN & LPWA, Overview of IoT supported Hardware platforms such as: Raspberry pi, ARM cortex
processors, Arduino, and Intel Galileo boards, Wearable Development Boards
A transducer is any physical device that converts one form of energy into another. So, in the case of
a sensor, the transducer converts some physical phenomenon into an electrical impulse that can then
be interpreted to determine a reading. A microphone is a sensor that takes vibration energy (sound waves),
and converts it to electrical energy in a useful way for other components in the system to correlate back to
the original sound.
Another type of transducer that we will encounter in many IoT systems is an actuator. In simple terms, an
actuator operates in the reverse direction of a sensor. It takes an electrical input and turns it into physical
action. For instance, an electric motor, a hydraulic system, and a pneumatic system are all different types
of actuators.
Examples of actuators
In typical IoT systems, a sensor may collect information and route to a control center where a decision is
made and a corresponding command is sent back to an actuator in response to that sensed input. There are
many different types of sensors. Flow sensors, temperature sensors, voltage sensors, humidity sensors, and
the list goes on. In addition, there are multiple ways to measure the same thing. For instance, airflow might
be measured by using a small propeller like the one you would see on a weather station. Alternatively, as in
a vehicle measuring the air through the engine, airflow is measured by heating a small element and
measuring the rate at which the element is cooling.
We live in a World of Sensors. You can find different types of Sensors in our homes, offices, cars etc.
working to make our lives easier by turning on the lights by detecting our presence, adjusting the room
temperature, detect smoke or fire, make us delicious coffee, open garage doors as soon as our car is near the
door and many other tasks.
1
The example we are talking about here is the Autopilot System in aircrafts. Almost all civilian and military
aircrafts have the feature of Automatic Flight Control system or sometimes called as Autopilot. An
Automatic Flight Control System consists of several sensors for various tasks like speed control, height,
position, doors, obstacle, fuel and many more. A Computer takes data from all these sensors and processes
them by comparing them with pre-designed values. The computer then provides control signal to different
parts like engines, flaps, rudders etc. that help in a smooth flight.
All the parameters i.e. the Sensors (which give inputs to the Computers), the Computers (the brains of the
system) and the mechanics (the outputs of the system like engines and motors) are equally important in
building a successful automated system. Sensor as an input device which provides an output (signal) with
respect to a specific physical quantity (input). Sensor means that it is part of a bigger system which provides
input to a main control system (like a Processor or a Microcontroller).
Industrial monitoring/control,
Air/fluid pressure Capacitive, Resistive
8. automotive, agriculture
sensor
Industrial monitoring/control,
9. Acoustic sensor Diaphragm condenser
human interface
Industrial monitoring/control, Resistive thin films
10. Strain sensor
civil infrastructure
In the first classification of the sensors, they are divided in to Active and Passive. Active Sensors are those
which require an external excitation signal or a power signal. Passive Sensors, on the other hand, do not
require any external power signal and directly generates output response. The other type of classification is
2
based on the means of detection used in the sensor. Some of the means of detection are Electric, Biological,
Chemical, Radioactive etc.
The next classification is based on conversion phenomenon i.e. the input and the output. Some of the
common conversion phenomena are Photoelectric, Thermoelectric, Electrochemical, Electromagnetic,
Thermo-optic, etc. The final classification of the sensors are Analog and Digital Sensors. Analog Sensors
produce an analog output i.e. a continuous output signal with respect to the quantity being measured.
Digital Sensors, in contrast to Analog Sensors, work with discrete or digital data. The data in digital sensors,
which is used for conversion and transmission, is digital in nature.
1.IR LED
It is also called as IR Transmitter. It is used to emit Infrared rays. The range of these frequencies are
greater than the microwave frequencies (i.e. >300GHz to few hundreds of THz). The rays generated by an
infrared LED can be sensed by Photodiode explained below. The pair of IR LED and photodiode is called
IR Sensor.
It is a semiconductor device which is used to detect the light rays and mostly used as IR Receiver. Its
construction is similar to the normal PN junction diode but the working principle differs from it. As we
know a PN junction allows small leakage currents when it is reverse biased so, this property is used to
3
detect the light rays. A photodiode is constructed such that light rays should fall on the PN junction which
makes the leakage current increase based on the intensity of the light that we have applied. So, in this way,
a photodiode can be used to sense the light rays and maintain the current through the circuit. Check here
the working of Photodiode with IR sensor.
A Proximity Sensor is a non-contact type sensor that detects the presence of an object. Proximity Sensors
can be implemented using different techniques like Optical (like Infrared or Laser), Ultrasonic, Hall Effect,
Capacitive, etc.
Some of the applications of Proximity Sensors are Mobile Phones, Cars (Parking Sensors), industries (object
alignment), Ground Proximity in Aircrafts, etc. Proximity Sensor in Reverse Parking is implemented
in this Project: Reverse Parking Sensor Circuit.
As the name itself specifies that the resistor that depends upon the light intensity. It works on the principle
of photoconductivity which means the conduction due to the light. It is generally made up of Cadmium
sulfide. When light falls on the LDR, its resistance decreases and acts similar to a conductor and when no
light falls on it, its resistance is almost in the range of MΩ or ideally it acts as an open circuit. One note
should be considered with LDR is that it won’t respond if the light is not exactly focused on its surface.
4
Fig 5.LDR
With a proper circuitry using a transistor it can be used to detect the availability of light. A voltage divider
biased transistor with R2 (resistor between base and emitter) replaced with an LDR can work as a light
detector.
A thermistor can be used to detect the variation in temperature. It has a negative temperature coefficient
that means when the temperature increases the resistance decreases. So, the thermistor’s resistance can be
varied with the rise in temperature which causes more current flow through it. This change in current flow
can be used to determine the amount of change in temperature. An application for thermistor is, it is used to
detect the rise in temperature and control the leakage current in a transistor circuit which helps in
maintaining its stability. Here is one simple application for Thermistor to control the DC fan automatically.
Fig 6.Thermistor
Another component that can detect the variation in temperature is a thermocouple. In its construction, two
different metals are joined together to form a junction. Its main principle is when the junction of two
different metals are heated or exposed to high temperatures a potential across their terminals varies. So, the
varying potential can be further used to measure the amount of change in temperature.
5
7.Strain Gauge (Pressure/Force Sensor)
A strain gauge is used to detect pressure when a load is applied. It works on the principle of resistance, we
know that the resistance is directly proportional to the length of the wire and is inversely proportional to its
cross-sectional area (R=ρl/a). The same principle can be used here to measure the load. On a flexible board,
a wire is arranged in a zig-zag manner as shown in the figure below. So, when the pressure is applied to
that particular board, it bends in a direction causing the change in overall length and cross-sectional area of
the wire. This leads to change in resistance of the wire. The resistance thus obtained is very minute (few
ohms) which can be determined with the help of the Wheatstone bridge. The strain gauge is placed in one
of the four arms in a bridge with the remaining values unchanged. Therefore, when the pressure is applied
to it as the resistance changes the current passing through the bridge varies and pressure can be calculated.
Strain gauges are majorly used to calculate the amount of pressure that an airplane wing can withstand and
it is also used to measure the number of vehicles allowable on a particular road etc.
Load cells are similar to strain gauges which measure the physical quantity like force and give the output in
form of electrical signals. When some tension is applied on the load cell it structure varies causing the
change in resistance and finally, its value can be calibrated using a Wheatstone bridge. Here is the project
on how to measure weight using Load cell.
9.Potentiometer
A potentiometer is used to detect the position. It generally has various ranges of resistors connected to
different poles of the switch. A potentiometer can be either rotary or linear type. In rotary type, a wiper is
connected to a long shaft which can be rotated. When the shaft has rotated the position of the wiper alters
6
such that the resultant resistance varies causing the change in the output voltage. Thus the output can be
calibrated to detect the change its position.
Fig 10.Potentiometer
10.Encoder
To detect the change in the position an encoder can also be used. It has a circular rotatable disk-like
structure with specific openings in between such that when the IR rays or light rays pass through it only a
few light rays get detected. Further, these rays are encoded into a digital data (in terms of binary) which
represents the specific position.
Fig 11.Encoder
11 Hall Sensor
The name itself states that it is the sensor which works on the Hall Effect. It can be defined as when a
magnetic field is brought close to the current carrying conductor (perpendicular to the direction of the
electric field) then a potential difference is developed across the given conductor. Using this property
a Hall sensor is used to detect the magnetic field and gives output in terms of voltage. Care should be taken
that the Hall sensor can detect only one pole of the magnet.
7
12. Flex Sensor
A FLEX sensor is a transducer which changes its resistance when its shape is changed or when it is bent.
A FLEX sensor is 2.2 inches long or of finger length. Simply speaking the sensor terminal resistance
increases when it’s bent. This change in resistance can do no good unless we can read them. The controller
at hand can only read the changes in voltage and nothing less, for this, we are going to use voltage divider
circuit, with that we can derive the resistance change as a voltage change.
Microphone can be seen on all the smartphones or mobiles. It can detect the audio signal and convert them
into small voltage (mV) electrical signals. A microphone can be of many types like condenser microphone,
crystal microphone, carbon microphone etc. each type of microphone work on the properties like
capacitance, piezoelectric effect, resistance respectively. Let us see the operation of a crystal microphone
which works on the piezoelectric effect. A bimorph crystal is used which under pressure or vibrations
produces proportional alternating voltage. A diaphragm is connected to the crystal through a drive pin such
that when the sound signal hits the diaphragm it moves to and fro, this movement changes the position of
the drive pin which causes vibrations in the crystal thus an alternating voltage is generated with respect to
the applied sound signal. The obtained voltage is fed to an amplifier in order to increase the overall strength
of the signal.
Fig 14.Microphone
14.Ultrasonic sensor
Ultrasonic means nothing but the range of the frequencies. Its range is greater than audible range (>20 kHz)
so even it is switched on we can’t sense these sound signals. Only specific speakers and receivers can sense
those ultrasonic waves. This ultrasonic sensor is used to calculate the distance between the ultrasonic
transmitter and the target and also used to measure the velocity of the target.
Ultrasonic sensor HC-SR04 can be used to measure distance in the range of 2cm-400cm with an accuracy
of 3mm. Let’s see how this module works. The HCSR04 module generates a sound vibration in ultrasonic
range when we make the ‘Trigger’ pin high for about 10us which will send an 8 cycle sonic burst at the
speed of sound and after striking the object, it will be received by the Echo pin. Depending on the time
taken by sound vibration to get back, it provides the appropriate pulse output. We can calculate the distance
of the object based on the time taken by the ultrasonic wave to return back to the sensor.
8
Fig 15.Utrasonic sensor
There are many applications with the ultrasonic sensor. We can make use of it avoid obstacles for the
automated cars, moving robots etc. The same principle will be used in the RADAR for detecting the
intruder missiles and airplanes. A mosquito can sense the ultrasonic sounds. So, ultrasonic waves can be
used as mosquito repellent.
15.Touch Sensor
In this generation, we can say that almost all are using smartphones which have widescreen that too a
screen which can sense our touch. So, let’s see how this touchscreen works. Basically, there are two types
of touch sensors resistive based and a capacitive based touch screens. Let’s know about working of these
sensors briefly.
The resistive touch screen has a resistive sheet at the base and a conductive sheet under the screen both of
these are separated by an air gap with a small voltage applied to the sheets. When we press or touch the
screen the conductive sheet touches the resistive sheet at that point causing current flow at that particular
point, the software senses the location and relevant action is performed.
16.PIR sensor
PIR sensor stands for Passive Infrared sensor. These are used to detect the motion of humans, animals or
things. We know that infrared rays have a property of reflection. When an infrared ray hits an object,
depending upon the temperature of the target the infrared ray properties changes, this received signal
determines the motion of the objects or the living beings. Even if the shape of the object alters, the
properties of the reflected infrared rays can differentiate the objects precisely. Here is the
complete working or PIR sensor.
9
Fig 17.PIR Sensor
An accelerometer sensor can sense the tilt or movement of it in a particular direction. It works based on
the acceleration force caused due to the earth’s gravity. The tiny internal parts of it are such sensitive that
those will react to a small external change in position. It has a piezoelectric crystal when tilted causes
disturbance in the crystal and generates potential which determines the exact position with respect to X, Y
and Z axis.
Fig 18.Accelerometer
These are commonly seen in mobiles and laptops in order to avoid breakage of processors leads. When the
device falls the accelerometer detects the falling condition and does respective action based on the
software.
18.Gas sensor
In industrial applications gas sensors plays a major role in detecting the gas leakage. If no such device is
installed in such areas it ultimately leads to an unbelievable disaster. These gas sensors are classified into
various types based on the type of gas that to be detected. Let’s see how this sensor works. Underneath a
metal sheet there exists a sensing element which is connected to the terminals where a current is applied to
it. When the gas particles hit the sensing element, it leads to a chemical reaction such that the resistance of
the elements varies and current through it also alters which finally can detect the gas.
10
19. Resistive Sensors
Resistive sensors, such as the potentiometer, have three terminals: power input, grounding terminal, and
variable voltage output. These mechanical devices have varied resistance that can be changed through
movable contact with its fixed resistor. Output from the sensor varies depending on whether the movable
contact is near the resistor's supple end or ground end. Thermistors are also variable resistors, although the
resistance of the sensor varies with temperature
.
Fig 21.Voltage Generating Sensors
21.Switch Sensors
Switch sensors are composed of a set of contacts that open when close to a magnet. A reed switch is a
common example of a switch sensor and is most commonly used as a speed or position sensor. As a speed
sensor, a magnet is attached to the speedometer cable and spins along with it. Each time one of the
magnet's poles passes the reed switch, it opens and then closes. How fast the magnet passes allows the
sensor to read the vehicle's speed.
11
Fig 22.Switch Sensors
2.Edge Networking
Embedded systems are already playing a crucial role in the development of the IoT. In broad strokes,
there are four main components of an IoT system:
2. Commercial IoT, where local communication is typically either Bluetooth or Ethernet (wired
or wireless). The IoT device will typically communicate only with local devices.
So to better understand how to build IoT devices, you first need to figure out how they will
communicate with the rest of the world.
Local Network
Your choice of communication technology directly affects your device’s hardware requirements and costs.
Which networking technology is the best choice?
IoT devices are deployed in so many different ways — in clothing, houses, buildings, campuses, factories,
and even in your body — that no single networking technology can fit all bills.
12
Let’s take a factory as a typical case for an IoT system. A factory would need a large number of connected
sensors and actuators scattered over a wide area, and a wireless technology would be the best fit.
A wireless sensor network (WSN) is a collection of distributed sensors that monitor physical or
environmental conditions, such as temperature, sound, and pressure. Data from each sensor passes through
the network node-to-node.
WSN Nodes
WSN nodes are low cost devices, so they can be deployed in high volume. They also operate at low power
so that they can run on battery, or even use energy harvesting. A WSN node is an embedded system that
typically performs a single function (such as measuring temperature or pressure, or turning on a light or a
motor).
Energy harvesting is a new technology that derives energy from external sources (for example, solar power,
thermal energy, wind energy, electromagnetic radiation, kinetic energy, and more). The energy is captured
and stored for use by small, low-power wireless autonomous devices, like the nodes on a WSN.
A WSN edge node is a WSN node that includes Internet Protocol connectivity. It acts as a gateway between
the WSN and the IP network. It can also perform local processing, provide local storage, and can have a user
interface.
13
Fig 25.WSN Edge
WSN Technologies
The battle over the preferred networking protocol is far from over. There are multiple candidates.
Wi-Fi
The first obvious networking technology candidate for an IoT device is Wi-Fi, because it is so ubiquitous.
Certainly, Wi-Fi can be a good solution for many applications. Almost every house that has an Internet
connection has a Wi-Fi router. However, Wi-Fi needs a fair amount of power. There are myriad devices that
can’t afford that level of power: battery operated devices, for example, or sensors positioned in locations that
are difficult to power from the grid.
New application protocols and data formats that enable autonomous operation For example, EnOceanhas
patented an energy-harvesting wireless technology to meet the power consumption challenge. EnOcean’s
wireless transmitters work in the frequencies of 868 MHz for Europe and 315 MHz for North America. The
transmission range is up to 30 meters in buildings and up to 300 meters outdoors.
EnOcean wireless technology uses a combination of energy harvesting and very low power wireless
communications to enable virtually indefinite communications to be maintained without the need for
recharging.
The EnOcean technology is used for wireless sensors, controllers and gateways.
One of the key issues with small machines is the need for ensuring that batteries are maintained charged. In
traditional systems, either mains power was required, or batteries needed to be replaced, even if only
infrequently. The use of EnOcean removes the need for power to be directly applied thereby reducing the
cost of the system operation.
One of the major IoT enablers is the IEEE 802.15.4 radio standard, released in 2003.Commercial radios
meeting this standard provide the basis for low-power systems. This IEEE standard was extended and
improved in 2006 and 2011 with the 15.4e and 15.4g amendments. Power consumption of commercial RF
devices is now cut in half compared to only a few years ago, and we are expecting another 50% reduction
with the next generation of devices.
6LoWPAN
Devices that take advantage of energy-harvesting must perform their tasks in the shortest time possible,
which means that their transmitted messages must be as small as possible. This requirement has implications
for protocol design.
3. Internet of Things Communications Models
From an operational perspective, it is useful to think about how IoT devices connect and
communicate in terms of their technical communication models. In March 2015, the Internet
Architecture Board (IAB) released a guiding architectural document for networking of smart
14
objects which outlines a framework of four common communication models used by IoT devices.
The discussion below presents this framework and explains key characteristics of each model in
the framework.
Device-to-Device Communications
The device-to-device communication model represents two or more devices that directly connect
and communicate between one another, rather than through an intermediary application server.
These devices communicate over many types of networks, including IP networks or the Internet.
Often, however these devices use protocols like Bluetooth, Z-Wave, or ZigBee to establish direct
device-to-device communications, as shown in Figure 26.
These device-to-device networks allow devices that adhere to a particular communication protocol to
communicate and exchange messages to achieve their function. This communication model is
commonly used in applications like home automation systems, which typically use small data packets
of information to communicate between devices with relatively low data rate requirements. Residential
IoT devices like light bulbs, light switches, thermostats, and door locks normally send small amounts of
information to each other (e.g. a door lock status message or turn on light command) in a home
automation scenario.
From the user’s point of view, this often means that underlying device-to-device communication2
protocols are not compatible, forcing the user to select a family of devices that employ a common
protocol. For example, the family of devices using the Z-Wave protocol is not natively compatible with
the ZigBee family of devices. While these incompatibilities limit user choice to devices within a
particular protocol family, the user benefits from knowing that products within a particular family tend
to communicate well.
Device-to-Cloud Communications
In a device-to-cloud communication model, the IoT device connects directly to an Internet cloud
service like an application service provider to exchange data and control message traffic. This
approach frequently takes advantage of existing communications mechanisms like traditional
Applic
wiredI Ethernet or Wi-Fi connections to establish a connection between the device and the IP
P HL C
D D which ultimately connects to the cloud service. This is shown in Figure 27.
network,
This communication model is employed by some popular consumer IoT devices like the Nest
Labs Learning Thermostat and the Samsung SmartTV. In the case of the Nest Learning
Thermostat, the device transmits data to a cloud database where the data can be used to analyze
home energy consumption.
Further, this cloud connection enables the user to obtain remote access to their thermostat via a
smartphone or Web interface, and it also supports software updates to the thermostat. Similarly,
with the Samsung SmartTVtechnology, the television uses an Internet connection to transmit user
viewing information to Samsung for analysis and to enable the interactive voice recognition
features of the TV. In these cases, the device-to-cloud model adds value to the end user by
extending the capabilities of the device beyond its native features.
However, interoperability challenges can arise when attempting to integrate devices made by
different manufacturers. Frequently, the device and cloud service are from the same vendor. If
proprietary data protocols are used between the device and the cloud service, the device owner or
user may be tied to a specific cloud service, limiting or preventing the use of alternative service
providers. This is commonly referred to as “vendor lock-in’’, a term that encompasses other facets
of the relationship with the provider such as ownership of and access to the data. At the same time,
users can generally have confidence that devices designed for the specific platform can be
integrated.
Device-to-Gateway Model
In the device-to-gateway model, or more typically, the device-to-application-layer gateway (ALG)
model, the IoT device connects through an ALG service as a conduit to reach a cloud service. In
simpler terms, this means that there is application software operating on a local gateway device,
which acts as an intermediary between the device and the cloud service and provides security and
other functionality such as data or protocol translation.
16
Fig 28.Device-to-gateway communication model diagram.
Several forms of this model are found in consumer devices. In many cases, the local gateway device
is a Smartphone running an app to communicate with a device and relay data to a cloud service.
model employed with popular consumer items like personal fitness trackers. These devices do not
have the native ability to connect directly to a cloud service, so they frequently rely on Smartphone
app software to serve as an intermediary gateway to connect the fitness device to the cloud.
The other form of this device-to-gateway model is the emergence of “hub” devices in home
automation applications. These are devices that serve as a local gateway between individual IoT
devices and a cloud service, but they can also bridge the interoperability gap between devices
themselves. For example, the Smart Things hub is a stand-alone gateway device that has Z-Wave
and Zigbee transceivers installed to communicate with both families of devices. It then connects to
the Smart Things cloud service, allowing the user to gain access to the devices using a Smartphone
app and an Internet connection. The evolution of systems using the device-to-gateway
communication model and its larger role in addressing interoperability challenges among IoT
devices is still unfolding.
17
The back-end data-sharing model suggests a federated cloud services approach or cloud
applications programmer interfaces (APIs) are needed to achieve interoperability of smart device
data hosted in the cloud. A graphical representation of this design is shown in Fig 29.
18
4. Low Power Wide Area Networks: An Overview
Low Power Wide Area (LPWA) networks represent a novel communication paradigm, which will
complement traditional cellular and short range wireless technologies in addressing diverse
requirements of IoT applications. LPWA technologies offer unique sets of features including wide-
area connectivity for low power and low data rate devices, not provided by legacy wireless
technologies.
LPWA networks are unique because they make different tradeoffs than the traditional
technologies prevalent in IoT landscape such as short-range wireless networks e.g., Zig- Bee,
Bluetooth, Z-Wave, legacy wireless local area networks (WLANs) e.g., Wi-Fi, and cellular networks
e.g. Global Sys- tem for Mobile Communications (GSM), Long-Term Evolution (LTE) etc. The
legacy non-cellular wireless technologies are not ideal to connect low power devices distributed over
large geographical areas. The range of these technologies is limited to a few hundred meters at
best. The devices, therefore, cannot be arbitrarily deployed or moved anywhere, a requirement for
many applications for smart city, logistics and personal health The range of these technologies is
extended using a dense deployment of devices and gateways connected using multihop mesh
networking. Large deployments are thus prohibitively expensive. Legacy WLANs, on the other hand,
are characterized by shorter coverage areas and higher power consumption for machine-type
communication (MTC).
A wide area coverage is provided by cellular networks, a reason of a wide adoption of second
generation (2G) and third generation (3G) technologies for M2M communication. How- ever, an
impending decommissioning of these technologies[5], as announced by some mobile network
operators (MNOs),will broaden the technology gap in connecting low-power devices. In general,
traditional cellular technologies do not achieve energy efficiency high enough to offer ten years of
battery lifetime. The complexity and cost of cellular devices is high due to their ability to deal with
complex waveforms, optimized for voice, high speed data services, and text. For low-power MTC,
there is a clear need to strip complexity to reduce cost. Efforts in this direction are underway for
cellular networks by the Third Generation Partnership Project and are covered as
19
Fig 30.Applications of LPWA technologies across different sectors
A. Long range
LPWA technologies are designed for a wide area coverage and an excellent signal propagation to
hard-to-reach indoor places such as basements. The physical layer compromises on high data rate
and slows downs the modulation rate to put more energy in each transmitted bit (or symbol). Due
to this reason, the receivers can decode severely attenuated signals correctly. Typical sensitivity of
state of the art LPWA receivers reaches as low as -130 dBm.
B. Ultra low power operation
Ulra-low power operation is a key requirement to tap into the huge business opportunity
provided by battery-powered IoT/M2M devices. A battery lifetime of 10 years or more with AA
or coin cell batteries is desirable to bring the maintenance cost down.
C. Topology
While mesh topology has been extensively used to extend the coverage of short range wireless
networks, their high deployment cost is a major disadvantage in con- necting large number of
geographically distributed devices. Further, as the traffic is forwarded over multiple hops towards a
gateway, some nodes get more congested than others depend- ing on their location or network
traffic patterns. Therefore, they deplete their batteries quickly, limiting overall network lifetime to
only a few months to years .On the other hand, a very long range of LPWA technologies
overcomes these limitations by connecting end devices directly to base stations, obviating the need
for the dense and expensive deployments of relays and gateways altogether. The resulting topology
is a star that is used extensively in cellular networks and brings huge energy saving advantages. As
opposed to the mesh topology, the devices need not to waste precious energy in busy-listening to
other devices that want to relay their traffic through them. An always-on base station provides
convenient and quick access when required by the end-devices.
D. Duty Cycling: Low power operation is achieved by opportunistically turning off power hungry
components of M2M/IoT devices e.g., data transceiver. Radio duty cycling allows LPWA end devices to
turn off their transceivers, when not required. Only when the data is to be transmitted or received, the
transceiver is turned on.
E. Lightweight Medium Access Control: Most-widely used Medium Access Control (MAC) rotocols for
cellular net- works or short range wireless networks are too complex for LPWA technologies. For
example, cellular networks synchro- nize the base stations and the user equipment (UE) accurately to
benefit from complex MAC schemes that exploit frequency.
On the business side, the proprietary solution providers are in a rush to bring their services to the
market and capture their share across multiple verticals. In this race, it is easy but counter-
20
productive to overlook important challenges faced by LPWA technologies. In this section, we
highlight these challenges and some research directions to overcome them and improve
performance in long-term.
3. Localization
LPWA networks expect to generate significant revenue from logistics, supply chain
management, and personal IoT applications, where location of mobile objects, vehicles, humans,
and animals may be of utmost interest. An accurate localization support is thus an important
feature for keeping track of valuables, kids, elderly, pets, shipments, vehicle fleets, etc. In fact,
it is regarded as an important feature to enable new applications.
21
6. Authentication, Security, and Privacy
Authentication, security, and privacy are some of the most important features of any
communication system. Cellular networks provide proven authentication, security, and privacy
mechanisms. Use of Subscriber Identity Modules (SIM) simplifies identification and
authentication of the cellular devices. LPWA technologies, due to their cost and energy
considerations, not only settle for simpler communication protocols but also depart from SIM
based authentication. Techniques and protocols are thus required to provide equivalent or better
authentication support for LPWA technologies. Further to assure that end devices are not
exposed to any security risks over prolonged duration, a support for over-the-air (OTA) updates
is a crucial feature. A lack of adequate support for OTA updates poses a great security risk to
most LPWA technologies.
Applications
WPAN Topologies:
22
Fig 31 WPAN Topologies
Piconets
Bluetooth enabled electronic devices connect and communicate wirelessly through short-range, ad
hoc networks known as piconets. Piconets are established dynamically and automatically as
Bluetooth enabled devices enter and leave radio proximity. Up to 8 devices in one piconet (1
master and up to 7 slave devices)
Max range is 10 m. The piconet master is a device in a piconet whose clock and device address are
used to define the piconet physical channel characteristics.All other devices in the piconet are called
piconet slaves.All devices have the same timing and frequency hopping sequence. At any given
time, data can be transferred between the master and one slave.
The master switches rapidly from slave to slave in a round-robin fashion. Any Bluetooth device can
be either a master or a slave. Any device may switch the master/slave role at any time.
Scatternet
Any Bluetooth device can be a master of one piconet and a slave of another piconet at the same time
(scatternet). Scatternet is formed by two ormore Piconets. Master of one piconet can participate as a slave in
another connected piconet. No time or frequency synchronization between piconets
The radio layer specifies details of the air interface, including the usage of the frequency hopping sequence,
modulation scheme, and transmit power. The radio layer FHSS operation and radio parameters
Baseband Layer
23
The baseband layer specifies the lower level operations at the bit and packet levels. It supports
Forward Error Correction (FEC) operations and Encryption, Cyclic Redundancy Check (CRC)
calculations. Retransmissions using the Automatic Repeat Request (ARQ) Protocol.
L2CAP layer
The Logical Link Control and Adaptation Protocol (L2CAP) layer handles the multiplexing of higher
layer protocols and the segmentation and reassembly (SAR) of large packets The L2CAP layer provides
both connectionless and connection-oriented services
Managing the creation and termination of logical links for each connection through channel structures.
Adapting Data, for each connection, between application (APIs) and Bluetooth Baseband formats through
Segmentation and Reassembly (SAR). Performing Multiplexing to support multiple concurrent
connections over a single common radio interface (multiple apps. using link between two devices
simultaneously). L2CAP segments large packets into smaller baseband manageable packets. Smaller
received baseband packets are reassembled coming back up the protocol stack.
RFCOMM
Applications may access L2CAP through different support protocols Service Discovery Protocol (SDP)
24
RFCOMM Telephony Control Protocol Specification (TCS) TCP/IP based applications, for instance
information transfer using the Wireless Application Protocol (WAP), can be extended to Bluetooth devices
by using the Point-to-Point Protocol (PPP) on top of RFCOMM.
OBEX Protocol
The Object Exchange Protocol (OBEX) is a sessionlevel protocol for the exchange of objects This protocol
can be used for example for phonebook, calendar or messaging synchronization, or for file transfer between
connected devices.
TCSBIN Protocol
The telephony control specification - binary (TCS BIN) protocol defines the call-control signaling for the
establishment of speech and data calls between Bluetooth devices In addition, it defines mobility management
procedures for handling groups of Bluetooth devices.
The Service Discovery Protocol (SDP) can be used to access a specific device (such as a digital camera) and
retrieve its capabilities, or to access a specific application (such as a print job) and find devices that support
this application.
Smart Wi-Fi is an IoT-enabler tool. The applications it can cater to are only limited by the imagination
of makers. The very basic applications could be for smart homes or smart offices. This module can be used
for data logging, data monitoring and more, and provides very good support for product development. It also
has all features to act as a full-fledged product. Platforms such as ThingSpeak add to the benefits and provide
support for testing and development of an IoT product. Smart Wi-Fi enables making a product quickly and
reliably. With open software resources and hardware data, moving to the final product after the proof of
concept is also easy.
7. IoT platform
The purpose of any IoT device is to connect with other IoT devices and applications (cloud-based
mostly) to relay information using internet transfer protocols.
The gap between the device sensors and data networks is filled by an IoT Platform. Such a platform
connects the data network to the sensor arrangement and provides insights using backend applications to
make sense of plethora of data generated by hundreds of sensors.
While there are hundreds of companies and a few startups venturing into IoT platform development, players
like Amazon and Microsoft are way ahead of others in the competition. Read on to know about top 10 IoT
platforms you can use for your applications.
IoT platform: Amazon Web Services (AWS) IoT
Last year Amazon announced the AWS IoT platform at it s Re:Invent conference. Main features of
AWS IoT platform are:
Microsoft is very much interested in bringing up products for internet of things. For the initiative
the Microsoft Azure cloud services compatible IoT platform, the Azure IoT suite is on the offer. Features
included in this platform are:
Device shadowing
A rules engine
Identity registry
Information monitoring
For processing the massive amount of information generated by sensors Azure IoT suite comes with Azure
Stream Analytics to process massive amounts of information in real-time.
Top IoT Platforms-Google Cloud Platform (New)
Google can make things happen. With its end-to-end platform, Google cloud is among the best IoT
platforms we have currently. With the ability to handle the vast amount of data using Cloud IoT Core,
Google stands out from the rest. You get advanced analytics owing to Google’s Big Query and Cloud Data
Studio.
Some of the features of the Google Cloud platform are:-
Accelerate your Business
Speed up your devices
Cut Cost with Cloud Service.
Partner Ecosystem
IoT Platform: ThingWorx IoT Platform
In vendor’s own words, “ThingWorx is the industry’s leading Internet of Things (IoT) technology platform.
It enables innovators to rapidly create and deploy game-changing applications, solutions and experiences for
today’s smart, connected world.”
Thingsworx is an IoT platform which is designed for enterprise application development. It offers features
like:
Easy connectivity of devices to the platform
Remove complexity from IoT application development
Sharing platform among developers for rapid development
Integrated machine learning for automating complex big data analytics
Deploy cloud, embedded or on-premise IoT solutions on the go
IoT platform: IBM Watson
We can never expect the Big Blue to miss on the opportunity to making a mark in the internet of things
segment. IBM Watson is an IoT platform which is pretty much taken among developers already. Backed by
IBM’s hybrid cloud PaaS (platform as a service) development platform, the Bluemix, Watson IoT enables
developers to easily deploy IoT applications.
Users of IBM Watson get:
26
Device Management
Secure Communications
Real Time Data Exchange
Data Storage
Recently added data sensor and weather data service
AWS IoT provides secure, bi-directional communication between Internet-connected devices such as
sensors, actuators, embedded micro-controllers, or smart appliances and the AWS Cloud. This enables you
to collect telemetry data from multiple devices, and store and analyze the data. You can also create
applications that enable your users to control these devices from their phones or tablets.
A. Device gateway
Enables devices to securely and efficiently communicate with AWS IoT.
B. Message broker
Provides a secure mechanism for devices and AWS IoT applications to publish and receive messages from
each other. You can use either the MQTT protocol directly or MQTT over WebSocket to publish and
subscribe. You can use the HTTP REST interface to publish.
27
C. Rules engine
Provides message processing and integration with other AWS services. You can use an SQL-based language
to select data from message payloads, and then process and send the data to other services, such as Amazon
S3, Amazon DynamoDB, and AWS Lambda. You can also use the message broker to republish messages to
other subscribers.
E. Registry
Organizes the resources associated with each device in the AWS Cloud. You register your devices and
associate up to three custom attributes with each one. You can also associate certificates and MQTT client
IDs with each device to improve your ability to manage and troubleshoot them.
F. Group registry
Groups allow you to manage several devices at once by categorizing them into groups. Groups can also
contain groups—you can build a hierarchy of groups. Any action you perform on a parent group will apply
to its child groups, and to all the devices in it and in all of its child groups as well. Permissions given to a
group will apply to all devices in the group and in all of its child groups.
G. Device shadow
A JSON document used to store and retrieve current state information for a device.
The templates contain variables that are replaced by values in a dictionary (map). You can use the same
template to provision multiple devices just by passing in different values for the template variables in the
dictionary.
You can define custom authorizers that allow you to manage your own authentication and authorization
strategy using a custom authentication service and a Lambda function. Custom authorizers allow AWS IoT
to authenticate your devices and authorize operations using bearer token authentication and authorization
strategies. Custom authorizers can implement various authentication strategies and must return policy
documents which are used by the device gateway to authorize MQTT operations.
K. Jobs Service
28
Allows you to define a set of remote operations that are sent to and executed on one or more devices
connected to AWS IoT. For example, you can define a job that instructs a set of devices to download and
install application or firmware updates, reboot, rotate certificates, or perform remote troubleshooting
operations.To create a job, you specify a description of the remote operations to be performed and a list of
targets that should perform them. The targets can be individual devices, groups or both.
AWS IoT provides the following interfaces to create and interact with your devices:
AWS Command Line Interface (AWS CLI)—Run commands for AWS IoT on Windows, macOS,
and Linux. These commands allow you to create and manage things, certificates, rules, and policies.
To get started, see the AWS Command Line Interface User Guide. For more information about the
commands for AWS IoT, see iot in the AWS CLI Command Reference.
AWS IoT API—Build your IoT applications using HTTP or HTTPS requests. These API actions
allow you to programmatically create and manage things, certificates, rules, and policies. For more
information about the API actions for AWS IoT, see Actions in the AWS IoT API Reference.
AWS SDKs—Build your IoT applications using language-specific APIs. These SDKs wrap the
HTTP/HTTPS API and allow you to program in any of the supported languages.
AWS IoT Device SDKs—Build applications that run on devices that send messages to and receive
messages from AWS IoT.
Related Services
Amazon Simple Storage Service—Provides scalable storage in the AWS Cloud. For more
information, see Amazon S3.
Amazon DynamoDB—Provides managed NoSQL databases. For more information, see Amazon
DynamoDB.
Amazon Kinesis—Enables real-time processing of streaming data at a massive scale. For more
information, see Amazon Kinesis.
AWS Lambda—Runs your code on virtual servers from Amazon EC2 in response to events. For
more information, see AWS Lambda.
Amazon Simple Notification Service—Sends or receives notifications. For more information,
see Amazon SNS.
Amazon Simple Queue Service—Stores data in a queue to be retrieved by applications. For more
information, see Amazon SQS.
Benefits
Connect and Manage Your Devices
AWS IoT Core allows you to easily connect devices to the cloud and to other devices. AWS IoT Core
supports HTTP, WebSockets, and MQTT, a lightweight communication protocol specifically designed to
tolerate intermittent connections, minimize the code footprint on devices, and reduce network bandwidth
29
requirements. AWS IoT Core also supports other industry-standard and custom protocols, and devices can
communicate with each other even if they are using different protocols
30
Fig 35. Process And Act Upon Device Data
Read and set device state at any time
AWS IoT Core stores the latest state of a device so that it can be read or set at anytime, making the device
appear to your applications as if it were online all the time. This means that your application can read a
device’s state even when it is disconnected, and also allows you to set a device state and have it
implemented when the device reconnects
31
Fig 37.Arduino Board
Ultrasonic sensor
It works by sending sound waves from the transmitter, which then bounce off of an object and then
return to the receiver. You can determine how far away something is by the time it takes for the sound
waves to get back to the sensor. Let's get right to it!. Connections
The connections are very simple:
32
VCC to 5V
GND to GND
Trig to pin 9
Echo to pin 10
You can actually connect Trig and Echo to whichever pins you want, 9 and 10 are just the ones I'm using.
Code:
we define the pins that Trig and Echo are connected to.
Then we declare 2 floats, duration and distance, which will hold the length of the sound wave and how
far away the object is.
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
Now, in the loop, what we do is first set the trigPin low for 2 microseconds just to make sure that the
pin in low first. Then, we set it high for 10 microseconds, which sends out an 8 cycle sonic burst from
the transmitter, which then bounces of an object and hits the receiver(Which is connected to the Echo
Pin).
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
33
digitalWrite(trigPin, LOW);
When the sound waves hit the receiver, it turns the Echo pin high for however long the waves were
traveling for. To get that, we can use a handy Arduino function called pulseIn(). It takes 2 arguments,
the pin you are listening to(In our case, the Echo pin), and a state(HIGH or LOW). What the function
does is waits for the pin to go whichever sate you put in, starts timing, and then stops timing when it
switches to the other state. In our case we would put HIGH since we want to start timing when the Echo
pin goes high. We will store the time in the duration variable. (It returns the time in microseconds)
Now that we have the time, we can use the equation speed = distance/time, but we will make it time x
speed = distance because we have the speed. What speed do we have? The speed of sound, of course!
The speed of sound is approximately 340 meters per second, but since the pulseIn() function returns the
time in microseconds, we will need to have a speed in microseconds also, which is easy to get. A quick
Google search for "speed of sound in centimeters per microsecond" will say that it is .0343 c/μS. You
could do the math, but searching it is easier. Anyway, with that information, we can calculate the
distance! Just multiply the duration by .0343 and the divide it by 2(Because the sound waves travel to
the object AND back). We will store that in the distance variable.
distance = (duration*.0343)/2;
The rest is just printing out the results to the Serial Monitor.
Serial.print("Distance: ");
Serial.println(distance);
delay(100);
}
Temperature Sensor
Connecting to a Temperature Sensor
These sensors have little chips in them and while they're not that delicate, they do need to be handled
properly. Be careful of static electricity when handling them and make sure the power supply is
connected up correctly and is between 2.7 and 5.5V DC - so don't try to use a 9V battery!
They come in a "TO-92" package which means the chip is housed in a plastic hemi-cylinder with three
legs. The legs can be bent easily to allow the sensor to be plugged into a breadboard. You can also
solder to the pins to connect long wires.
34
Unlike the FSR or photocell sensors we have looked at, the TMP36 and friends doesn't act like a
resistor. Because of that, there is really only one way to read the temperature value from the sensor,
and that is plugging the output pin directly into an Analog (ADC) input.
Remember that you can use anywhere between 2.7V and 5.5V as the power supply. For this example
I'm showing it with a 5V supply but note that you can use this with a 3.3v supply just as easily. No
matter what supply you use, the analog voltage reading will range from about 0V (ground) to about
1.75V.
If you're using a 5V Arduino, and connecting the sensor directly into an Analog pin, you can use these
formulas to turn the 10-bit analog reading into a temperature:
This formula converts the number 0-1023 from the ADC into 0-5000mV (= 5V) If you're using a 3.3V
Arduino, you'll want to use this:
This formula converts the number 0-1023 from the ADC into 0-3300mV (= 3.3V) Then, to convert
millivolts into temperature, use this formula:
PYTHON CODE :
Ultrasonic
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
TRIG = 23
36
ECHO = 24
GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)
GPIO.output(TRIG, False)
print "Waiting For Sensor To Settle"
time.sleep(2)
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
while GPIO.input(ECHO)==0:
pulse_start = time.time()
while GPIO.input(ECHO)==1:
pulse_end = time.time()
distance = round(distance, 2)
print "Distance:",distance,"cm"
GPIO.cleanup()
8. Intel Galileo
37
Intel Galileo Front Intel Galileo Back
Fig 40.Intel Galileo
Overview
Galileo is a microcontroller board based on the Intel® Quark SoC X1000 Application Processor, a
32-bit Intel Pentium-class system on a chip. It’s the first board based on Intel® architecture designed to be
hardware and software pin-compatible with Arduino shields designed for the Uno R3. Digital pins 0 to 13
(and the adjacent AREF and GND pins), Analog inputs 0 to 5, the power header, ICSP header, and the
UART port pins (0 and 1), are all in the same locations as on the Arduino Uno R3. This is also known as the
Arduino 1.0 pinout.
Galileo is designed to support shields that operate at either 3.3V or 5V. The core operating voltage of
Galileo is 3.3V. However, a jumper on the board enables voltage translation to 5V at the I/O pins. This
provides support for 5V Uno shields and is the default behavior. By switching the jumper position, the
voltage translation can be disabled to provide 3.3V operation at the I/O pins.
the Galileo board is also software compatible with the Arduino Software Development Environment (IDE),
which makes usability and introduction a snap. In addition to Arduino hardware and software compatibility,
the Galileo board has several PC industry standard I/O ports and features to expand native usage and
capabilities beyond the Arduino shield ecosystem. A full sized mini-PCI Express slot, 100Mb Ethernet port,
Micro-SD slot, RS-232 serial port, USB Host port, USB Client port, and 8MByte NOR flash come standard
on the board.
Benefits
The Galileo board is also software compatible with the Arduino Software Development Environment
(IDE), that makes usability and introduction a snap.
The Galileo board has several PC industry standard I/O ports and features to expand native usage and
capabilities beyond the Arduino shield ecosystem.
A full-sized mini-PCI Express slot, 100Mb Ethernet port, Micro-SD slot, RS-232 serial port, USB
Host port, USB Client port, and 8MByte NOR flash come standard on the board.
Using an Intel Galileo Board you can create your own world of Internet of Things (IoT) by writing
just a few sketches.
39
The genuine Intel processor and surrounding native I/O capabilities of the Clanton SoC provides for
a fully featured offering for both the maker community and students alike. It will also be useful to
professional developers who are looking for a simple and cost effective development environment to the
more complex Intel® Atom processor and Intel® Core processor-based designs.
Storage options:
Default - 8 MByte Legacy SPI Flash main purpose is to store the firmware (or
bootloader) and the latest sketch. Between 256KByte and 512KByte is dedicated
for sketch storage. The download will happen automatically from the
development PC, so no action is required unless there is an upgrade that is being
added to the firmware.
Default 512 KByte embedded SRAM, enabled by the firmware by default. No
action required to use this feature.
Default 256 MByte DRAM, enabled by the firmware by default.
Optional micro SD card offers up to 32GByte of storage
USB storage works with any USB 2.0 compatible drive
11 KByte EEPROM can be programmed via the EEPROM library.
Power
Galileo is powered via an AC-to-DC adapter, connected by plugging a 2.1mm center-positive plug
into the board's power jack. The recommended output rating of the power adapter is 5V at up to 3Amp.
Electrical Summary
Input Voltage (recommended) 5V
Input Voltage (limits) 5V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
Total DC Output Current on all I/O lines 80 mA
DC Current for 3.3V Pin 800 mA
40
DC Current for 5V Pin 800 mA
Communication
Galileo has a number of facilities for communicating with a computer, another Arduino, or other
microcontrollers. Galileo provides UART TTL (5V/3.3V) serial communication, which is available on
digital pin 0 (RX) and 1 (TX). In addition, a second UART provides RS-232 support and is connected via a
3.5mm jack. The USB Device ports allows for serial (CDC) communications over USB. This provides a
serial connection to the Serial Monitor or other applications on your computer. It also enables Galileo to act
as a USB mouse or keyboard to an attached computer. To use these features, see the Mouse and Keyboard
library reference pages. The USB Host port allows Galileo act as a USB Host for connected peripherals such
as mice, keyboards, and smartphones. To use these features, see the USBHost reference pages. Galileo is the
first Arduino board to provide a mini PCI Express (mPCIe) slot. This slot allows full size and half size (with
adapter) mPCIe modules to be connected to the board and also provides an additional USB Host port via the
slot. Any standard mPCIe module can be connected and used to provide applications such as WiFi,
Bluetooth or Cellular connectivity. Initially, the Galileo mPCie slot provides support for the WiFi Library.
An Ethernet RJ45 Connector is provided to allow Galileo to connect to wired networks. When connecting to
a network, you must provide an IP address and a MAC address. Full support of on-board Ethernet interface
is fully supported and does not require the use of the SPI interface like existing Arduino shields. The
onboard microSD card reader is accessible through the SD Library. The communication between Galileo
and the SD card is provided by an integrated SD controller and does not require the use of the SPI interface
like other Arduino boards. The Arduino software includes a Wire library to simplify use of
the TWI/I2C bus.
Programming
Galileo can be programmed with the Arduino software. When you are ready to upload the sketch to
the board, program Galileo through the USB Client port by selecting "Intel Galileo" as your board in the
Arduino IDE. Connect Galileo's port labelled USB Client (the one closest to the Ethernet) to your computer.
Rather than requiring a physical press of the reset button before an upload, Galileo is designed to be reset by
software running on a connected computer.
If a sketch is executing, you can upload from the IDE without having to press the reset button on the board.
The sketch is stopped; the IDE waits for the upload state, and then starts the newly uploaded sketch.
Pressing the reset button on the board restarts a sketch if it is executing and resets any attached shields.
The I/O expander’s pins, when configured as OUTPUT, can source (provide positive current) up to
10 mA (milliamps) and can sink (provide negative current) up to 25 mA of current to other devices/circuits.
The individual per pin current sourcing capability of 10 mA is subject to an overall limit of 80 mA
combined between all OUTPUT pins. The per pin capability current sinking capability is subject to an
overall limit of 200 mA. The following table provides a breakdown of the overall OUTPUT capabilities of
the pins.
41
Current Source Current Sink
(mA) (mA)
Per Pin Capability 10 25
Digital Pins 3,5,9,10,12, 13 Combined 40 100
Digital Pins 0,1,2,4,6,7,8,11 and Analog Pins
40 100
A0,A1,A2,A3,A4, A5 Combined
Digital Pins 0-13 and Analog Pins A0-A5 Combined 80 200
The IOREF jumper should be used to match the board and shield operating voltages. Incorrectly
setting the voltage could damage the board or the shield. I2C Address Jumper To prevent a clash between
the I2C Slave address of the on board I/O expander and EEPROM with any external I2C Slave devices,
jumper J2 can be used to vary the I2C address of the on-board devices. With J2 connected to pin 1 (marked
with white triangle), the 7-bit I/O Expander address is 0100001 and the 7-bit EEPROM address is 1010001.
Changing the jumper position changes the I/O Expander address to 0100000 and the EEPROM address to
1010000. VIN Jumper On Galileo, the VIN pin can be used to supply 5V from the regulated power supply
connected at the power jack to attached shields or devices. If there is a need to supply more than 5V to a
shield using VIN then the VIN jumper should be removed from Galileo to break the connection between the
on-board 5V supply and the VIN connection on the board header.
If the VIN jumper is not removed and more than 5V is connected to VIN, it may damage the board
or lead to unreliable operation.
42
Fig 42.Galileo Jumper
Physical Characteristics
Galileo is 4.2 inches long and 2.8 inches wide respectively, with the USB connectors, UART jack,
Ethernet connector, and power jack extending beyond the former dimension. Four screw holes allow the
board to be attached to a surface or case. Note that the distance between digital pins 7 and 8 is 160 mil
(0.16"), is not an even multiple of the 100 mil spacing of the other pins
Introducing the Intel® Galileo development board, the first product in a new family of Arduino-
compatible development boards featuring Intel® architecture. The platform is easy to use for new designers
and for those looking to take designs to the next level. Intel recognizes that the people who take creating
43
beautiful things into their own hands with innovation and technology are the same ones that propel us
forward.
The Intel Galileo development board is a great tool for quickly prototyping simple, interactive designs such
as LED light displays that respond to social media, or for tackling more complex projects, from automating
home appliances to building life-size robots controlled by a smartphone.
This platform provides the ease of Intel architecture development through support for the Microsoft
Windows*, Mac OS* and Linux* host operating systems. It also brings the simplicity of the Arduino
software integrated development environment (IDE). It's all about delivering Intel performance and quality
to the DIY maker community to support invention and creativity.
1. Introduction
System-on-chip solutions based on ARM embedded processors address many different market
segments including enterprise applications, automotive systems, home networking and wireless
technologies. The ARM Cortex™ family of processors provides a standard architecture to address
the broad performance spectrum required by these diverse technologies. The ARM Cortex family
includes processors based on the three distinct profiles of the ARMv7 architecture; the A profile for
sophisticated, high-end applications running open and complex operating systems; the R profile for
real-time systems; and the M profile optimized for cost-sensitive and microcontroller applications.
The Cortex-M3 processor is the first ARM processor based on the ARMv7-M architecture and has
been specifically designed to achieve high system performance in power- and cost-sensitive
embedded applications, such as microcontrollers, automotive body systems, industrial control
systems and wireless networking, while significantly simplifying programmability to make the ARM
architecture an option for even the simplest applications.
There have been several generations of the ARM design. The original ARM1 used a 32-bit internal
structure but had a 26-bit address space that limited it to 64 MB of main memory. This limitation was
removed in the ARMv3 series, which has a 32-bit address space, and several additional generations up to
ARMv7 remained 32-bit. Released in 2011, the ARMv8-A architecture added support for a 64-bit address
space and 64-bit arithmetic with its new 32-bit fixed-length instruction set.Arm Ltd. has also released a
series of additional instruction sets for different rules; the "Thumb" extension adds both 32- and 16-bit
instructions for improved code density, while Jazelle added instructions for directly handling Java bytecodes,
and more recently, JavaScript. More recent changes include the addition of simultaneous multithreading
(SMT) for improved performance or fault tolerance.
Due to their low costs, minimal power consumption, and lower heat generation than their
competitors, ARM processors are desirable for light, portable, battery-powered devices — including
smartphones, laptops and tablet computers, as well as other embedded systems. However, ARM processors
are also used for desktops and servers, including the world's fastest supercomputer. With over 180 billion
ARM chips produced, as of 2021, ARM is the most widely used instruction set architecture (ISA) and the
ISA produced in the largest quantity. Currently, the widely used Cortex cores, older "classic" cores, and
44
specialised SecurCore cores variants are available for each of these to include or exclude optional
capabilities.
ARM1
Acorn chose VLSI Technology as the "silicon partner",as they were a source of ROMs and custom
chips for Acorn. Acorn provided the design and VLSI provided the layout and production. The first samples
of ARM silicon worked properly when first received and tested on 26 April 1985. Known as ARM1, these
versions ran at 6 MHz. The first ARM application was as a second processor for the BBC Micro, where it
helped in developing simulation software to finish development of the support chips (VIDC, IOC, MEMC),
and sped up the CAD software used in ARM2 development. Wilson subsequently rewrote BBC BASIC in
ARM assembly language. The in-depth knowledge gained from designing the instruction set enabled the
code to be very dense, making ARM BBC BASIC an extremely good test for any ARM emulator.
ARM2
The result of the simulations on the ARM1 boards led to the late 1986 introduction of the ARM2
design running at 8 MHz, and the early 1987 speed-bumped version at 10 to 12 MHz.[b] A significant
change in the underlying architecture was the addition of a Booth multiplier, whereas previously
multiplication had to be carried out in software.[37] Additionally, a new Fast Interrupt reQuest mode, FIQ
for short, allowed registers 8 through 14 to be replaced as part of the interrupt itself. This meant FIQ
requests did not have to save out their registers, further speeding interrupts. The ARM2 was roughly seven
times the performance of a typical 7 MHz 68000-based system like the Commodore Amiga or Macintosh
SE. It was twice as fast as a Intel 80386 running at 16 MHz, and about the same speed as a multi-processor
VAX-11/784 supermini. The only systems that beat it were the Sun SPARC and MIPS R2000 RISC-based
workstations.[39] Further, as the CPU was designed for high-speed I/O, it dispensed with many of the
support chips seen in these machines, notably, it lacked any dedicated direct memory access (DMA)
controller which was often found on workstations. The graphics system was also simplified based on the
same set of underlying assumptions about memory and timing. The result was a dramatically simplified
design, offering performance on par with expensive workstations but at a price point similar to
contemporary desktops. The ARM2 featured a 32-bit data bus, 26-bit address space and 27 32-bit registers.
The ARM2 had a transistor count of just 30,000, compared to Motorola's six-year-older 68000 model with
around 40,000.
45
This simplicity enabled low power consumption, yet better performance than the Intel 80286. A
successor, ARM3, was produced with a 4 KB cache, which further improved performance. The address bus
was extended to 32 bits in the ARM6, but program code still had to lie within the first 64 MB of memory in
26-bit compatibility mode, due to the reserved bits for the status flags.
In order to achieve higher performance, processors can either work hard or work smart. Pushing
higher clock frequencies may increase performance but is also accompanied by higher power
consumption and design complexity. On the other hand, higher compute efficiency at slower clock
speeds results in simpler and lower power designs that can perform the same tasks. At the heart of
the Cortex-M3 processor is an advanced 3-stage pipeline core, based on the Harvard architecture,
that incorporates many new powerful features such as branch speculation, single cycle multiply and
hardware divide to deliver an exceptional Dhrystone benchmark performance of 1.25 DMIPS/MHz.
The Cortex-M3 processor also implements the new Thumb®-2 instruction set architecture, helping it
to be 70% more efficient per MHz than an ARM7TDMI-S® processor executing Thumb instructions,
and 35% more efficient than the ARM7TDMI-S processor executing ARM instructions, for the
Dhrystone benchmark.
Reducing time-to-market and lowering development costs are critical criteria in the choice of
microcontrollers, and the ability to quickly and easily develop software is key to these requirements.
The Cortex-M3 processor has been designed to be fast and easy to program, with the users not
required to write any assembler code or have deep knowledge of the architecture to create simple
applications. The processor has a simplified stack-based programmer’s model which still maintains
compatibility with the traditional ARM architecture but is analogous to the systems employed by
legacy 8- and 16-bit architectures, making the transition to 32-bit easier. Additionally a hardwarebased
interrupt scheme means that writing interrupt service routines (handlers) becomes trivial, and
that start-up code is now significantly simplified as no assembler code register manipulation is
required.
Key new features in the underlying Thumb-2 Instruction Set Architecture (ISA) implement C code
more naturally, with native bitfield manipulation, hardware division and If/Then instructions. Further,
from a development perspective, Thumb-2 instructions speed up development and simplify long
term maintenance and support of compiled objects through automatic optimization for both
performance and code density, without the need for complex interworking between code compiled
for ARM or Thumb modes.
ARM6
In the late 1980s, Apple Computer and VLSI Technology started working with Acorn on newer
versions of the ARM core. In 1990, Acorn spun off the design team into a new company named Advanced
RISC Machines Ltd.,which became ARM Ltd. when its parent company, Arm Holdings plc, floated on the
London Stock Exchange and NASDAQ in 1998.[46] The new Apple- ARM work would eventually evolve
into the ARM6, first released in early 1992. Apple used the ARM6-based ARM610 as the basis for their
Apple Newton PDA.
46
Fig 44. Microprocessor-based system on a chip
A constant barrier to the adoption of higher performance microcontrollers has always been cost.
Advanced manufacturing technologies are expensive and therefore smaller silicon area
requirements can reduce costs significantly. The Cortex-M3 processor reduces system area by
implementing the smallest ARM core to date, with just 33,000 gates in the central core (0.18um G)
and by efficiently incorporating tightly coupled system components in the processor. Memory
requirements are minimized by implementing unaligned data storage, atomic bit manipulation and
the Thumb-2 instruction set that reduces instruction memory requirements for the Dhrystone
benchmark by more than 25% compared to ARM instructions.
In order to address the increasing need for energy conservation in markets like white goods and
wireless networking, the Cortex-M3 processor supports extensive clock gating and integrated sleep
modes. Enabled by these features, the processor delivers a power consumption of just 4.5mW and
a silicon footprint of 0.30mm2 when implemented at a target frequency of 50MHz on the TSMC
0.13G process using ARM Metro™ standard cells.
47
1.4 Integrated debug and trace for faster time to market
Embedded systems typically have no graphical user interface making software debug a special
challenge for programmers. In-circuit Emulator (ICE) units have traditionally been used as plug-in
devices to provide a window into the system through a familiar PC interface. As systems get
smaller and more complex, physically attaching such debug units is no longer a viable solution. The
Cortex-M3 processor implements debug technology in the hardware itself with several integrated
components that facilitate quicker debug with trace & profiling, breakpoints, watchpoints and code
patching, significantly reducing time to market.
Wearable devices are creating great buzz in the market and has become the trend of the day. Innovations are
more focused on body-borne computers (also referred as wearables) which are miniature electronic devices
that are worn on face, wrist, clothes or even shoes!
Eco-system of wearable devices involves extensive product development knowledge and expertise in
technology areas from hardware design to cloud applications to mobile application development.
Specifically, for developing wearable devices one requires following technology expertise:
Hardware / electronic design and development expertise for developing products with minimum
form factor size. Moreover, power management expertise is a must-have to ensure that devices can
last several days / weeks / months on a single battery charge.
BSP / firmware development expertise ensuring memory optimized driver development with
minimum footprint, enhanced power management and highest performance in spite of low-end
microcontroller.
Smartphone application development on Android and iPhone platforms to allow connectivity with
the wearable device.
Cloud / web application for enabling M2M (machine-to-machine) / IoT (Internet of things) for
remote monitoring and control.
Challenges
Having end-to-end expertise for product development is tough ask and there are very few organizations
which can ensure quality end-to-end product development. In order to achieve seamless communication, all
the components of wearable devices from hardware to cloud to smartphones need to be closely knit.
Integration is key and experience of native operating system primitives is a must to extract maximum
performance with minimum code! Here are some basic skills required:
48
Input wearables are devices which get input from something and transmit it to the server, for example health
monitoring devices. Maven has experience in medical electronics coupled with remote communication
capabilities that can be used for developing such type of applications.
Output wearables are device those provide you some information like a smart watch or smart glasses. Maven
has already worked on smart watch technology based on Pebble platform.
Developing firmware for microcontrollers from Microchip, TI, Atmel, Cypress, Freescale, NXP etc.
Driver development for various sensors such as accelerometers, gyroscopes, motion sensors,
proximity sensors, magnetometers etc.
Driver development for communication interfaces like BLE 4.0, NFC, RF and even using the 3.5
mm audio headphone jack.
Development of power management algorithms.
Power management by using the right components and critical designs.
Developing algorithms based on various type of sensors such as using combination of accelerometer,
gyrometer and magnetometer for determining relative positions, sudden falls, acceleration, angle and
so on.
Development of fast and intelligent data transfer protocols with minimum overheads considering
both wired and wireless data transfer mechanisms
Development of over the air firmware upgrade / remote diagnostics and health monitoring protocols.
Integrating with smartphones.
49
Developing communication protocols over BLE, NFC and 3.5 mm jack for getting data from the
wearable devices.
Intelligence to take decisions based on the data, such as send event / alarm notifications over SMS,
transferring data to the server.
Integrating navigation applications to give direction on an output type of wearable device such as a
smart watch.
Developing applications in HTML5, Dot Net and Java with database servers such as SQL, Oracle,
PostgreSQL, MySQL and application servers such as IIS, Tomcat and JBOSS.
Building applications for displaying real-time parameters, historical trends.
1. C.H.I.P
CHIP is the new kid on the block. It comes with a powerful 1GHz processor powered by Allwinner R8. The
best thing about CHIP is that it comes with embedded Bluetooth 4.0 and WiFi radios, providing out-of-the-
box connectivity. The board has 4GB of high-speed storage to run a special Linux distribution based on
Debian. You don’t need a separate SD Card to install and run the OS. With 8 GPIO pins, CHIP can be
connected to a variety of sensors. The board also supports PWM, UART, I2C for connecting motors and
other actuators. One of the key advantages of CHIP is the cost and the form-factor. Developers can SSH into
the Linux OS and install required packages.
Based on the smallest SOC, the Linkit One board comes with compatible Arduino pinout features. The
chipset is based on with 260MHz speed. Regarding connectivity, Linkit One has the most comprehensive
collection of radios – GPS, GSM, GPRS, WiFi, and Bluetooth. One of the unique features of Linkit One is
the rich API that can be used from Arduino IDE. The SDK comes with libraries to connect the board to
AWS and PubNub. Because it supports the Arduino pinout, multiple shields from the Arduino ecosystem
can be used with the board.
50
Fig 39.mediatek linkit one
Fig 44. Linkit
3. Particle Photon
Photon is one of the smallest prototyping boards available in the market. It comes with the same Broadcom
BCM43362 Wi-Fi chip that powers Next, LiFX, and Amazon Dash buttons. Powered by the STM32F205
120Mhz ARM Cortex M3 processor, Photon has 1MB flash and 128KB RAM. Once configured, the board
is accessible from the Internet, which makes it an ideal prototyping platform to build connected
applications.The board comes with five analog pins and eight digital pins for connecting various sensors and
actuators. The official iOS and Android Apps that Particle has published come handy in controlling these
pins directly. The powerful web-based IDE lets you write sketches that are compatible with Arduino.
Fig 46.Tessel
5. Adafruit Flora
51
It’s a wearable electronic platform based on the most popular Arduino microcontroller. Flora’s size
makes it an ideal choice for embedded it in clothes and apparel. It comes with a thin, sewable, conductor
thread which acts as the wire that connects the power and other accessories. The latest version of Flora ships
with a micro-USB and Neopixel LEDs for easy programmability and testing.
Adafruit Flora is based on Atmega 32u4 microcontroller, which powers Arduino Mega and Leonardo. There
is an onboard polarized 2 JST battery connector with protection Schottky diode for use with external battery
packs from 3.5v to 9v DC. Given its compatibility with Arduino, most of the sketches would run without
modifications. You can use the same Arduino IDE with that you may already be familiar.
6. LightBlue Bean
LightBlue Bean is an Arduino-compatible microcontroller board that ships with embedded Bluetooth Low
Energy (BLE), RGB LED, temperature sensor, and an accelerometer. Bean+ is the successor to the already
popular, which includes a rechargeable LiPo battery along with a couple of Grove connectors. The board
comes with a coin-cell battery, which further helps it to maintain the small form factor. It can be paired with
Android or iOS devices for remote connectivity and control. It also comes with a software called
BeanLoader for programming from Windows or Mac equipped with BLE. BeanLoader installs an Arduino
IDE add-on for programming the Bean platform. LightBlue Bean / Bean+ is powered by an ATmega328p
microcontroller with 32KB Flash memory and 2KB SRAM. With 8 GPIO pins, two analog pins, four PWM
pins, and an I2C port, Bean is perfect for quickly prototyping BLE-based IoT projects.
7. Udoo Neo
52
Udoo Neo is a full-blown computer that also has an Arduino-compatible microcontroller. It’s positioned as
the combination of Raspberry Pi and Arduino. The board has the same pinout as Arduino Uno. Neo embeds
two cores on the same processor – a powerful 1GHz ARM Cortex-A9, and an ARM Cortex-M4 I/O real-
time co-processor. It packs a punch with an embedded 9-axis motion sensors and a Wi-Fi + Bluetooth 4.0
module. You can install Android Lollipop or a customized flavor of Debian Linux called UDOObuntu,
which is compatible with Ubuntu 14.04 LTS.
When it comes to the power-packed features and specifications, Udoo NEO is nothing short of a desktop
computer. With a Freescale i.MX 6SoloX applications processor with an embedded ARM Cortex-A9 core
and a Cortex-M4 Core, Neo comes with 1GB RAM. The Micro HDMI port can be connected to an external
display and audio sources. The standard Arduino pin layout is compatible with Arduino shields. You can
install Node.js, Python, and even Java on Udoo Neo.
8.Intel Edison
Trust Intel to deliver the most powerful single-board computer for advanced IoT projects. Intel Edison is a
high-performance, dual-core CPU with a single core micro-controller that can support complex data
collection. It has an integrated Wi-Fi certified in 68 countries, Bluetooth® 4.0 support, 1GB DDR and 4GB
flash memory. Edison comes with two breakout boards – one that’s compatible with Arduino and the other
board designed to be a smaller in size for easy prototyping. The Arduino breakout board has 20 digital
input/output pins, including four pins as PWM outputs, Six analog inputs, one UART (Rx/Tx), and one I2C
pin. Edison runs on a distribution of embedded Linux called Yocto. It’s one of the few boards to get certified
by Microsoft, AWS, and IBM for cloud connectivity.
9. Raspberry Pi
53
Raspberry Pi is undoubtedly the most popular platform used by many hobbyists and hackers. Even non-
technical users depend on it for configuring their digital media systems and surveillance cameras. The
recently launched Raspberry Pi 3 included built-in WiFi and Bluetooth making it the most compact and
standalone computer. Based on a Broadcom BCM2837 SoC with a 1.2 GHz 64-bit quad-core ARM Cortex-
A53 processor and 1GB RAM, the Pi is a powerful platform. The Raspberry Pi 3 is equipped with 2.4 GHz
WiFi 802.11n and Bluetooth 4.1 in addition to the 10/100 Ethernet port. The HDMI port makes it further
easy to hook up A/V sources.
Raspberry Pi runs on a customized Debian Linux called Raspbian, which provides an excellent user
experience. For developers and hackers, it offers a powerful environment to install a variety of packages
including Node.js, the LAMP stack, Java, Python and much more. With four USB ports and 40 GPIO pins,
you can connect many peripherals and accessories to the Pi. There are third party breakout boards to connect
various Arduino shields to the Pi. At a throwaway price of $35, Raspberry Pi 3 is certainly the most
affordable and powerful computing platform.
Fig 51.RaspBerry pi
10.Arduino Uno
Arduino Uno remains to be the top favorite of absolute beginners and experts. Considered to be one of the
first microcontroller-based development boards, the Arduino Uno R3 is simplest yet the most powerful
prototyping environment. It is based on the ATmega328P which has 14 digital input/output pins and six
analog inputs. Though it comes with just 32 KB of Flash memory, it can accommodate code that deals with
complex logic and operations.Arduino enjoys the best community participation and support. From sensors to
actuators to libraries, it has a thriving ecosystem. The board layout has become almost the gold standard for
microcontrollers. Almost every prototyping environment tries to be compatible with the Arduino pin
breakout. The open source IDE to develop sketches is another reason for its popularity. With a simple syntax
based on ‘C’ language, the code is easy to learn. If you are eager to learn basics of electronics and IoT, look
no further. Do yourself a favor and get an Arduino Uno R3.
Fig 52.Arduino
54
Sensors and Actuators
The “Thing” in the IoT is the starting point for an IoT solution It is typically the originator of the data, and it
interacts with the physical world Things are often very constrained in terms of size or power supply;
therefore, they are often programmed using microcontrollers (MCU) that have very limited capabilities The
microcontrollers powering IoT devices are specialized for a specifc task and are designed for mass
production and low cost
The software running on MCU-based devices aims at supporting specifc tasks. The key features of the
software stack running on a device may include
1. IoT Operating System – many devices will run with ‘bare metal’, but some will have embedded or real-
time operating systems that are particularly suited for small constrained devices, and that can provide IoT-
specifc capabilities.
2. Hardware Abstraction – a software layer that enables access to the hardware features of the MCU, such
as fash memory, GPIOs, serial interfaces, etc
3. Communication Support – drivers and protocols allowing to connect the device to a wired or wireless
protocol like Bluetooth, Z-Wave, Thread, CAn bus, MQTT, CoAP, etc , and enabling device communication
4 Remote Management – the ability to remotely control the device to upgrade its frmware or to monitor its
battery level.
The IoT gateway acts as the aggregation point for a group of sensors and actuators to coordinate the
connectivity of these devices to each other and to an external network An IoT gateway can be a physical
piece of hardware or functionality that is incorporated into a larger “Thing” that is connected to the network
For example, an industrial machine might act like a gateway, and so might a connected automobile or a
home automation appliance
An IoT gateway will often processing of the data “at the edge” and storage capabilities to deal with
network latency and reliability For device to device connectivity, an IoT gateway deals with the
55
interoperability issues between incompatible devices A typical IoT architecture would have many IoT
gateways supporting masses of devices
IoT gateways are becoming increasingly dependant on software to implement the core functionality The key
features of a gateway software stack include
2 Application Container or Runtime Environment – IoT gateways will often have the ability to run
application code, and to allow the applications to be dynamically updated For example, a gateway may have
support for Java, Python, or node js
3 Communication and Connectivity – IoT gateways need to support different connectivity protocols to
connect with different devices (e.g. Bluetooth, Wi-Fi, Z-Wave, ZigBee). IoT gateways also need to connect
to different types of networks (e g Ethernet, cellular, Wi-Fi, satellite, etc …) and ensure the reliability,
security, and confidentiality of the communications.
4 Data Management & Messaging – local persistence to support network latency, ofine mode, and real-time
analytics at the edge, as well as the ability to forward device data in a consistent manner to an IoT Platform
5 Remote Management – the ability to remotely provision, configure, startup/shutdown gateways as well as
the applications running on the gateways
The IoT Cloud Platform represents the software infrastructure and services required to enable an IoT
solution An IoT Cloud Platform typically operates on a cloud infrastructure (e g OpenShift, AWS, Microsoft
Azure, Cloud Foundry) or inside an enterprise data center and is expected to scale both horizontally, to
support the large number of devices connected, as well as vertically to address the variety of IoT solutions
The IoT Cloud Platform will facilitate the interoperability of the IoT solution with existing enterprise
applications and other IoT solutions The core features of an IoT Cloud Platform include
1. Connectivity and Message Routing – IoT platforms need to be able to interact with very large numbers of
devices and gateways using diferent protocols and data formats, but then normalize it to allow for easy
integration into the rest of the enterprise
2. Device Management and Device Registry – a central registry to identify the devices/gateways running in
an IoT solution and the ability to provision new software updates and manage the devices
56
3 . Data Management and Storage – a scalable data store that supports the volume and variety of IoT data
Software stack for gateways Software stack for IoT Cloud Platforms 7 The Three Software Stacks Required
for IoT Architectures IOT ARCHITECTURES
4 Event Management, Analytics & UI – scalable event processing capabilities, ability to consolidate and
analyze data, and to create reports, graphs, and dashboards
5 Application Enablement – ability to create reports, graphs, dashboards, … and to use API for application
integration.
Cross-Stack Functionality
Across the different stacks of an IoT solution are a number of features that need to be considered for any IoT
architecture, including
1 Security – Security needs to be implemented from the devices to the cloud Features such as
authentication, encryption, and authorization need be part of each stack
2 Ontologies – The format and description of device data is an important feature to enable data analytics
and data interoperability. The ability to define ontologies and metadata across heterogeneous domains is a
key area for IoT
3 Development Tools and SDKs – IoT Developers will require development tools that support the diferent
hardware and software platforms involved
Python packages for developing IoT applications. I mostly develop applications on the Raspberry Pi Model
3 or the Intel Edison. Both are extremely capable Single Board Computers, with a lot of peripherals to play
around with. Both support Linux derived OS distributions and support full Python 2.7 or 3.4. With the right
Python packages installed, both of these devices become very versatile components in the IoT domain.
Mraa
mraa is a skeleton GPIO library for most SBCs which support Python. The good thing about it is that there's
just one library for all devices, so I don't have to use different ones for an Edison and a Pi. Being a high level
library, reading from and writing to pins is a one line affair, and the library also provides support for
communication protocols such as I2C, UART and SPI
57
Sockets
sockets is a package which facilitates networking over TCP/IP and UDP using Python. It provides access to
Berkeley socket APIs to access the Internet. Both TCP/IP and UDP being Transport layer protocols, are
ideal for communication with devices on the same WiFi network. One of the more interesting uses of
sockets, in my experience is that one can build their own communication protocol using this package as the
base
Fig 56.Socket
Mysqldb
A database is a no-brainer when it comes to most IoT applications. For something whose sole purpose is to
send data to the internet, there should be a database, at least a remote one which stores all this generated
data. MySQL is the go-to relational database for most developers. In this regard, mysqldb is a very
convenient little tool which circumvents the need to execute shell commands within a Python script to read
and write to a database.
Numpy
Having used MatLab extensively during my undergraduate studies, I've grown accustomed to dealing with
arrays. Python, on the other hand, deals with lists as a substitute for the array which is the same as having a
birch tree replace your Rottweiler as the guardian of the house. It just doesn't work. Thankfully, numpy is
there to help you out. It is, in essence, a package for scientific computing using Python, very similar to
MatLab, but much lighter. The feature I use most is to read sensor data in bulk from my databases and work
on them using the inbuilt functions.
Fig 57.numpy
58
Matplotlib
Data visualization is one of the most fundamental operations that can be performed. It looks pretty
impressive when you convert a huge list of numbers to a concise graph which can be understood intuitively.
It's also very useful if you happen to be an academician. You know how important those graphs can be in a
publication. matplotlib provides a number of different styles of graphs that can be plotted using local data. If
you're a data scientist, this is althemore useful to you. Personally, matplotlib is a very usefultool to quickly
give me insight to the data I have at my disposal.
Pandas
Another library for data scientists, pandas is a package dedicated towards data analysis. It is in essence, a
local alternative to using SQL databases which is more suited to dealing with data as it is built on numpy. It
has many advantages over the former, such as a more streamlined approach to data handling and analysis,
direct operations on local datasets and the ability to handle heterogeneous and unordered data
.
Fig 59. Pandas
Opencv
The big brother of signal processing, image processing, was traditionally the domain of high performance,
custom built hardware. Although such devices still carry out the job much faster than their single board
counterparts, it is at the very least, a possibility. And, in situations where mobility and connectivity are
prioritized over speed, this may just be the solution for those rare times. Opencv is a Python port of the very
successful C library for image processing. It contains high-level variants of familiar image processing
functions which make photo analysis much easier
59
tkinter
Although this library does come preinstalled with all installations of Python, its still worthy of a mention.
Tkinter is a GUI development library which comes bundled in with all distributions of Python. For people
who are more comfortable with a stab wound rather than object oriented programming, learning how to use
this package may be a bit daunting at first, but the rewards more than make up for the effort. Every aspect of
your Python script can be controlled via a completely ad hoc GUI. This is extremely useful in situations
such as functionality testing or repeated executions of the same code.
Fig61. Tkinter
tensorflow
Tensorflow is a package for numerical computations for machine learning. It utilizes a different
mathematical representation called data flow graphs which use nodes as mathematical operations and edges
as data arrays. This is a very useful library to have if you deal with a lot of non linear datasets or work
extensively with decision trees and neural networks.
HTTP is one of the major protocols used in traditional internet based resource exchange, being more suited
towards large data exchanges. The requests package is used in Python to make HTTP calls and parse
responses. This package is useful when dealing with HTTP based third party cloud services.
60
12.Open source tools and resources for IoT
1. AllSeen Alliance
2. Open Interconnect Consortium (OIC)
3. COMPOSE
4. Eclipse
5. Open Source Hardware Association (OSHWA)
Protocols
6. Advanced Message Queuing Protocol (AMQP)
7. Constrained Application Protocol (CoAP)
8. Extensible Messaging and Presence Protocol (XMPP)
9. OASIS Message Queuing Telemetry Transport (MQTT)
10. Very Simple Control Protocol (VSCP)
Operating systems (OS)
11. ARM mbed
12. Canonical Ubuntu and Snappy Ubuntu Core
13. Contiki
14. Raspbian
15. RIOT
16. Spark
17. webinosAPIs
18. BipIO
19. Qeo Tinq
20. Zetta
21. 1248.io
Horizontal platforms
22. Canopy
23. Chimera IoT
24. DeviceHive
25. Distributed Services Architecture (DSA)
26. Pico Labs (Kynetx open source assigned to Pico Labs)
27. M2MLabs Mainspring
28. Nimbits
29. Open Source Internet of Things (OSIOT)
30. prpl Foundation
31. RabbitMQ
32. SiteWhere
33. webinos
34. Yaler
Middleware
35. IoTSyS
36. OpenIoT
37. OpenRemote
38. Kaa
Node flow editors
61
39. Node-RED
40. ThingBox
Toolkits
41. KinomaJS
42. IoT Toolkit
Data visualization
43. Freeboard
44. ThingSpeak
Search
45. Thingful
Hardware
46. Arduino Ethernet Shield
47. BeagleBone
48. Intel Galileo
49. openPicus FlyportPro
50. Pinoccio
51. WeIO
52. WIZnet
In-memory data grids
53. Ehcache
54. Hazelcast
Home automation
55. Home Gateway Initiative (HGI)
56. Ninja Blocks
57. openHAB
58. Eclipse SmartHome
59. PrivateEyePi
60. RaZberry
61. The Thing System
Robotics
62. Open Source Robotics Foundation
Mesh networks
63. Open Garden
64. OpenWSN
Health
65. e-Health Sensor Platform
Air pollution
66. HabitatMap Airbeam
Water
67. Oxford Flood Network
62