If you're manufacturing connected devices, choosing the right hardware and software foundation for your product is essential.
In this article, we'll explain how making the right match can simplify and speed up the process of getting your device up and running with essential IoT features.
Choosing hardware for an IoT product
When choosing the MCU (Microcontroller Unit) for their connected devices, businesses apply several criteria to ensure the best performance and efficiency, such as processing power, memory, and connectivity options, that must align with the specific requirements of the device's application.
The chip should support the connectivity options, like Wi-Fi, Bluetooth, GSM, Ethernet, Zigbee, or LoRaWAN, relevant to your use case to ensure reliable communication with other IoT devices or the cloud. Additionally, businesses consider the cost and availability of the selected MCU, the level of support and documentation provided by the manufacturer or vendor as well as compatibility with IoT software platforms.
IoT platforms in turn provide different levels of support for different devices. Blynk ioT platform works with over 400 MCUs allowing setting up data exchange with the cloud for further device management. However, if you are looking to minimize any custom work done on your side, you should really consider using one of the fully supported hardware models listed here. The main differentiation of fully supported devices in Blynk IoT is the level of integration and ultimate ease of implementation.
MCUs fully supported by Blynk IoT
Fully supported devices, such as ESP32 by Espressif, are pre-configured to work seamlessly with the Blynk IoT platform. This means that developers can easily connect their devices to the platform and take advantage of all the cool features of the Blynk.Edgent library, such as dynamic provisioning over WiFi Access Point or BLE, OTA firmware updates, or automation and notifications, without the need for extensive coding. This level of integration and ease of use can save developers significant time and effort spent on developing IOT essentials and let them focus on their embedded firmware application building their connected product more quickly.
On the other hand, not fully supported devices may require more configuration and coding to work with the Blynk IoT platform. While this approach may offer more flexibility and customization options, it can also be more time-consuming and complex, especially for developers who have limited experience with creating IoT software and firmware.
Overall, for developers who are looking for a fast and easy way to connect their devices to the cloud and take advantage of powerful IoT features, fully-supported devices like the ESP32 may be the best choice.
Today we will focus on ESP32 - one of the most popular and affordable SOCs used with Blynk platform.
ESP32 is a low-cost microcontroller with Wi-Fi and Bluetooth capabilities, the price starting as low as under $2 if purchased at scale.
Engineered for mobile devices, wearable electronics, and IoT applications, ESP32 achieves ultra-low power consumption. With Wi-Fi, it can connect to the internet or create its own wireless network, making it ideal for IoT and home automation projects.
ESP32 also supports both Bluetooth classic and Bluetooth Low Energy (BLE). It has a dual-core system and a rich input/output interface that supports a wide variety of peripherals like capacitive touch, ADCs, DACs, UART, SPI, I2C, PWM, and more.
ESP32 can perform as a complete standalone system or as a slave device to a host MCU, reducing communication stack overhead on the main application processor. ESP32 can interface with other systems to provide Wi-Fi and Bluetooth functionality through its SPI / SDIO or I2C / UART interfaces.
It is compatible with the Arduino programming language and MicroPython firmware. Those that are already familiar with programming the Arduino board, you’ll be happy to know that you can program the ESP32 in the Arduino style.
And a huge bonus is that ESP32 is fully supported by Blynk, which means taking advantage of the most powerful features provided by Blynk.Edgent requires minimal effort. Unsurprisingly, this chip is the most popular WiFi chip among Blynk's customers.
Configuring ESP32 to work with Blynk
What kind of effort exactly? How does it look in practice? Further in this article, we will walk you through the steps needed to set up some of the Blynk’s core features.
Getting ESP32 online
Install Blynk Library and use the included Edgent code example. This will unlock main IoT features on your device: device WiFi provisioning, connection management, OTA, and Blynk API.
Activating your device
Follow the steps in Blynk apps for iOS or Android that will guide you through connecting ESP32 to your WiFi network. The same flow will be taken by the end-customers that will activate your connected product. Once activated, the device will be connected to Blynk.Cloud and assigned to the user.
This feature is crucial for the development of connected hardware at scale as you will use the same firmware binary for every device. Hardcoding WiFi credentials and unique identifiers to every device is unnecessary.
Performing OTA firmware updates
Once the device gets online, it can be updated over the air. Blynk.Console offers an easy-to-use interface to upload a firmware binary file and send it to all devices remotely without having to physically connect to the device. Segment your devices and schedule the update to be sent at a specific time ensuring that your devices are always up-to-date with the latest features. The devices will then automatically install the new firmware and reboot to apply the changes, and you can monitor the whole progress remotely in Blynk.Console.
At this stage, your device is fully ready for further development of your own embedded application.
Connecting the dots
The next step is to identify data endpoints that you want to track on your device. This can include things like sensor readings, button presses, or other device-specific data. You will then need to configure a similar list of Datastreams in Blynk.Console. They will be used to store and exchange this data.
Configuring the template
It’s never reasonable to configure thousands of devices of the same type manually. That’s what templates are for. Templates store data models, GPIOs, firmware code, web and mobile UI, etc., and are indispensable for deploying commercial products. Once you have your template ready, only the WiFi credentials and unique identifiers of every device are needed, you have that covered with provisioning. Later, if you would need to introduce changes to all these devices, instead of editing each of them you could just edit a Device Template and all devices will be updated.
Building an app UI
Blynk’s native iOS and Android mobile apps are most often used as client-facing UI to remotely control the connected devices and visualize data from them in the dashboard. While Blynk.Console is more of an admin interface, where all the templates, datastreams, devices, and users are set up and managed. Mobile Dashboard is built from Widgets - modular UI elements which can be positioned on the canvas.
Each widget performs a specific input/output function when communicating with your hardware or end-user. We’ve got everything from simple buttons and sliders to cool charts, image gallery widget, map widget, and even a video streaming one. The mobile dashboard can only be configured in the Blynk app - while designing in a ‘what you see is what you get’ environment you can literally see through your client's eyes and make sure your app works exactly as planned.
Going beyond basics with firmware API
Use firmware API to exchange data between apps and devices and work with widgets. Blynk firmware API is an extensive set of commands tightly integrated with Cloud and mobile apps. It can be used to control devices, change widgets data and properties from a device, log events, etc.
Setting Up Alerts, Notifications, Automations
There are 2 ways of triggering notifications in Blynk. If an alert is an essential part of your product experience, you can use Firmware API to create an Event that will send a notification to the user. Notifications can be delivered over email, SMS, or in-app/push notification.
With no coding at all you can make Blynk.Cloud send notifications by using Automations. Automations is a user-friendly feature of Blynk apps and Blynk.Console which allows anyone to create a sequence of actions triggered by: the time of the day, the state of a device, sunset time, etc.
The Bottom Line
With most leading IoT platforms, you will need to invest in your own development of complex features like OTA or dynamic provisioning if you are looking for something more advanced than just connectivity and cloud storage for your product. Blynk platform, in combination with supported hardware, offers such functionality out of the box.
If you’ve decided to go with a fully supported MCU like ESP32, the ramp-up time from zero to MVP and finally to production grade device, will shorten dramatically. You can start prototyping self-serve with Blynk PRO, or go straight to Business Plan and launch your product much faster with the help of our dedicated launch manager.
In conclusion, if you're a manufacturer of connected devices, using fully supported MCUs like ESP32 with Blynk can simplify your business tasks significantly. With dynamic provisioning, OTA updates, event tracking, automation, and notifications available on the Blynk platform, building powerful and scalable IoT solutions takes weeks instead of years.