Top 11 IoT visual programming tools. Simplify the development process when building IoT solutions and applications using visual languages for Arduino, Raspberry, ESP8266 etc.
This is a list of the most important IoT visual programming tools to start developing IoT apps using visual programming languages. Nowadays, IoT is getting more and more important and it is a fact that there is a lot of interest in this new technology.
IoT visual programming tools – Visual programming languages
We all hear talks about the impact that IoT is having and will have in different areas of our lives and in the production systems. Well, but what is IoT? To make it simple, it is a world of connected objects that talk to each other to exchange information. Going a little deeper into the IoT ecosystem we can identify several elements that usually build an IoT system. There are not only smart objects, but there are also gateways, sensors, IoT cloud platforms. The IoT platforms enable us to create dashboards and analyze the data. The interesting aspects of Internet of Things is the possibility to explore this world by ourselves.
Lately, we are noticing the born of several IoT development boards that have different features. Arduino and Raspberry, ESP8266, Particle, NXP, and lately Android Things, help us to make the first steps into the IoT ecosystem. Moreover, the explosion of the prototyping kits, that brings together IoT boards, sensors, motors, LEDs and so on, makes easier for amateurs, hobbyists to develop IoT projects.
Visual programming tools overview
Tutorials and articles enable everyone to build his first project. There is one aspect that is still a problem: the programming language. All these prototyping boards have its own programming language as C, Python, Java and similar. If you want to develop your IoT system, you must know at least one of these programming languages. Fortunately, during these years, several visual programming languages have been developed to help several people to start programming without knowing the programming language. These IoT visual programming tools have a different approach when it comes the time to program. We are used to writing several lines of code, using variables, conditional statements, loops, objects and so on. Well, an IoT visual programming language has a graphical user interface where the user, using a drag-and-drop approach, move some code blocks that execute a simple piece of logic. For example, there is a block for loop, another for reading data from pins and so on. To make it simple, Wikipedia defines a visual programming language as:
This article wants to provide a list of IoT visual programming tools that can be used to develop your IoT app.
Let us begin. The order is random
It is a flow-based programming tool, developed initially by IBM and now it belongs to JSFoundation. It is built on NodeJS framework. It is based on the concept of Node that is a black box element that performs a specific task. The data flow through the nodes according to the node connections. Every node has a data input and data output. It is a widely used visual programming. Using this visual approach Node-red connects device hardware, cloud services and can invoke external API to complete some tasks. The interesting aspect of this visual programming language is that the editor runs in a browser and the flow and nodes are saved using JSON, making it easy to share data and schemas. It is an open source platform and its code can be found in Github. It supports several IoT prototyping board like Arduino, Raspberry and Android. More it supports these IoT cloud platforms: IBM Bluemix, Microsoft Azure, Amazon Web service, SenseTecnic FRED
Visuino is another visual programming tool. It is made for hardware developers that do not have much knowledge of software development and prefer to use a visual programming language. It uses blocks to program Arduino boards. It is based on the drag-and-drop paradigm that is used to control sensors and peripherals. Moreover, it has a built-in panel to visualize data coming from sensors. It is made for Arduino boards and it can be used with Arduino compatible boards too and with ESP32 and ESP8266. It requires a subscription fee to receive updates after a trial period. Currently, it supports only Windows OS even if they are working to support OS X too.
Embrio is another interesting visual tool to develop IoT app. It is made for Arduino and supports different OS as Windows, OS X and Linux. Embrio is a drag-and-drop tool that uses a different approach to program Arduino visually. It uses the Agent concepts. An Agent is more or less a process that has a job to complete. Agents can run at the same time and they can activate or kill other Agents. The connections between Agents define the IoT app data flow and the app logic. The Embrio app can be compiled into an Arduino code and runs on an Arduino platform.
It is a visual programming environment that supports several Arduino boards. It supports Windows OS, OS X and Linux. Currently there is not much documentation about this project, anyway it generates Arduino native code that can run directly on Arduino compatible board. It is an open source project and you can find more information at Github.
XOS is a visual programming tool for microcontrollers. It is based on the Node concept that can represent a sensor, motors or some functional piece of code such as comparison operations, text operation and so on. Each node has an input and an output and connecting visually all the nodes we can define the IoT app logic. XOD generates native code that you can upload on Arduino compatible boards and run on it. It supports mainly Arduino. It is an open source project and the interesting aspect is it is extensible, that is it is possible to create new nodes to support new components.
This a complete platform that includes a visual programming tool that supports several prototyping boards. It helps the user from the beginning to the deployment phase. It supports several programming languages that can be used instead of the visual programming IDE. The visual IDE is built on Google Blocky. It is based on the concepts of blocks that is piece of code that perform a task. Combining blocks and defining its order, we can define the IoT app business logic. Blocks can perform simple tasks like sum two variables or more complex tasks as turning on or off a LED, set the pin status or stream data from an URL. It is a browser based environment. It supports several prototyping boards as Raspberry Pi, Intel Galileo, Intel Edison and so on.
Ardublock is a graphical programming language for Arduino. The interesting aspect of this visual tool is the capability to be integrated with Arduino IDE. It uses the block concept at the base of the programming. Using these blocks, we can, for example, set the status of a pin or read its value. Using Ardublock, the interaction with Arduino pins get very simple, it is just a matter of drag-and-drop some blocks and connect them in the right way. At the end, it is possible to generate a native Arduino code that can be executed on the Arduino board.
This is a graphical tool where there is a representation of the Arduino board where we can work on selecting its pins. Using blocks it is possible to interact with Arduino pins without knowing much about programming languages for IoT. It is very easy to use and it supports common operation and logic blocks. Moreover, it has another version called Modkit VEX that you can use to program a robot.
Zenodys helps developers to build IoT apps easily. Using Zenodys platform, it is possible to collect data from any sensors and visualize the values acquired easily without programming. Using Workflow builder is possible to build complex backend solutions using visual programming tools. Finally, the UI builder helps the developer to build IoT dashboard to visualize data and information. It is a complete platform that provides several services that can be connected together using its tools and builders. There are several scenarios where Zenodys can be used: Predictive maintenance, real-time monitoring systems, product line automation and so on.
“Reactive Blocks is a visual model-driven development environment supporting formal model analysis, automated code generation, hierarchical modeling, and an extensive library of ready-to-use components for the Java platform. By combining re-usable blocks, a developer can create complex applications graphically.” (Source: http://www.bitreactive.com/reactive-blocks/)
There are other IoT visual programming tools as Grasp.io, DGLux5 and so on.
At the end of this article, you gained an overview of the most important IoT visual programming tools that you can use to develop IoT apps. These tools help developers to build complex IoT solutions without writing tons of code lines. This can be an easy solution for people that are more focused on the hardware part of the IoT. Anyway, at the same time, they want to develop and prototyping an IoT app easily without spending too much time. Moreover, these IoT visual programming tools support several prototyping boards ranging from Arduino to Raspberry Pi,