Internet of Things (Iot) : Architecture and Design: December 2017
Internet of Things (Iot) : Architecture and Design: December 2017
Internet of Things (Iot) : Architecture and Design: December 2017
net/publication/321587819
CITATIONS READS
11 8,435
1 author:
Ali Abed
University of Basrah
22 PUBLICATIONS 55 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Ali Abed on 06 December 2017.
Many people have tried to define the Internet of Things. Here are some definitions:
Making some of the things that we are using has the ability of Internet access (smart
things).
Anything that can be joined to it processing unit (microcontroller) and connected to
the Internet is considered a thing in the world of IoT.
CC3100 is Wi-Fi and Internet-of-Things solution for MCU Applications. The CC3100 device
is the industry’s first Wi-Fi CERTIFIED chip used in the wireless networking solution. It is
pin compatible with TM4C123GXL ARM Launchpad.
Microcontrollers can be Arduino, TM4C123G ARM processor, etc.
In IoT, we think how to build interconnected products.
IoT hardware should always be low-cost, so that we can flood the planet with IoT
devices.
IoT systems are not complicated, but designing and building them can be a complex
task. We already have all the tools we need today to start making the IoT a reality.
The first step in building an IoT device is to figure out how it will communicate with
the rest of the world. Your choice of communication technology directly affects your
device’s hardware requirements and costs. So which networking technology is the
best choice?
For example: 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. A
wireless technology would be the best fit.
This is a wireless sensor network. Data from each sensor passes through the network
node-to-node. The nodes in a wireless sensor network 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 technologies such as energy harvesting.
An edge node acts as a gateway between the wireless sensor network and the Internet.
It can also perform local processing, provide local storage, and can have a user
interface.
The first obvious networking candidate for an IoT device is Wi-Fi, because it’s
everywhere.
There are newer networking technologies that allow for the development of low-cost,
low-power solutions.
One of the major pieces of low-power wireless is the IEEE 802.15.4 radio standard. It
was released in 2003.
6LoWPAN has been adopted by companies such as ARM and Cisco.
6LoWPAN provides encapsulation and header compression mechanisms that allow
for briefer transmission times. 6LoWPAN will be the choice for wireless sensor
networks and for other IoT systems that need IP-based protocols.
If IoT network is local and machine-to-machine, then the wireless protocols are good
candidates. But if the goal is to remotely control devices or otherwise transmit data
over the Internet, we’ll need IPv6.
It’s crucial that IoT networks all make use of the suite of Internet protocols. That’s
UDP, TCP, SSL, HTTP, and so on and must support IPv6. Why? Because the current
IPv4 standard faces a global addressing shortage, as well as limited support for
multicast, and poor global mobility.
With IPv6, it is much simpler for an IoT device to obtain a global IP address (public
IP), which enables efficient peer-to-peer communication.
The importance of IP to the Internet of Things doesn’t automatically mean that non-IP
networks are useless. It just means that non-IP networks will require a gateway to
reach the Internet.
2. Embedded Devices
What are the "Things" in the Internet of Things?
Thing is an embedded device, one that transmits and receives information over a
network.
Embedded devices are based on microcontrollers, and run software with a small
memory footprint.
Some Linux and Android-based systems can also be described as embedded systems.
However, these general-purpose operating systems usually require an application
processor, and have additional capabilities such as dynamic application loading.
A complete RTOS – with a kernel, a user interface, a file system, USB support,
networking, and more – can fit in a memory space of less than one megabyte.
With an RTOS, the software architecture of an embedded system can be more
flexible.
So which processor architecture should be chosen?
To date, the main contenders are Intel and ARM.
For an ARM processor in the IoT device, the Cortex-M0 is perfect. For gateways, the
ARM Cortex-M3, M4 or Cortex-A are all good choices because of their greater
processing capabilities.
The programming languages used in deeply embedded systems include C, C++ and
sometimes Java. Java is attractive for IoT devices because of the huge number of Java
developers worldwide.
Oracle’s Java ME Embedded is designed for small devices. Oracle recommends up to
700 Kilobytes of RAM and up to 2 megabytes of flash memory in the device for Java
alone, plus support for a network connection.
When cost is not an issue, you can pick a single powerful processor to run all the tasks
required of your device.
4. The Cloud
In practical terms, cloud computing is an array of networked computers that allow you
to offload processing tasks or storage from your embedded system. It's a simple idea,
but hides a lot of underlying complexity.
Examples: Apple’s iCloud, Google Cloud Platform, Microsoft OneDrive, and many
others.
By the end of this decade, we will be surrounded by literally billions of IoT devices
that will produce huge amounts of data.
By one estimate, there will be over five thousand gigabytes of data for every human
on the planet by the year 2020. This is part of the reason why some people say that
every company will become a software company.
If one thinking about outsourcing the infrastructure for cloud computing, some hard
questions must be asked for service provider:
Compare this with a consumer IoT device. It typically might use a Cortex-A processor
and it might need a Java virtual machine (JVM). It might need to support different
kinds of connections, such as data over power lines (PLC) or specialized networking
protocols.
These requirements will drive the choice of operating system, because we don't want
the features of the device limited by the choice of platform. A flexible, scalable RTOS
that runs on a variety of 16 and 32-bit chips will allow to meet tight memory
requirements and reduce processor demands.
An important way to reduce the amount of RAM and flash memory needed in IoT
device is to use modular software. By separating the kernel from middleware,
protocols, and applications, one can pick and choose only the components needed and
it simplifies the development process, especially if developing a family of devices.
The device must be able to connect to IP networks using efficient protocols such as
6LoWPAN. A modular operating system will allow selecting the specific protocol
stacks needed, saving memory on the device, and reducing costs.
Another thing to consider: A lot of embedded devices are deployed in fields that
demand perfect safety and reliability.
The components of IoT devices then may include: A RTOS, local networking with
support for Ethernet, Wi-Fi, and Bluetooth. It provides support for IoT protocols,
including HTTP client and server, and MQTT; it has a Java VM designed for deeply
embedded systems; and it features Web services such as cloud-server interfaces, data
brokering, and cloud storage. It runs on a huge number of MCUs.
6. Practical Implementation
Two examples are done here for controlling things remotely via internet we are going
to explain subsequently.
a. Arduino Server to control LED blinking and brightness
Arduino Uno microcontroller board with Ethernet port is programmed as a client
server and connected to home router. As a simple plant to control is four different
colors LEDs connected to digital output of the Arduino controller with series resistors
as shown in Figure below:
An android application is designed for LED ON/OFF and brightness control, which
can be done easily from anywhere in the world, using Java Eclipse software and
published on Google Play. Then, this application is downloaded from Google paly
and installed on a mobile phone. User interface for this application in the Google Play
(before downloading) and user interface after downloading into a mobile are shown in
Figure below:
b. Remotely access HMI and PLC system
The application Zelio PLC checks the temperature while the Twido controller
transmits the temperature set point (threshold) to Zelio via the fieldbus modbus.
The measure of temperature is wiring to the Zelio analog input. If the temperature
is higher than the threshold, an alarm is activated.
(Server)
Note: The above two practical examples are implemented and will be show up in the
showcase of the symposium with choosing the appropriate IP addresses.