The IoT buzz:
In this era, Internet of Things(IoT) is the buzzword! Any conference or any technology journal or any meetups, one just can’t ignore talking about IoT. Having said that, as a fresh engineer there is always a set of questions that pops up in your mind: ‘How do I learn IoT?’ ‘I am getting overwhelmed with by looking into the depth and breadth of technology. Where to start?’ ‘How to build IoT projects on my own?’ ‘What type of hardware and software resources do I need?’ Well, there is no definite answers for few questions as it is very subjective. Hence, based on our experience in Emertxe we would like to give you top-5 recommendations on how to build IoT projects. This practical approach will have you a working project and give answer for your ‘How to build IoT projects?’ question. Before we get there, let us try to briefly understand IoT, which will come in handy while building projects.
Introduction to IoT:
To give a brief introduction, IoT is an organization of physical things embedded with sensors, electronics, software that are accessible through internet. These physical things can be anything which includes home appliances, automobiles, industrial machines, human body, transport vehicles, medical equipment or any other “thing” that you can think of. According to the recent survey, there will be 30 billion plus IoT devices by 2020, which actually justifies the buzz. Hence, IoT plays an important role in everything that we use in today’s world by making it easy for us. IoT’s market can potentially reach a whopping 2 billion connections and unlock $11.1 billion of revenue by 2022, an Assocham- EY report said.By building IoT projects, you can really understand what is IoT is all about. You will get a clear picture of the technology and also build a wonderful career as there is a boom in IoT job market. If you want to know more about how to build IoT projects, read on!
IoT Architecture:IoT architecture is a structure of numerous elements. In simple words, IoT architecture has five major components. They are described as follows:
IoT device can be a combination of wireless sensors, software, actuators and computer devices. They are fixed to a specific object that runs through internet. These devices enable the transfer of data among objects or people automatically without any interference of human resources. For example, Fitbit is an IoT device that communicates with an app through internet and provides us so many insights about our health condition.
IoT gateway is a device or a software program that serves as a connection point between cloud and multiple IoT devices. All the information moving to cloud or vice versa has to pass through IoT gateway. IoT gateway provides an extra security for the IoT network and the data that is being transported. An array of IoT devices connect with IoT gateway via low-range protocols (ex: Bluetooth Low Energy or BLE). The gateway in turn uses web-scale standard protocols (ex: Message Queue Telemetry Transport or MQTT) to access the internet. Some of the commonly used protocol information is given below.
Network is the bridging element that connect an array of IoT gateways to the Cloud platform by traditional TCP/IP network. It is been existing over years connected with a suite of protocols. Now the same network has an indeed meaning of being “glue” that bridges everything (IoT device, IoT gateway, Cloud and application eventually). Therefore IoT protocols can be summarized as mentioned in the image below. Here is a brief explanation of each protocols:
IoT device -> IoT gateway protocols (Typically short range):
|Name||Brief about the protocol|
|BLE||Bluetooth Low Energy (BLE) is a form of wireless communication designed especially for short range communication.|
|Thread||Thread protocol is a home automation device communication method.|
|6LoWPAN||IPv6 over low power wireless personal area network (6LoWPAN) provides the upper layer system for use with low power wireless communications for IoT.|
|LPWA||Low Power Wide Area Network (LPWA) enables connected device to communicate over a large geographical areas at a low bit rate.|
|Ethernet||Ethernet is a protocol for local network of computer, workstations and devices.|
|NFC||Near Field Communication (NFC) is a set of communication protocols that enable two electronic devices, usually one is a portable device, to establish communication within a distance of 4cm.|
|WiFi||Wireless Fidelity (WiFi) is a wireless networking technology that uses radio waves to provide wireless high speed internet and network connections|
|LoRa LPWAN||Long Range Low Power Wide Area Network (LoRa LPWAN) provides network in long range network. The range lie >5km in urban, >10 km in suburban and >80km line of sight.|
|RFID||Radio Frequency Identification (RFID) is one method of automation identification and data captures.RFID uses electromagnetic field automatically identify and track tags attached to objects|
IoT gateway -> IoT cloud protocols (Typically long range, internet scale protocols):
|Name||Brief about the protocol|
|HTTP||Hypertext Transfer Protocol (HTTP) is an application level protocol for distributive, collaborative hypermedia systems.|
|MQTT||Message Queue Telemetry Transport (MQTT) is designed as a lightweight messaging protocol that uses publish/subscribe operations to exchange data between clients and the server.|
|CoAP||Constrained Application Protocol (CoAP) is designed to enable simple, constrained devices to join the IoT even through constrained networks with low bandwidth and low availability.|
|AMQP||Advanced Message Queuing Protocol (AMQP) is an open source published standards for asynchronous messaging by wire.AMQP enables encrypted and interoperable messaging between organizations and application.|
|XMPP||Extensible Messaging and Presence Protocol (XMPP) is for streaming XML elements over a network in order to exchange messages and presence information in close to real time.|
Cloud is a platform that takes a huge volumes of data generated. They receive them through IoT gateways which in turn has tons of by devices behind them. Since the amount of data handling is very significant it will have following characteristics.
- Web services – Ability to handle incoming client request and response
- Scalability – Ability to scale-up or scale-down depending on the data / network traffic
- Distributed – Inherently support distributed computing to handle resources
- Business Intelligence / Analytics – By analyzing big data and derive analysis
- Cost optimization – Provide facilities to customer to achieve results in optimized way
The synthesized data for the end user to derive meaningful insights. The application typically provides an User Interface (UI) which the user can get the final insights (ex: Home devices status) or even trigger some action (ex: Switch ON / OFF). Again this interface can be anything ranging from a mobile application, custom dashboards on panels or simply a web interface.
Emertxe’s knowledge sharing about IoT:
Our team in Emertxe, which consist of set of experts have been working on IoT for a while now. They have also shared their learning in many popular conferences. Here are some of the slides which you can browse through to get more in-depth knowledge about IoT.
IoT show 2019:
During this conference Jayakumar Balasubramanian(Director – Technology) gave a tech talk on “Demystifying IoT skills: what does it take to become a fullstack IoT engineer”. It was a brief talk addressing how to interpret IoT from skill perspective, additional skills a electronic engineer should have, difference in IoT job profile and the roles played by protocols in IoT.
IoT show 2018:
Our team of experts consisting Jayakumar Balasubramanian (Director – Technology), Mubeen Jukaku (Technology Head) and Syed Adil (Hardware Design Head) steered and formally launched our IoT course by sharing Next Generation Skills for IoT by calling out skills that is required for engineers to launch their careers in IoT. We are really proud to be the first institute in India to launch such an immersive IoT course.
IoT career guide (Shared with broad ecosystem of engineers):
IoT is amalgamation of different technologies coming together. Standards and ecosystem is still evolving which often leads to quite a lot of ambiguity and confusion among entry level engineers. Our team Emertxe has brought in particular about IoT by clearly defining it from skill perspective. Here is a career guide aimed to clarify all queries about IoT.
How to build IoT projects?
With this background information, let us answer the question ‘How to build IoT projects?’. At Emertxe, after all handling 60,000+ students in the past 15+ years of existence, we always believe the best way to learn is by building projects. Here are the top-5 practically implementable steps to have your own project working.
Step-1: Execute a demo project:
To get the real taste of IoT, the first step is to execute a project which is already built by somebody. There are various websites to guide you with projects. For example Hackster, EngineersGarage, Circuit Digest, Seeed Studio and many more. It is always important to execute a demo project as it gives a clear idea for building your own IoT project. In particular, there are multiple “cool” project that are available in these websites (ex: In Hackster – IoT home security model, IoT pet feeder) which will also give you a “fun” feeling while building them. As you may observe, these projects also requires a certain set of hardware and software to execute them. Thanks to Open Source, most of the software are available for FREE and downloadable from the links given for specific projects. However choosing a right hardware kit / components always plays an important role in your project. There are some websites exclusively for the purchase of the components like Rhydolabz, Element14, Kitsnspares which you can check out and make the right hardware purchase.
Step-2: Get hands-on with programming:
The real use-case building of IoT happens due to an engineer’s programming mind. So it’s very important to know at least one programming language very well. The reason that IoT is a cross disciplinary subject, we would recommend you to learn two programming languages, that can come in handy that is C programming and Python programming. Ever wondered why?
- C programming: In spite of so many programming languages available today, C is the most preferred language for programming Embedded Systems. Getting invented during 1970s, C programming language has evolved a lot. Advanced C programming constructs like Pointers, Dynamic memory allocation, Data structure, User Defined Data structures, File operations etc. C programming unifies all the controllers and computing devices in the market. You will build strong capability and confidence in yourself in order to convert a given problem statement into a working program.
- Python : Initially python was used only for web application, but later on python was used in IoT too. Python is a language similar to perl- object oriented programming language. When it comes to robust and performance developers prefer python programming language. Also it has various features, its an open source, portable, flexible, embeddable, etc . Python programming is also efficient fast and supports programming paradigms. Python is a versatile interpreted language which is easy to learn with rich set of libraries.
Both languages are very popular in the IoT domain getting hands-on projects implemented in them will really help you to take-off your career. You can check-out our Technical Resource Library where you will get ample study materials to get started with programming.
Step-3: Get hands-on platform exposure:
After all gaining hands-on programming we are sure your logical and analytical skills will improve make a huge positive jump. At the next step you need to gain hands-on with any popular IoT platform. Its important to realize that there are a lot of them available already. From team Emertxe’s side we have been doing quite a lot of work in GR Lychee platform (created by Renesas Electronics) as part of GR Lychee annual IoT design contest. There is a wonderful hands-on video prepared by one of our mentors which will help you to get started. By understanding such platform you will be able to program an Embedded System for a specific IoT use-case. Of course you can look out for many similar resources in the web!
Step-4: Try a project on your own:
It is always very challenging to try out a IoT project on your own. But most importantly that’s the only way to learn! Now that you have all the fundamental elements required you can start working on a project on your own .It also helps you to explore the technology in much better way. There are tons of resources available to help you out. Here are few of the resources, so go on and just give a try! I am sure you will have a working IoT project by exploring all these options
- Particle Community: Practicle community offers you a set of projects (on a volunteering basis) and great team of IoT experts who can answer any of your concerns related to your IoT project
- Hackster.io: Hackster offers you a development team who can help you out during the implementation phase of your project. You can also follow the projects that are listed in their website.
- Adafruit : Adafruit also offers you a great help from development team. You can seek their help during the building phase of the project. You can also seek information about hardware and software components of your IoT project.
Step-5: Get real-time experience
Last but not the least. Get some real-time experience on IoT projects. This will not only help you to build project but also enable you to build a career on IoT. As a fresher you will always have concern on getting real-time experience! If you followed steps 1-4 and have all your learning represented in your resume well, hunting a real-time project will not be a problem. Here are couple of suggestions from our side which you should give a try:
- Start contributing to open sources: There are various Open Source communities where you can start contributing. It might not be necessary you need to have deep domain expertise to start. You can start with very simple activities like creating documentation, making minor code changes or even performing unit testing of a code developed by a seasoned developer in the community. This will not only help you to learn technically but also builds your credibility as a developer.
- Internships: Internships play an important role in helping you to build a project. There are multiple platforms available like internshala, oyster connect, letsintern which provide internships. Internship is a learning phase for a student in the corporate environment, Hence it will help you to learn a lot. You can also learn to build IoT projects.
IoT is a huge platform to work on! As a fresher, you should definitely explore and work on some IoT projects. In order to build projects you require some foundational skills followed by domain skills. Working on IoT projects not only benefits to build your career but also taps your creative side of your brain. A huge opportunity is waiting to be harnessed, go ahead and grab them with both your hands. Why don’t you start building an IoT project right away?