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.
Nota: I pin usati nella foto non sono gli stessi che vengono usati nel programma.
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