Нужна помощь в создании скетча для теплицы

Тема в разделе "Закажу проект", создана пользователем Алекс_76_СССР, 4 июл 2021.

  1. Нужен скетч , открывать две форточки в теплице при повышении температуры и закрывать при ее снижении .
    Есть ардуино уно , сервоприводы 2 шт
     
    Последнее редактирование: 4 июл 2021
  2. parovoZZ

    parovoZZ Гуру

    Любой китайский или совецкий термостат + привод. Самое дешёвое решение.
     
    Andrey12 нравится это.
  3. akl

    akl Гуру

    вопрос: что за сервоприводы и как планируесся их запитывать - хватит ли мощности питания для приводов и мощности приводов для форточки.
    еще вопрос какой датчик температуры.

    если с механикой и электрикой все нормально, то скетч будет простой, могу помочь бесплатно

    пид-регулирование думаю тут нафиг не сдалось
     
  4. ИгорьК

    ИгорьК Гуру

    Как и сам скетч, если это не контрольная работа, etc.

    Отстранитесь от скетча, датчиков и приводов и поразмышляйте вот над чем: может ли это все в принципе хоть как-то поддерживать температуру в теплице.

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

    Кстати, закрывание окон также не влияет на падение температуры в обычной теплице. Проверял неоднократно лично.
     
    alp69, Vovka, b707 и 3 другим нравится это.
  5. Tomas

    Tomas Нуб

  6.  
  7. Добрый день ! , про отстранения от скетча я понял Вас .
    Про масляные подъемники знаю , полторы тыщ. один стоит.
    Что открытие форточек влияет не только на температуру , а для влажности тоже ясно.

    Не согласен , что это возня бессмысленная.
    Я работаю 7\0 , у меня нет возможности постоянно приезжать как могут пенсионеры сидя дома.

    У меня в теплице стоит солнечная панель , аккумулятор , контроллер . Есть возможность питания Ардуины и прочих механизмов . Сейчас стоит обычный контроллер с Алика он по температуре включает вентиляторы 12 вольт , 2 штуки - чтобы влага не застаивалась и проветривалось во избежании грибковых заболеваний, открывание форточек мне нужно для вывода именно влаги и жары . Чтобы все совместно работало.
    Сейчас мозг кипит во имя спасения культур от жары в Московской области , с холодом не думал бороться, на даче нет электричества .
     
    Последнее редактирование: 10 июл 2021
    Andrey12 нравится это.

  8. Сервоприводы с Аликспресса , те что дороже самых дешевых. Можность питания АКБ 20 ампер , 12 вольт , ну 5 вольт итп там сделаю. Датчик незнаю , хотел бы 18b20, да впринципе и любой что есть у Китайцев.
    А вплане механики механизмы исполнительные 100% соберу.
    Буду оч благодарен за помощь )
     
  9. Рокки1945

    Рокки1945 Гуру

    Привет. А как Вы будет настраивать температуру включения и отключения? Необходимо индикатор и кнопки...
    А гистерезис как будете выставлять.
     
    Алекс_76_СССР нравится это.

  10. Можно же без кнопок , прописать температуру и все .

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

    У меня помидоры , им поставить край 28 верхнее значение и все , на 20° чтоб закрылась форточка.

    Но впринципе если скетч не сильно усложнится , можно и дисплей имеется и кнопки есть .
     
  11. Рокки1945

    Рокки1945 Гуру

    если скетч сделаю - сами проверите?
     

  12. Да , конечно
     
  13. Рокки1945

    Рокки1945 Гуру

    ну ладно подождите вечером сброшу
     

  14. Отлично
     
  15. Рокки1945

    Рокки1945 Гуру

    Должны быть подключены библиотеки которые присутствуют в скетче, датчик к 2 ноге через 4.7 кОм на плюс питания, серво к 11 и 12, пороги меняются в константах, на серво питание отдельное - не с платы
    Код (C++):
    //контстанты порогов
    #define HIGH_TEMP    28
    #define LOW_TEMP     20
    //константы для углов поворота
    #define OPEN     90
    #define CLOSE    0

    // подключаем библиотеку для работы с сервоприводами
    #include <Servo.h>
    // создаём объекты для управления сервоприводами
    Servo myservo1;
    Servo myservo2;

    // библиотека для работы с протоколом 1-Wire
    #include <OneWire.h>
    // библиотека для работы с датчиком DS18B20
    #include <DallasTemperature.h>
    // сигнальный провод датчика
    #define ONE_WIRE_BUS 2
    // создаём объект для работы с библиотекой OneWire
    OneWire oneWire(ONE_WIRE_BUS);
    // создадим объект для работы с библиотекой DallasTemperature
    DallasTemperature sensor(&oneWire);

    // переменная для хранения температуры
      float temperature;
      //bool flag_high_temp = LOW;
    void setup(){
      // инициализируем работу Serial-порта
      //Serial.begin(9600);
      // начинаем работу с датчиком
      //sensor.begin();
      // устанавливаем разрешение датчика от 9 до 12 бит
      sensor.setResolution(10);
      // подключаем сервоприводы к 11 и 12 пину
      myservo1.attach(11);
      myservo2.attach(12);
      // устанавливаем сервопривод в крайнее левое положение - первоначальное
      myservo1.write(CLOSE);
      myservo2.write(CLOSE);
      delay(500);
     
    }
    void loop(){
      // отправляем запрос на измерение температуры
      sensor.requestTemperatures();
      // считываем данные из регистра датчика
      temperature = sensor.getTempCByIndex(0);
      // выводим температуру в Serial-порт
      //Serial.print("Temp C: ");
      //Serial.println(temperature);
      // ждём одну секунду
      delay(1000);
      if (temperature > HIGH_TEMP){myservo1.write(OPEN);myservo2.write(OPEN);}//"открывать две форточки в теплице при повышении температуры"
      if (temperature < LOW_TEMP){myservo1.write(CLOSE);myservo2.write(CLOSE);}//"закрывать при ее снижении"
     
    }
     
    Алекс_76_СССР нравится это.


  16. Ух ты , програмка )))

    Проверю в будние дни.
    Я,понял она под датчик Даллас , отлично
     
    Последнее редактирование: 10 июл 2021
  17. Рокки1945

    Рокки1945 Гуру

    да нету ничего - там кроме серво и датчика - надо будет поменяете
     
    Алекс_76_СССР нравится это.

  18. Спасибо большое Вам
     
  19. akl

    akl Гуру

    возможно сервоприводы или один из них будут трещать при положении "0" - тогда надо будет изменить эту константу на "5" например.
    Еще возможно имеет смысл через какое-то время после срабатывания привода отключать его myservo.detach()
    но это не точно
     
    Andrey12 и Алекс_76_СССР нравится это.

  20. Я вас услышал , как все соберу, проверю этот момент
     
    Andrey12 нравится это.