Get access to the new Intel® IoT Developer Kit, a complete hardware and software solution that allows developers to create exciting new solutions with the Intel® Galileo and Intel® Edison boards. Visit the Intel® Developer Zone for IoT.
Intel offers three integrated development environments (IDEs)—Intel® XDK IoT Edition, Intel® System Studio IoT Edition, and the Arduino* IDE—to help you build and deploy your Internet of Things (IoT) projects. The choice of IDE depends on your project and its device requirements as well as which programming language you’ll use to interface with the devices. This article provides general guidelines to help you choose the right IDE for your projects as well as the high-level features and programming languages that each IDE supports.
Intel® XDK IoT Edition
Intel® XDK IoT Edition is a HTML5 hybrid–Node.js* application development environment that you can use to create, run, debug, and deploy JavaScript*-based IoT projects. Many development boards have adopted the Node.js programming language, making it an ideal choice if you want to read sensor values and transmit the sensor data quickly to the cloud for further processing. Together with the HTML5 hybrid development environment that Intel® XDK IoT Edition provides, you can easily create an application (web application or mobile app) that displays the sensor values.
To get you started, Intel® XDK IoT Edition provides a variety of Node.js templates and samples for running on Intel® IoT platforms like the Intel® Edison and Intel® Galileo boards. These templates make it easier to interface with sensors and actuators connected to your board. Figure 1 provides a snapshot of the template view in Intel® XDK IoT Edition.
Figure 1. Templates in Intel® XDK IoT Edition
A list of supported sensors and actuators is available in the IoT Sensor Library Explorer, which makes it easier to add sensor code or modify the code to interact with a component (Figure 2). The code uses the Libmraa* sensor communication library to communicate with sensors. Libmraa provides an abstraction layer on top of supported hardware so that you can read data from sensors and actuators in a standard way and create portable code that works across supported platforms. The code available in the Sensor Library Explorer is part of the sensor library project included with the Useful Packages & Modules (UPM). UPM makes calls to MRAA application programming interfaces to provide a high-level repository for various sensors and a standard pattern for integrating with them.
Figure 2. IoT Sensor Library Explorer
Intel® XDK IoT Edition also provides HTML5 hybrid templates that you can use or customize to deploy your IoT application to the web or mobile devices (Android*, iOS*, or Windows*). To test your application, you can use the emulator or deploy it to an actual device. Typical use cases include reading the values from the sensor, performing analysis, and displaying the analyzed sensor data on the web or on mobile devices or sending out notifications.
Intel® System Studio IoT Edition
Intel® System Studio IoT Edition is an IDE based on Eclipse* for developing in the C++ or Java* programming language. It allows you to connect, update, and develop IoT projects on a compatible board, such as the Intel® Edison board or Intel® Galileo board. You use C++ when you need full control over your interactions with a device, and a host of C++ libraries is available. For instance, if your application involves image processing (for example, facial recognition), you’re better off using the readily available Open Source Computer Vision (OpenCV) C++ libraries rather than building your own.
Intel® System Studio IoT Edition is available for Windows, Mac* OS X*, or Linux*. To get started, download the installer for your operating system. You can create Java or C++ projects and add the appropriate sensors to start interacting with the components on boards. Figure 3 shows the Intel® System Studio IoT Edition IDE.
Figure 3. The Intel® System Studio IoT Edition integrated development environment
To make it easier to interface with sensors, you can import the required UPM and MRAA libraries (C++ or Java) for your sensors to the IDE and start interacting with the devices.
Intel System Studio IoT Edition also makes it easier to synchronize the libraries that your projects use in the IDE and on the actual devices, ensuring that you always use the latest libraries. The IDE also makes it easier to work with and synchronize code across multiple development boards.
The Arduino* IDE
Arduino* is an easy, open source, C++-based programming environment that makes it easier to program devices using the Arduino language and deploy applications on compatible boards. Arduino is supported on the Intel® Edison board and Intel® Galileo board, as well as Arduino 101*/Genuino 101* boards (which ship with the Intel® Curie™ Compute Module).
You use the Arduino IDE primarily when you’re working with Arduino-compatible devices, such as the Intel® Edison board, Intel® Galileo board, and Arduino 101/Genuino 101 boards. Because Arduino is widely supported, it’s a good choice when you want to build meaningful IoT applications quickly by adding sensors, actuators, and shields (such as Wi-Fi shields) because many code samples are available.
The Arduino IDE is available for Windows*, Mac OS X*, and Linux*. To get started, download the installer for your operating system. Start the Arduino application, and then choose Tools > Board > Boards Manager to select your board type and install it on the Arduino board. For the Intel® Edison board, choose Intel i686 Boards. For the Galileo board, choose Intel i586 Boards; for Intel® Curie™ modules, choose Arduino/Genuine 101. You can than create a sketch (that is, programming code) or install one of the available examples the IDE provides (such as LED blink) on your board.
Python*
Intel doesn’t currently provide an IDE for Python*, but you can use any of the available Python IDEs to build and deploy Python code on compatible boards, including the Intel® Edison board, or Intel® Galileo board. You can use the Python libraries available in UPM at GitHub* at to interact with compatible sensors.
Summary
This article discussed the various Intel® IDEs for developing IoT solutions. It looked at the typical requirements for when to use a particular IDE based on your project requirements. Using these IDEs makes it easier to interact with sensors and actuators through MRAA and UPM libraries and build, deploy, debug, and run your IoT projects.