SmartGrow is a software solution designed to help plant enthusiasts track and monitor the environment of their plants. By integrating various sensors, SmartGrow provides real-time metrics such as temperature, humidity, moisture, and light levels. This platform is built using Flask for the backend, React for the frontend, and MQTT for real-time communication.
-
Real-Time Monitoring: Track various environmental metrics of your plant, including:
- Temperature
- Humidity
- Moisture levels
- Light intensity
-
MQTT Integration: Efficient communication with IoT sensors using MQTT protocol for real-time updates and monitoring.
-
User Dashboard: View and manage all your plants through a user-friendly web interface built with React.
-
Plant Profiles: Store and manage data for multiple plants and track their growth and environment over time.
-
Secure Authentication: Users can securely sign in to track their plant data.
-
Frontend:
- React (for the user interface)
-
Backend:
- Flask (for the server and API)
- MQTT (for real-time communication)
- Bcrypt (for hashing, security, and encryption)
-
Database:
- MongoDB (for storing user and plant data)
To set up the SmartGrow project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/isaacwallace123/SmartGrow.git cd SmartGrow/Server -
Create a virtual environment and install dependencies:
python -m venv .venv .venv\Scripts\activate # On Windows # or source .venv/bin/activate # On macOS/Linux pip install -r requirements.txt
-
Set up environment variables (e.g.,
MQTT_BROKER,DB_URI, etc.). You need to create a.envfile for Flask configurations. -
Run the backend server:
flask run
By default, the server should be accessible at
http://localhost:5000.
-
Change directory to the frontend folder:
cd SmartGrow/App -
Install the required dependencies:
yarn
-
Build the frontend pages:
yarn build
By default, the React frontend should be rendered at your server
http://localhost:5000.
If you're running your own MQTT broker, you can use Mosquitto or any other MQTT broker of your choice.
To install Mosquitto on your system, follow the installation instructions here.
-
Sign Up / Log In: Users can sign up and log into their account to manage their plants.
-
Add Plants: Users can add plants, where they can specify the plant type, monitor metrics, and keep track of data over time.
-
View Data: Real-time data on the plant's environment (temperature, humidity, moisture, light) can be viewed in the dashboard.
-
Receive Alerts: Based on thresholds (e.g., low moisture, high temperature), users can receive alerts and take appropriate actions.
We welcome contributions! If you'd like to contribute to SmartGrow, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name). - Make your changes.
- Commit your changes (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature-name). - Create a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or inquiries, feel free to reach out:
- Email: goosewal@gmail.com
- GitHub: https://github.com/isaacwallace123/smartgrow
- Flask for the backend framework
- React for the frontend framework
- MQTT for real-time communication
- Bcrypt for hashing, encryption, and security
- MongoDB for database storage