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

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

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

Статус темы:
Закрыта.
  1. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Поздравляю всех с сотой страницей третьей части Марлезонского балета :)
     
  2. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    Конечно отлично, тут можно такого наваять, не хуже Due с 7 TFT, с отзывчивостью конечно похуже
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Я рад, что функционал пришёлся ко двору ;) Всё-таки выбор первоначальной архитектуры себя оправдывает (ттт).

    Кстати про "наваять": поделитесь потом скринами, чего там вышло. Можно даже видос снять, я его на свой канал могу выложить, как демонстрацию работы контроллера в связке по MQTT ;)

    Думаю, многим будет интересно, что у вас получится ;)
     
  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Обновил на гитхабе, добавил использование POWERKEY у SIM800, если необходимо. Этот вход модуля используется для включения/выключения питания, и его надо дёрнуть на N миллисекунд, чтобы модуль включился. Для готовых китайских модулей - неактуально, там это по умолчанию реализовано как-то, а вот для голого SIM800 - надо, на плате под Due сейчас именно такой голый SIM800C и стоит - никто POWERKEY не дёргает.

    Короче, всё включается настройкой компиляции, которая по умолчанию выключена. И теперь можно управлять включением SIM800 через порт МК, если в этом возникнет такая необходимость (а она, подчёркиваю, уже есть в свете отладочной платы под Due).

    Два часа выпытывал у Александра (автор платы) всю подноготную, немного вник в нюансы, буду включать эту плату в работу постепенно. Из тонкостей - тот самый SIM800, Александр заказал ещё кучу проверок всяких статусов, которые модем выдаёт на свои ноги (регистрация в сети и пр.). Короче, GSM-модемы хотят выпить мою кровь наполовину, это точно :)]:aga: Но, как обычно - сделаем, и, как обычно - настраиваемо, чтобы можно было и китайчатный модуль юзать, и на полном фарше работать, если надо.

    Такие дела.
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Тестовый скетч работы с TFT уже заработал на плате, зашибись! На днях буду это дело в прошивку впиливать, потихоньку настройки под Due адаптирую в прошивке. Радостно - всё поднялось с экраном без особых проблем.
     
  6. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    @DIYMan, вопросы
    Как посмотреть привязку пинов у универсального исполнительного? только в момент регистрации?

    CTSET=STATE|T_SETT|t open|t close -
    есть возможности создать топик отдельно на t open и t close? CTGET=STATE|T_SETT получать в разных sub t open и t close. А на разные окна?
    На примере
    pub - nnm/SET/STATE/T_SETT/1/T_OPEN к нему sub nnm/GET/STATE/T_SETT/1/T_OPEN
    pub - nnm/SET/STATE/T_SETT/1/T_CLOSE к нему sub nnm/GET/STATE/T_SETT/1/T_CLOSE
    и
    nnm/SET/STATE/T_SETT/2/T_OPEN к нему sub nnm/GET/STATE/T_SETT/2/T_OPEN
    nnm/SET/STATE/T_SETT/2/T_CLOSE к нему sub nnm/GET/STATE/T_SETT/2/T_CLOSE
    В клиенте предполагается извлекать переменные sub из JSON. Передавать JSON это, по моему, перебор
    Я, как соображу как можно записывать экран планшета на видео, выложу что получается
     
    Последнее редактирование: 15.12.17
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    1. Нет, команда составная, мы так все команды не попилим на части, команд ОЧЕНЬ много, а памяти - мало.

    2. Получать всякие настройки пока нельзя, это в планах на будущее. Т открытия и закрытия на все окна с правилами по умолчанию - одинаковая, но никто не мешает создать правила для каждого окна, и там прописывать температуру. Всё рулится правилами.

    Прошу понять правильно - MQTT оно, конечно, чудесно, но ради него я не собираюсь ломать систему команд. Нормальный клиент должен позволять формировать имя топика, это моё твёрдое мнение. Если клиент MQTT этого не позволяет - что-ж, это ограничения клиента. Сейчас контроллеру можно скармливать по MQTT ЛЮБЫЕ команды SET, будет ли эта команда полностью именем топика, или будет в payload её часть - неважно, как вы помните, контроллер склеит. Но вот формировать команды придётся в том формате, в котором понимает контроллер.

    Аналогия: GSM-модем, там есть AT-команды с несколькими параметрами, просить у модема каждый параметр отдельно вводить - не выйдет ;) Также сделано и у меня, думаю, сделано вполне очевидно и прозрачно. В дальнейшем допишем поддержку топиков получения по MQTT ответов на запросы GET - и будет вообще двусторонний обмен. Но - при этом формат команд, и их количество, в контроллере останутся прежними, не обессудьте. Потому как я не вижу никаких путей для разнесения этих команд поодиночке - это огромный объём работы, на который я пока не готов, мне проще спихнуть этот нюанс на недостаток MQTT-клиента :)
     
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Обновил на гитхабе, выложил первую версию поддержки TFT под Due - стартовый экран уже пашет (датчики только ещё не подключал), пищалка при клике на кнопки TFT - работает, на экране отображается статус контроллера и показания датчиков.

    Кое-какие модули уже протестировал, на очереди ещё много работы: проверка ESP, GSM, SD-карты, сохранение/выгрузка настроек и т. п.

    Но с первой версией уже можно побаловаться на Due. Там есть один нюанс: в библиотеке UTFT в файле HW_ARM_defines.h надо раскомментировать строчку /#define CTE_DUE_SHIELD 1 - если используется шилд для экрана (на плате он не используется, там напрямую разведено). Ну и настройки пинов для TFT и тачскрина поменять в конфиге Configuration_DUE.h, для этого шилда это

    Код:
    // TFT model
    #define TFT_MODEL CTE70 // SSD1963 (16bit) 800x480 Alternative Init
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    // TFT RS pin
    #define TFT_RS_PIN 25
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    // TFT WR pin
    #define TFT_WR_PIN 26
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    // TFT CS pin
    #define TFT_CS_PIN 27
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    // TFT RST pin
    #define TFT_RST_PIN 28
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    // touch settings
    // настройки тачскрина
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    #define TFT_TOUCH_CLK_PIN 6
    #define TFT_TOUCH_CS_PIN 5
    #define TFT_TOUCH_DIN_PIN 32
    #define TFT_TOUCH_DOUT_PIN 3
    #define TFT_TOUCH_IRQ_PIN 2
    
    Естественно, для моей платы там стоят другие настройки. Так что если кто хочет экранчик потестить на Due - уже можно, только будьте внимательны с настройками, лучше закомментировать лишнее, чем раскомментировать ещё не протестированное ;)

    З. Ы. Библиотеки для TFT - приложены, в папке Libraries архива на гитхабе - устанавливать именно их.
     
  9. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    если малой кровью нельзя, значит нафиг нужно, ломать тем более нечего не нужно
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Да просто там команд уже тонны, вот в чём проблема. И каждый параметр разносить - это для каждой писать код получения и отдачи, тестировать и т. п. Короче, реально гемор. А есть команды очень составные, типа настроек полива и т. п. - там, например, маска дней недели в одном байте кодируется, значение этого байта передаётся строкой. Вы представляете, как оно будет выглядеть в MQTT-клиенте? Я - слабо, если честно: надо сделать кучу телодвижений, чтобы сформировать такой байт с днями недели, даже если команда будет всего из одного параметра, а не составная ;) Короче, нет лёгкого пути :(
     
  11. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Да, забыл ответить на это: да, только при регистрации. Т. е. можно подоткнуть уже зарегистрированный, и посмотреть, что к чему.
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @Shelllonn, давайте сделаем так: вы составьте список команд, который считаете необходимым иметь на MQTT-клиенте (имею в виду SET-команды), и можно в классе MQTT-клиента в контроллере сделать альясы для этих команд, чтобы напрямую сохранять в настройки, например. Т. е. для MQTT можно ввести с десяток отдельных команд, которые контроллер понимает. Конечно, универсальность теряется, но кое-что можно сделать именно так, ту же установку температур.

    Готовьте список, посмотрим, чего там можно с этим сделать. Всего не обещаю, но над кое-чем можно будет поработать.
     
  13. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    Да, только посмотреть.
     
  14. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Втыкаете его в линию регистрации, и жмакаете "Поиск". Конфигуратор вытащит с модуля все привязки и отобразит их.
     
  15. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    @DIYMan, открыть закрыть, вкл выкл - работает. Температуру показывает. Температуру открывания форточек, наверное можно. Может еще, что-то, с влажностью земли. А больше я хз, что нужно. Вроде автоматика на то она и автоматика, один раз настроил и забыл, мониторить только.
     
Статус темы:
Закрыта.