This project demonstrates a complete end-to-end IoT system, from low-level hardware programming to a cloud-based data pipeline and a user-facing mobile application. The core objective was to create a smart, connected scale model of a rainwater collection system that could be monitored and controlled from anywhere.
The physical model, built with electronic devices, is managed by a microcontroller running C/C++ code. It leverages GPS and mobile internet for connectivity, allowing it to transmit real-time data and receive commands remotely.
System Architecture & Data Flow
The device sends telemetry data, including its location and operational status, over the mobile network. A Cloudflare proxy acts as a secure and scalable gateway, receiving this data and packaging it for storage in a MongoDB database. The mobile app then queries the database to display real-time information to the user.
Remote Monitoring & Control App
A mobile application, built with React Native, serves as the central command interface. Users can remotely monitor the system's GPS location, track public interaction metrics, and control the state of the water valves, toggling the flow on or off.
Embedded C/C++ Connectivity Code
The device's firmware, written in C/C++, handles all hardware interactions and network communications. This includes initializing the mobile internet module, acquiring GPS coordinates, and formatting and sending data via HTTP requests to the cloud endpoint.
Key Features:
- Full-Stack IoT Solution: Manages everything from hardware to the mobile UI.
- Embedded C/C++ Programming: Direct control over device hardware, sensors, and actuators.
- Cloud-Native Backend: Utilizes a Cloudflare proxy and MongoDB for a scalable, serverless data pipeline.
- Real-Time Connectivity: Employs GPS for location tracking and mobile internet for data transmission.
- Cross-Platform Mobile App: Built with React Native for remote control and monitoring on any device.








