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

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

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

Статус темы:
Закрыта.
  1. Сергейфывчяфй
    Регистрация:
    25.02.12
    Сообщения:
    317
    Благодарности:
    266

    Сергейфывчяфй

    Живу здесь

    Сергейфывчяфй

    Живу здесь

    Регистрация:
    25.02.12
    Сообщения:
    317
    Благодарности:
    266
    Динамическое изменение настроек сделал через SD. Записал на SD файл настроек параметров и сценариев, отправил СМС c названием файла, все прописалось в EEPROM. На SD несколько файлов сценариев. Ну, как то так.
     
  2. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.972
    Благодарности:
    1.964

    promavto

    Разработка контроллеров

    promavto

    Разработка контроллеров

    Регистрация:
    27.02.16
    Сообщения:
    1.972
    Благодарности:
    1.964
    Адрес:
    г. Москва, Зеленоград.
    В максимальный вариант (STM32) добавил возможность загрузки прошивки через через веб-интерфейс по WiFi. В теории возможна дистанционная загрузка прошивки через интернет. Немного позже обсудим эту фичу с Димой (когда он немного освободится). Примеры программ есть. Пока тестирую тот вариант. В аппаратном отношении у нас есть почти все, нужны небольшие дополнения в схеме.
    Информация по этой теме https://istarik.ru/blog/stm32/122.html
     
  3. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.972
    Благодарности:
    1.964

    promavto

    Разработка контроллеров

    promavto

    Разработка контроллеров

    Регистрация:
    27.02.16
    Сообщения:
    1.972
    Благодарности:
    1.964
    Адрес:
    г. Москва, Зеленоград.
    Несколько раз поднимался вопрос дистанционной перезагрузки контроллера. Конечно сторожевой таймер неплохо справляется с контролем работы системы, но эта тема не закрыта. Для этой цели можно применить модуль SIM800C. Безусловно это возможно если в результате зависания контроллера, на модуль SIM800C питание поступает (в подавляющем случаях это так и происходит). Для этой цели можно использовать сигнал UART1_RI (вывод 7 модуля SIM800C). При поступлении звонка на номер Вашего модуля на этом выводе формируется сигнал низкого уровня и прекращается при "поднятии трубки". Достаточно подключить диод между выводом UART1_RI и выводом сброса микроконтроллера (примерно так как выполняется сброс сторожевого таймера, схемы выкладывал ранее). При поступлении звонка, контроллер будет сброшен. Но есть один нюанс применения этого режима. При поступлении SMS на выводе UART1_RI также формируется сигнал низкого уровня, но только на 120 мс. Для исключения сброса при поступлении SMS запросов необходимо добавить RC фильтр, который будет блокировать импульсы короче 150-200 мс. Параметры RC цепочки можно подобрать экспериментально.

    2019-10-18_12-19-48.png
     

    Вложения:

    • 2019-10-18_12-18-21.png
    Последнее редактирование: 18.10.19
  4. tchernyavsky
    Регистрация:
    27.03.16
    Сообщения:
    473
    Благодарности:
    160

    tchernyavsky

    Живу здесь

    tchernyavsky

    Живу здесь

    Регистрация:
    27.03.16
    Сообщения:
    473
    Благодарности:
    160
    И я тоже присоединяюсь! :hndshk:
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Пмсм, на SD хранить настройки железа - не очень, в EEPROM всё помещается. А вот сценарии и многое другое - тоже храню на SD, норм.

    Правка: сообразил ;) У вас на SD несколько вариантов настроек, которые потом в EEPROM пишутся. Норм. Я тут на днях начал неспешно подумывать, что в будущем появится модуль, который будет уметь держать в себе настройки на разные случаи жизни - типа разных уставок, зависящих от календарного времени года, например. И будет распихивать их куда надо, при случае (автоматически или вручную). Я всё же придерживаюсь той концепции, что однократно настроенный контроллер должен сам делать всю работу, а не требовать постоянного отсылания SMS или тыканья пальчиком в экран. Поэтому - пока думаю над набором таких зависимых данных, ну а дальше - посмотрим.
     
    Последнее редактирование: 18.10.19
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Уже давным давно, пару лет - есть команда по SMS для перезагрузки контроллера. Код бросается на нулевой адрес - и всё, перезагружаемся. Для Due применён чуть другой вариант перезагрузки. Собственно, кнопочка "Рестарт" в конфигураторе делает ровно то, что делает СМС с текстом
    Код:
    ####
    (четыре решётки подряд) - перезагружает контроллер. Зачем городить лишнюю схемотехнику - не понимаю.

    А если контроллер завис (что не случается практически никогда, ттт) - то сторожевой таймер его перезапустит. Не плодите сущности без необходимости (с) Оккам.
     
    Последнее редактирование: 18.10.19
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

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

    Короче, команд появилось - вагончик с тележкой. Пока эту итерацию по добавлению текстовых команд - закончу, и вернусь к выносу в конфигуратор настроек железа для модуля полива. После этого - останется совсем чуть-чуть ;)
     
  8. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.972
    Благодарности:
    1.964

    promavto

    Разработка контроллеров

    promavto

    Разработка контроллеров

    Регистрация:
    27.02.16
    Сообщения:
    1.972
    Благодарности:
    1.964
    Адрес:
    г. Москва, Зеленоград.
    Ооо! За всем не уследишь:faq::)]
     
  9. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.972
    Благодарности:
    1.964

    promavto

    Разработка контроллеров

    promavto

    Разработка контроллеров

    Регистрация:
    27.02.16
    Сообщения:
    1.972
    Благодарности:
    1.964
    Адрес:
    г. Москва, Зеленоград.
    Загрузка прошивки по WiFi. Скоро сказка сказывается да не скоро дело делается. Протестировал я этот вариант. Как всегда в описании метода много воды, а важные моменты отражены слабо или совсем не отражены. Целый вечер искал глюки и информацию, которую автор статьи "забыл" упомянуть. В результате тестирования результат получил, но пришел к выводу, проще замкнуть одну перемычку и залить прошивку через КОМ порт или приобрести копеечный ST-Link2 и не морочить голову ни себе ни людям (а особенно Диме).:faq::son:
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Я тоже считаю, что пока не стоит браться за загрузку прошивки по воздуху - с этим позже разберёмся. У тебя другого тестирования горой ;)
     
  11. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Язык C# - моща мощнецкая! Особенно, когда заранее продумаешь архитектуру, и добавление новых команд в редактор сценариев - становится, по сути, рутинной и несложной работой (гораздо сложнее - ввести поддержку этих команд в прошивку контроллера). Подумал - механизм сценариев у нас есть, и надо его расширять. Сценарии сейчас можно запускать по клику на кнопки на TFT-экране, веб-морде, конфигураторе - начало уже положено. Ну и, короче - расширил я поддерживаемые команды в редакторе:

    1.png 2.png

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

    Что это нам даёт, спросите вы? Да всё просто: во-первых, можно всегда парой кнопочек включить/выключить ненужные модули (например, летом полностью отключить контроль отопления - нехрен). Во-вторых - когда введём механизм запуска сценариев не по кнопке, а по каким-то условиям (например, запуск автоматически в какое-то время, или в какую-то дату и т. п.) - вот тогда будет ЖИИИИР! Теоретически - в прошивке даже менять особо ничего не придётся, все настройки на какое-то время года - можно прописать в сценарии :super::victory:. Единственный пока минус - не для всех текстовых команд есть документация, и возможно не все нужные текстовые команды - реализованы. Но всё это поправимо: что касается первого - то в редакторе сценария вообще не нужно знать формат команд, как видно. Что касается второго - всё дописывается со временем ;)

    Короче, у нас на руках уже мощнейший механизм перенастройки контроллера при помощи сценариев - за это стоит выпить :)]:aga:

    З. Ы. Кстати - сценарии хранятся на SD-карте, и имеют много интересных фич: стартовый код, который выполняется однократно, код завершения (тоже однократный), и код сценария, который может выполняться бесконечно, если в настроках сценария поставлен соответствующий флаг. Короче - супер, как по мне. Останется в будущем грамотно распорядиться этим функционалом, понасоздавать всяких необходимых сценариев про запас - и можно будет всем желающим выдавать их в поставке к контроллеру, а уж необходимый набор сценариев - пользователь сам сможет экспортировать из редактора, чтобы потом закачать их на SD-карту.

    А сценарий, по сути - это набор команд CTSET=, которые тупо перенаправляются к модулям. Вот что значит - заранее предусмотреть такой интерфейс взаимодействия ;)

    Чой-то я отвлёкся, но это специально :)]:aga: - манкирую выносом в конфигуратор настроек железа для модуля полива - там куча кучная. Но всё - теперь уже точно этим займусь. Но - завтра. Но - не ближе чем к вечеру, т. к. к зуботерапевту еду.
     
  12. Сергейфывчяфй
    Регистрация:
    25.02.12
    Сообщения:
    317
    Благодарности:
    266

    Сергейфывчяфй

    Живу здесь

    Сергейфывчяфй

    Живу здесь

    Регистрация:
    25.02.12
    Сообщения:
    317
    Благодарности:
    266
    Дмитрий, я уже писал ранее как хочу, а теперь как сделал, помимо параметров настроек железа (в данном случае под железом понимается объект управления-теплица, у кого, например. северная форточка большая, а у кого ее вообще нет. Объектом может быть так же курятник, аквариум и т. д.) есть набор сценариев (под сценарием понимаем способ достижения заданного параметра и способы коррекции другого параметра если заданный параметр не достигнут.) Например, если задали Температура дневная 25 градусов- поливать 3 литра на растение, а по факту средняя дневная получилась 27 в период когда растение маленькое и испаряемость с поверхности растения незначительная можно не вводить функцию зависимости объема полива от Т, но по мере роста, необходима коррекция.(имеется несколько сценариев коррекции). И имеется реестр параметров и заданий (формируется на каждый день, загружается из EEPROM при наступлении следующего дня). Весь Реестр параметров и заданий (25 параметров (постоянно поддерживаемая величина либо определенный сценарий) и заданий (периодическое действие) на 140 дней выращивания) загружается в EEPROM отправкой СМС с названием файла. Таким образом можно сформировать, например график температурного режима на весь период выращивания, либо применения определенного сценария в строгом соответствии с фазами роста (аналогично но всем остальным параметрам).
     
    Последнее редактирование: 19.10.19
  13. Сергейфывчяфй
    Регистрация:
    25.02.12
    Сообщения:
    317
    Благодарности:
    266

    Сергейфывчяфй

    Живу здесь

    Сергейфывчяфй

    Живу здесь

    Регистрация:
    25.02.12
    Сообщения:
    317
    Благодарности:
    266
    Таким образом клиенту доступно только два реестра:
    - реестр настроек параметров под свою конкретную теплицу.(настраиваем чем выращивать)
    - реестр параметров и заданий. (настраиваем как выращивать)
    все грузится через СМС. с SD-карты.
    Вся телеметрия и метеоданные с метеостанции прописываются в файл и могут использоваться для анализа работы объекта.
     
    Последнее редактирование: 19.10.19
  14. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.972
    Благодарности:
    1.964

    promavto

    Разработка контроллеров

    promavto

    Разработка контроллеров

    Регистрация:
    27.02.16
    Сообщения:
    1.972
    Благодарности:
    1.964
    Адрес:
    г. Москва, Зеленоград.
    Парни, конструировать и программировать, конечно, увлекательно. :)]:victory: Но не будем забывать что эта система предназначена для простого любителя выращивать что то. Не нужна слишком сложная система, которая будет следить за какими то сложными зависимостями и что то очень тонко регулировать. Все это не будет востребовано в полной мере и только добавит головной боли и непонимания пользователем типа "а что это за хрень и как ее правильно настроить". Даже если я, как один из разработчиков, забыл о
    , а я ведь знал об этом раньше. :faq: Не говорю уже о том что иногда звонят клиенты и спрашивают "а где настраивается ХХХ, не можем отыскать в меню". Короче говоря, система должна быть крутой, но интуитивно понятной пользователю. А иметь разные программы для выращивании редиски и помидоров, конечно можно, но если я скажу об этом супруге, она очень обеспокоится о моем состоянии психики. :hello:
     
  15. Сергейфывчяфй
    Регистрация:
    25.02.12
    Сообщения:
    317
    Благодарности:
    266

    Сергейфывчяфй

    Живу здесь

    Сергейфывчяфй

    Живу здесь

    Регистрация:
    25.02.12
    Сообщения:
    317
    Благодарности:
    266
    Александр, а Вы не говорите ей, вот она удивится если в теплице курицы вырастут. :)]:)]:)]
    потому что контроллеру все равно что (кого) выращивать. Моя же пережила, и психушку не вызвала.

    А с реестром заданий программа очень простая:

    Скетч использует 42 672 байт (16%) памяти устройства. Всего доступно 253 952 байт.
    Глобальные переменные используют 2 302 байт (28%) динамической памяти, оставляя 5 890 байт для локальных переменных. Максимум: 8 192 байт.

    нет меню, нет кнопок, дисплей 4х строчный, чисто информационный.
    В планах прикрутить по WiFi смартфон и все загружать с него вместо СМС, но это потом, пока и так работает.
     
    Последнее редактирование: 19.10.19
Статус темы:
Закрыта.