Найти тему
5277

Проект автоматизации 5277, собственные устройства.

У меня есть собственная линейка DIY устройств, сейчас я заканчиваю очередной цикл их доработки.

Процесс разработки прошивки прототипа (старое фото)
Процесс разработки прошивки прототипа (старое фото)

И здесь стоит напомнить, что я приложил много сил, чтобы мой проект-конструктор поддерживал большое количество различных устройств не зависимо от бренда, протокола, физического интерфейса или спецификации. Т.е. совсем не обязательно использовать именно мои устройства(хотя они имеют несколько полезных особенностей).

На текущий момент библиотека сторонних устройств почти пуста, там что-то около 50 устройств. И причина этому вся та-же - нет аудитории, нет понимания на какое оборудование обратить внимание и нет высокого приоритета для подобных задач.

Термотрубка вместо корпуса
Термотрубка вместо корпуса

В целом, у всей линейки устройств можно выделить общие свойства:

  • Питание постоянным током с потреблением 5-30мА(у устройств с электромагнитным реле больше), входное напряжение от 5 до 36 вольт.
  • RS-485 интерфейс с поддержкой до 128 устройств на одной шине(все устройства подключаются к одной линии). 4-х контактный разъем PH2.0. На некоторых платах разъем двойной, для подключения дополнительного устройства.
  • Не большие размеры так как на платах нет радио модулей и блоков питания.
  • Пока без корпуса. Их можно защитить термотрубкой или выбрать подходящий корпус из доступных на рынке.
  • На борту Atmega88/168/328(чаще всего Atmega168). Также на некоторых устройствах может быть Attiny13a, Attiny45/85(например на платах расширения)
  • DC-DC step down преобразователь(старые модели были на линейном стабилизаторе типа 7805).
  • 2-5 контактный разъем PH2.0 для подключения кнопок управления, различных датчиков, сухих контактов и прочего.

github
github

"Powered by core5277" - программная часть исполнена на собственном программном комплексе с операционной системой на ассемблере для AVR микроконтроллеров и специальной программной прослойкой для устройств моей линейки.

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

  • Протокол собственной разработки bus5277. Близок к MODBUS но имеет ряд преимуществ. Его достаточно легко реализовать и он более компактен(заголовок и хвост - 4 байта, максимальный размер пакета - 40 байт).
  • Возможность передавать большие объемы данных.
  • Уникальная идентификация устройств и возможность коммуникации как на базе адреса устройства на шине, так и на базе уникального идентификатора.
  • Возможность сканирования шины для поиска устройств.
  • Быстрая передача события от ведомого к ведущему(к Java контроллеру)
  • Поддержка bootloader'а для обновления прошивки устройств.
  • Ведение истории. Даже если устройство не на связи, и ведущий не может его опросить, то после восстановления связи десятки последних событий будут переданы.
  • Программная настройка расширенного порта. Вы можете подключить к расширенному порту ряд датчиков, программного указав его режим работы.
  • Благодаря драйверу кнопок core5277 устройства понимают короткие, длинные нажатия, удерживание кнопки долгое время(драйвер запоминает максимум 4 нажатия). Те комбинации, которые не обрабатываются напрямую устройством, могут быть переданы на Java контроллер для обработки сценариями.
  • Сенсорные кнопки(функционал пока еще не перенесен из старого цикла доработки). Управление касанием. Я часто встраиваю свои устройства управления в обычных размеров розетки. Но места там для кнопки не остается, поэтому использую сенсорный вариант(часто в виде торчащей на поверхности аккуратной, не большой, головки болтика).
  • Режим старта и запись состояния реле. Можно указать режим старта реле - выключено/включено/последнее состояние.
  • Режим управления. Можно запретить разные источники управления(ручное управление/триггеры/таймеры/шина)
  • Поддержка таймеров. Устройство управления может выполнить отложенное действие, и при необходимости повторное действие через заданную паузу. Паузы могут быть заданы в диапазоне от десятков миллисекунд до нескольких часов.
  • Поддержка триггеров(функционал пока тестируется). Достаточно простая логика, которая загружается непосредственно в устройство. Т.е. устройство может работать автономно.
  • Присутствует информация об устройстве. Модель, версия прошивки, версия бутлоадера, версия печатной платы, версия Java библиотеки и главное - время жизни устройства после перезагрузки(uptime)

Фото прототипов из старого ЖЖ
Фото прототипов из старого ЖЖ

На текущий момент у меня есть следующие типы устройств(некоторые еще не перенесены из старого цикла доработки, и даже есть несколько устройств прототипы которых я еще не спаял и не реализовал прошивки):

  • Двойной димер - димер лампы накаливания(до 300Вт) и светодиодов(1 канал, 5-36в)
  • Универсальный модуль с 3-х канальным портом ввода-вывода и портом расширения. На его базе я создаю разные прошивки: датчик двери, кнопочный модуль, датчик температуры и влажности, датчик CO2, ИК приемопередатчик, Wi-Fi шлюз, Bluetooth шлюз, Lora шлюз и многое другое.
  • Шлюзы для моей шины: UART шлюз, USB шлюз, USB шлюз с питанием шины. Эти шлюзы выполняют не только физическое преобразование интерфейсов, но так-же выполняют логическую часть, которую нельзя реализовать без операционной системы реального времени. Хотя мои устройства могут работать и через обыкновенные преобразователи типа USB-RS485(с ограниченным функционалом или дополнительной нагрузкой на Java контроллер и т.п.).
  • Модуль для символьных экранов типа WH1602. Замена широко распространенному I2C модулю. Главное преимущество - RS485 шина вместо I2C и расширенный программный функционал.
  • Трехканальный димер светодиодов. Для стабилизированных по напряжению 5-36 вольт.
  • Универсальный модуль датчиков газа типа MQ-2/4/5/6 и т.д.
  • Герконовые реле(1,2,3,4 порта) на базе SIP1A05.
  • Компактное реле 10а 250в опционально с датчиком тока/температуры/температуры и влажности и прочее. Встраивается во многое розетки.
  • Компактное реле 16а 250в опционально с датчиком тока/температуры/температуры и влажности и прочее . Встраивается в стаканы настенных розеток.
  • Димер ламп накаливания(1 порт)/твердотельные реле(1,2,3,4 порта). Твердотельные реле на несколько каналов, где один канал может быть димером лампы накаливания. Максимально, суммарно 300-500Вт на все каналы.
  • Sun-Sun димер для светодиодных ламп со стабилизацией по току(пока в процессе разработки)
  • Универсальный модуль для аквариума. Димер ламп накаливания(1 канал), твердотельное реле 250в(3 канала), димер светодиодов со стабилизацией по напряжению(3 канала-RGB), часы реального времени, порт датчика температуры или датчика температуры и влажности, сухой контакт, интерфейсный порт для подключения символьного экрана и панели управления и порт расширения для плат расширения как в универсальном модуле.

Платы расширения:

  • Bluetooth шлюз.
  • Датчик CO2.
  • Датчик температуры и влажности.
  • Модуль с ИК приемопередатчиком, светодиодом(ночник) и датчиком температуры и влажности.
  • RS-485 шлюз
  • ИК приемопередатчик
  • Модуль кнопок
  • Светодиодный RGB модуль(ночник)
  • Lora шлюз
  • Прерыватель, кратковременно разрывает цепь питания устройства для его перезагрузки.

И это не коммерческое предложение. Весь этот зоопарк нужно привести в порядок. Провести тщательное тестирование и сертификацию. Ну и при востребованности - наладить производство.

Также очень важен вопрос стоимости, здесь есть два очевидных фактора:

  • Чем больше объем производства, тем ниже конечная цена устройства.
  • Компонентная база. Проводная шина позволяет устройству быть без блока питания и радио части. Выбран самый доступный МК. И он был бы совсем не дорогим, если бы не 'демпинг' STM(несколько лет назад я покупал Atmega328 за 30 рублей).

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

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

P.S. А еще есть компания-партнер ООО "Дайпекс Групп", которая является резидентом Технопарка Русский. Там свои индивидуальные устройства прошивки и PCB которых также разработаны мной в рамках данного проекта.