cats_shadow: (Default)

Прототип «взлетел».

Пока один датчик/клапан. Собирать полную версию на беспаечном макете — погрязнуть в сути радиотехники, которая — наука о контактах. :)

Базовый алгоритм работает, но все настройки — в коде.

В планах: ночной режим (нечего щёлкать клапанами по ночам); обратная связь через web-интерфейс (настройка параметров, отображение текущего состояния).

P.S. Их Котейшество решили, что это новая хайтек-котопоилка :)



Комментировать в исходнике

cats_shadow: (Default)

«Не приспособлены мы, кролики, для лазания!» или «Когда у общества нет цветовой дифференциации штанов, то нет цели! А когда нет цели…» :)

Похоже, что не заточен мой мозг под Lua. Или Lua не заточен на мою задачу, хотя есть вкусняшки типа удобной работы с сетью и типа «event-driven». Но нет. Переписал прошивку поливалки в Arduino IDE на тамошнем С-образии.

Насколько оно таки понятнее и привычнее. Запустил петлю, дёрнул прерывание... :)

P.S. Почти вся комплектуха приехала. Осталось дождаться макеток, и можно паять. Собирать проводками на беспаечном макете — совсем совсем клубок будет ненадёжный. И не отладиться будет нормально.



Комментировать в исходнике

cats_shadow: (Default)
Продолжаем разговор, начатый в прошлый раз.
Дано:
  • надо обеспечить
    • дискретные выходы — 25 шт
      • управление датчиками влажности — 10 шт.
      • управление клапанами — 10 шт
      • управление датчиками расстояния — 2 шт.
      • управление насосом — 1 шт.
      • управление индикатором — 2 шт.
    • дискретные входы — 3 шт
      • датчики расстояния — 2 шт
      • кнопка — 1 шт
    • аналоговый вход — 1 шт
  • имеется на контроллере
    • GPIO — 11 шт.
    • аналоговый вход — 1 шт.

Итого наблюдается явная недостача дискретных входов/выходов.
Вопрос коллеги «А чего ты контроллер побольше не возьмёшь?» - был отметён, как неконструктивный. :)
Первая мысль, организовать 4-х битовую адресную шину, уткнулась в наличие двоичных дешифраторов исключительно с инверсными выходами, т.е. в необходимость дополнительных инверторов там, где рассчитывал обойтись без них.
Раз с параллельностью нам облом, придётся переходить на последовательную передачу. То есть на сдвиговые регистры. Группируем сигналы по назначению и считаем.
Статические выходные сигналы не критичные по времени - 21 шт (управление клапанами, датчиками влажности и насосом). Эти выведем в сдвиговый регистр - 3GPIO.
Сигналы, критичные ко времени - 7GPIO (датчики расстояния, кнопка, индикатор).

Итого требуется всего 10GPIO и сдвиговый регистр на 3 байта. Считаем, что задача решена.

Комментировать в исходнике

cats_shadow: (Default)

Давно заметил, что поливать оконную растительность летом — та ещё задача. Шансы пересушить велики весьма. Вот и возникла мысль об автоматизации этого процесса, благо сейчас комплектующие практически любые в доступности.

Эскиз — на рисунке. Вода из основного бака (на полу) будет закачиваться в расходный (под потолком). Оттуда самотёком будет распределяться по цветочным горшкам.

Управление микроконтроллером.

На входе: уровни воды в основном и расходном баках — дискретные сигналы, степень влажности грунта в горшках — аналоговые сигналы.

На выходе: управление насосом (закачка воды в расходный бак) и электромагнитными клапанами дозаторов (собственно полив) — дискретные сигналы. Сброс информации о текущем состоянии системы на сервер.

Пока в планах использовать в качестве контроллера или Arduino, или ESP8266 (NodeMCU Lua). В последнем случае имеем «творческую задачу» впихнуть всё (12 датчиков, 10 клапанов, насос, индикацию) в 8 GPIO и 1 ADC. :) Зато в базе уже есть WiFi контроллер со всей обвязкой. В случае с Arduino потребуется дополнительный шилд или тот же ESP8266.

Датчики влажности — обычные резистивные — два электрода в землю.

Датчики уровня жидкости — ультразвуковые типа HC-SR04.

Отображение на двустрочном индикаторе типа 1602 (подключение по I2C).

Пока в макетируется первая серия — опрос датчиков влажности по таймеру или по кнопке, отображение списка «пересохших», в зависимости от требуемой влажности для конкретного растения.

Уже работает опрос одного датчика влажности с подачей на него питания в момент опроса, и отображение показаний на индикаторе. Дальше надо «решать задачу на впихивание». :)



Комментировать в исходнике

cats_shadow: (Default)

В процессе реализации одного домашнего проекта возникла идея желательности обмена данными сервером. Полез изучать «новые технологии» — NodeMCU Lua на базе ESP8266.

и плата «сенсоров» для неё

На первый взгляд — та же Arduino почти. Входов/выходов меньше (это минус), WiFi в комплекте (это плюс). И даже из Arduino IDE программируется.

Поморгал светодиодом как из Lua, так и в arduino-style. Lua — штука забавная, может и удобнее чуть будет, чем то, что под Arduino заточено.

Кстати, если скетч из Arduino IDE залить, то потом придётся обратно прошивку с Lua заливать. Или-или, но ещё перепроверю.

Не без «ложки дёгтя». Часть библиотек просто не работает (и честно предупреждают об этом). Не смог пока подключить дисплей 1602 по I2C, ни в Lua, ни библиотекой Arduino. Хотя скетч сканера устройств на шине его находит по правильному адресу.

P.S. Попутно попался вариант платы на этом же кристалле в форм-факторе Arduino Uno



Комментировать в исходнике

July 2017

S M T W T F S
      1
234567 8
910 1112 131415
16 171819202122
23242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 23rd, 2017 04:49 am
Powered by Dreamwidth Studios