Перейти до змісту
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 лет.

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

×
×
  • Створити...