Progetto Pianta


Scopo

Questo progetto ha come scopo la simulazione di un piccolo sistema di monitoraggio per delle piante, conoscendo la temperatura, l'umidità dell'aria e quella del suolo è possibile fornirle sempre le circostanze più adatte.


Componenti necessari

  • Arduino
  • Schermo LCD
  • Modulo bus I2C
  • Sensore Temperatura
  • Sensore Acqua
  • Cavi

  • Generale


    Schema fritzing


    Schema elettrico

    Nota: I pin usati nella foto non sono gli stessi che vengono usati nel programma.


    Codice

    Scarica il codice completo: Qua

    /**
    * Questo programma simula un piccolo programma abile di mostrare la temperatura, l'umidità e l'umidità del suolo/terreno.
    * Tutto questo viene poi mostrato su un display a rotazione (5 secondi).
    *
    * Materiale usato
    * -Arduino Mega 2560
    * -Sensore Temperatura/Umidità
    * -Sensore Acqua
    * -Schermo LCD
    *
    * @author JariNaeser
    * @version 1.5.2018 - 12.6.2018
    */


    #include <Wire.h>
    #include <LCD.h>
    #include <LiquidCrystal_I2C.h>
    #include <dht.h>

    #define I2C_ADDR 0x27
    #define BACKLIGHT_PIN 3
    #define En_pin 2
    #define Rw_pin 1
    #define Rs_pin 0
    #define D4_pin 4
    #define D5_pin 5
    #define D6_pin 6
    #define D7_pin 7

    //temp pin DHT11
    #define dht_apin A0
    dht DHT;

    //Water sensor
    const int analogInPin = A8;

    //LCD setup
    LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

    void setup()
    {
    lcd.begin (16,2); // <<----- My LCD was 16x2

    // Switch on the backlight
    lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
    lcd.setBacklight(HIGH);
    lcd.home (); // go home

    //Water sensor + and -
    pinMode(7, OUTPUT);
    digitalWrite(7, 1);
    pinMode(6, OUTPUT);
    digitalWrite(6, 0);

    //LCD + and -
    pinMode(4, OUTPUT);
    digitalWrite(4, 1);
    pinMode(3, OUTPUT);
    digitalWrite(3, 0);
    }

    void loop()
    {
    //temp sensor DHT11
    DHT.read11(dht_apin);

    //Print temperature
    lcd.clear();
    lcd.print("Temperature:");
    lcd.setCursor(13, 0);
    lcd.print(DHT.temperature);
    lcd.setCursor(15, 0);
    lcd.print((char)223);
    delay(5000);

    //temp sensor DHT11
    DHT.read11(dht_apin);

    //Print Humidity
    lcd.clear();
    lcd.print("Humidity:");
    lcd.setCursor(10, 0);
    lcd.print((int)DHT.humidity);
    lcd.setCursor(12, 0);
    lcd.print("%");
    delay(5000);

    //Water Sensor
    int sensorValue = analogRead(analogInPin);
    float percentValue = sensorValue / 1024.0 * 100.0;

    //Print Wetness
    lcd.clear();
    lcd.print("Wetness:");
    lcd.setCursor(9, 0);
    lcd.print(percentValue);
    lcd.setCursor(13, 0);
    lcd.print("%");
    delay(5000);
    }

    Made by Jari Näser - 2018