

IoT Knowledge Center
IOT fundamentals and roles
IOT is the latest industrial revolution improves the quality of living in more intelligent and meaningful manner by connecting devices with each other or to living things. Each industrial revolution needs lot of workforce and talents to implement, maintain and innovate.
It’s estimated that 15 billion devices are already connected to the Internet. By 2020, that figure will rise to over 50 billion connected devices. But still 68% of businesses are struggling to hire talent for IoT according to Mike Bell, EVP of IoT and Devices at Canonical
There are infinite career paths are ignited by IOT. Despite you are already working in any other technological domain or a beginner who want to choose IOT as their career, first it is required to understand IOT fundamentals. Without that you can’t get its full potential.
Those fundamentals are typically the questions arise in your mind like what IOT meant to be, what makes it works and what problems it solving and what skills needed to solve. So, it is necessary to have 360 degree of view of technology itself.
IOT is not a new technology, its a new way of combining existing technologies. IOT is considered as the combination of stack of technologies where it needs different set of skills to make it function.The first step to become IOT professional is to understand IOT technological stack. IOT technological stack is made up of five layers. Understanding these five layers gives you high level knowledge of how any IOT application or product works. Those five layers are
- Device Hardware
- Device Software
- Communications/Connectivity/Network
- Data Processing
- User Interface
Each of these layers require different talents with different set of skills. For clear understanding of the each layer, it's good to go along with working example of real world product like smart irrigation and monitoring system for Agriculture.
Device Hardware
Device is the term describing word “things” in Internet of Things. It act as intermediate between real world environment and digital environment.
Any IOT product can be connected device itself (Google’s NEST thermostats) or your product can be turning an existing thing or device into a connected by adding instruments (in our case - adding sensors and communication systems in farm land). Primary objective of our device is to collect the data from the surroundings. Then after you need to think about what kind of data are we collecting and what hardware is needed to do that. As per varying data collection needs, hardware type should be decided ranging from Smart Sensors, System on Chip (SOC) to industrial computers with high computing needs.
In our example of smart irrigation and monitoring system, device is defined as combination of sensors like soil moisture detecting sensors connected through I2C chip to embedded computers like Raspberry pi or Arduino. I2C Chip makes connection between soil moisture monitoring sensors and central processing unit (i.e Raspberry pi). Sensor data are fed through I2C chip and it converts that data of analog signals to digital signals.
So, lot of talents are needed who specialized in Research and development of sensors, actuators, PCB design & manufacture, microprocessors, microcontrollers and VLSI chip design to make device hardware. These talents will possess understanding of mechanics, electronics, sensors, actuators, data collection from the devices and programming with them.
Device Software
Device Software combines with a device hardware to function as smart device. This part enables the “software defined hardware” concept. With the help of software running in embedded device, the particular device hardware can serve request of multiple applications. Simply to make efficient smart device, Device Software layer needs software engineers, device hardware needs hardware engineers.
Device Software enables you to communicate between cloud and nearby local devices. It also has ability to do data acquisition, real-time analytics from sensors of your device, and have control over those sensors.
Device Software - this layer is formed of two components, they are Edge OS and Edge Applications. Edge OS may be Linux, Windows Embedded or Brillo. Edge Applications are the applications that runs on the top of Edge OS to provide different kind of functionalities like data acquisition, streaming to the cloud, local control, analytics, etc..
For our smart irrigation and monitoring system we need to lookup sensor data obtained in field and send that data to the cloud. But we don’t need to send all of the data to the cloud but to send what’s necessary. So, the device’s Edge Application software monitors the data locally and send only the necessary data to the cloud. It will also perform real-time controls when you specify some added parameters for that.
For those who wants to work in device software layer must have knowledge of application code from firmware context, bootloading, ability to understand the hardware and networking piece of the embedded system, digital signal processing, signal conditioning, internet gateway interfacing and embedded programming skills.
Communications/Connectivity/Network
Next, we want to exchange the collected data with the world, this is the situation where communications come in. Collected data can be send through different methods of communication using physical networks, protocols like cellular, Wifi, Bluetooth, WAN, LAN, Ethernet. Each option of communications has a tradeoff between power consumption, range and bandwidth. Choosing best communication or connectivity is best related to the application it is used. Communication strategy has a great impact on overall topology of the system.
In our smart irrigation and monitoring system we have the embedded computer Raspberry pi get installed with Apache web server in it has its unique URL and IP address to communicate with cloud or cloud applications. Our farm area is fitted with many soil moisture monitor sensors in field that collects data in real-time and it can be accessed by farmer through his mobile application or website to take necessary action to open the water tap for irrigation when moisture level becomes low. This process is possible with the help of network connection. Based on preferences, connectivity should be limited to local area network or wide area network to access data. For example - FarmBeats, Microsoft AI for Earth project has various actions like monitoring farm field through helium balloons and drones with camera to detect objects and heatmap along with multiple sensors placed in field.
For those who wants to work in communication layer of IOT, they should be knowledgeable enough to network Embedded Devices, LPWAN, Industrial Networks and Wireless Networks. They need to have network security skills like data-encryption, authentication modules and cryptography. They also need to have networking skills like Communications, Security at network level, Protocols, LTE, BTE, TCP/IP, etc..
Data Processing
Once the data from sensors get into cloud platform, software in that platform performs the data processing then send and receive the data back and forth.Technically speaking, cloud isn't necessary here but still it can provide great benefits when using it in IoT applications. But for some critical application which requires low latency, data processing will be done in nearby end-of-device (gateway, especially known as edge computing or fog computing) to avoid high latency over cloud computing. Then otherwise, majorly cloud is preferred because of its effectiveness. Gateway can also be used along with cloud for some productive reasons like enhancing battery life of bunch of sensors by connecting it to gateway and then gateway sends that sensor data to cloud platform for processing.
Cloud provide various services can be chosen based on the need of an IOT application. Some famous cloud platforms are Amazon AWS, Microsoft Azure, Google Cloud, Alibaba Cloud etc.. Cloud infrastructure will serve as the platforms for some key areas like
- Data Collection and Management
- Analytics
- Cloud API’s
In time there will enormous amount of data will be gathered, so as to manage that - our cloud infrastructure provides flexible storage and processing system of data. Analytics are to make predictions and insights out of data collected by finding patterns, integrating machine learning, etc.. Cloud API allows your potential customers to interact and exchange data with your application. Cloud API helps to surface your information to User Interface layer (i.e web or mobile apps).
In smart irrigation and monitoring application, data collected by sensors are send to the cloud through connectivity like Zigbee, LAN, Wifi, or using HTTPS/MQTT protocol. In our system, we are using many functionalities from Microsoft Azure Cloud platform offerings. Azure IOT Hub is a service that allows bidirectional communication among the devices and is also used for monitoring all devices and link them together. Then, stream analytics is another service offered in cloud platform used as a path to transform data from azure iot hub to azure sql database.The raw data is initially in the json format and then it was structured into tabular form so that it can be stored in Azure SQL Database. At this point, data stored in database needs to be transformed into understandable representation format for farmers by using power BI, a business analytics service offered by Microsoft Azure. And, Azure Machine Learning is used to train the machine to find patterns in order to decide whether to open water tap for irrigation or not. Machine learning also obtains data from openweathermap.org API and it provides better decision capabilities to farmers.
For the people who want to work in Data Processing layer of the IOT, there are different number of possibilities in roles depending on which area they working on. They need to have knowledge in API/Backend development, Data Science, Data Analytics, Socket Programming, Frontend and Reporting tools, Big Data, Database Administration, Machine Learning, Messaging Infrastructure, Cloud Systems, Data Streaming etc.. Above mentioned skills has many subset skills under their categories.
User Interface
After processing all raw data from the Data Processing layer, the users need to view them and make use of the data and perform necessary actions through User Interface. Cloud API enables customers and partners to interact with our devices or exchange their data. End user applications are the part of the system that user will see and interact with application at anytime from anywhere. End user applications may be mobile apps, web apps, desktop apps or wearables etc.. These applications helps in remote provisioning and troubleshooting devices, monitoring and reporting on performance, predictive maintenance etc.. These actions will be performed automatically and also carried by users depending on the IOT application.
In our example (smart irrigation and monitoring system), all necessary data are processed in Microsoft Azure cloud and insights are derived. These data insights needed for farmers can be viewed and accessed through mobile app or website. When they want to perform actions (based on the insights derived from data) whether to open water tap for irrigation or not, it can achieved by simply clicking options provided in mobile app or website for controlling the system. These sort of apps or websites helps them to monitor and take necessary decisions at any time from anywhere through their mobile phones using cellular networks to communicate the cloud infrastructure and also the device in farm field far-away from their homes.
For those who wants to work in User Interface layer of the IOT, they need to have skills like human computer interaction for better User Experience, Fullstack and Mobile app development, understanding Data Source, Middleware, Database, Security Basics and API to represent well through an Intuitive User Interface, etc..
What IOT role is on your mind now ?
Over and beyond the different roles we discussed in each tech stack layer, there were other mandatory key roles in product management, technical architecture and support, business development and delivery, etc.. Irrespective of tech stack layers, as a whole - any role in IOT needs multidisciplinary skills for successful contribution. From the above description on each layer of IOT tech stack, step by step explanation about each layer and its components using practical application like smart irrigation and monitoring system as an example - you will get better understanding of What IOT is and How it is made of and What skills are needed for someone to start contributing in any layers of IOT. Better understanding of these technological details will also help you to decide where (IOT layer) to work on and have a good career in IOT.