Smart Greenhouse

by JohannesGouwy in Circuits > Raspberry Pi

1281 Views, 7 Favorites, 0 Comments

Smart Greenhouse

Smart_Greenhouse.jpg

Did
you ever had the problem that it was too hot in your greenhouse, so all your plants died, because you forgot to open the air vents?

Look no further, smart greenhouse is the solution to this problem.

Following step walks you through how to build your Smart Greenhouse or modify your greenhouse to a Smart Greenhouse.

Components

Components:

1 x Servo motor

2 x Temperatuursensor

1 x fan

2 x soil moisture sensor

2 x light sensor

8 x white led

multiple resistors

1 x 4 by 7-segment display

1 x MCP3008

1 x 74HC595

1 x Relais

1 x raspberry pi 3 model b

Breadboard

jumpercables

a small greenhouse

Write Rasbian on the Micro SD Card

Echter.jpg
  1. Download the latest version "rasbian stretch with desktop" from there site: https://www.raspberrypi.org/downloads/raspbian/
  2. Unzip the raspbian file.
  3. Download also the latest version etcher from there site: https://etcher.io/
  4. Reformat the 32GB micro SD card.
  5. Open echter, select the rasbian img and you micro SD card.
  6. Click on Flash.

Add Ip and Enable SSH

Add_SSH_file.JPG
Add_ip.JPG
  1. Add a "ssh" file to the micro SD card.
  2. Find the "cmdline.txt" file and open it.
  3. Add "ip=169.254.10.1" at the end.
  4. Insert the micro SD card in je Raspberry Pi and give it power.
  5. Connect the Raspberry Pi with an ethernet cable to your pc.

Get Started With Putty

Putty.JPG
  1. Download the latest version "rasbian stretch with desktop" from there site: https://www.putty.org/
  2. Open putty and fill in the following details:
    1. HostName (or IP address): 169.254.10.1
    2. Connection type: SSH
    3. Saved Sessions: Smart_Greenhouse
  3. Click on "Save"
  4. Click on "Open"
  5. If you get a security alert from putty, click "Yes".

Raspberry Pi Basics

Change_password.JPG
  1. Defealt cedentials are:
    1. username: pi
    2. password: raspberry
  2. Change default password by typing command "passwd" and enter
  3. Type first current password raspberry and after that twice your new password of your choice.

Connect to Wi-Fi and Update Raspberry Pi

Wifi_command.JPG
Wifi_file.JPG
Ping.JPG
  1. Type: sudo -i
  2. Type: echo “password” | wpa_passphrase “SSID” >> /etc/wpa_supplicant/wpa_supplicant.conf
  3. Change password to the password of your wifi and SSID to the name of your wifi.
  4. To check type: nano /etc/wpa_supplicant/wpa_supplicant.conf
  5. There should be something in this file that looks like the image above. Use "Ctrl" + "X" to exit the file.

  6. Type: systemctl restart networking

  7. Type: systemctl status networking

  8. Type: reboot

  9. Wait 30 seconds, restart putty, click "Smart_Greenhouse" and click "Open"

  10. Log in again

  11. Type: ping 8.8.8.8

  12. After these commands, there should be something that looks like the image above.

  13. Type: sudo apt-get update && sudo apt-get upgrade -y this can take a while to update.

Enable SPI and 1-wire

Raspi-config1.JPG
Raspi-config2.JPG
  1. Type: sudo raspi-config
  2. Select "Interface Options"
  3. Select "SPI", say "Yes" and say "Ok"
  4. Select "Interface Options"
  5. Select "1-wire", say "Yes" and say "Ok"
  6. Select "Finish"
  7. Type: sudo reboot
  8. Wait 30 seconds, restart putty, click "Smart_Greenhouse" and click "Open"

Create Smart Greenhouse Folder and Download All Necessary Packages

  1. Type: sudo apt update
  2. Type: sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
  3. Type: mkdir Smart_Greenhouse && cd Smart_Greenhouse
  4. Type: mkdir Smart_Greenhouse_frontend && cd Smart_Greenhouse_frontend
  5. Type: python3 -m venv --system-site-packages env
  6. Type: source env/bin/activate
  7. Type: python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib
  8. Type: sudo reboot

  9. Wait 30 seconds, restart putty, click "Smart_Greenhouse" and click "Open"

  10. Type: cd Smart_Greenhouse

  11. Type: mkdir Smart_Greenhouse_backend && cd Smart_Greenhouse_backend
  12. Type: python3 -m venv --system-site-packages env
  13. Type: source env/bin/activate
  14. Type: python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib
  15. Type: sudo reboot
  16. Wait 30 seconds, restart putty, click "Smart_Greenhouse" and click "Open"

Uploade Code on Raspberry Pi

Filezilla.JPG
  1. Download the latest filezilla client from there site: https://filezilla-project.org/
  2. Download the code from github: https://github.com/NMCT-S2-Project-I/project-i-Jo...
  3. Start fillezilla and fill in following details:
    1. Host: 169.254.10.1
    2. Username: pi
    3. Password: "password you chose on the Raspberry Pi"
    4. Port: 22
    5. Click connect
  4. In the left side "local site" navigate to the files you downloaded from github
  5. In the right side "extrene site" navigate to the Smart_Greenhouse folder
  6. Drag the "conf" and "sql" folders to the Smart_Greenhouse folder

  7. Open the Smart_Greenhouse_backend in both sides and drag "model" and "main.py" from the left to the right side

  8. Go back to the previous folder on both sides

  9. Open the Smart_Greenhouse_frontend in both sides and drag "static", "templates" and "app.py" from the left to the right side

  10. It should look like the picture above.

Create Database

Database.JPG
Database2.JPG
  1. Start putty and log in
  2. Type: cd Smart_Greenhouse/
  3. Type: sudo mariadb
  4. Type: CREATE USER 'project1-admin'@'localhost' IDENTIFIED BY 'admin'; CREATE USER 'project1-web'@'localhost' IDENTIFIED BY 'web'; CREATE USER 'project1-sensor'@'localhost' IDENTIFIED BY 'sensor';
  5. Type: CREATE DATABASE smartgreenhousedb;

  6. Type: GRANT ALL PRIVILEGES ON smartgreenhousedb.* to 'project1-admin'@'localhost' WITH GRANT OPTION; GRANT SELECT, INSERT, UPDATE, DELETE ON smartgreenhousedb.* TO 'project1-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON smartgreenhousedb.* TO 'project1-sensor'@'localhost'; FLUSH PRIVILEGES;

  7. Type: show databases;

  8. It should look like the picture above.

  9. Type: exit;

  10. Type: sudo mariadb < sql/smartgreenhousedb.sql

  11. Type: sudo mariadb

  12. Type: use smartgreenhousedb;

  13. Type: show tables;

  14. Type: exit;

Automatic Start of Scripts

Automatic_start.JPG
  1. Type: sudo cp conf/project1-*.service /etc/systemd/system/
  2. Type: sudo systemctl daemon-reload
  3. Type: sudo systemctl start project1-*
  4. Type: sudo systemctl status project1-*
  5. Type: sudo cp conf/nginx /etc/nginx/sites-available/project1
  6. Type: sudo rm /etc/nginx/sites-enabled/default
  7. Type: sudo ln -s /etc/nginx/sites-available/project1 /etc/nginx/sites-enabled/project1
  8. Type: sudo systemctl restart nginx.service

  9. Type: sudo systemctl status nginx.service

  10. Type: sudo systemctl enable project1-flask

  11. Type: sudo systemctl enable project1-sensor

  12. It should look like the picture above.

Builds Greenhouse

  1. Build the greenhouse.
  2. Add all the components to the greenhouse according to the electrical diagram.
  3. Add power and enjoy.