Skip to content

Smart plant management and monitoring system that enables users to take care of their plants remotely built with the MERN stack

License

Notifications You must be signed in to change notification settings

sunny-zuo/smart-garden

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


SmartGarden
SmartGarden

A smart plant care system built in React Native and Node.js

node:>=14.0 python:3.7+ License: MIT

OverviewScreenshotsHardware RequirementsInstallationAuthorsCreditsLicense

Overview

SmartGarden is a smart plant management and monitoring system that enables users to take care of their plants remotely via a mobile app. The system utilizes various sensors and pumps controlled by an Arduino to measure various plant health metrics (moisture, brightness, humidity, temperature) and to remotely water the plant when needed. The Arduino sends data and receives commands from an Node.js server hosted on a headless Raspberry Pi via a serial port. The Raspberry Pi uses a camera to measure the height of the plant, and to display the latest image to the user. Data is stored in a MongoDB database, and the React Native app displays all of the data by fetching from a REST API on the server built with Express.

This project was built for the University of Waterloo SE 101 final project.

Screenshots

Screenshot 1 Screenshot 2

Hardware Requirements

  • Arduino Uno
  • Raspberry Pi running Raspberry Pi OS
  • DHT series Temperature/Humidity Sensor
  • Arduino Soil Moisture Sensor

Installation

Server

SmartGarden requires at least version 14.x of Node.js (which comes with npm) and Python version 3.7+ installed on the server. Begin by installing and starting the server:

# Clone this repository
$ git clone https://github.com/sunny-zuo/smart-garden.git

# Navigate into the server folder of the repository
$ cd smart-garden/server

# Install JS dependencies
$ npm install

# Install Python dependencies
$ python3 -m pip install -r camera/requirements.txt

# Run the server
$ npm start

Arduino

Configure pin numbers in arduino/main/main.ino and upload the sketch to the Ardunio.

App

The app is built with Expo. With Expo installed, from the root directory of the repository:

# Navigate into the app folder of the repository
$ cd app

# Install dependencies
$ npm install

# Run the app
$ npm start

Authors

Credits

  • Plant icon by Pixel perfect from Flaticon

License

This project is licensed under the terms of the MIT license.

About

Smart plant management and monitoring system that enables users to take care of their plants remotely built with the MERN stack

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published