{"id":23625110,"url":"https://github.com/amith152003/hydrosmart--wireless-smart-water-level-indicator","last_synced_at":"2026-04-17T10:31:22.919Z","repository":{"id":268790968,"uuid":"905372126","full_name":"amith152003/Hydrosmart--Wireless-Smart-Water-Level-Indicator","owner":"amith152003","description":"Hydrosmart is a smart water level monitoring system that combines wireless communication, a touchscreen interface, and real-time data visualization. It uses an Arduino-based transmitter and receiver, with an ESP32 for WiFi connectivity and mobile app control to automate motor operations and monitor water levels efficiently.","archived":false,"fork":false,"pushed_at":"2024-12-18T23:47:13.000Z","size":9597,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-18T15:09:50.030Z","etag":null,"topics":["arduino","arduinonano","automation","diyproject","esp32","homeautomation","hydrosmart","iot","mobileappcontrol","motorcontrol","realtimedata","smartwatermonitoring","touchscreeninterface","waterlevelmonitoring","waterlevelsensor","watermanagement","wificonnectivity","wirelesscommunication"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amith152003.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-18T17:31:35.000Z","updated_at":"2024-12-23T22:31:07.000Z","dependencies_parsed_at":"2024-12-19T00:32:26.713Z","dependency_job_id":null,"html_url":"https://github.com/amith152003/Hydrosmart--Wireless-Smart-Water-Level-Indicator","commit_stats":null,"previous_names":["amith152003/hydrosmart--wireless-smart-water-level-indicator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amith152003/Hydrosmart--Wireless-Smart-Water-Level-Indicator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amith152003%2FHydrosmart--Wireless-Smart-Water-Level-Indicator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amith152003%2FHydrosmart--Wireless-Smart-Water-Level-Indicator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amith152003%2FHydrosmart--Wireless-Smart-Water-Level-Indicator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amith152003%2FHydrosmart--Wireless-Smart-Water-Level-Indicator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amith152003","download_url":"https://codeload.github.com/amith152003/Hydrosmart--Wireless-Smart-Water-Level-Indicator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amith152003%2FHydrosmart--Wireless-Smart-Water-Level-Indicator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31925294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T10:19:20.377Z","status":"ssl_error","status_checked_at":"2026-04-17T10:19:18.682Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduinonano","automation","diyproject","esp32","homeautomation","hydrosmart","iot","mobileappcontrol","motorcontrol","realtimedata","smartwatermonitoring","touchscreeninterface","waterlevelmonitoring","waterlevelsensor","watermanagement","wificonnectivity","wirelesscommunication"],"created_at":"2024-12-27T21:36:13.335Z","updated_at":"2026-04-17T10:31:22.898Z","avatar_url":"https://github.com/amith152003.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hydrosmart: Wireless Smart Water Level Indicator\n\n## Overview\nHydrosmart is an advanced water level monitoring system that leverages wireless communication, a touchscreen interface, and real-time data visualization to control and monitor water levels efficiently. The system consists of a transmitter and receiver module that interact seamlessly to automate water level management and motor control. Additionally, the system includes an ESP32 for WiFi connectivity, allowing remote control via a mobile app.\n\n---\n\n## Components Used\n| **Component**                       | **Description**                                                         |\n|-------------------------------------|-------------------------------------------------------------------------|\n| **Arduino Nano**                   | Microcontroller board for the transmitter.                              |\n| **Arduino Mega 2560**              | Microcontroller board for the receiver.                                |\n| **ESP32**                          | WiFi-enabled microcontroller for remote control via mobile app.        |\n| **nRF24L01 PA LNA Module**         | Long-range RF communication module for wireless data transfer.          |\n| **2.4” TFT Touch Screen Shield**   | Touch-enabled LCD display for user interface and visualization.         |\n| **ULN2003 IC**                     | Used for sensing water levels through analog inputs.                    |\n| **Relay Module**                   | Controls the motor based on the received water level data.              |\n\n---\n\n## Touch Screen Display\nBelow are some pictures of the touchscreen display used in the receiver. It shows the real-time water level and system status, providing a user-friendly interface for monitoring and control.\n\n![Touchscreen Display 1](images/photo_6165720059771730892_y.jpg)\n*The touchscreen showing the water level*\n\n![Touchscreen Display 2](images/photo_6165720059771730878_y.jpg)\n*Another view of the touchscreen with system's menu page.*\n\n---\n\n## Libraries Used\n### Transmitter\n| **Library**    | **Purpose**                                     |\n|----------------|-------------------------------------------------|\n| `SPI.h`        | Enables SPI communication for RF module.       |\n| `RF24.h`       | Handles RF communication with nRF24L01 module. |\n| `nRF24L01.h`   | Driver for nRF24L01 wireless module.           |\n\n### Receiver\n| **Library**          | **Purpose**                                                |\n|----------------------|------------------------------------------------------------|\n| `Adafruit_GFX.h`     | Provides graphics functions for TFT displays.              |\n| `Adafruit_TFTLCD.h`  | Hardware-specific library for the TFT LCD.                 |\n| `TouchScreen.h`      | Handles touchscreen input from the display.                |\n| `SPI.h`              | Enables SPI communication for RF module.                  |\n| `RF24.h`             | Handles RF communication with nRF24L01 module.            |\n| `nRF24L01.h`         | Driver for nRF24L01 wireless module.                       |\n\n### ESP32\n| **Library**    | **Purpose**                                     |\n|----------------|-------------------------------------------------|\n| `WiFi.h`       | Enables WiFi functionality for ESP32.          |\n\n---\n\n## Key Features\n\n### Transmitter\n- **RF Communication:** Utilizes nRF24L01 for wireless data transmission to the receiver.\n- **Water Level Sensing:** Employs ULN2003 IC to read water levels from sensors connected to analog pins.\n- **Dry Run Detection:** Identifies and transmits a dry-run condition to prevent motor damage.\n- **Compact Design:** Ensures low power consumption and efficient data transmission.\n\n### Receiver\n- **Graphical User Interface:** Features an interactive TFT touch screen with dynamic level display.\n- **Menu Navigation:** Multiple operational modes, such as Manual, Automatic, and Level Mode.\n- **Motor Control:** Automatically controls the motor based on water levels and mode settings.\n- **Real-Time Feedback:** Provides graphical updates and alerts for motor status and dry-run conditions.\n- **Color-Coded UI:** Uses a custom color scheme for enhanced visualization, configured using [RGB Color Picker](https://rgbcolorpicker.com/565).\n- **Bitmap Integration:** Displays icons generated from images converted using [Image2CPP](https://javl.github.io/image2cpp/).\n\n### ESP32\n- **WiFi Connectivity:** Connects to the mobile app via WiFi to control the system remotely.\n- **Mobile Control:** Allows for motor control (ON/OFF) through a simple web interface served by the ESP32.\n- **Sensor Data Monitoring:** Can send sensor data and motor status to the mobile app.\n\n---\n\n## System Setup\n### Hardware Connections\n| **Module**                   | **Connection Details**                                                                 |\n|-------------------------------|---------------------------------------------------------------------------------------|\n| **nRF24L01 PA LNA**          | Connected via SPI pins to Arduino Nano (MISO, MOSI, SCK, CE, CSN).                    |\n| **ULN2003 IC**               | Connected to sensors for water level input.                                           |\n| **TFT Touch Screen Shield**  | Mounted directly onto Arduino Mega for display and touch inputs.                      |\n| **Relay Module**             | Connected to motor control pins on the Arduino Mega.                                   |\n| **ESP32**                    | Connected via WiFi to communicate with the mobile app and control the system.         |\n\n### Power Supply\n- **Transmitter:** Powered by the Arduino Nano's onboard power.\n- **Receiver:** Powered by the Arduino Mega and TFT display's onboard power.\n- **ESP32:** Powered by a separate 5V supply or through USB.\n\n---\n\n## Installation\n1. **Libraries:** Install the required libraries listed above in your Arduino IDE.\n2. **Transmitter Code:** Upload the transmitter code to the Arduino Nano connected to the nRF24L01 module and sensors.\n3. **Receiver Code:** Upload the receiver code to the Arduino Mega with the TFT display and nRF24L01 module.\n4. **Power On:** Ensure all connections are secure and power both modules.\n5. **Calibrate Touch Screen:** (Optional) Perform calibration for precise touch functionality.\n\n---\n\n## Project Features\n- **Interactive Display:** Easy-to-use touch interface with menu-driven navigation.\n- **Wireless Monitoring:** Reliable long-range communication using nRF24L01 PA LNA modules.\n- **Automated Control:** Intelligent motor activation based on water levels and modes.\n- **Error Detection:** Alerts for dry-run and other anomalies to ensure system reliability.\n- **Customizable UI:** Vibrant and responsive UI with intuitive graphical feedback.\n\n---\n\n## Troubleshooting\n\n### Common Issues and Solutions\n\n- **No Communication Between Transmitter and Receiver:**\n  - Ensure the nRF24L01 modules are correctly connected to both the Arduino Nano (transmitter) and Arduino Mega (receiver).\n  - Verify the power supply to the nRF24L01 modules. If the modules are not receiving sufficient power, they may not function properly.\n  - Check the wiring of the SPI pins (MISO, MOSI, SCK, CE, CSN) for any loose connections or incorrect pin assignments.\n  - Ensure the correct addresses are used for communication in the code (both transmitter and receiver should match).\n\n- **Water Level Data Not Displaying Correctly:**\n  - Check the ULN2003 IC connections to ensure the water level sensors are providing accurate input to the Arduino Nano.\n  - Verify the sensor calibration and check for any dirt or obstructions affecting the sensor's operation.\n\n- **Touchscreen Not Responding:**\n  - Recalibrate the touchscreen using the `TouchScreen.h` library if the touch input is inaccurate or unresponsive.\n  - Ensure the touchscreen wiring is correct, especially the connections for the `X` and `Y` pins.\n\n- **Motor Not Turning On/Off Correctly:**\n  - Verify the relay module is connected to the correct pins on the Arduino Mega.\n  - Ensure the motor control logic in the receiver code is correctly processing the water level data and triggering the relay.\n\n---\n\n## Future Enhancements\n- Addition of voice command functionality.\n- Improved power efficiency for longer operational lifespan.\n\n---\n\n## Acknowledgments\n- **Color Configuration Tool:** [RGB Color Picker](https://rgbcolorpicker.com/565)\n- **Bitmap Conversion Tool:** [Image2CPP](https://javl.github.io/image2cpp/)\n- **Libraries Used:** Special thanks to the authors of the libraries used, including `SPI.h`, `RF24.h`, `nRF24L01.h`, `Adafruit_GFX.h`, `Adafruit_TFTLCD.h`, and `TouchScreen.h`, for providing such useful resources.\n\n---\n\n## Contributors\n- **Amith Mathew Titus**\n- **Mohamed Afran**\n\n---\n\n## License\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## References\n- Arduino: [https://www.arduino.cc](https://www.arduino.cc)\n- nRF24L01 Module Documentation: [https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF24L01](https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF24L01)\n- Adafruit Libraries: [https://github.com/adafruit/Adafruit_GFX](https://github.com/adafruit/Adafruit_GFX), [https://github.com/adafruit/TFTLCD-Library](https://github.com/adafruit/TFTLCD-Library)\n- ULN2003 IC Datasheet: [https://www.tescaglobal.com/product-detail/ULN2003A](https://www.tescaglobal.com/product-detail/ULN2003A)\n\n\n---\n\n**Project Status**: Completed ✅\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famith152003%2Fhydrosmart--wireless-smart-water-level-indicator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famith152003%2Fhydrosmart--wireless-smart-water-level-indicator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famith152003%2Fhydrosmart--wireless-smart-water-level-indicator/lists"}