Security in IOT cannot be an afterthought. It is an integral part of IOT development. The idea of IoT is not only to connect the normal daily things to the Internet but also to transfer the data securely among various end points so that smart IoT applications are not only efficient and successful in fulfilling various personal and professional requirements but also highly reliable.
In the previous tutorials, MQTT protocol packets and MQTT security mechanisms were discussed. Now it’s time to start getting hands dirty. For creating a communication network in which multiple IoT devices can communicate with each other via a MQTT broker, it is important to configure IoT devices as MQTT clients. The MQTT is developed on the top of TCP/IP stack, so the devices must have TCP/IP stack with them if they want to communicate to each other via MQTT broker.
In the previous tutorial, it was learnt that how a smart phone and a PC can be set up as MQTT clients and their connection with an MQTT broker can be established. The smart phone was configured as an MQTT client using an android MQTT app – IOT MQTT Dashboard while the PC was configured as MQTT client using a chrome add-on – MQTTLens.Now, in this tutorial, these MQTT clients – Mobile and PC will be made to communicate with each other using MQTT protocol. The communication between the MQTT clients is only possible via MQTT broker.
Security is a prime concern in any IoT application development. The data from the IoT devices is passed to the server/cloud where it may be stored temporarily or for long time to generate analytics. The transportation medium through which the data is passed from the IoT device to the cloud must be secured with implementation of various IoT security measures, so that the data could not be hacked by any Man-in-the-Middle attack.
Internet of Things is meant to empower objects of day to day use with embedded electronics and IT infrastructure. It aims to connect these objects in real time with the internet network and allow them to communicate with other co-located or remote objects. For communicating with each other, the IOT devices need to follow protocols. An application developer need to take care primarily of the implementation of application layer protocols while usually the implementation of network and transportation layer protocols remain at the hand of network administrators or network programmers.
In the previous tutorial, ESP8266 module was used to design a Home Area Network to control an LED light from a remote PC. The PC client was used to send control signals to switch on and off the LED light in the Home Area Network. In this tutorial, the ESP module will be interfaced with DHT-11 temperature sensor and temperature data will be sent to the PC client for real-time temperature monitoring. In this project, instead of LED, the DHT-11 sensor will be interfaced with the ESP8266 on ESP Client side.
Network is the OSI Level 3 layer and is the internet layer in the TCP-IP model. Like Physical and MAC layers, network layer is also part of the infrastructure layer in IOT reference architecture. This layer is responsible for addressing and routing of data packets. At this layer, the datagram from transport layer are encapsulated to data packets and delivered to their destinations using IP addressing. IPv4 had been the standard protocol for network layer until now.
In the previous tutorial, various physical and media access control (MAC) protocol for Personal Area Network (PAN), Home Area Network (HAN) and Local Area Network (LAN) were discussed. In this tutorial, physical and MAC protocols based on RFID and mobile standard will be discussed. There are the following RFID based protocol stacks: RFID, DASH7, NFC.There are the following common mobile standards which are evolving to accommodate IOT applications
Service Discovery layer has a prominent role in an IOT architecture. It is the service discovery or service management layer which differentiates an IOT network with that of typical internet network. The IOT devices need to connect and communicate with web or cloud based services and applications for IOT implementation. The cloud or web services and applications run on host computers which are identified by unique IP addresses on a network. In order to avail a cloud based service, the IOT devices must be connected with the computers (servers) hosting those services or applications. So, there are some protocols designed to resolve host IP addresses rendering IOT services and applications
Application layer refers to OSI Level 5, 6 and 7. It is application layer in the TCP-IP model. In IOT architecture, this layer lies above the service discovery layer. It is highest layer in the architecture extending from the client ends. It is the interface between the end devices and the network. This layer is implemented through a dedicated application at the device end. Like for a computer, application layer is implemented by the browser. It is the browser which implements application layer protocols like HTTP, HTTPS, SMTP and FTP. Same way, there are application layer protocols specified in context to IOT as well.
In the previous tutorial, the application layer protocols were discussed. With that discussion, the necessary foundation to understand the communication network in IOT was covered. This tutorial will discuss the other end of the IOT system that lies opposite to the device nodes. That is the ‘cloud’. IOT is lot about integrating embedded electronics and IT services. This isn’t possible without the cloud. The cloud is the soul of any IOT system.
Transport is the OSI Level 4 layer and is recognized by the same name in the TCP-IP model. Like physical layer, data link layer and network layer, this layer is also part of the infrastructure layer in IOT reference architecture. In the previous tutorials, physical and data link layer protocols and network layer protocols were discussed.
Suppose, one has a home automation system installed which can be accessed from a mobile device. That is a great power as the user can access the electronic appliances and various common household commodities imparted intelligence through embedded electronics from anywhere and anytime. What about the same home automation system is unethically hacked by someone and out turn to be a means for theft in the house. Here the glorious concept of IOT comes with a caution – ‘Security’
The Broker or Server plays the prime role in an MQTT (Protocol) based network. MQTT devices need MQTT broker to communicate with each other. MQTT broker is nothing but a central server connected to the Internet. The broker or server acts as a decision-maker which sits in between the devices. The clients do not know each other, they have to communicate via MQTT broker. The broker is mainly responsible for receiving all messages from publisher clients, filtering them, decide which subscriber is interested in it and then sending the messages to the subscribed clients. The MQTT broker also holds the session of all persisted clients including subscriptions and missed messages.
Nowadays, most of the hotels and restaurants take online orders of food. Many hotels and restaurants either facilitate pre-ordering or even render delivery services in the local areas. In this project, an Hotel Order Management System is designed where a customer can pre-order food items using a mobile app and a Raspberry Pi based Server manages to cater menu items and book orders.
In the previous tutorial, a brief introduction of Internet of things was presented. The importance, challenges, applications and trends in IOT were discussed. Now, equipped with basic understanding of IOT, it’s time to investigate the building blocks of IOT. IOT is developed as a package with integration of various technologies. Each technology has its own principle role within the IOT system. In this tutorial, the basic building blocks of IOT and their place in an IOT infrastructure will be examined.
The twenty first century commenced with the rise in the use of internet. In year 2000, the internet comprised of 51 percent of information transfer in the telecommunications which soon surged to 97 percent in 2007. Though the internet began its humble journey interconnecting computers across the world and raise to dominate the telecommunication sector, the idea of internet is now bound to extend beyond computers and leap beyond telecommunications. From internet of computers, this century is going to be an era of Internet of Things (IoT).
In the previous tutorial, a basic architecture of an IOT system was discussed. From the discussions in the previous tutorial, it must be clear that communication network is the backbone of any IOT system. It is only the (internet) network that enables IOT devices (boards) and cloud based services and applications to communicate with each other. Without internet network, IOT is nothing. Data communication on an internet network is not as straight forward. There are myriad of heterogeneous devices connected over internet and these plethora of unique devices need to communicate in a secure, reliable and routed fashion.
In the previous tutorial, features, advantages and limitations of TCP/IP Protocol were discussed. Though, TCP/IP is not best suited for IoT applications due to packet overheads, still being the most common protocol stack on internet, it offer ubiquitous connectivity. An IoT device can be made to communicate with a cloud or server using TCP/IP protocol without any hassle of network programming and network administration. In this project, an IoT device will be designed that could transmit sensor data to ThingSpeak Platform using the TCP/IP protocol.
The sensors and actuators have an important role in IoT. It the sensors and actuators that enable IoT devices to interact with the physical world. The large IoT applications like smart home, smart transportation, smart grid and many others are intelligent systems that connect the world in an automated way to ease human efforts. The collective aim of such systems is to nurture the concept of IoT which is fulfilled with the use of tiny sensors. The whole Sensor Network is tightly coupled directly or indirectly with communication Network (Internet) where intelligent monitoring, management, and data processing can be achieved via the usage of networked cloud computing devices.