Умный курятник....проблемы со всем, нид хелп

DrLOR
Offline
Зарегистрирован: 14.04.2012

Denis_1704 пишет:
DrLOR, дело в том что ты запитал все реле от ардуины и не важно что включаешь ты только 3, реле управляется минусом и есть вероятность глюка ардуины и одновременное включение всех реле на микросекунду и все считай дуина повисла.

Наверно это и было, хотя сложно сказать...  А как тогда реле то подключать?

Denis_1704
Offline
Зарегистрирован: 28.05.2014

DrLOR пишет:

аверно это и было, хотя сложно сказать...  А как тогда реле то подключать?

нужно Фото именно твоего реле.

там просто питание к БП (+5 и - на всех реле пины питания отдельны их там 2 или 3) к Дуине +5(то которое рядом с  пинами включения реле)   

DrLOR
Offline
Зарегистрирован: 14.04.2012

https://drive.google.com/file/d/0B5R4bw54L0jMcUk5R0tsTDdmMjA/view?usp=sharing

слева к БП (перемычка убрана в самом начале), справа (вместе сигнальными) питание от ардуино

Denis_1704
Offline
Зарегистрирован: 28.05.2014

Все ок, а реле к БП от компа запитано?.

да и минус от реле к ардуине не нужен отключи его если подключон

 

DrLOR
Offline
Зарегистрирован: 14.04.2012

Denis_1704 пишет:
 ... реле управляется минусом и есть вероятность глюка ардуины и одновременное включение всех реле на микросекунду и все считай дуина повисла.

...так оставлять  землю от ардуины к реле или нет?

БП на реле отдельный от ардуино

 

Denis_1704
Offline
Зарегистрирован: 28.05.2014

если реле управляется минусом то земля не нужна

DrLOR
Offline
Зарегистрирован: 14.04.2012

ок, попробую. Спасибо)

Sintezat
Offline
Зарегистрирован: 22.01.2018

Drlor как работает курятник? Тоже собираюсь окунуться в этот омут.

DrLOR
Offline
Зарегистрирован: 14.04.2012

Работает так...   arduinka для датчиков температуры и влажности, для открытия дверки (через драйвер подключен актуатор). Вентилятор, свет, ставни - все через реле времени (Digital LCD Programmable Timer 12/24/110/220V 16A Time Control Relay Switch). Все работает стабильно уже около 2 лет

Когда было все через ардуинку- реле горели, все глючило....хз может у меня кривые руки....

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

DrLOR пишет:

Работает так...   arduinka для датчиков температуры и влажности, для открытия дверки (через драйвер подключен актуатор). Вентилятор, свет, ставни - все через реле времени (Digital LCD Programmable Timer 12/24/110/220V 16A Time Control Relay Switch). Все работает стабильно уже около 2 лет

Когда было все через ардуинку- реле горели, все глючило....хз может у меня кривые руки....

У меня работает только кормушка, и свет от ардуино, ну еще температуру мониторю на предмет падения ниже 2 градусов, если упадет ниже 0 то вода замерзнет в поилках. СМС оповещение частично реализовал, работает только как месяц. Вентиляция пока по таймеру, но планирую сделать по датчику влажности с учетом температуры конечно.

А вот про дверку можно подробнее? По каким критериям открываете/закрываете дверь? Контролируете что кто то на улице остался? Хотя как показывает практика куры как стемнеет все в курятник заходят.

А ставни зачем? 

У меня реле на управление светом, вентиляцией и другой маломощной нагрузкой стоят  OMRON G3MB-202P - https://ru.aliexpress.com/item/5PCS-Relay-Module-G3MB-202P-G3MB-02P-DC-AC-PCB-SSR-In-5V-DC-Out-240V/32801472579.html
На отопление идет помощнее, тоже "твердотельное" собрал из симистора и оптосимистора. 

Схема лежит здесь https://easyeda.com/Andrey12/HenHouse-0699e6eb5ad24d5ab7d567236cba9a16
Вроде должна быть доступна, на плату не смотрните я ее не разводил. Схема тоже не последний вариант, но никак руки не дойдут подправить.

DrLOR
Offline
Зарегистрирован: 14.04.2012

В курятнике все что можно сделать без электроники - надо сделать, сделать надо как можно проще. Куры все что можно сломать- сломают, огромное количество пыли также затрудняет дело.

Кормушки бункерные- отключат свет и куры останутся без корма. Если быть рядом каждый день, то можно и авоматические сделать. Я приезжаю 1 раз в неделю....если что то пойдет не так- куры подохнут от голода

Поилки подогревать термошнуром.

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

Свет по таймеру (у меня), но можно и через ардуинку

Зимой ИК обогреватель на потолке. Контроль по отдельному термореле. У меня температура зимой внутри около 5 град. Выше смысла не имеет, ниже- плохо несутся, яйца(куриные) замерзают.

Дверка открывается в 7.00, закрывается летом в 22, зимой в 20. Кто не зашел-их проблемы.  Ставни нужны для спокойствия соседей (обещали сжечь курятник к чертям)- петух орет с 3-4 утра очень громко. Ставни четко регламентирует день\ночь - автоматом открываются в 7.00, закрываются в 23. Теперь орет ровно с 7.00 )))

Конвеер для сбора яиц - работает по отдельному таймеру

Внутри за всем следит поворотная камера.

Итог: ардуинка следит за  температурой\влажностью в курятнике (для моего спокойствия), открывает дверку, следит за напряжением в солнечных батареях (летом- питание только от солнышка) и  транслирует все по нету.

Вроде все. 

Актуатор на дверке типа такого 

 
  • 12V-500N-100mm-Linear-Actuator-Motor-Door-Opener-Heavy-Duty-Bracket-Lift-H4-W4U5
  • 12V-500N-100mm-Linear-Actuator-Motor-Door-Opener-Heavy-Duty-Bracket-Lift-H4-W4U5
 

12V 500N 100mm Linear Actuator Motor Door Opener Heavy Duty Bracket Lift

 

Sintezat
Offline
Зарегистрирован: 22.01.2018

DrLOR пишет:

В курятнике все что можно сделать без электроники - надо сделать, сделать надо как можно проще. Куры все что можно сломать- сломают, огромное количество пыли также затрудняет дело.

тогда мой кумир = ваш кумир. дарю :) https://www.youtube.com/watch?v=WD2NDCAI0ro

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

буду осиливать.. что ж делать.

DrLOR
Offline
Зарегистрирован: 14.04.2012

Каждый делает как хочет и может))) 

мой код (простенький, но работает...)

#if defined(ARDUINO) && ARDUINO >= 100                                              
#include "Arduino.h"
#else                                                                           /////////  Температура, Время, Дверка
#include "WProgram.h"              
#endif

const int f = 41;     // RPWM   кор\бел  откр the number of the pushbutton pin /// вопросы разбора проекта тут http://arduino.ru/forum/programmirovanie/umnyi-kuryatnikproblemy-so-vsem...
const int r =  39;    // LPWM   коричн   закр
//////////////////////   конц выкл___желтый +5v общий, желт\бел 48--право--   коричневый 49 ---левый--
#include <Wire.h>
#include <DS1307.h>
#include <SPI.h>
#include <Ethernet.h>                                                            
#include "DHT.h"

#define DHTTYPE DHT22  
DHT dht(45, DHTTYPE);
DHT dht1(46, DHTTYPE);
DHT dht2(47, DHTTYPE); // парник

int hours;   ////////////про таймер тут http://arduino.ru/forum/obshchii/vkl-i-vykl-rele-po-vremeni
int minutes;

int analogInput = A8; ////////// вольтаж
float vout = 0.0;
float vin = 0.0;
float R1 = 30000.0; //  
float R2 = 7500.0; // 
int value = 0;

int iNVisitas=0;
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xEE, 0xEE };
byte ip[] = { 
  192,168,1, 177 };

EthernetServer server(84);
void setup()
{
  pinMode(f, OUTPUT); 
  pinMode(r, OUTPUT);
  pinMode(analogInput, INPUT);

   Ethernet.begin(mac, ip);
  server.begin();

  dht.begin();
  dht1.begin();
  dht2.begin();
  }

void loop()
{ 
 hours = RTC.get(DS1307_HR,true);
 minutes = RTC.get(DS1307_MIN,false);
 
///////////////////////////// вольтаж
 value = analogRead(analogInput);
 vout = (value * 5.0) / 1024.0; // see text
 vin = vout / (R2/(R1+R2)); 
 
  ///////////////////////////температура
  
   float h = dht.readHumidity();
  float t = dht.readTemperature();
  float h1 = dht1.readHumidity();
  float t1 = dht1.readTemperature();
  float h2 = dht2.readHumidity();
  float t2 = dht2.readTemperature();
  
 
  ////////////////////////////// Дверка   
         
  if (hours >= 7 && hours < 23) { 
    
     digitalWrite(f, HIGH );   // вперед откр
     digitalWrite(r, LOW ); 
         
   }
   else  {
    
     digitalWrite(f, LOW); // назад
     digitalWrite(r, HIGH);
         
   } 
  
              
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {

        char c = client.read();
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connnection: close");
          client.println();
          client.println("<html>");
          // add a meta refresh tag, so the browser pulls again every 5 seconds:
          client.println("<meta http-equiv=\"refresh\" content=\"5\">");
                
                        client.print("Ulica ");
            client.print(t);
            client.println(" *C");
            client.print(h);
            client.print(" %\t");
                      client.println("<br />");
            client.print("Kuryatnik ");
            client.print(t1);
            client.println(" *C");
            client.print(h1);
            client.print(" %\t");
                      client.println("<br />");
         client.print("Parnik ");
            client.print(t2);
            client.println(" *C");
            client.print(h2);
            client.print(" %\t");
                      client.println("<br />");             
                      client.println("<br />");
             client.print(hours);
             client.print(":");
             client.print(minutes);//read minutes without update (false)
             client.print(":");
             client.print(RTC.get(DS1307_SEC,false));//read seconds
             client.print("   ");                 // some space for a more happy life
             client.print(RTC.get(DS1307_DATE,false));//read date
             client.print("/");
             client.print(RTC.get(DS1307_MTH,false));//read month
             client.print("/");
             client.print(RTC.get(DS1307_YR,false)); //read year
                                  client.println("<br />");
                                  client.println("<br />");
                       
             client.print("INPUT V= ");
             client.println(vin,2);
             
             client.println("<br />");
             client.println("<br />");   

 
//////////////////////////////////////////////////// Дверка
 if (hours >= 7 && hours < 23) { 
   
    client.print("Kuryatnik otkryt 7-23 "); // вперед откр
    //client.println("<br />");
    //client.print("FAN ON .....2,8,14,19 ");
    
    client.println("<br />");
   }
   
    else {
    client.print("Kuryatnik zakryt 7-23 ");     // назад
    client.println("<br />");
   // client.print("FAN OFF.....5,8,11,14,17,22 ");
    client.println("<br />");
   }    
 
   
   
  
            client.println("<br />");       

          client.print((iNVisitas++)/2);
          client.println(" visitas <br />");

          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    
    // give the web browser time to receive the data
    delay(500); /// быдо 5
    // close the connection:
    client.stop();
  }
 
} 

arduino mega, ethernet shield, DHT 22, модуль часов -не помню какой, 

драйвер двигателя для актуатора https://www.ebay.com/itm/Hot-DC-30A-12V-Double-DC-Motor-Driver-H-Bridge-Reversible-for-Smart-Car/292113614705?hash=item4403540771:g:HWYAAOSwt0FZCKd4

актуатор    https://www.ebay.com/itm/Linear-Actuator-Motor-Stroke-DC12V-DC24V-750N-5...

реле времени  https://www.ebay.com/itm/Digital-LCD-Programmable-Timer-12-24-110-220V-16A-Time-Control-Relay-Switch/182042213189?hash=item2a628fbb45:m:mj2mEhHVAx8lvyY8CFJXLsA

если вопросы будут hnodoctor@gmail.com , а то тут уже не совсем тема форума получается)

 

 

Rootware
Offline
Зарегистрирован: 11.01.2018

Может напишу глупость, но у вас переменная iNVisitas вечно в приращении. И нигде нет сброса в ноль. А она  Int32. Integer overflow?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Rootware пишет:

Может напишу глупость, но у вас переменная iNVisitas вечно в приращении. И нигде нет сброса в ноль. А она  Int32. Integer overflow?

int имеет размер указателя, который в Дуне = 16 битам.  Для 32-разрядного целого есть спицальный тип long или int32_t.