Software

Source code is available on it's Gitlab repository.

Overview

As much as the efficiency of the hardware contributes to the accessibility of Monitro, a large portion of it can be attributed to the software system. As the ESP32 chip transfers live data from Monitro into the client devices through Wi-fi connection, the app substitutes the numbers into our equation model. Based on the Nitration Concentration level derived from the RGB color sensors, the software displays a visual representation of the result under 3 categories: Safe(Green), Warning(Yellow), and Danger(Red). In addition, the app receives meteorological data from the national weather service, displaying regional temperature and sunlight through GPS to provide necessary data for forecasting algal blooms.

Interface

The Monitro app aims for simplicity and straightforwardness. Users can directly monitor their exposure to the dangers of algal bloom based on the three data points on the app tailored to their GPS location. Especially because many of our target users concerned about eutrophication may not have expertise over the nitrate concentration values measured in unfamiliar units (e.g. mM), we decided to represent them in Green, Yellow, and Red — the colors commonly indicating Safe, Warning, and Danger, respectively. Adhering to the nitrate standard the Korean Ministry of Environment provided, the app is programmed to display the appropriate colors represented by the corresponding measurements.

Table 1. Colors and Their Corresponding Nitrate Concentration Ranges

Fig.1. Monitro App Interface

Process/Algorithm

To calculate the nitrate concentration level, our software interacts with the Monitro hardware and the weather service API and receives data. After linking the devices and updating the location with the Arduino board’s IP address and Port, the users can press the “Measure” button on the User Interface to send a data request to the Arduino board. Afterward, Monitro will respond with a string of 9 digits, which is divided into three groups of three digits (Each three digits represent from 0 to 255 of each RGB color). The app will then substitute the received data into equations of each color value, in which the RGB values are translated to nitrate concentration in mM. Besides, users can receive temperature and sunlight information by refreshing the interface with the “Weather Condition” button, which updates the values for the specific IP address issued to the location.

Fig.2. The Relation between RGB Value and Nitrate Concentration

The figure above presents the relationship between each RGB value with nitrate concentration through the line of best fit. The respective linear functions are as follows:
Red: y=12.167x+64.056 (x: Nitrate (mM), y: RGB value)
Green: y=-10.729x+215.18
Blue: y=-11.495x+294.13

Based on the nitrate value derived from these figures, our software sorts measurements into three categories.

Fig.3. Monitro App Interface

Conclusion

As demonstrated, our software focuses on both the accessibility and accuracy of Monitro to provide the most relevant information using numerical and graphical data analysis. Furthermore, by including meteorological data in addition to nitrate concentration, we anticipate it would enhance the experience for its users, serving a dual goal beyond just monitoring eutrophication. Out of the many dissolved ion monitoring systems in the world, Monitro software showcases itself as a unique eutrophication monitor with its reliable data analysis system.