Marati - MQTT Dashboard

Integrate IoT with Machine Learning with Ease

Welcome to Marati

Marati is an open-source MQTT dashboard designed to simplify the integration of IoT devices with machine learning models. This Android application is tailored to empower IoT developers, allowing seamless integration of devices with artificial intelligence capabilities. With Marati, users can effortlessly create platforms for their IoT projects, incorporating various monitoring and control components, such as line graphs, buttons, text, and gauges.

Key Features:

The application allows users to connect their IoT devices independently to an MQTT broker. The data transmitted by IoT devices is then captured and processed using machine learning models. The entire system architecture is composed of a frontend developed in Android using Kotlin, two backend applications developed in Nest.js (JavaScript) and FastApi (Python), and a PostgreSQL database. Communication between systems is facilitated via HTTP, except for the connection between the frontend and IoT devices, which employs the MQTT protocol.

System Design and Flow

Design and Flow of the System

As illustrated in Figure above, the application system comprises frontend, backend, and a database. The frontend, based on Android and implemented in Kotlin, interacts with two backend applications—Nest.js (JavaScript) and FastApi (Python). The PostgreSQL database serves as the storage backend. Users can independently program their IoT devices to connect to an MQTT broker, enabling the application to capture and process IoT data using machine learning models. The systems within the application communicate with each other using HTTP protocols, except for the connection between the frontend and IoT devices, which utilizes MQTT.