Код
// Einbinden des DHT22
#include "DHT.h" // Library für DHT Sensor aufgerufen
#define DHTPIN 12 // DHT Sensor wird aus PIN 9 ausgelesen
#define DHTTYPE DHT22 // DHT Type wird auf DHT22 festgelegt
DHT dht22(DHTPIN, DHTTYPE); // DHTPIN und DHTTYE in dht22 definiert
// Einbinden des LCD
#include "Wire.h" // Library für I2C aufgerufen
#include "LiquidCrystal_I2C.h" // Library für LCD aufgerufen
LiquidCrystal_I2C lcd(0x27,16,2); // LCD Adresse auf 0x27 gesetzt, 16 Zeichen / 2 Zeilen LCD
// SainSmart IIC/I2C/TWI 1602 Serial LCD Module wie folgt angeschlossen
// LCD GND -> GND ARDUINO
// LCD VCC -> 5V ARDUINO
// LCD SDA -> A4 ARDUINO
// LCD SCL -> A5 ARDUINO
const int dg = 11; //это датчик влажности почвы №1
const int dg1 = 10; // это датчик влажности почвы №2
const int dg2 = 9; //это датчик влажности почвы №3
const int dg3 = 8; // это датчик влажности почвы №4
const int dg4 = 7; // это датчикналичия воды в резервуаре
const int nasos = 2; // это насос №1
const int nasos1 = 3; // это насос №2
const int nasos2 = 4; // это насос №3
const int nasos3 = 5; // это насос №4
const int nasos4 = 6; // это диод отсутствия воды
int dgS = 0;
int dgS1 = 0;
int dgS2 = 0;
int dgS3 = 0;
int dgS4 = 0;
void setup()
{
Serial.begin(9600); // Serielle Ausgabe beginnen mit 9600baud
Serial.println("DHT22 Serielle Ausgabe"); // Begrüßung beim Aufruf vom seriellen Monitor
dht22.begin(); // Auslesen des DHT22 beginnt
lcd.init(); // Initialisierung des LCD
lcd.backlight(); // LCD Hintergrundbeleuchtung aktivieren
pinMode(nasos, OUTPUT); //пин обозначенный как выход насоса №1
pinMode(nasos1,OUTPUT);// пин обозначенный как выход насоса №2
pinMode(nasos2, OUTPUT); //пин обозначенный как выход насоса №3
pinMode(nasos3,OUTPUT);// пин обозначенный как выход насоса №4
pinMode(nasos4,OUTPUT);// пин обозначенный как выход диода отсутствия воды
pinMode(dg, INPUT); // пин обозначенный как вход датчика влажности почвы №1
pinMode(dg1,INPUT); // пин обозначенный как вход датчика влажности почвы №2
pinMode(dg2, INPUT); // пин обозначенный как вход датчика влажности почвы №3
pinMode(dg3,INPUT); // пин обозначенный как вход датчика влажности почвы №4
pinMode(dg4,INPUT); // пин обозначенный как вход датчика наличия воды врезервуаре
}
void loop()
{
float t = dht22.readTemperature(); // Die Temperatur wird vom DHT22 ausgelesen, Wert in "t" schreiben
float h = dht22.readHumidity(); // Die Luftfeuchte wird vom DHT22 ausgelesen, Wert in "h" schreiben
Serial.print("Temperatur: "); // Ausgabe im Seriellen Monitor
Serial.print(t); // Ausgabe im Seriellen Monitor
Serial.print(" C\t"); // Ausgabe im Seriellen Monitor
Serial.print("Luftfeuchte: "); // Ausgabe im Seriellen Monitor
Serial.print(h); // Ausgabe im Seriellen Monitor
Serial.println(" %"); // Ausgabe im Seriellen Monitor
lcd.setCursor(0, 0); // Anfang auf Stelle 0, Zeile 0 setzen
lcd.print("Temp. :"); // Temp. : auf LCD ausgeben
lcd.setCursor(9, 0); // Anfang auf Stelle 9, Zeile 0 setzen
lcd.print(t); // Wert aus "t" ausgeben (Temperatur)
lcd.setCursor(15, 0); // Anfang auf Stelle 15, Zeile 0 setzen
lcd.print("C"); // C auf LCD ausgeben
lcd.setCursor(0, 1); // Anfang auf Stelle 0, Zeile 1 setzen
lcd.print("Luftf.:"); // Luft.: auf LCD ausgeben
lcd.setCursor(9, 1); // Anfang auf Stelle 9, Zeile 1 setzen
lcd.print(h); // Wert aus "h" ausgeben (Luftfeuchtigkeit)
lcd.setCursor(15, 1); // Anfang auf Stelle 15, Zeile 1 setzen
lcd.print("%"); // % auf LCD ausgeben
dgS = digitalRead(dg);
if (dgS == LOW) {
digitalWrite(nasos, HIGH);
delay(2000);
digitalWrite(nasos, LOW); // это время работы насоса №1 вкл. выкл.(здесь можно менять самому время работы насоса)
delay(2000); }
else { digitalWrite(nasos, LOW); }
dgS1 = digitalRead(dg1);
if (dgS1 == LOW) {
digitalWrite(nasos1, HIGH);
delay(2000); // это время работы насоса №2 вкл. выкл.(здесь можно менять самому время работы насоса)
digitalWrite(nasos1, LOW);
delay(2000); }
else { digitalWrite(nasos1, LOW); }
dgS2 = digitalRead(dg2);
if (dgS2 == LOW) {
digitalWrite(nasos2, HIGH);
delay(2000);
digitalWrite(nasos2, LOW); // это время работы насоса №3 вкл. выкл.(здесь можно менять самому время работы насоса)
delay(2000); }
else { digitalWrite(nasos2, LOW); }
dgS3 = digitalRead(dg3);
if (dgS3 == LOW) {
digitalWrite(nasos3, HIGH);
delay(2000);
digitalWrite(nasos3, LOW); // это время работы насоса №4 вкл. выкл.(здесь можно менять самому время работы насоса)
delay(2000); }
else { digitalWrite(nasos3, LOW); }
dgS4 = digitalRead(dg4);
if (dgS4 == LOW) {
digitalWrite(nasos4, HIGH);
delay(2000);
digitalWrite(nasos4, LOW); // это время работы диода отсутствия вод врезервуаре вкл. выкл.(здесь можно менять самому время работы диода)
delay(2000); }
else { digitalWrite(nasos4, LOW); }
}
код такой, но тут нет возможности полива по времени, нет клавиатуры и интернет модуля.
есть дисплей показывающий температуру и влажность.Добавлено (2016-01-17, 19:16)
---------------------------------------------
хочется чтоб был аналог
http://ru.aliexpress.com/item....5VOOMw
или возможность настройки