This shows you the differences between two versions of the page.
iothings:proiecte:2022:water_quality_system [2023/01/19 17:37] irina.negulescu created |
iothings:proiecte:2022:water_quality_system [2023/01/19 20:21] (current) irina.negulescu |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Water quality system | + | ====== Water Quality System ====== |
+ | Student: Negulescu Irina\\ | ||
+ | Video: \\ | ||
+ | Project archive: [[https://drive.google.com/file/d/1q_Shi4JajYmNpaBKS4bv55PSMIrnJTop/view?usp=share_link | Project Arhive]]\\ | ||
+ | Web app URL: [[https://water-quality-system-2a308.web.app/ | Water Quality System Web Application]]\\ | ||
+ | |||
+ | ======1. Objective ====== | ||
+ | You might think of water quality as a factual declaration of how healthy and suitable a waterbody is for serving its designated function, whether that goal is drainage, enjoyment, or both. The term "water quality" refers to a wide range of data measurements, or "key water health indicators," that take into account a waterbody's physical, chemical, and biological qualities based on its use as well as any direct or indirect effects on flora and fauna. It serves as the standard against which water management strategies are evaluated and their effectiveness is measured. The following factors are determined by the water quality and related water health indicators: | ||
+ | |||
+ | * **Health of ecosystems** | ||
+ | * **Extent of pollution** | ||
+ | * **Safety of human contact** | ||
+ | * **Condition of drinking water** | ||
+ | |||
+ | With the help of an ESP32 WiFi module, a TDS/EC sensor, and a temperature sensor, we will create an IoT-based drinking water quality monitoring system in this project. This entire system can be used to keep track of the water's electrical conductivity, also known as EC, and temperature. On an IoT server called Thingspeak, the EC & temperature values may be checked online from any location in the world. | ||
+ | |||
+ | === Why do we need to know our water quality === | ||
+ | |||
+ | <note> | ||
+ | * **Human Health**: The WHO reports that over 80% of diseases are due to drinking contaminated water. Effective water quality monitoring and management ensure that drinking water is safe and not contaminated. | ||
+ | * **Wildlife Protection**: Monitoring water quality helps in identifying pollutants and sources of pollution. That way, stressors to aquatic life can be identified and addressed. | ||
+ | * **Sustainability**: Waterbodies that have been impacted by heavy development and land usage may be negatively impacted and water quality left impaired. Monitoring and management can be an effective tool to increase water quality and maintain a healthy waterbody. | ||
+ | * **Public Health**: Good water monitoring and management ensure that water is clean and safe and that aquatic ecosystems are functioning optimally. It protects public health. | ||
+ | </note> | ||
+ | |||
+ | ======2. Hardware description & implementation ====== | ||
+ | |||
+ | == ESP32 Board == | ||
+ | * This is the main harware component of the project. It is used to aquire data from the senosrs and upload them via WiFi to the Real Time Database | ||
+ | |||
+ | {{ :iothings:proiecte:2022:lolin32.jpg?200 |}} | ||
+ | |||
+ | == Water resistant sensor DS18B20 == | ||
+ | * The DS18B20 uses a single wire to communicate with a central microcontroller and gives 9- to 12-bit (adjustable) temperature readings. | ||
+ | * Requires a 4.7kOhm resistor to connect to the GPIO port | ||
+ | |||
+ | {{ :iothings:proiecte:2022:ds18b20-pinout.png?200 |}} | ||
+ | |||
+ | == Arduino compatible analog TDS meter == | ||
+ | * The amount of soluble solids that are dissolved in one liter of water is measured by TDS (Total Dissolved Solids). Generally speaking, the more soluble solids that are dissolved in water and the higher the TDS value, the less pure the water is. As a result, one benchmark for measuring the water's cleanliness is the TDS value. | ||
+ | |||
+ | {{ :iothings:proiecte:2022:tds_meter.png? 200 |}} | ||
+ | |||
+ | ===== 2.1 Implementation: ===== | ||
+ | |||
+ | ==== Project Connection Diagram ==== | ||
+ | |||
+ | {{ :iothings:proiecte:2022:wqs_circuit_diag.jpg? 600 |}} | ||
+ | [https://how2electronics.com/iot-based-drinking-water-quality-monitoring-with-esp32/ | Image Source]] | ||
+ | |||
+ | ==== Real Life Connection ==== | ||
+ | |||
+ | {{ :iothings:proiecte:2022:wqs_real_life_board.jpeg? 600 |}} | ||
+ | |||
+ | ======3. Software description & implementation ====== | ||
+ | |||
+ | == Arduino IDE == | ||
+ | |||
+ | The IoT-based drinking water quality monitoring software with ESP32's source code was created using the Arduino IDE and C/C++. In this project, the code makes extensive use of the following libraries: | ||
+ | |||
+ | * Arduino: used for accessing ESP32's feature such as GPIO. Because the preprocessor takes care of it before compilation, we do not come across the Arduino.h file while creating the code for the Arduino board. However the ESP32 board is used in this project, hence it is necessary to include this library. | ||
+ | * OneWire: provides access to 1-wire temperature sensors, memory and other chips. | ||
+ | * DallasTemperature: Arduino Library for Dallas Temperature ICs. Supports DS18B20, DS18S20, DS1822, DS1820. Used to get temperature readings from DS18B20. | ||
+ | * Wire: This library allows you to communicate with I2C/TWI devices. This is a setup for the addition of an I2C LCD as an upgrade. | ||
+ | * WiFi: ESP32 library is used to enable the board's wifi. At least one access point must be registered with an SSID and password to accomplish this. | ||
+ | * Firebase_ESP_Client: Data updates to the real time database from the ESP32 are supported by this controlled, comprehensive, quick, and secure library. | ||
+ | * time: A header file that is part of the C Standard Library and contains declarations for time and date functions to offer standardized access to time/date manipulation and formatting. | ||
+ | |||
+ | == Visual Studio Code == | ||
+ | |||
+ | Used for this project's front-end development. Used coding languages include HTML, JavaScript, and CSS. | ||
+ | |||
+ | * Incorporates many more advanced language capabilities inherent to the language itself, including built-in debugging, formatting and code navigation. | ||
+ | * The inability to test-run the code when utilizing Firebase is a drawback. To see the code changes, the website must be deployed. Additionally, the lack of basic syntax verification and code compilation makes the work of development more difficult. | ||
+ | |||
+ | == Firebase Web Console == | ||
+ | |||
+ | Is a backend platform for creating Web, Android, and iOS applications. It provides a hosting platform, many APIs, a real-time database, and various methods of authentication. | ||
+ | |||
+ | **Why was Firebase chosen** | ||
+ | |||
+ | * It is simple and user friendly. No need for complicated configuration. | ||
+ | * The data is real-time, which means that every change will automatically update connected clients. | ||
+ | * Firebase offers simple control dashboard. | ||
+ | |||
+ | **Features used** | ||
+ | |||
+ | |||
+ | * Real-time Database − Firebase supports JSON data and all users connected to it receive live updates after every change. | ||
+ | * Authentication − We can use anonymous, password or different social authentications. | ||
+ | * Hosting − The applications can be deployed over secured connection to Firebase servers. | ||
+ | |||
+ | |||
+ | ======4. Challenges ====== | ||
+ | During the elaboration of this project I've encountered some challenges: | ||
+ | |||
+ | - **ESP32 / Wifi ADC GPIO limitation**: The GPIO ports linked to the ADC2 does not function when the board's WiFi is active. It was crucial to connect the TDS meter to an ADC in order to interpret the data. \\ **Solution**: discovered a GPIO port connected to ADC1 that functioned with WiFi turned on. | ||
+ | - **Firebase / JSON**: In order to rewrite the JavaScript template code to meet the objectives of the project, the majority of the debugging time in this project was devoted to understanding how it operated. \\ | ||
+ | |||
+ | ======5. Conclusions ====== | ||
+ | |||
+ | This project gives a brief overview of the challenges facing the IoT sector. These are only a few challenges faced in creating these little initiatives with enormous impact, such as choosing the best hardware, making sure all of its components work, and working out how to communicate the acquired data to a large user base. \\ | ||
+ | |||
+ | |||
+ | ======6. Resources ====== | ||
+ | |||
+ | === Arduino Code === | ||
+ | |||
+ | [[https://randomnerdtutorials.com/esp32-tds-water-quality-sensor/ TDS meter with ESP32 ]]\\ | ||
+ | [[https://randomnerdtutorials.com/esp32-ds18b20-temperature-arduino-ide/ DS18B20 with ESP32]] \\ | ||
+ | [[https://randomnerdtutorials.com/esp32-firebase-realtime-database/ From ESP32 to Firebase]] \\ | ||
+ | |||
+ | === Web app === | ||
+ | |||
+ | [[https://randomnerdtutorials.com/esp32-firebase-web-app/ Make your data available around the world]] \\ |