- Group Assignment
- Compare as many tool options as possible.
- Document your work on the group work page and reflect on your individual page what you learned.
- Individual Assignment
- Write an application for the embedded board that you made. that interfaces a user with an input and/or output device(s)
Week 14. Interface and application programming
Group Assignment – Interface and Application Programming
Objective
This week's group assignment focused on comparing three different tools used to create user interfaces for interacting with embedded systems. The aim was to evaluate each tool’s strengths, weaknesses, and applicability in educational or prototyping contexts.
Tools Compared
Tool | Type | Strengths | Limitations | Device Used |
---|---|---|---|---|
MIT App Inventor | Visual (Mobile) | Easy to learn, ideal for beginners, fast prototyping | Limited design flexibility and professional polish | ESP32 |
Blynk | IoT Dashboard | Widget-based, fast connection, supports sensors & GPIO | Requires internet (for cloud), limitations in free tier | ESP32 |
Flutter | Cross-platform App | Beautiful, customizable UI, full control | Higher complexity, requires Dart and setup | ESP32 |
Key Findings
- MIT App Inventor is perfect for quick prototyping, especially for educational use. It allowed us to build a Bluetooth interface quickly and with minimal coding.
- Blynk is highly effective for IoT applications. It has ready-made widgets for buttons, sliders, and sensor displays, making it easy to create functional interfaces without writing much code.
- Flutter offers the highest degree of control and design quality, suitable for creating professional-grade apps. However, it has a steep learning curve and requires prior programming experience.
Conclusion
Each tool serves a specific purpose. App Inventor is best for rapid, low-complexity projects. Blynk is optimal for connected IoT dashboards. Flutter is powerful for developers who require fully customized, scalable apps. As a group, we understood that choosing the right interface tool depends on the user’s experience level, the project’s scope, and the desired user experience.
Individual Assignment – Interface and Application Programming
Objective
The goal of this project was to develop a mobile application that communicates with an ESP32 board via Bluetooth. This interface allows the user to control a servo motor, acting as a mechanical actuator that could perform movements like opening a gate or controlling an animatronic element.
Mobile Application – App Inventor
The mobile interface was created using MIT App Inventor. It includes:
- A connection status indicator (connected/disconnected)
- A button to send the activation signal
- The FABLAB Indoamérica logo
- User info and reference to Fab Academy 2025

Programming with App Inventor
The app logic was implemented using visual blocks that:
- List paired Bluetooth devices
- Connect to the selected device
- Update the label to show "CONNECTED" with a green color
- Send the character
'1'
when the user presses the button

ESP32 Code
The ESP32 board runs Arduino code that:
- Initializes the servo motor on pin 4
- Starts Bluetooth communication
- Listens for incoming characters from the app
- Moves the servo to 180° and returns to 0° with timed delays

BluetoothSerial
and ESP32Servo
libraries to control the motor.Workflow Summary
- The user opens the app and connects via Bluetooth
- Pressing the button sends
'1'
to the ESP32 - The ESP32 receives the signal and activates the servo motor
- The movement is repeated with delays and can be triggered again
Conclusion
This assignment demonstrated how to connect user interfaces with embedded systems through Bluetooth. By using App Inventor, the mobile UI was easy to build and test, while the ESP32's behavior showed how simple commands can activate precise physical movements. This project builds a foundation for more interactive systems in the future.
Week 14: Conclusion
Week 14 provided a practical understanding of how to build user interfaces that interact with embedded systems. Through the group comparison and the individual project, we explored key tools like App Inventor, Blynk, and Flutter. This experience reinforced the importance of selecting the right platform based on complexity, usability, and project needs. It was a key step in connecting programming, design, and physical computing.
Resource Download
Click the button below to access and download all available materials.
Download Resources