Умная теплица

papant
Offline
Зарегистрирован: 27.04.2016

Друзья!
Помогите плиз с электрофикацией всей страны. Теплица стоит отдельно от дома, в нее приходит пара проводов фаза и ноль на 220. Как правильно организовать автоматику выключения в случае чего? Ну автомат на 10А я поставить смогу, ума хватит. Но вот всякие там УЗО и заземления, не очень в этом понимаю, хотя смутные представления имеются. Короче надо ли организовывать заземление какое-то, ибо теплица место сырое, приходит 220, как бы какой косяк не произошел.

bwn
Offline
Зарегистрирован: 25.08.2014

Поскольку речь идет о собственной шкуре и близких, нанять электрика, чтобы сделал и УЗО, и заземление. Обойдется дешевле, чем даже одни единственные похороны. ИМХО.

papant
Offline
Зарегистрирован: 27.04.2016

ясна, что похороны в планы не входят. однако подцепить фазу и ноль к УЗО смогу сам, заземление организовать тоже. Просто не знаю, надо ли например заземлять саму теплицу, ящик, в котором будет стоять вся автоматика и т.д. Надо ли соединять землю с нулем. Нужен ли автомат или УЗО сам отрубит напругу в случае чего

bwn
Offline
Зарегистрирован: 25.08.2014

Именно по причине отсутствия у вас знаний по электротехнике и отправил к электрику (причем имел в виду нормальную контору, а не Петровича с соседней улицы). Речь идет о жизненно опасных материях и как не стану рассказывать ребенку, что нужно смешать, чтобы получился БАХ (хотя сам много в детстве баловался), так и не стану ничего вам советовать, кроме одного: Наймите электрика, сделать в дом нормальный энерговвод. Дальше уже будете сами лепить к распределительному щиту свои хотелки с УЗО и прочим.
Поверьте, это правильно.

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

papant пишет:
подцепить фазу и ноль к УЗО смогу сам, заземление организовать тоже.

несомненно.

papant пишет:
Просто не знаю, надо ли например заземлять саму теплицу, ящик, в котором будет стоять вся автоматика и т.д.

Как говорит ПУЭ все металлические и проводящие ток элементы должны быть подключены к заземлению!

papant пишет:
Нужен ли автомат или УЗО сам отрубит напругу в случае чего

УЗО  отключит только в случае утечки тока, от КЗ оно не защитит. Поэтому случае использования простого УЗО автомат обязателен.

Рекомендую ставить сразу "Дифференциальный автомат" - он дороже  но зато в одном корпусе сразу и автомат, и узо .

papant пишет:
Надо ли соединять землю с нулем.

Хуже не будет. НО!!!  это подключение ОБЯЗАТЕЛЬНО должно быть ПЕРЕД УЗО!!!  если соединить после, то УЗО станет бесполезным куском железа, потому что не сможет обнаружить утечку тока на землю.

Именно поэтому проводку требуется делать кабелем с тремя проводниками.  Фаза+Ноль+Земля.  фаза и ноль идут через УЗО а земля мимо него.  даже если перед УЗО ноль и земля соединены "защитное зануление" но это именно до! Это принцип и очень важное условие. и еще. если кабель очень длинный, бери сечение больше чем потребуется обычно. А автомат ставь все равно не большого тока. срабатывания иначе есть риск что на большой длине автомат из за повышенного сопротивления не обнаружит ся перегруз, кабель нагреется и изоляция расплавится нафиг...

Vad33
Vad33 аватар
Offline
Зарегистрирован: 02.06.2015

Зависит конечно от теплицы, и что там электрифицированно.

А для автоматики внутри 12 вольт за глаза хватает, да и безопасней оно.

... и с автомобильным аккумулятором совместимо.

SSTTEEPPAANN
Offline
Зарегистрирован: 27.04.2018

Подскажите пожалуйста при прошивке ардуино если в функцию setap вставляю :

digitalWrite(PIN_RELAY1, HIGH);         // Выключаем реле - посылаем высокий сигнал
digitalWrite(PIN_RELAY2, HIGH);
digitalWrite(PIN_RELAY3, HIGH);
digitalWrite(PIN_RELAY4, HIGH);
digitalWrite(PIN_RELAY5, HIGH);
digitalWrite(PIN_RELAY6, HIGH);
digitalWrite(PIN_RELAY7, HIGH);
digitalWrite(PIN_RELAY8, HIGH);
 
То реле не выполняет условие скейча:
 
#define moisture_sensor1 A0           // гигрометр №1 pin A0
#define moisture_sensor2 A1           // гигрометр №2 pin A1
#define moisture_sensor3 A2           // гигрометр №3 pin A2
#define moisture_sensor4 A3           // гигрометр №4 pin A3
 
#define moisture_sensor_power1 10      // питание гигрометра pin 10 
#define moisture_sensor_power2 11      // питание гигрометра pin 11 
#define moisture_sensor_power3 12      // питание гигрометра pin 12 
#define moisture_sensor_power4 13      // питание гигрометра pin 13 
 
int very_moist_value1=10;              //Назначена переменая 10 контакта "very_most_value1"
int very_moist_value2=11;              //Назначена переменая 11 контакта "very_most_value2"
int very_moist_value3=12;              //Назначена переменая 12 контакта "very_most_value3"
int very_moist_value4=13;              //Назначена переменая 13 контакта "very_most_value4"
 
int PIN_RELAY1=2;                      //Назначена переменная для реле (полив1)
int PIN_RELAY2=3;                      //Назначена переменная для реле (полив2)
int PIN_RELAY3=4;                      //Назначена переменная для реле (полив3)
int PIN_RELAY4=5;                      //Назначена переменная для реле (полив4)
int PIN_RELAY5=6;                      //Назначена переменная для реле ()
int PIN_RELAY6=7;                      //Назначена переменная для реле (полив1)
int PIN_RELAY7=8;                      //Назначена переменная для реле (полив1)
int PIN_RELAY8=9;                      //Назначена переменная для реле (полив1)
 
//_______________________________Изменение переменных для упраувления Полива_________________________________
 
int VlagaZemlya1 =60;                      // переменная влажности земли для растения1 (50%)
int VlagaZemlya2 =60;                      // переменная влажности земли для растения1 (50%)
int VlagaZemlya3 =60;                      // переменная влажности земли для растения1 (50%)
int VlagaZemlya4 =60;                      // переменная влажности земли для растения1 (50%)
 
void setup()  {
  
Serial.begin(9600);                         //Назначена скорость обмена данных
 
pinMode(moisture_sensor_power1, OUTPUT);    //Назначен выход питания Гигрометра1
pinMode(moisture_sensor_power2, OUTPUT);    //Назначен выход питания Гигрометра2
pinMode(moisture_sensor_power3, OUTPUT);    //Назначен выход питания Гигрометра3
pinMode(moisture_sensor_power4, OUTPUT);    //Назначен выход питания Гигрометра4
 
pinMode(PIN_RELAY1,OUTPUT);
pinMode(PIN_RELAY2,OUTPUT);
pinMode(PIN_RELAY3,OUTPUT);
pinMode(PIN_RELAY4,OUTPUT);
pinMode(PIN_RELAY5,OUTPUT);
pinMode(PIN_RELAY6,OUTPUT);
pinMode(PIN_RELAY7,OUTPUT);
pinMode(PIN_RELAY8,OUTPUT);
 
}
void loop()  {
  
{//Полив растения1
 digitalWrite(moisture_sensor_power1, HIGH);
 delay(10);
 int moisture_value1 = analogRead(moisture_sensor1);
 digitalWrite(moisture_sensor_power1, LOW);
 int moisture_value_percent1 = map(moisture_value1,very_moist_value1,1023,100,0);
 if(moisture_value_percent1>=VlagaZemlya1)
 {
  digitalWrite(PIN_RELAY1, HIGH);
 }else{(PIN_RELAY1, LOW);
 }
}
 
{//Полив растения2
 digitalWrite(moisture_sensor_power2, HIGH);
 delay(10);
 int moisture_value2 = analogRead(moisture_sensor2);
 digitalWrite(moisture_sensor_power2, LOW);
 int moisture_value_percent2 = map(moisture_value2,very_moist_value2,1023,100,0);
 if(moisture_value_percent2>=VlagaZemlya2)
 {
  digitalWrite(PIN_RELAY2, HIGH);
 }else{(PIN_RELAY2, LOW);
 }
}
 
{//Полив растения3
 digitalWrite(moisture_sensor_power3, HIGH);
 delay(10);
 int moisture_value3 = analogRead(moisture_sensor3);
 digitalWrite(moisture_sensor_power3, LOW);
 int moisture_value_percent3 = map(moisture_value3,very_moist_value3,1023,100,0);
 if(moisture_value_percent3>=VlagaZemlya3)
 {
  digitalWrite(PIN_RELAY3, HIGH);
 }else{(PIN_RELAY3, LOW);
 }
}
 
{//Полив растения4
 digitalWrite(moisture_sensor_power4, HIGH);
 delay(10);
 int moisture_value4 = analogRead(moisture_sensor4);
 digitalWrite(moisture_sensor_power4, LOW);
 int moisture_value_percent4 = map(moisture_value4,very_moist_value4,1023,100,0);
 if(moisture_value_percent4>=VlagaZemlya4)
 {
  digitalWrite(PIN_RELAY4, HIGH);
 }else{(PIN_RELAY4, LOW);
 }
}
delay(60000);
}
 

Но если я не вставляю эту функцию то реле при перезагрузке мигает, а мне этого не хотелось бы! 

Что делать?

dachnik
Offline
Зарегистрирован: 26.07.2013

Врезал новую форточку:

Пришлось подпилить трубу)

ну и рассада почти готова к новому сезону!

Pyotr
Offline
Зарегистрирован: 12.03.2014

dachnik пишет:

Врезал новую форточку:

А что только на одной стороне? В ветренную погоду фрамугу не открывают с наветренной стороны.
Делайте такую же фрамугу и на противоположной стороне.

dachnik
Offline
Зарегистрирован: 26.07.2013

С торца теплицы дверь-форточка открывается в противоположную сторону.

ilya_s85
Offline
Зарегистрирован: 16.05.2019

Теплый пол по периметру теплицы ну и дачики температуры...

kvk
kvk аватар
Offline
Зарегистрирован: 22.11.2017

День добрый , подскажите пож. где можно посмотреть скетч, на этот девайс ?

dachnik
Offline
Зарегистрирован: 26.07.2013

kvk пишет:

День добрый , подскажите пож. где можно посмотреть скетч, на этот девайс ?

На который девайс?)

kvk
kvk аватар
Offline
Зарегистрирован: 22.11.2017

На умную теплицу . Или их несколько версий и девайсов ?

kvk
kvk аватар
Offline
Зарегистрирован: 22.11.2017

Я тут одно устройство для теплицы собираю , и меня интересует подключение нескольких датчиков DS18b20. Вот хотел посмотреть , как у Вас это прописано !!!

ilya_s85
Offline
Зарегистрирован: 16.05.2019

Ни в коем случае не вешать "0" на землю. В случае обрыва рабочего "0" в кабеле, вся линия будет использовать твою землю...

ilya_s85
Offline
Зарегистрирован: 16.05.2019

Это же цифровые/адресные датчики. В месте где опрашиваете температуру вписываете адрес именно того датчика который требуется опросить и все.

dachnik
Offline
Зарегистрирован: 26.07.2013

kvk пишет:

На умную теплицу . Или их несколько версий и девайсов ?

куда прислать? программа разбита на несколько файлов, сюда вставлять муторно

kvk
kvk аватар
Offline
Зарегистрирован: 22.11.2017

Добрый день !!! Можно на эл.почту    kvk-m@mail.ru

kvk
kvk аватар
Offline
Зарегистрирован: 22.11.2017

Спасибо!!!

Adolf_Balalaykin
Offline
Зарегистрирован: 01.02.2021
Всех приветсвую!
Соорудил теплицу 8м х 3,3м по Митлайдеру. Купил поликарбонат, все готово для покрытия, жду весну. Теперь вот думаю над проектом.
Железо такое:
 
1. Датчик BME280 (давление, влажность, температура) 
2. Датчик освещения GY-30 (BH1750)
3. контроллер Arduino UNO.
4. Ethernet Shield W5100 + SD карта на 2 гГб.
5. Блок на 4 релле.
6. Два актуатора для открывания форточек.
7. Водяной клапан (еще не купил)
 
Никаких мелких, не удобных ЖК дисплеев с кнопками не хочу. Планирую удаленный вэб контороль и управление. Так гораздо удобней, да и информация в браузере выглядит более читабельна и удобней для восприятия. Сейчас проект тестирую на макетной плате. HTML код с картинками лежит на SD карте изернет шилда W5100. Наваял скетч (сборная солянка из разных чужих кусков). Ну вот беда, у Ардуино Uno маловато памяти, не влезает он туда. Может можно как-то оптимизировать код? Или спасёт только другой контроллер? Собственно вот сам скетч:
 
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <BH1750.h>
#include <Ethernet.h>
#include <SD.h>

#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C

BH1750 lightMeter;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC адрес
IPAddress ip(192, 168, 66, 68); // IP адрес
EthernetServer server(80);      // Слушать 80 http порт

File webFile;

void setup() {
	// BH1750
  Serial.begin(9600); // инициализируем работу с последовательным портом и указываем скорость работы

  Wire.begin();
  lightMeter.begin();
  Serial.println(F("BH1750 Test begin"));
  // MBE280
 // Serial.begin(9600);
  Serial.println(F("BME280 test"));

  if (!bme.begin()) {
    Serial.println("Could not find a valid BME280 sensor, check wiring!");
    while (1);
  }
      Ethernet.begin(mac, ip);  // Инициализация ethernet устроства
    server.begin();           // Начинаем слушать клиентов
    
    // ====================================== инициализируем SD карту
    Serial.println("Initializing SD card...");                    // Выводим текст в последовательный порт.
    if (!SD.begin(4)) {                                           // Проверяем, есть ли связь с картой и, если нет, то
        Serial.println("ERROR - SD card initialization failed!"); // Выводим текст в последовательный порт: инициализации SD карты не удалась
        return;
    }
    Serial.println("SUCCESS - SD card initialized.");             // Выводим текст в последовательный порт.
    // =================================== Проверяем наличие index.htm файла
    if (!SD.exists("index.htm")) {                                // Проверяем наличия файла index.htm на SD карте.
        Serial.println("ERROR - Can't find index.htm file!");     // Выводим текст в последовательный порт: Не удалось найти index.htm файл
        return;
    }
    Serial.println("SUCCESS - Found index.htm file.");            // Выводим текст в последовательный порт: Файл index.htm найден
}

void loop() {
	//BH1750
	float lux = lightMeter.readLightLevel();
    Serial.print("Light: ");
    Serial.print(lux);
    Serial.println(" lx");
    delay(1000);
	// MBE280
    Serial.print("Temperature = ");
    Serial.print(bme.readTemperature());
    Serial.println(" *C");

    Serial.print("Pressure = ");

    Serial.print(bme.readPressure() / 100.0F);
    Serial.println(" hPa");

    Serial.print("Approx. Altitude = ");
    Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
    Serial.println(" m");

    Serial.print("Humidity = ");
    Serial.print(bme.readHumidity());
    Serial.println(" %");

    Serial.println();
    delay(2000);
}
	    EthernetClient client = server.available();        // Искать клиента
    if (client) {                                      // Клиент есть?
        boolean currentLineIsBlank = true;
        while (client.connected()) {    // Проверяем подключен ли клиент к серверу
            if (client.available()) {   // Клиентские данные доступны для чтения
                char c = client.read(); // чтение 1 байта (символа) из клиента
                // последняя строка запроса клиента пуста и заканчивается на \n
                // отвечайте клиенту только после получения последней строки
                if (c == '\n' && currentLineIsBlank) {
// =================================== Послать стандартный заголовок http ответа
                    client.println("HTTP/1.1 200 OK");              // отсылаем стандартный заголовок для HTTP-ответа:
					client.println("Content-Type: text/html; charset=utf-8"); // тело передается в коде HTML, кодировка UTF-8
					client.println("Connection: close");            // закрыть сессию после ответа
                    client.println("Refresh: 5");                   // автоматически обновляет страницу каждые 5 секунд
					client.println();                               // пустая строка отделяет тело сообщения
                    // Отправка веб страницы
                    webFile = SD.open("index.htm");                 // путь до index.htm файла
                    if (webFile) {
                        while(webFile.available()) {
                            client.write(webFile.read()); // Посылаем web страницу клиенту
                        }
                        webFile.close();
                    }
                    break;
                }
                // Каждая строка текста принятая от клиента заканчивается на \r\n
                if (c == '\n') {
                    // last character on line of received text
                    // starting new line with next character read
                    currentLineIsBlank = true;
                } 
                else if (c != '\r') {
                    // a text character was received from client
                    currentLineIsBlank = false;
                }
            } // end if (client.available())
        } // end while (client.connected())
        delay(1);      // give the web browser time to receive the data
        client.stop(); // close the connection
    } // end if (client)
}

 

dachnik
Offline
Зарегистрирован: 26.07.2013

Закажи Мегу мини про, она по размерам как Уно, если размер имеет значение.

Adolf_Balalaykin
Offline
Зарегистрирован: 01.02.2021

ESP32 получше будет! Уже заказал, получил. Пишу скетч.

kvk
kvk аватар
Offline
Зарегистрирован: 22.11.2017

А для ESP8266 NodeMCU тоже подойдет ваш скетч ?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Adolf_Balalaykin пишет:

ESP32 получше будет! Уже заказал, получил. Пишу скетч.

а для UNO компилировался? (строка 81 не смущает?)

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

ua6em пишет:

Adolf_Balalaykin пишет:

ESP32 получше будет! Уже заказал, получил. Пишу скетч.

а для UNO компилировался? (строка 81 не смущает?)

Любопыцвую, чем должна смущать строка 81?  

Adolf_Balalaykin пишет:
4. Ethernet Shield W5100 + SD карта на 2 гГб.

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

Adolf_Balalaykin пишет:
у Ардуино Uno маловато памяти, не влезает он туда. Может можно как-то оптимизировать код? Или спасёт только другой контроллер?

Возможно перебрать библиотеки для своих нужд, но тут все сильно зависит от обьема невпихнуевоимого кода.

ilya_s85
Offline
Зарегистрирован: 16.05.2019

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

Adolf_Balalaykin
Offline
Зарегистрирован: 01.02.2021

Забил я на этот UNO, со всеми шилдами. С такими ограниченями ничего красивого не напишешь. Постоянно думать как впихать невпихуемое. Решил замутить другой поект, паралельный этому. Кому интересно топаем сюда http://arduino.ru/forum/proekty/umnaya-teplitsa-s-upravleniem-cherez-veb-panel

ilya_s85
Offline
Зарегистрирован: 16.05.2019

На сегодняшний день продолжаю свой проект на Atmega 328. Только использую не готовый модуль а сам чип. На данном этапе остановился на СМС командах, в связи с тем что для веб интерфейса необходим стабильный и качественный интернет. Я же данные о статусе своего проекта могу получить на самую простую звонилку

ВН
Offline
Зарегистрирован: 25.02.2016

ilya_s85 пишет:
На данном этапе остановился на СМС командах....

и что сейчас получается по ресурсам памяти и асинхронности при обработке звонков, смс и прочей работе?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Probelzaelo пишет:

Хуже не будет. НО!!!  это подключение ОБЯЗАТЕЛЬНО должно быть ПЕРЕД УЗО!!!  если соединить после, то УЗО станет бесполезным куском железа, потому что не сможет обнаружить утечку тока на землю.

и тащить ноль всей улицы в свою землю? Умно! По ПУЭ ноль землится на вводе, но это для трёхфазки, если питание однофазное, ноль не землить, УЗО отработает от утечки на землю, если сопротивление заземления в норме, менее 4 ом

Adolf_Balalaykin
Offline
Зарегистрирован: 01.02.2021

Да и вообще, тащить в теплицу 220 вольт не самая лучшая идея. Повышенная влажность, открытый грунт под ногами, металический каркас, атмосферные осадки снаружи теплицы. Все условия погибнуть смертью храбрых в битве за урожай! Я завел 24 вольта постоянного тока. Актуаторы, водяные клапаны всё на 24v. Контроллер запитан через адаптор 24-5v. Кому интересно, ссылки ниже:

1. Блок питания на 24 в. и актуаторы

https://aliexpress.ru/item/4001113310403.html

2. Электромагнитный водяной клапан на 24 v.

https://aliexpress.ru/item/33020037257.html

3. Понижающий модуль питания с 24v на 5 v. С него я питаю контроллер.

https://aliexpress.ru/item/32582826097.html

dachnik
Offline
Зарегистрирован: 26.07.2013

Всем привет! Добавлю несколько изменений в свой проект =)

Актуатор на задней форточке заменен на автомобильный стеклоподъемник от Outlander'а:

Ну и вишенка на торте, полный отказ от ардуины в пользу пром автоматики:

ПЛК Овен СПК107 М01, модуля IO по ModbusTCP/IP.

 

 

kvk
kvk аватар
Offline
Зарегистрирован: 22.11.2017

Интересная разработка !!! А по подробнее можно узнать ?

dachnik
Offline
Зарегистрирован: 26.07.2013

kvk пишет:

Интересная разработка !!! А по подробнее можно узнать ?

Панелька ПЛК Овен СПК107 М01. Программируется из среды Codesys3.5. Визуализация скады также отображается через встроенный Web сервер. Также на ней есть встроенный OpenVPN клиент для удалённого доступа к ПЛК через инет.

Управление проветриванием, поливом, бассейном(озонирование, и циркуляция), насосом повышения давления. Насос повышения давления от стиралки заменен на поверхностный насос вихрь(вроде)ПН370, который стартует от сигнала наличия потока. В качестве буфера для насоса, установил гидроакуммулятор на 20л. Шумный но давление в 2.5 очка выдаёт.

Старый импульсный расходомер воды подключил через опторазвязку к дискретному входу(счётчик импульсов), мониторинг скорости потока и общее количество потраченной воды.

Уличный датчик температуры 4-20ма (Endress+Hauser). Датчики внутренней температуры и температуры воды: Овен ТСМ50М

Защита двигателей (повышения давления и циркуляции бассейна через автоматические выключатели TeSys GV от Schneider Electric)

Также установил в качестве защиты предохранители на приводы проветривания, соленоидные клапана, и на аналоговые входа.

Релюхи управления исполнительными устройсввами Omron серии g2rs

Шкаф подключен по Wifi к точке через модуль LANtoWifi

 

 

 

dmitron1036
Offline
Зарегистрирован: 10.01.2016

Платформа Ардуино интересна тем, что можно то же самое сделать на порядок дешевле.

Например так:

https://arduino.ru/forum/proekty/moya-ferma-parnik-s-veb-interfeisom

И китайские детали существенно облегчают жизнь Российскому автоматизатору.

dachnik
Offline
Зарегистрирован: 26.07.2013

dmitron1036 пишет:

Платформа Ардуино интересна тем, что можно то же самое сделать на порядок дешевле.

Например так:

https://arduino.ru/forum/proekty/moya-ferma-parnik-s-veb-interfeisom

И китайские детали существенно облегчают жизнь Российскому автоматизатору.

Ну как-бы изначально проект развивался на arduino и китайских деталях(если полистаете тему). Почему я отошёл от арды:

1. Ардуино очень глючная плата. Можно долго искать причину почему она виснет.

2. Была возможность перейти на овен.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

dachnik пишет:

1. Ардуино очень глючная плата. Можно долго искать причину почему она виснет.

три года в круглосуточном режиме ни одного сбоя, видимо в коде что-то

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

ua6em пишет:

три года в круглосуточном режиме ни одного сбоя, видимо в коде что-то


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