Monday, September 17, 2018

IoT Key concepts , Skills required & Choosing of IoT hardware


Hi,

 After couple of posts related to  Raspberry Pi & sensors, I felt it is necessary to understand the key concepts of IoT ( Internet of Things ) before proceeding further with handson :

What is Internet of Things ?

Every one would have heard about Internet of Things ( IoT in short ), it refers to physical  devices  which collect data from real world and shares these data over internet.

The collected data from physical devices are used by various industry domains to :

1. Increase Operational efficiency for business.
2. Provide improved value & experiences to  clients.

I would recommend to watch the video from IBM about IoT to understand it better :

https://www.youtube.com/watch?v=QSIPNhOiMoE


A. Skills needed for becoming a IoT Developer 

Since IoT is rapidly adopted across industry domains, the demand for skilled IoT developers who are able to deliver IoT solutions continues to rise.

IoT developer should develop skills across a range of key topic areas :

1. Hardware
               - Knowledge of circuit design
               - micro-controller programming
               - understanding of hardware communication protocols like serial, I2C, or SPI
               - programming languages like C, C++, Python , Nodejs 

2. Networking
         - Network design and management ( Knowledge of mesh networks which is widely used).
        - Knowledge of network standards, protocols, and technologies :
                              a)  Wifi,
                              b) Low Energy Bluetooth,
                              c) Zigbee
                              d) cellular and
                              e) RFID technologies

        - Knowledge of  Low Power Wide-Area Network (LPWAN) technologies like LoRa.
          LPWAN  includes SigFox and NB-IoT (narrow band IoT) which offer lower cost low-power long-range wireless connectivity.


3. Application design and development

              - Web and mobile app development (Java, Swift, Node.js.. ) for visualizing interaction.
              -   GPS programming skills which is widely used in mobiles.

4. Security
               - threat assessment
               - ethical hacking
               - encryption to ensure data integrity
               - securing network architectures and applications,
               - event monitoring,
               - activity logging
               - threat intelligence

5. Business intelligence and data analytics
              - Data analytics skills using Hadoop, Spark, and NoSQL databases like MongoDB.

6. Machine learning and artificial intelligence (AI)
               - Cognitive computing techniques drawn from data mining, modeling, statistics,
                  machine learning, and AI


B. Choosing the right IoT hardware 

IoT devices can be categorized  in terms of these high-level capabilities:

1. Data acquisition and control

         - Capturing data at regular intervals and convert into digital format. Sensors help to do the task.

2. Data processing and storage

           Data from the sensors can be either stored and processed or it can be

          1. data directly
          2. transmit the data to other devices like gateway devices
          3. To cloud services or apps for aggregation and analysis. 

3. Connectivity:

        Few popular connectivity technologies are

         1. 802.11 (wifi)
         2. Bluetooth
         3. RFID
         4. Cellular networks
         5. Low Power wide area network (LPWAN) technologies like LoRa, SigFox or NB-IoT.
   
4. Power management
       
       Power is essential for capturing real time data for sensors. It differs based on the data it captures.
     
       Sensors power sources differ in various ways

               1. Solar powered
               2. Continuously connected to power ( 3V or 5V)
               3. Some go to sleep mode to save power when not in use. 
       


IoT Hardware are of two categories :

     1. Microcontrollers
            It contains :
                 - Processor core (or cores)
                 - Memory (RAM), and
                 - Erasable programmable read-only memory (EPROM) for storing the programs
     
        Eg : a) Arduino Uno
                b) Particle Electron
                c) Espressif Systems ESP8266-01

                     
         
     2. Single board  computers
         
     As the name says , single board computer, it contains all the features of a regular computer.

    Please note these single board computers don't come with monitor, keyboard and mouse.
        It has to be bought separately.
             
         Eg:
             a) Raspberry Pi 3 Model B
             b) BeagleBone Black
             c) Qualcomm DragonBoard 410c                 


I have chosen Raspberry Pi 3 Model B and Arduino Uno due to its popularity.

C. Understand Networking Protocols  

It is necessary to understand what networking protocols are required to have a strong foundation in IoT. Refer to the figure to know  what protocols are used compared to OSI & TCP / IP model.



D. Choosing IoT platform  

IoT platforms provide middleware :

   1) To connect and manage hardware devices
   2) Store and handle data
   3) Provide interface with mobile and web applications.
   4) Establish  secure communication between devices, apps, and services.

Few IoT platforms are :

1) IBM Watson IoT
2) Amazon Web Services IoT
3) Microsoft Azure IoT Suite
4) ThingWorx
5) Kaa

Since I work in IBM technologies, I prefer IBM Watson IoT platform because it provides a "Lite account" which you can try it out ( its totally free with limited capabilities ) :

https://www.ibm.com/cloud/


References :

What is IoT ?
1.https://www.youtube.com/watch?v=QSIPNhOiMoE

IoT 101 
2. https://www.ibm.com/developerworks/library/iot-lp101-quick-start-guide-iot-developers/index.html

Essential Skills 
3. https://developer.ibm.com/dwblog/2017/just-getting-started-iot-consider-7-key-iot-concepts-skills/

Hardware Selection :

4. https://www.ibm.com/developerworks/library/iot-lp101-best-hardware-devices-iot-project/index.html

Protocols for IoT
5. https://www.ibm.com/developerworks/library/iot-lp101-connectivity-network-protocols/index.html

IoT Platforms 
6. https://www.ibm.com/developerworks/library/iot-lp101-why-use-iot-platform/index.html

No comments:

Post a Comment

Mastering IoT Development

Hi, Before reading this post, I would recommend to read the post : https://johnsylvester-johnsylvester.blogspot.com/2018/09/iot-key-co...