Skip to content

pervasivesystems/smart-plant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart Plant

Automate the process of plants irrigation based on the environment using sensors.

The plant will be perfectly fed accordingly to the surroundings variables and the user will be always kept up to date.

Main Features

  1. Auto Water: Smart Plant waters the plant or flower automatically based on the type of plant.
  2. Alert Notification: Smart Plant Bot sends you a Telegram message when some parameter is not good.
  3. Check Status: In every moment you can check the current and the previous statuses of the plant/flower.

Presentation

Architecture

Stack

Hardware

Tools

  • Arduino Board: Board which controls only the Servo to open the valve.
  • 2 * DISCO-L072CZ-LRWAN1 Board: Board to manage Lora communication.
  • Components: Soil, temperature, light Sensors and a Servo.

Commands

The Lora Server can receive the commands "1" and "3" via Serial. Then it sends The command with Lora to the Plant Receiver which is always listening and activate the sensor or the servo on the Arduino

Hardware Code implementation

Hardware Schema

Hardware Schema

Hardware Picture

Software

The core of the project is the Telegram Bot running on a Raspberry pi and manages the plant.

Tools

  • Firebase: Is a database where all the data are stored.
  • Woody Plant Database: Database from which the Telegram Bot retrieves the information about a plant or flower.
  • Telgraf: It is a Nodejs library used to do the Telegram Bot.
  • Lora: It is the wireless communication used between the two STM Board.
  • Arduino: Hardware Platform to manage the step motor.
  • Mbed: Platform used to program STM32 Boards

Database

This is the units used for each information:

plantID date temperature light ph
integer timestamp (ms) °C Lux 0-14

JSON object in Firebase db

{
    "plants":[{
            "plantID": int,
            "plant": string,
            "info":[{
                    "date": int,
                    "temperature": int,
                    "light": int,
                    "ph": int
                    },
                ...
            ]
        },
        ...
    ]
}

Interface

This is some screenshots of the Telegram Bot:

setplant graph
status graph

Telegram Commands

  • /setplant select which plant you want to manage
  • /water water manually the plant
  • /startsensor perform a sensors reading
  • /status show you the status of the plant
  • /info show you information of the plant

How to Run

Step 1

Compile the code in Plant folder on one STM Board and the code in Server folder on the other STM Board.

Step 2

On Raspberry pi download the Main folder and run:

npm install

and then:

npm start

Step 3

Search on Telegram Client the bot: smart_plant_gj_bot and start the conversation.

Project Members

Logo

About

Smart Irrigator - a project for pervasive systems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages