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

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

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

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

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Ну всё, решился сбросить роутер, вроде ничего не сломалось, правда ещё перезагрузка предстоит. Только зашёл - сразу понял смысл SSID и Password, а также что такое точка доступа и клиент. Я всё понимал неправильно, не мог понять откуда брать SSID и пароль, вплоть до того, что думал - может они в каждую микросхему зашиты.
    Подставил их в скетч и монитор сразу же выдал готовность и IP адрес.
    Двигаюсь дальше. Теперь нужно добиться связи через WiFi.
     
  2. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Ну вот, теперь мои устройства смогут работать и обновляться по воздуху, но...пока в том что получил больше минусов, чем плюсов. - Код раздулся в 20 раз., скетч замусорен инструкциями WiFi. Конечно это фигня но... где ты, чистота Arduino-кода? Хотя печаль конечно в другом - ужасный запуск из браузера. Если при прошивке посредством USART или программатора USB достаточно было нажать на кн. Загрузка, то тут целая процедура:
    Сперва надо найти где расположен бинарный код, полученный в результате компиляции, затем скопировать его, перейти на страницу запуска, набрав в адресной строке браузера IP-адрес и нажав ввод, вставить туда этот бинарный файл и запустить загрузку.
    Но и это не самое неприятное, а то, что обратной связи нет и все программные изменения нечем мониторить. Стало ясно назначение программного сервера - он как представитель заказчика, следит чтобы не надули и всё докладает наверьх, т. е. обеспечивает обратную связь с удалённым объектом.
    Короче, не хватает монитора для отладки. Ок, хотя бы скетч загружался просто, а для отладки я могу собрать и 2-ю систему, где на столе отлаживать без реального объекта хотя бы часть операций.
    Пока нашёл ОТА c Python-ом, вроде то что нужно - количество строк WiFi в скетче резко уменьшается, загрузка проста как в Arduino.
     
    Последнее редактирование: 12.01.19
  3. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Производил эксперименты на дальность. Помещал свой модуль на кухню и в ванную - за 3 стены. Обновление проходит, правда от роутера с 2-мя антеннами. В реальности будет USB-свисток (жду из Китая), наверное он будет иметь меньшую мощность, но теплица, где будет стоять контроллер, возле садового домика и окно выходит в её сторону. Если что, системный блок можно будет ставить перед окном.
    На практике процедура связи будет не столь сложной, как думал, поскольку IP-адрес не меняется даже после выключения компьютера. Сегодня включил - IP-адрес тот же. Адрес, где формируется бин-файл, тоже не меняется, поэтому повторные отсылки сильно упрощаются.
     
  4. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Я вообще планирую делать готовые устройства не на ESP8266, NodeMCU нужен мне только как средство беспроводной заливки скетчей. Потом, когда скетч будет отлажен, готовая программа переносится на AT328P, т. е. целевые устройства будут на АТ-шках, которые по многим параметрам выигрывают у ESP.
     
  5. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Заработала ОТА с использованием Python и это оказалась очень удобно. Теперь в самом скетче, для того чтобы он загружался по WiFi, надо добавить всего 3 строчки. Вот так например будет выглядеть скетч мигания светодиодом:
    Код:
    #include <ArduinoOTA.h>
    void setup() {
      ArduinoOTA.begin();
      pinMode(2, OUTPUT);
    }
    void loop() {
      ArduinoOTA.handle();
      digitalWrite(2, HIGH);
      delay(1500);
      digitalWrite(2, LOW);
      delay(500);
    }
    Теперь, как только я подключаю питание к своему WiFi устройству, сразу появляется порт связи по WiFi, который у меня выглядит вот так: esp8266-467fe1 at 192.168.1.112.
    Монитор правда не работает (впрочем, я не проверял), но я и раньше им не пользовался - мне не нравилось засорять программный код всякими Serial-строчками.
    Ну что, кажется дистанционной загрузки добился, можно приступать к подключению периферии.
     
  6. ask33
    Регистрация:
    06.11.13
    Сообщения:
    1.583
    Благодарности:
    3.398

    ask33

    Живу здесь

    ask33

    Живу здесь

    Регистрация:
    06.11.13
    Сообщения:
    1.583
    Благодарности:
    3.398
    Адрес:
    Ногинск
    А как отлаживаешь? Полноценный отладчик к ATmega стоит дорого.
     
  7. Sturgeon
    Регистрация:
    25.10.12
    Сообщения:
    3.350
    Благодарности:
    1.807

    Sturgeon

    Живу здесь

    Sturgeon

    Живу здесь

    Регистрация:
    25.10.12
    Сообщения:
    3.350
    Благодарности:
    1.807
    Адрес:
    Ногинск
    Ну странно как-то. А почему сразу и не оставить NodeMCU?

    Охотно верю. Хотя и того и другого хватит, чтобы запустить космический корабль. А уж с теплицей-то и подавно одна ЕСПшка справится. Хотя я не знаю Ваших конкретных потребностей.
     
  8. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    А когда в устройстве есть свой дисплей, то какая разница куда выводить информацию с контрольной точки программы? Скажем, если произошло событие - вывести на дисплей +.
    Пока ATmega справляется, какая нужда переходить на более сложное?
    У ATmeg-и меньше цена и размеры. Сравните размеры NodeMCU - 60*30 и ATMega328P - 10*10 - разница в 18 раз, соответственно и размеры платы. Токопотребление у меги рекордно низкое. Я хочу не только теплицами с помощью МК управлять, но и просто высокими грядками - в земле трубки на 32, по ним прокачивать атмосферный воздух весной, если дельта есть, а она будет - воздух уже тёплый днём, а земля - мёрзлая. А ещё дуги если поставить и плёнку натянуть - обязательно контроль t нужен, иначе даже весной всё погорит. Для этих реализаций на AT контроллер с 1-м - 2-мя реле - размером со спичечный коробок или чуть больше, сама платка от батарейки работать будет, WiFi им нужен как рукав к одной штучке.
    Программа - нафига там операционка, языки типа LUA или скриптовые? Сам полезный код там тонет среди всякого мохуяра.
    Ну и т. д. В общем, будущее покажет, но полагаю и то и другое сгодится.
     
  9. __AK__
    Регистрация:
    19.10.15
    Сообщения:
    951
    Благодарности:
    407

    __AK__

    сноб

    __AK__

    сноб

    Регистрация:
    19.10.15
    Сообщения:
    951
    Благодарности:
    407
    Сравнивать надо сравномое:
    - NodeMCU намного меньше и дешевле чем Аурдуно UNO (69х53 мм)
    - Модули ESP-12 меньше и дешевле чем Arduino Pro Mini
    - Чип ESP8266 (5x5 мм) меньше чем чип Atmega328P. Цены не узнавал, но скорей всего тоже дешевле.

    Это имеет значение только для устройств с батарейным питанием.
     
  10. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Вот именно! Кой чёрт сравнивать с тем, что всё-равно невозможно использовать? Шаг ножек у чипсета ESP8266EX - 0,5 мм, ну и что я буду делать с таким чипом?
    А антенна? ESP8266EX без антенны бесполезна, так что по минимуму всё равно не получится, даже с высокой технологией.
    Если уж скрупулёзно подходить, то что вообще сравнивать вай-фай МК с обычным? В тех конструкциях, где вай фай не нужен, ввиду их простоты, нет смысла и ESP ставить.
    Сравнение должно иметь какой-то практический смысл, исходя из этого, чип ATMega328P правильнее сравнить c модулем ESP, а размер модуля ESP-12E - 19*25мм=475. Да, печатная плата получится ненамного больше с учётом размеров реле и дисплея. Собственно, я так и планировал, заменить затем отладочную плату на модуль, но может в этом просто нужды не возникнет - я купил 2 отладочные платы, если больше не понадобится, то пусть они и трудятся.
     
  11. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Что-то никак не дождусь модуля связи по I2C для LCD1602. Решил не ждать, попробовать подключиться к TFT 1.44' 128*128 Color (ещё не пробовал с ним работать), но на ESP поставить не получилось. Информации по подключению к ESP почти нет, всё к Ардуино. Решил сперва добиться чтобы на Ардуино заработало, но шнурка подключения к Uno по UART не оказалось.
    С библиотекой разобрался - по ошибке не ту выбрал, завтра куплю шнурок - продолжу.
     
  12. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Купил шнур, путевой выключатель и св/модуль для сверлилки, кнопок мелких для установки прямо на платах, поскольку они в контейнерах: крышку снял, перенастроил - крышку закрыл.
    С подключением к Ардуино TFT проблем не возникло, не работало из-за библиотек - обе кривые были, заменил, русифицировал, наигрался с выводом текста... надоело.
    А с ESP и пробовать не хочется, зачем там SPI - 5 лишних выводов занимает. Жду модуль IIC, в магазинах таких не оказалось, пока можно подсветку и путевой на станок лепить.
     
  13. ask33
    Регистрация:
    06.11.13
    Сообщения:
    1.583
    Благодарности:
    3.398

    ask33

    Живу здесь

    ask33

    Живу здесь

    Регистрация:
    06.11.13
    Сообщения:
    1.583
    Благодарности:
    3.398
    Адрес:
    Ногинск
    Движение это хорошо. А мне скоро актуатор придет. А по поводу разработки застрял на уровне меню в программировании. Но уже можно выставлять время, управлять сенсорами (BME280, SI7021 и тд) и настраивать таймеры для нагрузок. Сейчас делаю привязку сенсоров к нагрузкам. Чтобы например проветривание включалось не только по таймеру а по показаниям сенсора.

    А библиотеки это да, хорошо работают только те что идут в поставке с ардуино ИДЕ, а вот дополнительно установленные тут как попадешь.

    До TFT дисплеев все руки не дойдут, дома лежат 2,4" дюйма. Даже ни разу не подключал.
    Пришли расширители портов MCP23017 на макетку распаял, но тоже не пробовал еще работать с ними. Так что не знаю сколько еще успею сделать до начала дачного периода, а полуготовое устройство тоже не хочу ставить.

    Все праздники новогодние делал перощипательную машину. Сделал, надо конечно доработать некоторые вещи, времени просто не хватило. Но очень доволен результатом.
     
  14. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Платы контроллеров с 1-2-мя реле для простых применений полностью отработаны и проверены, там никакие сложные алгоритмы не нужны, а из планируемых применений у меня все такие, кроме теплицы.
    Считаю что такие контроллеры будут крайне полезны на грядках с трубками. Они будут сравнивать дельту температур атмосферы и грунта и включать продувку, весной должны днями работать, т. к. грунт мёрзлый. 2-е реле нужно если грядка укрыта плёнкой, а вентилировать можно тоже через грунт. Под плёнкой намного лучше, чем под укрывным, который не греет, а только сглаживает колебания температур. Летом пленку можно вообще снимать.
    На 4 реле плата c чипом AT328P давно готова и можно её собрать и использовать - поначалу алгоритм всё равно тоже будет несложный, тоже гонять воздух через трубы, чтобы согревать землю и не допускать перегрева воздуха весной, пока форточки закрыты. Когда-нибудь, если дело пойдёт, можно будет увеличить количество датчиков и реле, что совершенствовать - я хорошо представляю, изучил.
    Отладочная плата будет функциональна идентична - тоже 4 реле, отличие только в том, что можно будет по WiFi обновлять прошивку, что ускорит эксперименты с исполнительными механизмами и режимами.
    К весне будут готовы контроллеры в разных вариантах и можно будет переходить к практике, если только здоровье не подведёт, в последнее время снова стало сильно доставать.
    Согласен, но их обычно производители датчиков и микросхем разрабатывают, а портят любители, внося в них свои изменения. Если находить официальный источник, то тоже должны работать корректно.
    Тут главное - нужно найти библиотеку именно под тот чипсет, что стоит в контроллере TFT. Осложняет то, что китайцы присылают изделия без опознавательных знаков и на странице в Али не описывают, как у меня получилось. Ещё должна быть адаптация именно под систему (например, Arduino IDE) и под устройство, с которым TFT будет работать (например, Arduino Uno или ESP и др.).
    Жаль что экран 1,44' расположен в высоту (как книга) - 9 знаков в строке. Маловато получается -
    2017-12-18 14-00-54.JPG
     
  15. ask33
    Регистрация:
    06.11.13
    Сообщения:
    1.583
    Благодарности:
    3.398

    ask33

    Живу здесь

    ask33

    Живу здесь

    Регистрация:
    06.11.13
    Сообщения:
    1.583
    Благодарности:
    3.398
    Адрес:
    Ногинск
    Это находил только у далласа на DS18B20. Для DS3231, BME280 и SI7021 не находил от производителя, да честно говоря ни на какие кроме как на DS18B20 не находил от производителя библиотек под Ардуино. Только даташиты в которых написано как работать с сенсором. Все SparkFun и Adafriut не в счет, это просто производители модулей на чипах и библиотеки у них ужас какие кривые.
    Тут согласен, надо знать чип чтобы правильно выбрать библиотеку или настройки в библиотеке задать. Я использую OLED 1,3" на SSD1306, но последние пришли с SH1106 разницы в работе к счастью не заметил.
    Это немного не согласен, он же графический, там вывод адресуется точками, а не готовыми символами, то есть рисуй хоть вдоль хоть поперек. А количество символов в строке зависит от размера символа в самой библиотеке, можно если надо менять размер символов. Я нарисовал для себя 3 шрифта динамических в ширину 8хХ, 16хХ и символьный. Например цифра 1 в ширину 3 пиксела, а значит с интервалом между символами в 1 пиксел их можно вывести на экран в одной строке 32 штуки, а цифра 2 в ширину 5 пикселов и с интервалом между символами в 1 пиксел их можно вывести только 21 штуку.
    У тебя наверное библиотека умеет работать только по горизонтали, может есть в инете которые могут "вертеть" изображение на дисплее.
    У моих OLED 1,3" на SSD1306 есть аппаратные режимы как поворота дисплея так и зеркального отображения.