How to get started with Internet of things?
Monday, September 2, 2019
In recent times, Internet of things has evoked greater interest among technical folks particularly from learning perspective.
Generally, most common questions revolves around like how to get started ? OR I have good programming knowledge what would be next step towards learning IOT ? OR already into analytics / ERP and now I understand, IOT would play a part in analytics or ERP in future, so how do I get started?.
Yes, IOT can even be considered as subset or part of Machine learning, Analytics or even Artificial intelligence, as sensor data might play significant role in all this.
Generally, pure software development is much more matured, one would find clear line drawn on role like - Database administrator, DB developer or front end UI developer etc But even in software development in recent times, with optimization or call it 'cost cutting' we also come across term like 'full stack' developer, who are expected to take care of front-end and back-end. Currently, IOT is also similar and its evolving. One need to have good understanding of all layers of IOT.
Lets briefly look at different layer in IOT:
1. Understanding about Sensor and control This part is more of electrical and electronics rather than programming. Ideally, measures the physical parameters such as light, heat, weight etc converts them into necessary signal for processing. Folks with pure programming background might find it difficult. However, if one has basic understanding as how electrical, electronics circuits work, it would be far easier to understand. One need to have some basic knowledge about Ohms law, AC/DC voltage, resistors , capacitors, power-supply etc along with some basics on digital circuits as well. Traditionally Sensor or Transducer was analog type, meaning its mv output or resistance used to vary. But, these days digital sensors too are common, which means one can directly feed the data into the input pins of IOT device, without the need for analog to digital conversion.
2. IOT Devices IOT devices are the trigger for the growth of IOT in recent time. About a decade back, one need to build complete electronic circuit starting with a bare microprocessor(8085) or micro-controller (80C31). Internet or cloud were never used earlier. With internet catching up in late 90's and micro-controllers too evolved into a modular construct of having necessary associated circuit in place to make it as 'plug and play' type. Arduino boards were the first general purpose micro-controller board which got introduced in mid 2000, which had all the necessary electronic components and circuit in place, so that one could feed digital or analog (using its A/D Input pins) signal to the board. Post which, one can use C/C++ programming to acquire the data, process it and then based on processing send out digital signal to actuator or relay to control process. But still with early Arduino's (uno) the capability to connect to internet was missing. One had to use external ethernet board or wifi unit to connect to Internet to make it IOT ready, which led to complexity in Interfacing.
After 2010, low cost Raspberry pi got introduced, it was introduced as single board computer towards kids learning. But interestingly, it has features to connect to external world through input-output pin, built in wifi to communicate to Internet, Linux OS and hence with multiple programming language support. Added to this, low pricing of about 35 USD, made its growth exponential and it also redefined the approach and cost to IOT.
Also, in last few years Node MCU - ESP8266/32, the ultra low cost IOT device (approx.5 USD) make it even more simpler and cost effective towards building IOT applications. These IOT devices are still evolving and maturing, hence I believe as time progress, one would get better one - both feature and cost wise. Interestingly, Intel who had earlier offered IOT board like Intel Galileo, Joule, and Edison discontinued them towards end 2017.
Not sure, whether it was because of pricing impact made by Raspberry, Node MCUs. There are few other IOT devices from other vendors too but there quite a lot of similarities to the above described one.
3. IOT platform To make it complete, the devices need to communicate anywhere across the world using internet for which cloud based platform are required. This is required, so that data acquired by IOT devices can be sent to IOT platform for storage and further processing, including analyses of data captured towards any decision making, as IOT devices are resource contained one There are multiple IOT platform - Azure, AWS, Google, Oracle and many more. Some of them are open source or free for limited time period for testing, learning as well. Have found Thinkspeak and Cayanne (mydevices) quite interesting and innovative too. Cayannce (mydevices.com) is 'plug and play' type IOT platform. There are many more.
4. Programming and protocols. For integration of all these, one need to use programming language along with appropriate protocols towards communication. Python, Java, Javascript, C/C++ are most commonly used. In case of highly constrained IOT device - ESP8266/32, micropython is used in recent times. On protocols - MQTT, REST API, HTTP and associated protocols are generally used. For most IOT applications, high internet bandwidth may not be critical - meaning small data-set or messages is what would be sent to internet, at the same point of time the devices data communication need to have higher geographical reach - LORAWAN (long range wide area network) protocol is used, which is at infant stage and expected to grow over period of time. This is exactly opposite of wifi network - which is high internet bandwidth for bulk data and data communication reach is fairly less (say 10 meters) from wifi routers point.
Finally, IOT field is evolving and also Gartner predicts by 2020, its estimated that more than 20.8 billion IoT devices will be in use.
Hence, could open up plethora of opportunities for techies in near future. These days, number of institutes and professionals are offering both instructor led and online courses covering above. Towards, quicker learning, one could join them post due diligence considering the course coverage and with ROI in mind.
Yes, IOT can even be considered as subset or part of Machine learning, Analytics or even Artificial intelligence, as sensor data might play significant role in all this.
Generally, pure software development is much more matured, one would find clear line drawn on role like - Database administrator, DB developer or front end UI developer etc But even in software development in recent times, with optimization or call it 'cost cutting' we also come across term like 'full stack' developer, who are expected to take care of front-end and back-end. Currently, IOT is also similar and its evolving. One need to have good understanding of all layers of IOT.
Lets briefly look at different layer in IOT:
1. Understanding about Sensor and control This part is more of electrical and electronics rather than programming. Ideally, measures the physical parameters such as light, heat, weight etc converts them into necessary signal for processing. Folks with pure programming background might find it difficult. However, if one has basic understanding as how electrical, electronics circuits work, it would be far easier to understand. One need to have some basic knowledge about Ohms law, AC/DC voltage, resistors , capacitors, power-supply etc along with some basics on digital circuits as well. Traditionally Sensor or Transducer was analog type, meaning its mv output or resistance used to vary. But, these days digital sensors too are common, which means one can directly feed the data into the input pins of IOT device, without the need for analog to digital conversion.
2. IOT Devices IOT devices are the trigger for the growth of IOT in recent time. About a decade back, one need to build complete electronic circuit starting with a bare microprocessor(8085) or micro-controller (80C31). Internet or cloud were never used earlier. With internet catching up in late 90's and micro-controllers too evolved into a modular construct of having necessary associated circuit in place to make it as 'plug and play' type. Arduino boards were the first general purpose micro-controller board which got introduced in mid 2000, which had all the necessary electronic components and circuit in place, so that one could feed digital or analog (using its A/D Input pins) signal to the board. Post which, one can use C/C++ programming to acquire the data, process it and then based on processing send out digital signal to actuator or relay to control process. But still with early Arduino's (uno) the capability to connect to internet was missing. One had to use external ethernet board or wifi unit to connect to Internet to make it IOT ready, which led to complexity in Interfacing.
After 2010, low cost Raspberry pi got introduced, it was introduced as single board computer towards kids learning. But interestingly, it has features to connect to external world through input-output pin, built in wifi to communicate to Internet, Linux OS and hence with multiple programming language support. Added to this, low pricing of about 35 USD, made its growth exponential and it also redefined the approach and cost to IOT.
Also, in last few years Node MCU - ESP8266/32, the ultra low cost IOT device (approx.5 USD) make it even more simpler and cost effective towards building IOT applications. These IOT devices are still evolving and maturing, hence I believe as time progress, one would get better one - both feature and cost wise. Interestingly, Intel who had earlier offered IOT board like Intel Galileo, Joule, and Edison discontinued them towards end 2017.
Not sure, whether it was because of pricing impact made by Raspberry, Node MCUs. There are few other IOT devices from other vendors too but there quite a lot of similarities to the above described one.
3. IOT platform To make it complete, the devices need to communicate anywhere across the world using internet for which cloud based platform are required. This is required, so that data acquired by IOT devices can be sent to IOT platform for storage and further processing, including analyses of data captured towards any decision making, as IOT devices are resource contained one There are multiple IOT platform - Azure, AWS, Google, Oracle and many more. Some of them are open source or free for limited time period for testing, learning as well. Have found Thinkspeak and Cayanne (mydevices) quite interesting and innovative too. Cayannce (mydevices.com) is 'plug and play' type IOT platform. There are many more.
4. Programming and protocols. For integration of all these, one need to use programming language along with appropriate protocols towards communication. Python, Java, Javascript, C/C++ are most commonly used. In case of highly constrained IOT device - ESP8266/32, micropython is used in recent times. On protocols - MQTT, REST API, HTTP and associated protocols are generally used. For most IOT applications, high internet bandwidth may not be critical - meaning small data-set or messages is what would be sent to internet, at the same point of time the devices data communication need to have higher geographical reach - LORAWAN (long range wide area network) protocol is used, which is at infant stage and expected to grow over period of time. This is exactly opposite of wifi network - which is high internet bandwidth for bulk data and data communication reach is fairly less (say 10 meters) from wifi routers point.
Finally, IOT field is evolving and also Gartner predicts by 2020, its estimated that more than 20.8 billion IoT devices will be in use.
Hence, could open up plethora of opportunities for techies in near future. These days, number of institutes and professionals are offering both instructor led and online courses covering above. Towards, quicker learning, one could join them post due diligence considering the course coverage and with ROI in mind.