1 2 3 4 5 6 7 8 9 10 5.5/10 5,50оценок: 4

Контроллер для теплицы на Arduino - 2

Тема в разделе "Теплицы и парники", создана пользователем Cofessor, 27.04.18.

  1. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374
    Адрес:
    Брянск
    Вердикт понятен, но с точки зрения кого? Если имеешь в виду человека с подготовкой не менее своей, то, как говорится, не на того напал. Нет-нет, мне это не под силу, тут надо одновременно 4 языка знать: JS, HTML5, CSS и Arduino, а я ни одного не знаю толком.
    Да и законный вопрос - правильно ask33 сказал - зачем? Мне действительно нужны эти файлы логов? Я даже не знаю для чего они - больше чем взглянуть на кривые температур и сравнить с оптимальными в голову не приходит. Можно конечно удариться в это и забыть главное, но я это уже проходил - долгое время осваивал изготовление плат на чипах AT328P, а теперь оказывается они устарели.
    Фактически, этой зимой мой проект пережил клиническую смерть и я почти ничего не сделал, только в середине января, обдумав сложившееся положение, снова обрёл интерес и это вариант на ESP с прошивкой по воздуху и регистрацией параметров. Под этот проект делал теплотехнический расчёт, купил мощный трубный вентилятор, пару воздушных тэнов и 2 актуатора.
    Впрочем, похоже эту весну я опять прозеваю - не успеваю - погружаясь в частности, мы утрачиваем контроль над проектом в целом и утешает только то, что всё равно движуха какая-то есть, не ранней весной, так в середине или конце я буду контролировать параметры круглосуточно, видеть отдачу от новых ИМ, сравнивать и делать выводы.
     
  2. Александр_22
    Регистрация:
    22.06.16
    Сообщения:
    91
    Благодарности:
    116

    Александр_22

    Живу здесь

    Александр_22

    Живу здесь

    Регистрация:
    22.06.16
    Сообщения:
    91
    Благодарности:
    116
    @Cofessor, Ну для начала сделайте минимум чтоб работало, а далее делать что то новое (если конечно есть желание). Я просто до espшки дошёл, вот в ней и копаюсь.
    А кому лень просто таймер вешают с релюшками (для полива), и терморегулятор (форточки открывать и закрывать).
     
  3. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374
    Адрес:
    Брянск
    Так сейчас почти все на ESP12E смотрят. У меня NodeMCU, но она тоже на сборке ESP12E. Поэтому, если не жалко, выкладывай здесь свои наработки, быть может этим ты многим поможешь сильно продвинуться и не изобретать велосипед.
     
  4. Александр_22
    Регистрация:
    22.06.16
    Сообщения:
    91
    Благодарности:
    116

    Александр_22

    Живу здесь

    Александр_22

    Живу здесь

    Регистрация:
    22.06.16
    Сообщения:
    91
    Благодарности:
    116
    @Cofessor, Я вот сейчас с web интерфейсом мучаюсь, для компьютера нормально а вот с планшет\смартфон не очень. Как что то вразумительное будет выложу, просто совсем недоделанное не хочу показывать.
     
  5. ask33
    Регистрация:
    06.11.13
    Сообщения:
    1.551
    Благодарности:
    3.372

    ask33

    Живу здесь

    ask33

    Живу здесь

    Регистрация:
    06.11.13
    Сообщения:
    1.551
    Благодарности:
    3.372
    Адрес:
    Ногинск
    У меня SD используется для логирования всего чего только можно, в основном сделано для отлова ошибок., в файл размером 256 килобайт пишется примерно 4500 событий с метками времени и комментами.
    Сейчас посмотрел с одного сенора за 5 дней 430 показаний, для одного сенсора при таком уровне логирования нужно 5 килобайт в день, при 5 сенсорах 1 мегабайта должно хватить больше чем на месяц.
    Но основную ставку делаю на базу данных, в нее отправляю данные по MQTT, удобно, есть время сел проанализировал показания :)
     
  6. Александр_22
    Регистрация:
    22.06.16
    Сообщения:
    91
    Благодарности:
    116

    Александр_22

    Живу здесь

    Александр_22

    Живу здесь

    Регистрация:
    22.06.16
    Сообщения:
    91
    Благодарности:
    116
    @ask33, у меня поменьше и запись в лог каждые 15 минут, значит уложусь. Всё будет писаться в 1 строку без доп. комментариев. Думаю памяти хватит, главное файловую систему не свалить.
     
  7. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374
    Адрес:
    Брянск
    Странный какой-то интервал опроса: 3 мин 35 сек.
    Интересно, в чём заключается анализ? Если у меня на экране 5 переплетающихся кривых, то я запутаюсь. К этому надо прибавить ещё моменты срабатывания регулирующих механизмов - если их нет, то анализ будет ущербным. В итоге получаем десяток переменных - датчиков и ИМ - которые влияют друг на друга и оптимизация одних противоречат другим. Какая стратегия анализа тут возможна?
    Я собираюсь делать так.
    Делаю испытательный модуль для оптимизации какой-то одной подсистемы, в данном случае - подогрева грунта от солнечной энергии. Для этого в декабре производил теплотехнические расчёты, получалось что доля этой энергии в общем балансе немалая, проблема только в том, как её сохранить в течение суток. Алгоритм предварительно будет такой: канальный вентилятор включается при прогреве воздуха в теплице выше 18 гр. Воздух сперва попадает в бункер перед трубами, где думаю установить воздушные тэны, это позволит подогревать землю также и в ночное время. Всё это должно работать в первой половине весны, когда форточки ещё открываться не будут, а значит температура снаружи на графике будет не нужна, электроприводы не будут работать.
    Т. о., на графике может потребоваться только температура на входе труб, температура на выходе и температура грунта - в результате всё сведено к минимуму, одни данные не противоречат другим и легко проанализировать эффективность работы регуляторов.
     
  8. ask33
    Регистрация:
    06.11.13
    Сообщения:
    1.551
    Благодарности:
    3.372

    ask33

    Живу здесь

    ask33

    Живу здесь

    Регистрация:
    06.11.13
    Сообщения:
    1.551
    Благодарности:
    3.372
    Адрес:
    Ногинск
    5 дней = 120 (5*24) часов = 7200 (120*60) минут 7200 минут/ 430 сообщений = 1 сообщение в 16-17 минут. Откуда берется 3 мин 35 сек?

    Да к стати там еще учитывается что я вечерами по часику полтора сижу и раз 5-10 перегружаю плату записывая туда доработанную программу, отлаживаю так сказать, значения сенсора пишутся каждый раз при старте программы, ну и если не перегружать а выйти на рабочий режим то все будет по алгоритму :)

    Алгоритм опроса прост и удобен (для меня)

    Выглядит примерно так
    / BME280
    / внешняя температура
    / 1 = 0 текущее значение при инициализации
    / 2 = 0 зафиксированное значение при инициализации
    / 3 = 100 (1 градус) отклонение градусах умноженных на 100, при отклонении изменится фиксированное значение
    / 4 = 0 номер итерации при инициализации
    / 5 = 120 количество итераций для усреднения полученных значений макс 255
    / 6 = 60 количество минут для принудительного обновления, если 0 то нет принудительного обновления
    / 7 = 0 последняя минута обновления при инициализации
    sensorData gOutsideTemperature{ 0, 0, 100, 0, 120, 60, 0 };

    То есть если температура отклонилась более чем на 1 градус, и это с округлением 120ти измерений, в любую сторону от предыдущего зафиксированного значения то updateValue (int32_t aSensorNowValue) вернет истину и запишет новое значение в sensorFixValue.
    Если же за 60 минут такого не произошло то в данном примере текущая температура запишется в sensorFixValue и updateValue (int32_t aSensorNowValue) так же вернет истину.

    PHP:
    /
    typedef struct {
        
    int32_t sensorNowValue;
        
    int16_t sensorFixValue;
        
    int16_t deviationValue
        
    uint8_t currentIteration;
        
    uint8_t numberIterations;
        
    uint8_t updateMinute;
        
    uint32_t lastUpdateMinute;

      
        
    bool updateValue(int32_t aSensorNowValue) {
            
    currentIteration++;
            
    sensorNowValue += aSensorNowValue;
            if (
    currentIteration >= numberIterations) {
                
    sensorNowValue sensorNowValue currentIteration;
                
    currentIteration 0;
                if ((
    abs(sensorNowValue sensorFixValue) >= deviationValue) || (updateMinute && ((lastUpdateMinute + (uint32_t)updateMinute) <= gState.minuteFrom2018))) {
                    
    lastUpdateMinute gState.minuteFrom2018;
                    
    sensorFixValue = (int16_t)sensorNowValue;
                    
    sensorNowValue 0;
                    return 
    true;
                }
                
    sensorNowValue 0;
            }
            return 
    false;
        }
    sensorData;

    Пока не установлен на боевое дежурство идет только анализ ошибок, было много ошибок отправки MQTT, оказалось был маловат интервал ожидания ответа от SIM800, добавил ошибки исчезли, так же перезагружалась система при обработке значений сенсоров больше 999.99 оказалось буфер для конвертации маловат, делал когда то char lBuff[5], не подумал что больше 1000 значения бывают :)

    Как только установлю в тепличку сразу будет видно как влияет открывание форточек на температуру и влажность в тепличке. И нужно ли принудительное проветривание вентилятором. Пока такие задачи.
     
  9. Александр_22
    Регистрация:
    22.06.16
    Сообщения:
    91
    Благодарности:
    116

    Александр_22

    Живу здесь

    Александр_22

    Живу здесь

    Регистрация:
    22.06.16
    Сообщения:
    91
    Благодарности:
    116
    3 часика дома дали поработать. По wifi теперь и в режиме клиента и сервера (можно и без роутера смартом подключаться) работает, датчики температуры ds18b20 3 штуки работают, время через интернет синхронизируется, файловую систему через web показывает и файлы загружаются, обновление прошивки через web работает. Таймеры тоже работают.

    Теперь надо LCD2004 с i2c заставить отображать что надо, и через такой же модуль на pcf8574 релюшки подключить. Ну web интерфейс до ума довести.
     
  10. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374
    Адрес:
    Брянск
    Я просто прикинул, но теперь вижу что ошибся.
    Ну это как кому. Я даже не понял, что это - формат запроса? Мне, чтобы вывести график параметров на экран, нужно только щёлкнуть по иконке "СУТОЧНЫЕ ПАРАМЕТРЫ".
    Все закономерности и так ясны. Ясно что температура днём будет на несколько градусов выше уличной, а влажность - ниже, под утро температура в открытой теплице будет почти как на улице, в облачный день температура внутри будет метаться как угорелая... ну и т. д.
    Я рассуждаю как Маркс: "Философы до сих пор только объясняли мир, в то время как задача заключается в том, как изменить его". Т. е. вопрос в том, что можно с этим сделать. Когда я смотрю на очередной проект автоматизации теплицы, у меня в первую очередь именно этот вопрос возникает - ну и как? - Что удалось отрегулировать? - Ничего? - Значит всё зря?
     
    Последнее редактирование: 27.02.20
  11. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374
    Адрес:
    Брянск
    У меня на сей момент прошивка и графики через веб, датчики - Si7921 и DS18B20, дисплей LCD1602, отображает температуры и влажность.
    Сейчас готовлю старый комп на дачу - стёр всё, переставил винду, ставлю проги, загружаю архивы для работ по строительству, по выращиванию и по автоматике. Далее надо заблокировать всё лишнее с помощью NetLimiter, настроить Arduino IDE и можно отвозить на дачу - проверять на месте. Беспокоит только отрицательная температура - монитор, дисплей и датчик влажности могут выйти из строя.
     
  12. Александр_22
    Регистрация:
    22.06.16
    Сообщения:
    91
    Благодарности:
    116

    Александр_22

    Живу здесь

    Александр_22

    Живу здесь

    Регистрация:
    22.06.16
    Сообщения:
    91
    Благодарности:
    116
    @Cofessor, Комп давно готов. И к домашней сети уже доступ сделан. А вот ехать пока рано, вот как сугробы 2х метровые стают так поеду. :)
     
  13. ask33
    Регистрация:
    06.11.13
    Сообщения:
    1.551
    Благодарности:
    3.372

    ask33

    Живу здесь

    ask33

    Живу здесь

    Регистрация:
    06.11.13
    Сообщения:
    1.551
    Благодарности:
    3.372
    Адрес:
    Ногинск
    Это который Si7021? У него в даташите написано
    Operating Temperature TA I and Y grade –40 — +125 °C
    Operating Temperature TA G grade –40 — +85 °C
    То есть в -40 работать будет :)

    А вот комп и монитор да, могут и крякнуть, у меня микроволновка сгорела в минусовые температуры, причем небольшой был минус :-(

    Роутер в курятник поставил, там меньше чем +8 +10 не бывает. И никаких компов на даче, все дома. на даче максимум планшет, дети забросили, заберу у них :) В этом случае проблемы с отрицательными температурами не существует.
     
    Последнее редактирование: 27.02.20
  14. ask33
    Регистрация:
    06.11.13
    Сообщения:
    1.551
    Благодарности:
    3.372

    ask33

    Живу здесь

    ask33

    Живу здесь

    Регистрация:
    06.11.13
    Сообщения:
    1.551
    Благодарности:
    3.372
    Адрес:
    Ногинск
    Были бы ясны, я бы не делал, гдето выше уже писал, я в теории полный 0.
    Начал проектировать клетки и кормушки новые, но по старинке, на бумаге и в эеселе, хотя мне долго советовали перейти на 3д редактор. Автокад я конечно и за год не освою, а вот SketchUp освоил за неделю. Ну как освоил, нарисовал кормушку и клетку. Так вот куча косяков устраняется при 3д моделировании, потому как видимо не дана мне теория и расчеты на бумаге. Мне надо сделать руками или сделать модель. На модель угроблю кучу времени и испорчу материал пока буду доводить до ума, а в редакторе сразу и косяки устраняются без порчи материала и все размеры готовы, и опять же сэкономил пол метра профтрубы при проектировании в редакторе в отличии от расчетов на бумаге и в теории.

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

    Но до WoFi и до заливки по нему прошивки мне как до луны пешком. Поэтому хочу учесть массу настроек с меню, чтобы не перепрограмировать а настраивать из меню.
     
  15. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.070
    Благодарности:
    8.374
    Адрес:
    Брянск
    Помнишь, сколько времени я на корпуса потратил. В конце концов использовал герметичные прозрачные пластиковые корпуса для пищевых продуктов, а сам корпус вставлял в сварной металлический.
    На практике же я с середины мая перестал обращать внимания на контроллер в теплице и даже герметичный корпус не удосужился закрыть. Так и стоял открытый до осени, только температуру и влажность время от времени смотрел.
    Так вот, все страхи по поводу разрушительного влияния высокой влажности в теплице надуманы - никаких внешних изменений не заметно. Всё лето он показывал исправно, без сбоев, а осенью испортился - кнопки перестали реагировать, влажность показывал совершенно неправильно, да и сейчас показывает на 20% выше реальной.
    Дома обследовал зимой, пришёл к выводу что кнопки скорее всего работали, не работал экран - замёрз. Датчик же этот не допускает влажности близкой к 100%, при переходе же через нуль сам понимаешь что может быть при высокой влажности - кристаллизация.
    Не будем прикрываться теорией, потому как тут всё дело в том, что нет смысла что-то программировать без знания объекта автоматизации. Т. е. это не теория, я знакомлюсь немного с потребностями растений - чего они хотят, с тем как правильно сделать теплицу и немного с законами физики, которые касается влажности, температуры, освещённости. После этого я имею представление чем должен управлять мой контроллер и как вообще можно на это воздействовать - всё это на достаточно элементарном уровне, но без этого - никак.
    Что-же касается заливки скетча по WiFi, тебе как раз никакой теории в этом деле изучать вообще не надо. Есть два варианта:
    - заливка бинарного кода, и это небольшой код
    - заливка с помощью библиотеки Arduino OTA - в этом случае вообще в скетч добавляешь кроме библиотеки строчек 5 кода. Если надумаешь, я их приведу здесь. Ещё потребуется загрузить прогу Phiton, причём ничего с ней не делать, просто сбросил в корень C:\ и всё.