← Back to Projects

IoT Control Apps

Developed embedded C/C++ software for sensors and measurement devices, along with a corresponding mobile application for remote data monitoring and wireless control.

IoT Control Apps

Technologies Used

C/C++
ESP32
Android Studio
Java

This page covers the development of two separate but technologically similar projects centered around embedded systems and remote control. The core work involved writing C/C++ firmware for ESP32 microcontrollers to interface with specific sensors and creating corresponding mobile applications for wireless data monitoring, device control, and experiment management via a wireless serial connection.

Shared Mobile App Component: Custom Serial Console

A key reusable component across both mobile applications is a custom-built serial console. This tool provides a direct interface to the ESP32 devices, allowing for low-level command execution, real-time raw data monitoring, and efficient debugging during development and operation.

Custom serial console in the mobile app
The reusable serial console for debugging and direct device communication.

Project 1: High-Precision Encoder Monitoring System

This system was designed to measure very small changes in distance over long periods using a rotary encoder connected to an ESP32. The paired mobile app allows for complete wireless control, enabling users to start, stop, and schedule measurement experiments remotely and visualize the resulting data.

Encoder app main view
Main control view for the encoder system.
Encoder app scheduling view
Interface for scheduling automated measurement experiments.
Encoder app monitoring view
Data visualization screen showing encoder changes over time.

Encoder Device Firmware (C/C++)

The device-side C/C++ code handles the initialization of the ESP32 and encoder, manages the wireless serial connection, and packages sensor data for efficient transmission to the mobile app.

C++ code for device setup
Firmware snippet showing the setup routine for the encoder device.
C++ code for wireless data transfer
Code segment illustrating the wireless data transmission protocol.

Project 2: Wireless Ambient Sensor Suite

The second project involved a suite of ambient sensors (e.g., temperature) connected to an ESP32. Its mobile application provides an interface to configure the sensors, set monitoring intervals, and view historical data in a graphical format, allowing users to track environmental changes over a selected period.

Ambient sensors app main view
The main interface for controlling the ambient sensors.
Ambient sensors app graph view
A graph visualizing temperature changes over a selected time range.
Ambient sensors app adjustments view
The settings screen for adjusting device parameters.

Key Features Across Projects:

  • Embedded C/C++ Development: Firmware written for ESP32 to manage sensors and communication.
  • Wireless Serial Control: Seamless device control and data transfer via a wireless link.
  • Custom Mobile Applications: Bespoke apps providing intuitive UIs for each system.
  • Remote Data Visualization: Real-time and historical data presented in graphs and monitors.
  • Experiment Automation: Advanced features like measurement scheduling for unattended operation.

Gallery

IoT Control Apps image 1
IoT Control Apps image 2
IoT Control Apps image 3
IoT Control Apps image 4
IoT Control Apps image 5
IoT Control Apps image 6
IoT Control Apps image 7
IoT Control Apps image 8
IoT Control Apps image 9