- Arduino – why will it work not only for amateurs?
- Arduino Pro – why should you choose this solution?
- Arduino Pro – who is it addressed to?
- Arduino Pro hardware platform
- Arduino Portenta
- Arduino MKR and Arduino Pro
- Arduino Nano 33
- Expansion modules for Arduino Portenta H7
- Software – Arduino IoT Cloud, Arduino IoT API, Arduino IDE Pro, Arduino CLI
- Arduino IoT Cloud
- Arduino IoT API
- Arduino IDE Pro
- Arduino IDE CLI
Arduino – why will it work not only for amateurs?
The Arduino platform has gained tremendous popularity all around the world. At first, it was associated mainly with amateurs and hobbyists, but with time it also became appreciated by professionals. The most important advantage of the solutions offered by Arduino is the ease of translating ideas into applications, which is why it enjoys popularity among millions of users worldwide. Not only prototypes, but also final products are built using Arduino-based solutions. Drawing on its popularity, the Arduino platform enters the world of IoT devices, offering easy-to-use hardware and software. They can be used to build Internet of Things solutions using ready-made concepts, without the need to develop ideas from scratch and, in many cases, also without the need to involve external experts.
Use of Arduino in embedded applications
Numerous embedded applications published on the Internet prove it is a good choice. They are created without the use of C or C++ compiler and based only on the Arduino platform and ready-to-use modules available for it, such as uncomplicated light advertisement controllers or more complex ones designed for CNC machines and wireless communication applications.
The development of the platform was facilitated by the availability of its full documentation, as well as numerous examples of applications, which resulted in a burst of innovative solutions. If the creators of the platform did not come up with an idea for a particular application, someone else did and presented it on their own blog or website. This has led to the creation of countless extension modules, so-called shields, featuring various useful options. According to a Chinese proverb – “This world is so huge that there is nothing that you wouldn’t be able to find here”. It is also true for the Arduino ecosystem. Based on its available hardware modules, libraries and software, countless projects have been created, which give users the possibility not only to learn from and get inspired by the proposed solutions, but also to simply draw from the database of ideas.
Users who entered the world of electronics using the Arduino platform are willing to use the same solutions when they move on to develop more complex, professional projects. This is facilitated by the open source nature of Arduino, which has been preserved even as the platform has grown into a professional resource. Thanks to this, more than 30 million active users continue to introduce further innovations and thus develop the environment, responding to market needs, and testing solutions in different conditions and locations around the world. For users, the absence of licence fees for sharing and the ability to use a communication protocol are also important advantages.
Despite open-source, freely available software, if you need to “seal” access to communicating networks or sensors, you can use cryptography and authentication mechanisms to authorise devices and encrypt data transmission. Importantly, if you need to, you will certainly find ready-made solutions in the extensive library of Arduino applications and modules.
Arduino Pro – why should you choose this solution?
Two revolutionary technologies that are causing quite a stir in the market for electronic components and data analysis software are becoming increasingly popular, namely the Internet of Things (IoT) and the Industry 4.0. The former will have a huge impact on our lives in general, while the latter will be encountered mainly in industrial companies. Both require data extracted from a network of sensors deployed at points of importance to the application and sophisticated algorithms, and more and more often they involve artificial intelligence (AI) technology to process, synthesise, analyse and draw conclusions based on information from sensors and other sources. For example, using the IoT technology, it would be possible to make and network sensors that continuously monitor river water levels and weather conditions along the entire section of river course that we are interested in, within or beyond the national territory. In this way, using additional AI, it would be possible not only to monitor water levels in the river, but also to announce flood alerts and prepare cities for droughts or floods. The same is possible with power grids – the data from the sensors would allow for easy acquisition of information about the load of the grid, its failures, scheduling of maintenance works, etc.
What is important is that until now, such applications could only be implemented by corporations with huge financial resources and access to often confidential technologies. With platforms such as Arduino Pro, people or companies with much less money at hand have also been given the opportunity to develop similar solutions, and additionally, thanks to the open source policy, they have access to a vast knowledge base and solutions created by users all around the world. Arduino’s advertising slogan says – No matter how large or small your business, Arduino Pro are ready to work with you to transform your business.
Arduino Pro – who is it addressed to?
Although the advertising slogan of Arduino Pro mentions businesses, thanks to the availability of components, software and documentation and the ease of use, Arduino Pro can be enjoyed by anyone who has an idea or needs to develop an application based on a network of connected sensors. You don’t have to immediately harness AI algorithms to analyse the data – in many situations, all you need is to present it to the operator or user in the right way. However, the greatest potential for using Arduino Pro will be appreciated by:
- companies that are transforming their product or service distribution network from its traditional form based on contracted quantities to IoT-assisted delivery-on-demand, depending on the buyer’s needs;
- manufacturing plants looking to improve production efficiency by monitoring, controlling and analysing stock levels, production lines, machinery and equipment, delivery lines etc;
- start-ups seeking to add data transmission to existing solutions;
- users of solutions proposed by Arduino who want to conduct field trials of applications they are developing or manufacture short series of products.
Arduino Pro was developed primarily to support professionals who drive changes in businesses and in the world around us. The platform covers all the essential aspects they may require: cloud for data acquisition and storage, hardware, software development environment for hardware platforms, connectivity and positioning solutions based on data from geolocation systems, user interface, data visualisations, algorithms and their connection to the already existing business management system. Importantly, in many situations this will be achieved without the need for expensive expert research and consulting, thanks to the open source policy under which Arduino Pro was developed and the possibility to use already proven solutions.
Arduino Pro hardware platform
As a base for more advanced solutions within the Arduino Pro platform, we recommend the Arduino Portenta H7 microcomputer board, powered by a dual-core STM32H747 processor. The two cores are Cortex M7 clocked at 480 MHz and Cortex M4 clocked at 240 MHz. Users accustomed to boards with AVR processors may find the high computing power unnecessary, but in some applications it may be justified by the average power consumption from the power supply.
Let us imagine that network of sensors for water levels and environmental conditions deployed along a river. Not every location will offer access to a stationary source of mains electricity. Nor will it always be possible to meet the technical requirements to get access to it. In practice, this means that the mains power is supplied to the nodes/gates of the sensor network, and the locations of such nodes/gates are planned according to the availability of the mains power source. The sensors themselves, on the other hand, are powered with batteries, rechargeable batteries or renewable energy sources. From the point of view of the sensor user, the less often the batteries need to be replaced, the better. The frequency of battery replacement is closely related to the durability of these power sources and the power consumption of the powered device. For this reason, the processor in an IoT sensor application typically operates in a sleep mode, in which very little energy is drawn from the power source. Then it periodically wakes up from the power-saving mode to acquire data and encode it into packages that can be understood by the receiver. Obviously, it will take much less time for a fast processor to perform such a task. Therefore, despite the huge computing power (but mainly thanks to it), the average power consumption of a fast processor is much lower than that of a slow one, clocked at the frequency of just a few MHz, although intuition might lead us to think otherwise.
Naturally, there’s also nothing stopping you from using the potential of the Arduino Portenta H7 also in applications where the processor is powered from a stationary power source and handles, for example, image processing and evaluation algorithms, signal conditioning and more.
Both processor cores of the Arduino Portenta H7 microcomputer share peripheral modules, by means of which they communicate with the environment and with each other. The microcomputer can execute programs:
- developed using Arduino Sketch – scripts executed under the control of the Mbed OS.
- native applications for Mbed OS.
- designed for embedded Micro Python/Java Script interpreter.
- implemented on the TensorFlow Lite platform.
The built-in wireless communication module provides simultaneous connectivity via Wi-Fi and Bluetooth.The Wi-Fi interface for the Arduino Pro platform can operate as an access point, a station or in a dual mode (access point/station) and supports data transfer rates of up to 65 Mbps. The Bluetooth interface works in Bluetooth 2.0 and BLE modes. The Arduino Portenta H7 microcomputer board is compatible with the Arduino MKR format, but features an 80-pin high-density connector.
Arduino MKR and Arduino Pro
Sensors and communication modules can be developed using products from the Arduino MKR family. These include boards equipped with processors with Cortex-M0+ core and a variety of communication interfaces, thanks to which the developed applications can be easily scaled. It is worth mentioning that these modules are well known and used also by designers and manufacturers of other devices which are not related to IoT.
Manufacturer’s description of modules from the Arduino MKR family also suggests a sort of a solution level at which they can be used. It seems that this suggestion is related to the computing power and the presence of chips that extend the functionality of the processor. For example, the MKR WIFI 1010 modules proposed at the Beginner level are equipped with Wi-Fi and Bluetooth LE interfaces, which have a rather short range – according to the manufacturer’s literature, they are suitable for indoor building automation applications. The board is based on the ATSAMD21 processor with a Cortex core and the NINA-W102 Wi-Fi/BLE communication module by u-blox. The MKR modules recommended at the Intermediate level allow you to create networks with a multi-kilometre (Sigfox, LoRa, Narrowband IoT) or even global (GSM) coverage. They are proposed for applications including agriculture, transportation, industry, environmental monitoring, smart cities, wearables and others.
The MKR Vidor 4000 board recommended at the Advanced level features a Cyclone 10LC016 FPGA in addition to the ATSAMD21 processor. Arduino recommends using this board for applications that require video and/or audio processing, so it is equipped with Wi-Fi/BLE interfaces to communicate primarily with a local PC, tablet or smartphone, which will most likely act as a user interface.
Arduino Nano 33
For professional applications, two base boards are suggested:Arduino Nano 33 BLE and Arduino Nano 33 BLE Sense. Their hardware has been shrewdly designed to be suitable for use in wearables or mounting on drones or autonomous vehicles. Thanks to the miniature dimensions of the boards (only 45 mm×18 mm), a ready-made, very powerful microcomputer can be fitted into a small space and use its computing power and interfaces to communicate with the environment. The manufacturer declares that these are the smallest products in its portfolio which have sufficient computing power to support AI-based software.
Both boards are powered by the ARM Cortex-M4 core clocked at 64 MHz, embedded in the nRF52840 radio chip. The Arduino Nano 33 BLE features a 9-axis IMU sensor, while the 33 BLE Sense additionally offers temperature, humidity, pressure, gesture, proximity and illumination sensors, and a built-in microphone. This is quite an impressive specification for such a small board, which thanks to that can be used not only for developing wearables, but also for sensor networks used in construction or scientific experiments that require communication within a small, local range.
Expansion modules for Arduino Portenta H7
One of the most advanced Arduino Portenta H7-compatible expansion modules is the Portenta Vision shield. It hosts a 324×324 pixel camera with very low power consumption. Thanks to its modest power requirements, this module can also be used in imaging applications that operate on continuous battery power. The CMOS image sensor offers very high sensitivity and enables gesture recognition, ambient light measurement, distance evaluation and object identification. The module is also equipped with two omnidirectional microphones with a digital interface. Images and sound can be recorded on a MicroSD card. Data from the module can be transmitted via the Ethernet or LoRa interface. Application development for the module is facilitated by the access to the OpenMV function library, available for the Python language.
The MKR product family includes an impressive selection of modules that extend the functionality of the base board. These include not only boards with additional electronic components, but also uncomplicated adapters for the supply of signals from the environment via standard industrial connectors. Among the expansion boards, it is worth mentioning numerous interface boards (MKR 485 – RS485, MKR CAN – CAN Bus, MKR ETH – Ethernet), a relay board, a motor driver with 4 DC outputs and 4 inputs for analogue sensors, a board with a MicroSD memory slot, which can store a huge amount of data locally, a board with environmental sensors, a board with an RGB diode array, a board with temperature sensors and with a 9-axis gyroscope/acceleration meter.
Software – Arduino IoT Cloud, Arduino IoT API, Arduino IDE Pro, Arduino CLI
Even the most advanced computer is useless if it doesn’t have the right software. Along with the hardware designed for developing IoT applications, the authors of Arduino Pro have also introduced appropriate software not only for creating applications, but also enabling secure data acquisition, storage and processing.
Arduino IoT Cloud
The Arduino IoT Cloud is an easy, safe way to incorporate remotely working sensors into a business management application or interface that allows millions of users to access data, for example, in the form of a map, graph or other graphical representation. Furthermore, the Arduino IoT Cloud allows addressing and access from the user interface to a specific location that requires inspection or maintenance for some reason. Access is possible from anywhere in the world where there is a connection to the cloud, whether via a PC or mobile device. What is important, those interested in developing such applications have access to thousands of lines of code which supports various types of sensors and actuators and is ready to be implemented in your own solutions.
Arduino IoT API
As mentioned, data collected from sensors can be presented in real-time in a graphical form or uploaded to a database. Numerous examples of how they can be used with Google Sheets, Amazon’s Alexa assistant and other software vendors are available. Using the Arduino IoT API, you can also develop your own unique applications. The cloud software can be trialled for free – full functionality is available when connecting a single MKR or Portent board. To connect more devices, you need to purchase a subscription. An important note – the free version works only with Arduino products, while the commercial version allows you to connect other microcomputers to the cloud, such as Raspberry Pi, ESP8266 modules, etc.
All communication with the cloud is encrypted using the SSL protocol. The boards from the Arduino Portenta and Arduino MKR families have built-in cryptographic units that support real-time communication using this protocol. In addition, they are equipped with an authentication mechanism supported by an additional chip containing an X.509-compliant key.
New items in the Arduino family are also available, namely SIM cards. With the use of these cards, it is possible to create sensor networks communicating with the cloud via base stations of mobile phone networks used in the roaming mode in over 100 countries.
Arduino IDE Pro
Software for edge devices can be developed using Arduino IDE Pro. This development environment inherits the features of the well-known Arduino IDE, so its users don’t have to change many habits and learn anew how to use it. The fastest way to start developing software for sensor networks is to use the Web editor. Today, this solution is appreciated by many software vendors. It offers the advantage of making the compiler somewhat independent of the computing power and the type of the operating system installed on your hardware. As users, we also receive regular updates and patches as well as access to the latest tutorials and examples. The source code is stored in a dedicated area on the server and is certainly better protected than on the laptop we carry around or even the desktop in the office. However, the disadvantage is that it requires constant access to the Internet, which is not always possible. This is why users are offered another recommendation, too, namely the IDE version, designed to be installed on a desktop computer. As you would expect from an open source software, it is available for Windows, Linux (64 bit) and Mac OS X.
For advanced users, there is an Arduino CLI command line interpreter available, which works in the console (command line) mode. It includes a compiler, allows to manage boards and function libraries, program devices, switch them on/off and to perform other actions. Arduino CLI can be used on platforms based on processors manufactured by ARM or Intel. Thanks to that, you can use it equally well on a PC and on a microcomputer like Raspberry Pi.