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

Arduino Mega. Контроллер теплицы. Хроники - 3.0

Тема в разделе "Умный дом", создана пользователем Анкор Плюс, 27.04.17.

Статус темы:
Закрыта.
  1. kivik71
    Регистрация:
    28.10.13
    Сообщения:
    4.173
    Благодарности:
    2.396

    kivik71

    Живу здесь

    kivik71

    Живу здесь

    Регистрация:
    28.10.13
    Сообщения:
    4.173
    Благодарности:
    2.396
    Адрес:
    Екатеринбург
    Наконец решил и сюда зайти, а то совсем забыл про Вас (вру просто очень занят, хоть не очень вдумчиво, но наблюдаю).
    У меня тоже немного продвинулось с теоретическими расчетами теплицы Научный подход к теплице, как действовать дальше уже представляю, даже время немного начинает появляться, но практически выставлять свою теплицу и внесение в нее контроллера еще не скоро, но в июне думаю начну.
    Для проверки своих теоретических расчетов мне нужны будут логи реальной теплицы, которая на данный момент управляется этим контроллером. Кто сможет? Только кроме логов нужно подробное описание всей теплицы, всех размеров, формы, материалов, где находятся датчики ...
     
  2. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    https://www.growtronix.com/cart/
    http://www.growtronix.com/store/index.php?route=information/information&information_id=4
    Ничего лишнего и наглядно.
     
  3. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    @DIYMan, Добрый день!
    Подкорректировал код РН под свою плату. Обнаружилось следующее: РН теперь отображает принципе корректно (точной калибровкой пока не занимался) и в веб морде и в конфигураторе. А вот вольтаж и там и там показывает "по старому" (как при коэффициенте 350). При этом если использовать в отладке
    #ifdef PH_DEBUG
    PH_DEBUG_OUT (F("Voltage: "), voltage);
    PH_DEBUG_OUT (F("PH: "), phValue);
    #endif
    в мониторе порта видим верные значения.
    Я так понимаю в веб и конфигураторе вольтаж для отображения высчитываете из значения РН?
    Возможно ли Вас попросить поработать в данном направлении. Плюс коэффициент по используемую плату было бы удобнее тоже задавать из конфигуратора, а не править прошивку.
     
  4. evgeny1241
    Регистрация:
    07.07.16
    Сообщения:
    473
    Благодарности:
    46

    evgeny1241

    Живу здесь

    evgeny1241

    Живу здесь

    Регистрация:
    07.07.16
    Сообщения:
    473
    Благодарности:
    46
    У меня вопрос по графикам в веб морде. они там откуда берутся - сам строятся ? или при подключении по IOT с сервера ?
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Если честно - я не помню, как вольтаж в конфигураторе высчитывается, давненько с модулем pH не работал.

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

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

    В принципе, я гляну - если можно будет малой кровью припилить передачу вольтажа из контроллера во внешний мир - я это сделаю, и коэффициенты вынесу в настройки, просто быстрого результата - не обещаю, последние дни бешеные - ищем работу, боремся за проект: переговоры, переговоры, документация, переговоры - короче, моск кипит :)
     
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Они берутся из локальной БД, куда попадают по результату отработки скрипта cron. php, который (скрипт), в свою очередь - надо поставить в планировщик заданий, чтобы он дёргался через нужные промежутки времени. Т. е. данные - накопительные, с IoT никак не связаны.
     
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    @Viktorovich4232, а что именно вы поправили - просто коэффициенты? Мне надо больше вводных, чтобы я понимал - какие настройки вынести в Globals, касаемо модуля pH.
     
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    @Viktorovich4232, бегло проглядел прошивку, в принципе - я могу из прошивки на момент запроса показаний с датчика передавать ещё и высчитываемый вольтаж, и в конфигураторе его не пересчитывать, а просто отображать.

    А вот насчёт введения доп. настроек в конфигураторе, типа коэффициента для pH - не получится. Да и вообще считаю, что выбор должен быть целостным: выбрали один тип датчиков - его и юзаем. Т. е. в прошивке просто указали нужные коэффициенты - и алга! Не забывайте, что у нас ещё универсальный модуль может работать с pH - так что всего-всего - не объять одной настройкой.

    Поэтому мы поступим проще: я сделаю описанное выше усовершенствование, вынесу коэффициенты в Globals, допилю конфигуратор и вебморду - и выложу. Но тестировать тогда - на вашей совести, у мну датчик pH снят и пока заброшен в дальний угол :|:
     
  9. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    Дмитрий, благодарю от души! Что в моих силах оттестирую. Коэффициент я имел ввиду который для вашей платы 350 (при пш 7 на выходе 2000 мв) в моей указываю пр ПШ 7 на выходе 2500, соответственно коэффициент 280. Кроме этого так как зависимость вольтаже у меня обратная использую
    / читаем из порта и запоминаем прочитанное
    dataArray += (1023 - analogRead (phSensorPin);
    Показания вольтажа в веб и конфигураторе в принципе не нужны, но сначала не въехал: РН получаю нормаль а вольтаж нет, пока в дебаге не посмотрел.
    Потом увидев
    / теперь можем применять факторы калибровки.
    / сначала переводим текущие показания в вольтаж, приходится так делать, поскольку
    / они приходят уже нормализованными.
    long curPHVoltage = temp->Value;
    curPHVoltage *= 100;
    curPHVoltage += temp->Fract + calibration; / прибавляем сотые доли показаний, плюс сотые доли поправочного числа
    curPHVoltage *= 100;
    curPHVoltage /= 35; / например, 7,00 pH сконвертируется в 2000 милливольт
    сообразил что скорее всего и веб и в конфигураторе вычисление вольтажа из ПШ
    По калибровочным растворам уже гляну, показания можно сказать отличные сотые плавают но плата пока не в экране и питается от меги.
    Еще вопрос, возможно ли для температурной коррекции использовать данные с DS18B20 размещенного в баке с раствором (предусмотрено ли это в Вашей прошивке)? честно скажу пока не въехал.
     

    Вложения:

    Последнее редактирование: 31.05.17
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    @Viktorovich4232, ок, я уже делаю. Я сделал настройку PH_MV_PER_7_PH - туда можно будет записать кол-во милливольт, которые выдаёт датчик при 7 pH. Подумаю, как сделать реверсивное, т. к. просто (1023 - analogRead (phSensorPin) - не обойдёшься, в прошивке предусмотрена компенсация pH в зависимости от температуры раствора, поэтому читать из пина надо как есть, а все преобразования делать в зависимости от, что называется.

    Тогда мы будем отвязаны от специфики: у нас есть внутреннее представление pH, и неважно откуда оно пришло - мы всегда применяем компенсацию в зависимости от типа датчика. Естественно, при таком разрезе все датчики pH в рамках одной системы обязаны быть одинаковыми, без этого - никак.
     
  11. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Дык вот щас посмотрел по старому коду - например, если в среднем порт за 10 замеров выдал 500 с АЦП, то значение pH было бы 8,54, т. е. при уменьшении вольтажа на входе pH - увеличивается. Ровно так, как вы описали.

    Что-то я в непонятках.

    Правка: отбой. Посмотрел, разобрался - всё верно, у мну не как у вас, при 500 на АЦП милливольты получаются 2440. Отставить панику :) (это я себе).
     
  12. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    Вот тоже кумекаю как бы это реализовать в стиле: 0 = 0 1023=14 или ревнрсивно 0=14 1023=0
    Компенсацию в плюс или минус делать мы то будем знать зная с какой характеристикой работаем.

    Дмитрий, еще повторюсь с вопросом: какие температурные датчики можем использовать в прошивке для термокомпенсации показаний?
     
    Последнее редактирование: 31.05.17
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Любые, какие вам нравится - привязка датчика к pH настраивается на вкладке pH в конфигураторе (индекс датчика температуры). Соответственно, этот датчик должен быть прописан в модуле STATE, там, где управление фрамугами (#define TEMP_SENSORS_PINS). Также подойдёт любой датчик температуры с универсального модуля (они тоже при регистрации попадают в список датчиков модуля STATE). Именно датчик температуры любого поддерживаемого системой типа, у нас это пока - DS18*20, так что выбор невелик.

    Датчики влажности попадают в модуль влажности (HUMIDITY), и хоть там и есть температура - но она неприменима к модулю pH, ибо весь смысл термокомпенсации - макание датчика в раствор, с чем великолепно справляются китайские DS18B20 в нержавеющей колбе ;)

    Так сделано потому, что навряд ли вы макнёте DHT22 в раствор с pH :)
    Расчёт pH и пересчёт pH в милливольты в зависимости от типа датчика я уже сделал в прошивке, осталось в прошивке дописать термокомпенсацию ;) Не считая того, конечно, что ещё пилить вебморду и конфигуратор :)

    Чуть подождите - всё будет ;)
     
  14. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    @Viktorovich4232, обновил на гитхабе - прошивка, конфигуратор, вебморда. Датчик не подключал, поэтому проверки правильности пересчётов делал заочно, путём калькулирования :)

    Смотрите: теперь прошивка выдаёт, помимо значения pH - рассчитанное значение вольтажа для этого значения pH, в зависимости от типа датчика, который применяется. Соответственно, новая прошивка со старым конфигуратором и вебмордой - не взлетит, надо обновлять всё.

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

    Далее: в Globals. h - вам всего-лишь надо будет включить модуль pH в прошивку, затем - пойти в секцию настроек модуля - и вы там увидите следующее:

    Код:
    #define PH_MV_PER_7_PH 2000 // кол-во милливольт, при которых датчик показывает 7 pH
    // раскомментировать следующую строчку, если датчик pH имеет реверсивное изменение вольтажа при изменении pH,
    // т.е. при увеличении pH ( > 7) значение вольтажа уменьшается. По умолчанию считается, что при увеличении pH
    // значение вольтажа увеличивается.
    // #define PH_REVERSIVE_MEASURE
    
    Это всё, что вам нужно будет настроить, остальные расчёты - сделаются автоматом. Если я где вдруг накосячил - постарайтесь, плз, вникнуть в суть этих расчётов, там не сильно сложно: суть такова, что мы всегда отталкиваемся от средней точки (7.0 pH) и значения в милливольтах в порту меги, соответствующее этому значению pH. Отсюда все кажущиеся непонятными преобразования. Делений там, конечно, многовато, есть куда оптимизировать, но это - в будущем будет чем заняться :)

    Отпишитесь, плз, по результатам - что и как. Попробуйте и с закомментированной строкой #define PH_REVERSIVE_MEASURE, и с раскомментированной - чтобы увидеть разницу, тыксызыть.

    Буду ждать от вас отмашки по результатам ;)

    З. Ы, При таком реализованном подходе мега всегда выдаст правильное значение вольтажа на порту, вне зависимости от того, откуда пришли данные с датчика - собрала ли их сама мега или универсальный модуль плюнул в эфир. И да, забыл упомянуть - прошивка универсального модуля с датчиками тоже поменялась, если их пользуете - можно протестировать и её. Не подумайте, что отмахиваюсь, просто так в ломы подключать датчик pH сейчас :)]:aga::|:
     
  15. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    Дмитрий, обязательго завтра все оттестирую за день и отпишусь по результатам! Как раз сейчас керамзит свежепролеченный засыпал, гоняю смотрю за PH так что стенд для испытаний так сказать есть. TDS метра реально в вашей системе не хватае для полного счастья
     
Статус темы:
Закрыта.