Форум

Новые сообщения · Участники · Правила форума
  • Страница 1 из 1
  • 1
Автополив растений с огромными возможностями.
ATT
ATT
2016-01-14 14:33 #1
Есть идея сделать автополив в котором будет много параметров для редактирования и настройки, который пригодиться и дома и в парнике на основе uno r3.
Возможности
1.Полив по таймеру
2. Полив с указанием нижнего и верхнего предела влажности почвы.
3.Сигнализатор (для резервуара) о низком уровне воды через e-mail или СМС или web.
4.Полив через SMS или web.
Потребуется
1. arduino
2. internet shield
3. реле
4. часовой модуль
5. блок питания
6. sensor shield
7. датчики влажности
8. провода
9. насаосы
10. клавиатура с дисплеем для настройки не через web

У меня есть небольшой набросок собранный из 3х разных кодов.

Профиль

ATT
TehnopageTeam
щит админа


Администратор
Администратор
иконка админ
2016-01-14 18:01 #2
Цитата ATT ()
Есть идея сделать автополив
И в чем проблема?

Профиль
ATT
ATT
2016-01-14 18:31 #3
Я не могу настроить его с часами.
Скоро кину набросок. Покажу . И работающую модель.

Профиль
Администратор
Администратор
иконка админ
2016-01-14 18:51 #4
Да сбрасывай, а мы потом и глянем.

Профиль
ATT
ATT
2016-01-17 19:16 #5

Код
// 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 
или возможность настройки


Прикрепления: sketch_dec09d.ino (6.3 Kb)

Профиль

ATT
TehnopageTeam
щит админа

  • Страница 1 из 1
  • 1
Поиск: