{"id":23744531,"url":"https://github.com/rmardonesa/growhub","last_synced_at":"2026-03-06T17:30:22.930Z","repository":{"id":270347342,"uuid":"909962260","full_name":"rmardonesa/GrowHub","owner":"rmardonesa","description":"RaspberryPi MQTT broker + Flask to cloud JSON microservice","archived":false,"fork":false,"pushed_at":"2024-12-30T12:54:20.000Z","size":8600,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-30T13:59:24.515Z","etag":null,"topics":["bash-script","cloud-endpoints","conda-environment","esp8266mod","firebase-firestore","flask-server","iot","json-data","microservice","mongodb-atlas","mqtt-protocol","raspberry-pi"],"latest_commit_sha":null,"homepage":"https://github.com/GrowHub-IoT","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rmardonesa.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-30T06:50:44.000Z","updated_at":"2024-12-30T12:54:24.000Z","dependencies_parsed_at":"2024-12-30T14:09:38.523Z","dependency_job_id":null,"html_url":"https://github.com/rmardonesa/GrowHub","commit_stats":null,"previous_names":["rmardonesa/growhub"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmardonesa%2FGrowHub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmardonesa%2FGrowHub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmardonesa%2FGrowHub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmardonesa%2FGrowHub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rmardonesa","download_url":"https://codeload.github.com/rmardonesa/GrowHub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239895861,"owners_count":19714912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bash-script","cloud-endpoints","conda-environment","esp8266mod","firebase-firestore","flask-server","iot","json-data","microservice","mongodb-atlas","mqtt-protocol","raspberry-pi"],"created_at":"2024-12-31T12:24:07.683Z","updated_at":"2026-03-06T17:30:22.824Z","avatar_url":"https://github.com/rmardonesa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/GrowHub-IoT/GrowHub/blob/master/docs/assets/GrowHub_Logo.png?raw=true\" alt=\"Logo GrowHub\" width=\"245\"\u003e\n  \u003cimg src=\"https://github.com/GrowHub-IoT/GrowHub/blob/master/docs/assets/BSD-3_License.png?raw=true\" alt=\"BSD3 License\" width=\"185\"\u003e\n  \u003cimg src=\"https://github.com/GrowHub-IoT/GrowHub/blob/master/docs/assets/OSI.png?raw=true\" alt=\"OSI\" width=\"200\"\u003e\n\u003c/p\u003e\n\n\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1\" alt=\"CC Logo\" width=\"40\" style=\"margin-right: 15px;\"\u003e\n  \u003cimg src=\"https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1\" alt=\"CC BY Logo\" width=\"40\" style=\"margin-right: 15px;\"\u003e\n  \u003cimg src=\"https://mirrors.creativecommons.org/presskit/icons/nc.svg?ref=chooser-v1\" alt=\"CC NC Logo\" width=\"40\" style=\"margin-right: 15px;\"\u003e\n  \u003cimg src=\"https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1\" alt=\"CC SA Logo\" width=\"40\"\u003e\n  \u003cbr\u003e\n  \u003ci\u003eThe \u003cb\u003eGrowHub IoT Documentation\u003c/b\u003e is licensed under Creative Commons\n  \u003ca href=\"https://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1\"\u003eCC BY-NC-SA 4.0\u003c/a\u003e.\u003c/i\u003e\n\u003c/p\u003e\n\n# GrowHub IoT Integrated System\n![Raspberry Pi](https://img.shields.io/badge/Raspberry%20Pi-A22846?style=for-the-badge\u0026logo=Raspberry%20Pi\u0026logoColor=white)\n![MQTT](https://img.shields.io/badge/MQTT-54039A?style=for-the-badge\u0026logo=rss\u0026logoColor=white)\n![Python](https://img.shields.io/badge/Python-FFD43B?style=for-the-badge\u0026logo=python\u0026logoColor=blue)\n![Conda](https://img.shields.io/badge/conda-342B029.svg?\u0026style=for-the-badge\u0026logo=anaconda\u0026logoColor=white)\n![Flask](https://img.shields.io/badge/Flask-000000?style=for-the-badge\u0026logo=flask\u0026logoColor=white)\n![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white)\n![Firestore](https://img.shields.io/badge/firebase-ffca28?style=for-the-badge\u0026logo=firebase\u0026logoColor=black)\n![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black)\n![Bash](https://img.shields.io/badge/Bash-121011?style=for-the-badge\u0026logo=gnu-bash\u0026logoColor=white)\n![AWS](https://img.shields.io/badge/AWS-FF9900?style=for-the-badge\u0026logo=amazonaws\u0026logoColor=white)\n![GCP](https://img.shields.io/badge/GCP-4285F4?style=for-the-badge\u0026logo=google-cloud\u0026logoColor=white)\n![SQLite](https://img.shields.io/badge/Sqlite-003B57?style=for-the-badge\u0026logo=sqlite\u0026logoColor=white)\n![HTML](https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge\u0026logo=html5\u0026logoColor=white)\n![CSS](https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge\u0026logo=css3\u0026logoColor=white)\n![JavaScript](https://img.shields.io/badge/JavaScript-323330?style=for-the-badge\u0026logo=javascript\u0026logoColor=F7DF1E)\n![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)\n![Arduino](https://img.shields.io/badge/Arduino_IDE-00979D?style=for-the-badge\u0026logo=arduino\u0026logoColor=white)\n![ESP8266](https://img.shields.io/badge/espressif-E7352C?style=for-the-badge\u0026logo=espressif\u0026logoColor=white)\n![C++](https://img.shields.io/badge/C%2B%2B-00599C?style=for-the-badge\u0026logo=c%2B%2B\u0026logoColor=white)\n![JSON](https://img.shields.io/badge/json-5E5C5C?style=for-the-badge\u0026logo=json\u0026logoColor=white)\n![Pandas](https://img.shields.io/badge/Pandas-2C2D72?style=for-the-badge\u0026logo=pandas\u0026logoColor=white)\n![Plotly](https://img.shields.io/badge/Plotly-239120?style=for-the-badge\u0026logo=plotly\u0026logoColor=white)\n\n\nGrowHub IoT System is an advanced platform for real-time monitoring and management of hydroponic crops. It captures and processes four critical variables—temperature, pH, Total Dissolved Solids (TDS), and Electrical Conductivity (EC)—essential for maintaining optimal growing conditions. The system integrates data mining techniques to transform raw analog signals from sensors into structured JSON objects, ready for analysis and decision-making.\n\nSensor readings are dynamically processed in C++ and encapsulated into JSON objects, transmitted via MQTT every 4–8 seconds. These objects undergo serialization, deserialization, cleaning, and standardization to ensure data consistency and reliability. A Python microservice, built with Flask, manages the data pipeline, storing the cleaned JSON objects into NoSQL databases hosted on AWS (Mongo) and GCP (Firebase).\n\nGrowHub's modular architecture and real-time visualizations powered by Plotly enable farmers to monitor trends, identify issues, and optimize their operations. This seamless integration of IoT, cloud technologies, and data processing establishes GrowHub as a key tool for precision and sustainable agriculture.\n\n\n![Dashboard](https://github.com/GrowHub-IoT/GrowHub/blob/master/docs/assets/Dashboard.png?raw=true)\n\n\n\n\n## 🚀 Features\n\nGrowHub IoT tackles challenges in modern agriculture through its core capabilities:\n\n\u003cdetails\u003e\n  \u003csummary\u003e📊 Real-Time Data Collection\u003c/summary\u003e\n  GrowHub IoT monitors key hydroponic variables such as temperature, pH, TDS, and EC using high-precision sensors. These readings are processed and displayed on dynamic dashboards for actionable insights.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e🔒 Secure Data Transmission\u003c/summary\u003e\n  GrowHub IoT employs MQTT for reliable data transfer. While TLS encryption is supported, the current implementation focuses on device authentication using \"bcrypt\" for secure access to topics.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e☁️ Cloud Integration\u003c/summary\u003e\n  Data is stored and managed in MongoDB (AWS) and Firestore (Google Cloud Platform), allowing scalable and redundant storage with real-time synchronization.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e📈 Interactive Visualization\u003c/summary\u003e\n  The system's dashboards, built with Plotly, provide intuitive, real-time charts that help users analyze trends and optimize hydroponic performance.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e🔧 Modular Architecture\u003c/summary\u003e\n  Designed to scale with your needs, GrowHub IoT allows for seamless integration of new sensors and functionalities without interrupting operations.\n\u003c/details\u003e\n\n### 🧪 Current Development Status\n\n\n| Functional = 🟩 | Partially Functional = 🟨 | Non-Functional = 🟥 | Future Implementations = 🟦 |\n|------------------|----------------------------|---------------------|-----------------------------|\n\n| Feature                        | Description                          | 🟩 | 🟨 | 🟥 | 🟦 |\n|--------------------------------|--------------------------------------|----|----|----|----|\n| Real-Time Data Collection      | Collects sensor data in real-time    | 🟩 |    |    |    |\n| Additional Sensor Types        | Support for more sensor types        |    |    |    | 🟦 |\n| Secure Data Transmission       | Securely transmits data              |    | 🟨 |    |    |\n| TLS Encryption                 | Adds TLS encryption for security     |    |    | 🟥 |    |\n| Cloud Integration              | Stores data in the cloud             | 🟩 |    |    |    |\n| Multi-Cloud Support            | Supports multiple cloud providers    |    |    | 🟥 |    |\n| Interactive Visualization      | Real-time data visualization         | 🟩 |    |    |    |\n| Advanced Analytics             | Provides advanced data analytics     |    |    |    | 🟦 |\n| Modular Architecture           | Easily integrates new components     |    | 🟨 |    |    |\n| Automatization \u0026 Control        | Multi-variable control mechanization    |    |    |    | 🟦 |\n\n\n### 🧠 Project Context and Development Journey\n\nGrowHub IoT is the culmination of a long and intensive journey of research, learning, and development. As a one-man army, I have single-handedly designed, implemented, and tested every aspect of this project. This public release represents a polished version derived from a private repository with over 100+ commits, reflecting countless hours of experimentation, coding, debugging, and iteration.\n\nWhile many functionalities are operational, not all have been developed to the level of refinement I originally envisioned. Some features remain partially implemented due to time constraints, while others are potential ideas that I couldn't explore, such as predictive analytics through neural networks to provide recommendations for crop management. The result is a functional and modular system, but also a testament to the challenges and opportunities in working as a solo developer on a multidisciplinary project.\n\nGrowHub is not just a software solution; it is a Research and Development (R\u0026D) project with environmental and social goals. Throughout this process, I delved into topics far beyond software development, studying agricultural sciences and biotechnology to understand the intricacies of hydroponic systems. This learning journey included evaluating technologies that ultimately did not make it into GrowHub due to compatibility or feasibility issues. The system you see today is the outcome of this exploration—a balance between ambition, technical constraints, and a commitment to creating a meaningful tool for sustainable agriculture.\n\n\n---\n![Shell](https://github.com/GrowHub-IoT/GrowHub/blob/master/docs/assets/Shell.jpeg?raw=true)\n\n## 🛠️ Installation\n\n[![Python](https://img.shields.io/badge/Python-3.7%2B-darkblue)](https://www.python.org/)\n[![Flask](https://img.shields.io/badge/Flask-1.1.2-blue)](https://flask.palletsprojects.com/)\n[![Bash](https://img.shields.io/badge/Bash-5.0-darkgreen)](https://www.gnu.org/software/bash/)\n[![C++](https://img.shields.io/badge/C++-17-purple)](https://isocpp.org/)\n[![MongoDB](https://img.shields.io/badge/MongoDB-4.4-green)](https://www.mongodb.com/)\n[![Firestore](https://img.shields.io/badge/Firestore-v7.20-orange)](https://firebase.google.com/products/firestore)\n[![MQTT](https://img.shields.io/badge/MQTT-3.1.1-purple)](https://mqtt.org/)\n[![ESP8266](https://img.shields.io/badge/ESP-8266MOD-darkred)](https://www.espressif.com/en/products/socs/esp8266)\n[![Raspberry Pi](https://img.shields.io/badge/Raspberry%20Pi-4B-purple)](https://www.raspberrypi.org/products/raspberry-pi-4-model-b/)\n[![JavaScript](https://img.shields.io/badge/JavaScript-ES6-yellow)](https://developer.mozilla.org/en-US/docs/Web/JavaScript)\n[![TypeScript](https://img.shields.io/badge/TypeScript-4.1-darkblue)](https://www.typescriptlang.org/)\n[![Mosquitto](https://img.shields.io/badge/Mosquitto-3.1-purple)](https://mqtt.org/)\n[![SQLAlchemy](https://img.shields.io/badge/SQLAlchemy-2.5.1-darkblue)](https://flask-sqlalchemy.palletsprojects.com/)\n[![paho-mqtt](https://img.shields.io/badge/paho--mqtt-1.6.1-purple)](https://www.eclipse.org/paho/index.php?page=clients/python/index.php)\n[![plotly](https://img.shields.io/badge/plotly-5.3.1-cyan)](https://plotly.com/python/)\n[![pandas](https://img.shields.io/badge/pandas-1.3.3-red)](https://pandas.pydata.org/)\n[![openpyxl](https://img.shields.io/badge/openpyxl-3.0.7-lightgrey)](https://openpyxl.readthedocs.io/)\n\n### Requirements\nEnsure the following are available for deploy:\n- We strongly recommend to use Linux machine and a **Conda environment** with Python 3.7 or higher.\n- Booteable MicroSD with Raspberry Pi OS (or any other 32-bit ARM Debian-based distribution, like 'Twister OS')\n- At least one ESP8266MOD compatible with Arduino IDE to flashing GrowHub firmware (more information on 'Hardware Setup' below).\n- Network infrastructure with a dedicated Access Point or a physical router acting as a switch to ensure robust MQTT communication between devices.\n\n### Steps\n\n1. **Clone the Repository**\n   ```sh\n   git clone https://github.com/rmardonesa/growhub.git\n   cd growhub\n   ```\n\n2. **Set Up Virtual Environment and Install Dependencies**\n   ```sh\n   python3 -m venv venv\n   source venv/bin/activate\n   pip install -r requirements.txt\n   ```\n\n3. **Configure Environment Variables**\n   ```sh\n   cp .env.example .env\n   nano .env\n   ```\n\n4. **Initialize the Database**\n   ```sh\n   python init_db.py\n   ```\n\n5. **Run the Application**\n   ```sh\n   python app.py\n   ```\n   Access the application at `http://localhost:5000`.\n\n\u003cdetails\u003e\n  \u003csummary\u003e💡 Advanced Configuration\u003c/summary\u003e\n  \u003cbr\u003e\n  To check the status of the Flask application and run it with specific options, use the following commands\n\n  View Flask Logs:\n  ```sh\n   tail -f flask.log\n   ```\n  Run Flask:\n  \n  ```sh\n   flask run --host=0.0.0.0 --port=5000\n   ```\n\n  Database Configuration\n  \n  *The default SQLite database provided by the software is basic and just a template. Users can enhance its complexity after running init_db.py. For example, you can add more tables, indexes, or migrate to a more robust database system like PostgreSQL or MySQL.*\n  \u003cbr\u003e\n  Migrate to PostgreSQL:\n  ```sh\n  pg_dump -U postgres -d old_db \u003e old_db.sql\n  psql -U postgres -d new_db \u003c old_db.sql\n   ```\n\n  \n\u003c/details\u003e\n\n---\n\n## 🧰 Hardware Setup\n\n### 📡 ESP8266 Sensor Configuration\n\n1. Open `sensors.ino` in Arduino IDE.\n2. Update WiFi and MQTT broker settings.\n3. Flash the ESP8266 with the updated code.\n\n\u003cdetails\u003e\n  \u003csummary\u003e📜 Sensor Calibration Details\u003c/summary\u003e\n  \u003cp\u003e\n  \u003cimg src=\"https://github.com/GrowHub-IoT/GrowHub/blob/master/docs/assets/Calibration.png?raw=true\" width=240\u003e\n  \u003cp\u003e\n  Calibrate sensors for pH, TDS, and temperature to ensure precision.\n\n  Watch this tutorial for pH sensor calibration (most important sensor of GrowHub IoT System):\n  \n  https://youtu.be/zUEl3Y3yKL4 (credits to Electronic Clinic, the video uploader)\n  \n\u003c/details\u003e\n\n#### Electronic Modules Connections\n\n  \n  | Module              | ESP8266MOD Pin     | Description                       |\n  |---------------------|--------------------|-----------------------------------|\n  | OneWire (DS18B20)   | GPIO2 (D4)         | Analog input                      |\n  | OneWire (DS18B20)   | 3.3V               | Power supply                      |\n  | OneWire (DS18B20)   | GND                | Ground                            |\n  | pH Sensor (Analog)  | A0                 | Analog input                      |\n  | 3.3V               | Power supply                      |\n  | pH Sensor (Analog)  | GND                | Ground                            |\n  | pH Sensor (Digital) | GPIO0 (D3)         | Digital input                     |\n  | pH Sensor (Digital) | 3.3V               | Power supply                      |\n  | pH Sensor (Digital) | GND                | Ground                            |\n  | EC/TDS Sensor (Analog) | GPIO4 (D2)         | Analog input                   |\n  | EC/TDS Sensor (Analog) | 3.3V               | Power supply                   |\n  | EC/TDS Sensor (Analog) | GND                | Ground                         |\n\n\n\n### 🍓 Raspberry Pi Configuration\n\n1. Install Mosquitto MQTT broker:\n   ```sh\n   sudo apt-get update\n   sudo apt-get install mosquitto mosquitto-clients\n   ```\n2. Configure using `mqtt.sh` script:\n   ```sh\n   ./mqtt.sh\n   ```\n\u003cdetails\u003e\n  \u003csummary\u003e💡 MQTT Broker Customization\u003c/summary\u003e\n  \n  *Customize the MQTT broker settings to fit your network infrastructure. You can configure the Mosquitto MQTT broker using the provided*\n  \u003cbr\u003e\n  \n  Set up Firewall Rules:\n  ```sh\n   sudo ufw allow 5000/tcp\n   sudo ufw allow 1883/tcp\n   sudo ufw enable\n   ```\n  Start Mosquitto Service:\n  ```sh\n   sudo systemctl start mosquitto\n   ```\n\n  Check Mosquitto Status:\n  ```sh\n   sudo systemctl status mosquitto\n   ```\n\n  View Mosquitto Logs:\n  ```sh\n   sudo journalctl -u mosquitto -f\n   ```\n\n  Execute GrowHub MQTT Manager:\n  ```sh\n   sudo bash\n   cd \u003cGrowHub BashScript directory\u003e\n   ./mqtt.sh\n   ```\n\n\n\n  \n\n  \n\n\n\u003c/details\u003e\n\n\n\n\n\n\n   \n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/GrowHub-IoT/GrowHub/blob/master/docs/assets/Prototype_01.png?raw=true\" width=\"380\"\u003e\n  \u003cimg src=\"https://github.com/GrowHub-IoT/GrowHub/blob/master/docs/assets/Prototype_02.png?raw=true\" width=\"340\"\u003e\n\u003cp\u003e\n\n\n---\n\n## 🔮 Contributing\n\nWe welcome contributions! Follow these steps:\n\n1. **Fork the Repository**\n   ```sh\n   git checkout -b feature/your-feature\n   ```\n\n2. **Implement Your Changes**\n\n3. **Commit and Push**\n   ```sh\n   git push origin feature/your-feature\n   ```\n\n4. **Open a Pull Request**\n\n\u003cdetails\u003e\n  \u003csummary\u003e🧭 Contribution Guidelines\u003c/summary\u003e\n\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003cth\u003eRule\u003c/th\u003e\n      \u003cth\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eI\u003c/td\u003e\n      \u003ctd\u003eAdhere to Coding Standards: Ensure your code follows the project's coding standards and style guidelines. Use linters and formatters where applicable.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eII\u003c/td\u003e\n      \u003ctd\u003eDocument Your Changes: Update the documentation to reflect your changes. This includes comments in the code, updates to README.md, and any other relevant documentation files.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eIII\u003c/td\u003e\n      \u003ctd\u003eUpdate CHANGELOG.md: Add a summary of your changes to the CHANGELOG.md file, including any new features, bug fixes, or breaking changes.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eIV\u003c/td\u003e\n      \u003ctd\u003ePerform Thorough Testing: Before submitting your pull request, thoroughly test your changes to ensure they work as expected and do not introduce new issues.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eV\u003c/td\u003e\n      \u003ctd\u003eFollow Commit Message Guidelines: Write clear and concise commit messages that describe the changes made. Use the imperative mood and present tense.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eVI\u003c/td\u003e\n      \u003ctd\u003eEngage in Code Reviews: Be responsive to feedback during the code review process. Address any comments or requested changes promptly and engage in constructive discussions.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eVII\u003c/td\u003e\n      \u003ctd\u003eRespect the Project's License: Ensure that your contributions comply with the project's licensing terms and do not introduce any incompatible licenses.\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\n\u003c/details\u003e\n\n---\n\n## 📜 Licenses\n[![License](https://img.shields.io/badge/License-BSD%203%20-darkred)](LICENSE)\n[![Creative Commons](https://img.shields.io/badge/Docs-CC%20BY--NC--SA%204.0-black)](http://creativecommons.org/licenses/by-nc-sa/4.0/)\n\nThis project is released under two licenses:\n\n### GrowHub IoT Software\n\u003cdetails\u003e\n  \u003csummary\u003e📕 BSD 3-Clause License\u003c/summary\u003e\n  \u003ca href=\"https://github.com/rmardonesa/growhub/blob/master/LICENSE\"\u003e Copyright (c) 2024, Rodrigo Mardones\u003c/a\u003e\n\n  | Type          | Description                                                                 |\n  |---------------|-----------------------------------------------------------------------------|\n  | ✅ Commercial Use | This software can be used for commercial purposes.                          |\n  | ✅ Modification   | You can modify the software and create derivative works.                    |\n  | ✅ Distribution   | You can distribute the original or modified versions of the software.       |\n  | ✅ Private Use    | You can use the software for private purposes.                              |\n  | ❌ Liability      | The authors are not liable for any damages arising from the use of the software. |\n  | ❌ Warranty       | The software is provided \"as is\", without any warranty.                     |\n  | ⚠️ Attribution    | You must give appropriate credit, provide a link to the license, and indicate if changes were made. |\n\n\u003c/details\u003e\n\n### GrowHub IoT Documentation\n\u003cdetails\u003e\n  \u003csummary\u003e📘 Creative Commons BY-NC-SA 4.0\u003c/summary\u003e\n  \u003ca href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e CC Attribution-NonCommercial-ShareAlike 4.0 International License\u003c/a\u003e\n\n  | Type          | Description                                                                 |\n  |---------------|-----------------------------------------------------------------------------|\n  | ✅ Sharing         | You can copy and redistribute the material in any medium or format.         |\n  | ❌ Commercial Use  | You may not use the material for commercial purposes.                       |\n  | ✅ Modification    | You can remix, transform, or build upon the material, as long as you distribute your contributions under the same license as the original. |\n  | ⚠️ Attribution     | You must give appropriate credit, provide a link to the license, and indicate if changes were made. |\n  | ⚠️ No Additional Restrictions | You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. |\n\n\u003c/details\u003e\n\n---\n\n## 🎖️ Acknowledgements\n\nThis project integrates open source technologies, thanks to all developers of those tools, libraries and frameworks that make GrowHub possible\n\n\u003cdetails\u003e\n  \u003csummary\u003e🎉 Additional Credits\u003c/summary\u003e\n  \n \n  ### Special grateful with the following contributors:\n\n  **Diego Salas**, *Digital Designer* of GrowHub's logo, he did a great job!\n\n  Sometimes communication between developers and designers is not easy, but you understood my project's identity pretty well, I wish to you the best as a professional, I'm glad to have collaborated with you.\n\n\n  **Jorge Arenas**, *Hydroponics Specialist*, with more than 15 years of experience!\n  \n  In addition to being a successful businessman, he is a promoter of clean energy, creator of jobs for people, and has maintained a social role throughout his admirable career.\n\n  \n\u003c/details\u003e\n\n---\n\n## 📚 Additional Resources\n\n- [Raspberry Imager](https://www.raspberrypi.com/software/)\n- [Mosquitto Broker](https://mosquitto.org)\n- [Espressif ESP8266MOD](https://www.espressif.com/en/products/modules/esp8266)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmardonesa%2Fgrowhub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frmardonesa%2Fgrowhub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmardonesa%2Fgrowhub/lists"}