The Internet of Things has left no engineering field untouched by mounting sensors to almost any device you can think of. But developing an IoT device requires the use of both a platform and an IDE, so we will explore what each one is, how they are used, and why they’re important.
IDE vs Platform
IoT projects often consist of layers that are each designed and built separately. The lowest level in an IoT project is the microcontroller or SoC, which handles sensor data and communicates with a Wi-Fi radio circuit. This is always built using a programming language like C or C++ and is designed in an IDE, or “Integrated Development Environment.”
An IDE often combines useful tools with compiler chains, so projects and systems can be coded. IDEs are not limited to microcontrollers and are used in just about every single software project on the planet. They can create executable hex code, an application for Windows to run, or even a program for a server to run as a task. A platform, however, is a framework that handles complex tasks and data and exists in many different forms. Platforms typically provide tools and APIs that allow devices to submit and read data from a server system, execute incredibly complex calculations (such as voice recognition), and even host website. But platforms almost never provide compilation tools or programming environments for devices themselves. Platforms often provide software resources that make using them easier in languages such as C and C++, but the best way to see an example of a platform versus an IDE is the Adafruit.IO IoT platform and the Python programming language.
A Classic Example
Adafruit.IO is an IoT platform that allows IoT devices to submit and retrieve data that can also be graphically displayed. The display is a dashboard which includes graphs, interactive buttons, and even images. Adafruit.IO is not programmed by the developer and the developer is only required to create feeds and dashboards to display the value of feeds. But interacting with Adafruit.IO can be somewhat complex for users who have little experience programming with REST and HTTP.
Python is a programming language and the simple IDE that is provided, named IDLE aids in creating programs. Unlike the online Adafruit.IO platform, the IDLE is used to code Python programs from scratch and provides an incredible amount of flexibility and power. However, coding a Python program from scratch as a socket to communicate with the online Adafruit.IO platform would be a difficult task. This is why the designers of Adafruit.IO have also written a Python library that streamlines communication, allowing Adafruit.IO programs to be written in less than 5 lines of code.
Other Examples of Platforms
The Adafruit.IO platform is one of the easiest to use but there are many others that exist on the market with far more power. The Amazon Web Service (AWS), for example, is a cloud platform that not only provides IoT services like storing and retrieve data (such as temperature and humidity), but also hosts many useful online resources such as AI, voice recognition, web hosting, and file backup services. Azure is a Microsoft version of AWS which also provides IoT services, online application hosting, and website hosting.
In summary, an IDE is a software package used to write programs, code specific devices, and create specific applications. A platform is a range of services that includes easy to use tools that handle the complex side of data management and processing that allows users to quickly prototype and create projects.