Wednesday, September 19, 2018

Mastering IoT Development


Hi,

Before reading this post, I would recommend to read the post :

https://johnsylvester-johnsylvester.blogspot.com/2018/09/iot-key-concepts-skills-required.html

To understand  IoT development in depth , it is necessary to have overview of the following concepts:

1. IoT architectures

When building IoT solutions, challenges arise while :
  a) When connecting many heterogeneous devices,
b) Communicating using different networking protocols, and
c) Producing data in a range of formats.

An architecture ( for IoT solution) describes the organization of  :
  a) physical aspects (that is, the things) and
b) Virtual aspects (like services and communication protocols).

Layered architecture  approach helps to manage the complexity of IoT solutions


  1) Devices layer - Sensors come in this layer.
  2) Edge layer    -  Part of pre-processing is done by Sensor circuit or it is done by Gateway / Router
  3) Cloud layer   - Does data processing , often complemented by mobile apps ,web-based
                              client,dashboards and visualizations.
 

IoT reference architectures are readily available and it helps to manage complexity and facilitate better interoperability.

IoT reference architecture generally take care of following challenges faced :

a) Managing devices ,data and its challenges :
              1) security,
2) interoperability,
3) constrained devices,
4) scalability, and
5) availability.

         Standardized device management protocols for IoT devices in broadband and mobile industries include:

     1)TR-069 Customer Premises Equipment (CPE) WAN Management Protocol (CWMP)
    2)OMA DM - Open Mobile Alliance Device Management (OMA DM)
    3)LWM2M - OMA's Lightweight Machine to Machine (LWM2M)

b) Connectivity and communication using protocols



c) Analytics and applications. Analytics approaches include

  1) distributed analytics,
2) real-time analytics,
3) edge analytics, and
4) machine learning.
   
      Few Analytics solutions available in the market :

                  1) Oracle Edge Analytics and Stream Analytics
                  2) Azure Stream Analytics
                  3) AWS IoT
                  4) Google Cloud Dataflow
                  5) IBM Watson IoT Platform Analytics
     
d) Security challenges :
1) Secure constrained devices
2) Authorize and authenticate devices
3) Manage device updates
4) Secure communication
5) Ensure data privacy and integrity
6) Secure web, mobile, and cloud applications
7) Ensure high availability
8) Detect vulnerabilities and incidents
9) Manage vulnerabilities
10) Predict and preempt security issues



Some widely referenced IoT reference architectures include:

   1) Internet of Things – Architecture (IoT-A)
   2) IEEE P2413 - Standard for an Architectural Framework for the Internet of Things (IoT)
   3) Industrial Internet Reference Architecture (IIRA) 

Example : Industrial Internet Reference Architecture (IIRA)'s constructs and application:





Reference architectures serve as a template to apply to domains or specific platforms. Each vendor come up with their own way of implementing the IoT architecture, few reference architectures in market :

1) IBM IoT reference architecture
2) Intel IoT platform Reference Architecture
3) Microsoft Azure IoT Architecture
4) Amazon Web Services Pragma Architecture

Example : IBM IoT reference Architecture :




 

2. IoT developer kits

      Developer kits are physical hardware kits that you can use to fast-track development of your IoT solutions.

  Some popular IoT developer kits :

  a) Texas Instruments SimpleLink SensorTag Kit
          b) Adafruit Feather HUZZAH ESP8266 IoT Starter Kit
          c) Seeed Studio BeagleBone Green Wireless IOT Developer Prototyping Kit
          d) Raspberry Pi 3 IoT Learner Kit
          e) Avnet AT&T Cellular IoT Starter Kit

3. Understand Large-scale IoT projects
 
Few examples of large-scale IoT scenarios are :

1) Connected cars
2) Connected cities
3) Smart Buildings
4) Manfacturing
  5) Supply Chain Management
6) Energy management
         7) Environmental safety
         8) Waste management
         9) Transportation: Parking, Traffic, and Public Transportation
       10) Emergency management and law enforcement
       11) Citizen engagement


This post contains the topics to master IoT in a nutshell. For further readings , refer to the references.

If you have any comments, feel free to drop a note. Have a nice day.... :)

References :

1) https://www.ibm.com/developerworks/library/iot-lp201-next-steps-guide-iot-developers/index.html

2) https://www.ibm.com/developerworks/library/iot-lp301-mastery-guide-iot-developers/index.html

IBM IoT Reference Architecture :
3)  https://www.ibm.com/cloud/garage/architectures/iotArchitecture

Industrial Internet Reference Architecture (IIRA) 
4) https://www.iiconsortium.org/IIC_PUB_G1_V1.80_2017-01-31.pdf?cm_mc_uid=42240287207114889661528&cm_mc_sid_50200000=1498959849

  

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

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...