* Timespan: June 2023
* Description:
- Supervised university project, with technical production.
- Deployment and monitoring of a set of systems retrieving and retransmitting data over IP networks using the MQTT protocol.
* Improvement paths:
- (No specific observations.)
This project consisted in configuring and deploying a data processing chain including IoT systems.
This data processing chain required to :
- Retransmit data generated/recovered from IoT objects to the relevant IP networks.
- Visualize the recovered data using graphical interfaces.
- Monitor systems and services.
The technological environment implemented was as follows :
- An Arduino system collects temperature and humidity data. This data is transmitted to a Raspberry Pi.
- The Raspberry Pi receives data from the Arduino and retransmits it to a Mosquitto server over an IP network using the MQTT protocol, which is suitable for low-power, low-bandwidth devices.
- The Mosquitto server acts as an "MQTT broker": it retrieves the information received via MQTT and redistributes it to the systems having subscribed to its MQTT channels, over IP networks and according to the specified MQTT channels.
- A server that subscribed to the Mosquitto server's MQTT channels retrieves the redistributed data and stores it in a SQL database.
The data is then displayed in a web interface using Apache and Grafana.
An alternative has also been implemented: data is stored in text files with a CSV format and visualized on graphs produced by Gnuplot, which are then served on a website using Apache.
Data is then saved in the SQL database and in CSV files at the same time. - Finally, another server will monitor the systems and services operating in this technological space using Icinga, and provide a display of this monitoring in a web interface using Apache and the Icinga web extension.
I've somehow lost the Arduino program, the Raspberry Pi configuration and the router configuration (Debian), but the behaviors of these components are quite simple to replicate and will be adapted according to the needs associated with the deployment of a similar IoT chain.
Instructions for setting up a similar data processing chain have been written and provided below, including the required scripts and files (supplied as PDF documents).
Documents and deliverables