Перейти к содержимому
pobo

ну вот выкладываю свой скетч для ардуино свет влажность температура вентиляция

Рекомендуемые сообщения

(изменено)

ну так начнем )))))
делал на                               Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.
датчик температуры            Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.
реле                                     Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.  можно взять на больший ампераж 
часы ))))                               Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.  чтоб бокс знал сколько времени да и знал когда ночь а когда день ))) + работа кулеров )))))
экран                                   Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.
увлажнение                         Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.
сам скетч и библиотеки       Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.  ну что господа пробуйте расскажите потом что да как )))) пароль grower.today

также думаю можно использовать под грибы !!! поменяв всего пару параметров 

день/ночь 18/6
температура поднимается выше 23 врубаются кулера 
падает меньше 18 врубается подогрев
1 раз в час продувка системы кулером при условии что температура не упала ниже 18 

дальнейшая работа 
2 раза в сутки делать фото )))) пока обдумываю 2 варианта 1 сохранение фоток на флешке и второй выкладывать на какой нибудь ресурс например на  Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.  )))) но надо с админом обсудить эту возможность ))))) примерно за время грова 500 фоток по 2 мегабайта каждая  (((((( печальная сумма )))))))) 
проверка влажности земли !!! при необходимости полив (но как то есть желания самому поливать )))   )
также думаю на счет веб интерфейса )))) через который можно посмотреть что происходит а также полить например ))))))

 

//50 Ват нагреватель 
// Освещение 18 день ,6 часов ночь
//при поднятии температуры выше 23 градусов включается продувка системы
//падение температуры меньше 18 градусов включение подогрева
//приблизительно в 9 утра начала дня 
//каждый час включение кулеров на 5 минут 

#include "DHT.h"
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>


RTC_DS1307 RTC;
DateTime now;

int hora = 0;
int minutos = 0;
int segundos = 0;


int rele1 = 4; //нагреватель
int rele2 = 5; //Свет
int rele3 = 12; //кулер
int rele4 = 7; // свободный пин на реле 
int led1 = 8; //состояние работы
int led2 = 10; //состояние работы

#define DHTPIN 2     // what pin we're connected to ???????????????

// Uncomment whatever type you're using!
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302) ????????????????????????
//#define DHTTYPE DHT21   // DHT 21 (AM2301)


DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal_I2C lcd(0x27, 16, 2);

byte derece[8] = {
  0b00011,
  0b00011,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000
};

byte u_herfi_az[8] = {
  0b10001,
  0b00000,
  0b10001,
  0b10001,
  0b10001,
  0b10011,
  0b01101,
  0b00000
};
byte e_herfi_az[8] = {
  0b00000,
  0b00000,
  0b01110,
  0b00001,
  0b11111,
  0b10001,
  0b01110,
  0b00000
};


byte termometr[8] = // иконка для термометра
{
  B00100,
  B01010,
  B01010,
  B01110,
  B01110,
  B11111,
  B11111,
  B01110
};

byte rutubet_isaresi [8] = // Значок влаги (капли воды)
{
  B00100,
  B00100,
  B01010,
  B01010,
  B10001,
  B10001,
  B10001,
  B01110,
};

void setup()
{
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);

  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  lcd.createChar(1, derece);
  lcd.createChar(2, u_herfi_az);
  lcd.createChar(3, e_herfi_az);
  lcd.createChar(4, termometr);
  lcd.createChar(5, rutubet_isaresi);// ,,
  pinMode(rele1, OUTPUT);
  pinMode(rele2, OUTPUT);
  pinMode(rele3, OUTPUT);
  pinMode(rele4, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);


  Wire.begin();
  RTC.begin();
  lcd.begin(16, 2);

  if (!RTC.isrunning())
  {
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }

  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Bitkiler uchun");
  lcd.setCursor(0, 1);
  lcd.print("  tenzimleyici");
  delay(10000);
  lcd.clear();

}

void loop()
{
  int err;
  float temp, humi;

  temp = dht.readHumidity();
  // Read temperature as Celsius
  humi = dht.readTemperature();

  if (isnan(humi) || isnan(temp))
  {
    Serial.println("Could not read the sensor data");
    humi = 0;
    temp = 0;
  }
  else
  {
    Serial.println("temperature:");
    Serial.print(temp);

    if
    ((temp ) <= 18 ) //&& (temp) >= 38)  //нагреватель 
    {
      digitalWrite(rele1, LOW); //включение
    }
    else
    {
      digitalWrite(rele1, HIGH);
    }


    if
    ((temp ) >= 23 ) //для кулера 
    {
      digitalWrite(rele3, LOW);
    }
    else
    {
      digitalWrite(rele3, HIGH);
    }


    {

      DateTime now = RTC.now();
      hora = (now.hour(), DEC);
      minutos = (now.minute(), DEC);
      segundos = (now.second(), DEC);
      lcd.clear();
      lcd.setCursor(0, 0);
      // lcd.print("Time:");
      //lcd.setCursor(6,0);
      lcd.print(now.hour(), DEC);
      lcd.print(":");
      lcd.print(now.minute(), DEC);
      //lcd.print(":");
      //lcd.print(now.second(),DEC);
      lcd.setCursor(7, 0);
      //lcd.print("Date:");
      //lcd.setCursor(6,1);
      lcd.print(now.day(), DEC);
      lcd.print("/");
      lcd.print(now.month(), DEC);
      lcd.print("/");
      lcd.print(now.year(), DEC);
      lcd.setCursor(0, 1);
      lcd.write( 4 );
      lcd.setCursor(1, 1);
      lcd.print(temp);
      lcd.setCursor(6, 1);
      lcd.write( 1);
      lcd.print("C");
      lcd.setCursor(9, 1);
      lcd.write(5 );
      lcd.setCursor(10, 1);
      lcd.print(humi);
      lcd.setCursor(15, 1);
      lcd.print("%");


      if (now.hour() == 21 && now.minute() == 00)
      {
        lcd.clear();
        lcd.setCursor(2, 0);
        lcd.print("ON");
        digitalWrite(rele2, LOW);
      }
      if (now.hour() == 15 && now.minute() == 00)
      {
        lcd.clear();
        lcd.setCursor(2, 0);
        lcd.print("OFF");
        digitalWrite(rele2, HIGH);
      }
      delay(1000);
    }
  }
}

void qoshulma() {

  lcd.clear();
  lcd.setCursor(2, 0);
  lcd.print("FAN ON");
  digitalWrite(rele3, LOW);
  delay(50000);
  digitalWrite(rele3, HIGH);
}

void gundeIyirmiDordDefeCevir() {
  DateTime now = RTC.now();

  if (now.hour() == 00 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 1 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 2 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 3 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 4 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 5 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 6 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 7 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 8 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 9 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 10 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 11 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 12 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 13 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 14 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 15 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 16 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 17 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 18 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 19 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 20 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 21 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 22 && now.minute() == 00) {
    qoshulma();
  }
  if (now.hour() == 23 && now.minute() == 00) {
    qoshulma();
  }

}

 

Изменено пользователем pobo
  • Плюсанул 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


Долго искал подобный проект) жду с нетерпением обновы и апгрейды) Запчасти частично есть буду пробовать собрать! Спасибо!!!

  • Плюсанул 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


Только что, BudPupok сказал:

жду с нетерпением обновы и апгрейды

буду стараться ))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.  Еще на просторах интернета натыкался на такую вот платку Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.  Давно думаю заказать для этих целей, оч большой плюс что все в одной компановке, остается подключить только датчики

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


ну не знаю ))) мне както ближе ардуина )))) + в любой момент можно жописать скетч  добавить релешек или датчиков ))))

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.  Давай запустим в массы, думаем многим будет интересно, после теста сможем разместить в партнерском магазине на продажу, я договорюсь

  • Плюсанул 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


Только что, GROWER сказал:

Давай запустим в массы, думаем многим будет интересно,

согласен )))

 

  • Плюсанул 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта.

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


Ограничения

Вся информация предоставлена в ознакомительных целях для лиц старше 18 лет.

[Правила использования]

×
×
  • Создать...