The objective of this assignment is to compare a variety of tools for creating interfaces that facilitate communication between the user and the ESP32 board, which is utilized for its integrated Bluetooth and Wi-Fi capabilities. We evaluated three tools for use with the ESP32: MIT App Inventor, Bluefruit Connect, and Blynk. These tools were assessed based on ease of use, communication protocols with the ESP32, customization level, mobile platform compatibility, and ideal use cases.
MIT App Inventor is a free, web-based platform developed by MIT to create Android mobile applications without traditional coding. It utilizes block-based programming, making it ideal for educational and rapid prototyping projects. MIT App Inventor communicates with the ESP32 via Bluetooth (SPP). In this configuration, the ESP32 acts as a Bluetooth serial server, sending and receiving data as character strings.
| Pros | Cons |
| No-code visual block programming | Android only |
| Free | Requires MIT AI2 Companion installation |
| Easy to learn | Bluetooth Classic not compatible with iOS |
| Ideal for educational projects | Not easily publishable in stores |
| Extensive online documentation | Limited for complex applications |
Bluefruit Connect is a free application developed by Adafruit Industries, available for both iOS and Android. Unlike App Inventor, it does not require interface development; it includes ready-to-use control modules such as button panels, joysticks, color pickers, and a serial terminal. It utilizes Bluetooth Low Energy (BLE) with Adafruit's proprietary UART protocol. The ESP32 implements a BLE UART service with specific Adafruit UUIDs, and the app transmits pre-defined control packets in the format: !B[button_number][state];.
| Pros | Cons |
| No interface development required | Fixed, non-customizable interface |
| Works on iOS and Android | Prototyping and testing only |
| BLE (Low energy consumption) | Requires Adafruit app installation |
| Multiple modules included | Uses Adafruit proprietary protocol |
| Ideal for rapid BLE testing | No business logic integration |
Blynk is an IoT platform that enables the creation of interactive dashboards on mobile apps (iOS/Android) and web interfaces to control and monitor hardware in real-time. Unlike the previous tools, Blynk operates via the Internet, allowing for ESP32 control from anywhere in the world. The ESP32 connects to the Blynk cloud servers using Wi-Fi and TCP/IP, where the mobile app and web dashboard communicate through the same cloud infrastructure. Data exchange between the app and the ESP32 is handled via "Virtual Pins" (e.g., V0, V1).
| Pros | Cons |
| Operates from anywhere (Internet) | Requires active Wi-Fi connection |
| Includes mobile and web dashboards | Free plan has device limits |
| Easy ESP32 configuration | Dependent on external servers (Blynk cloud) |
| Real-time data and graphing | Higher latency than BLE or Serial |
| Supports multiple widgets | Longer initial configuration than BT |
| Criterion | MIT App Inventor | Bluefruit Connect | Blynk |
| Type | Custom mobile app | Ready-to-use app | IoT Dashboard |
| Communication | Bluetooth Classic | BLE | Wi-Fi / Internet |
| iOS Compatible | No | Yes | Yes |
| Android Compatible | Yes | Yes | Yes |
| Internet Required | No | no | Yes |
| Customization | full | None (fixed) | Partial |
| Cost | Free | Free | Freemium |
| BT Power Consumption | High (BT Classic) | Low (BLE) | N/A (Wi-Fi) |
| Best for | Custom no-code apps | Rapid BLE testing | Remote IoT |
Each tool serves specific project requirements: