Introduction

IoT Virtual lab is an online playground for Internet of Things.

Ever been amazed by the technology that gets your coffee ready even before you wake up or that sets your alarm clock according to the traffic and weather conditions? Do you want to get a better look and create one of these technologies yourself? If the answer to any of the above questions was yes, then you are in the right place. Internet of Things (IoT) is the networking of physical objects that contain electronics embedded within their architecture in order to communicate and sense interactions amongst each other or with respect to the external environment. In the upcoming years, IoT-based technology will offer advanced levels of services and practically change the way people lead their daily lives.

Let us look at how to get started with IoT:

  • IoT is the interconnection of devices that can sense and stimulate the physical world around you. In this age, we can have access to cheap, portable IoT development kits. There are a wide variety of IoT boards with different uses. The top IoT hardware platforms are Arduino boards, Raspberry Pi, and ESP8266. Arduino boards are the best for a beginner in IoT but we can get started with the best one for you!

ESP8266 Wifi Module
  • The string connecting all our IoT devices is the internet. Knowing the basics and learning along the way is a must. IoT standards and protocols allow the devices and servers to talk to each other in many ways. Hence, it is important.

IoT Protocol Stack
  • For any software technology, we need to learn the right languages. For IoT, JavaScript and Python are becoming popular. However, the most important language for IoT projects remains to be C. It doesn’t require much processing power and is present on almost all advanced embedded system platforms. Also, a basic understanding of web and app development is required to create interfaces that interact with your IoT devices. Though IoT devices can have their user interfaces built-in, it’s complicated when just getting started.

  • IoT connects you to a lot of devices. It also exchanges information from your smartphone to IoT enabled devices. Even though IoT makes our life easier, it also creates loopholes to access that information. Hence learning about securing our devices from such attacks is essential. An IoT hack is a much bigger problem than a computer hack. Since IoT is related to devices, a hacker can disable the brakes of a self-driving car, disable smart locks of apartments or attack critical infrastructure like water supplies. Security should be considered in each phase of the project.

IoT Security Stack
  • We should also get familiar with Real-Time Operating Systems (RTOS) for the interaction of our hardware devices and software. This helps in proper resource allocation to tasks and processes scheduling them in a properly synchronized way using the RTOS kernel. For beginners, one can start with the FreeRTOS Kernel which is easy to use and understand. The community support is large and the documentation is easy to use.

RTOS STructure
  • And finally, we should not start trying to build a self-driving car. This is quite ambitious, but it will stress us out. As “Hello world” is to programming, “Hello blinky” is to IoT. It is a simple project to make an LED blinking app and connect it to our IoT device. When we can make such small projects we can go bigger and better.

IoT Virtual Lab

Any IoT project requires hardware prototyping at a certain stage. Thanks to the consistent innovation and hard work of great companies and open source communities out there, there are a variety of hardware starter kits today - which make beginning any IoT project a piece of cake.

However, problems usually arise when you are looking to do something more than trivial. How about making something in a little different way? How about trying an idea which no one has given a chance yet? As you move forward, making a successful embedded prototype requires the right selection of sensors, OS, and choosing a good cloud platform provider to talk to. Many of the challenges in these steps could be easily overcome with our virtual lab.

Virtual Lab provides an online workspace where one could quickly assemble virtual hardware, boot an operating system, or build a firmware of one's choice and begin programming right away. All one needs is a browser with an internet connection to get going.

What can we do with Virtual Lab

  • Choose an existing hardware and sensor combination or build one's own (coming soon)

  • Choose an operating system that matches one's requirement or build firmware for one's microcontroller.

  • Develop software on virtual hardware in the language of your choice, connect to the internet, or run a web server on the virtual target itself.

  • Share the project with your colleagues and collaborate on IoT projects.