MegaD-2561 - новая ступень в развитии проекта MegaD

MegaD-2561 - многофункциональный контроллер, предназначенный для решения широкого спектр задач, связанных с автоматизацией квартир, домов, офисов, производств. Контроллер способен работать как под управлением сервера, так и автономно.

Контроллер MegaD-2561 - второе поколение устройств для домашней автоматизации, которое продолжает традиции MegaD-328. Если вы впервые знакомитесь с контроллером, рекомендуется также прочитать вводную часть статьи о MegaD-328, в которой описываются основные идеологические особенности контроллеров MegaD. Вместе с тем, MegaD-2561 - существенный шаг вперед по сравнению с предыдущим поколением (MegaD-328). Возможности новых контроллеров MegaD-2561 значительно шире.


Контроллер MegaD-2561


Краткие технические характеристики

  • Основной интерфейс связи: Ethernet (RJ45), подключение по Wi-Fi возможно через шлюз.
  • Питание: +12В DC (+/- 10%)
  • Потребляемый ток: 57 мА (только контроллер без учета подключаемых датчиков и исполнительных модулей)
  • Общее количество портов (входов/выходов): 38
  • Количество портов с функцией ШИМ: 7 (4 в разъеме XP1, 3 в разъеме XP2)
  • Количество портов с функцией АЦП: 8 (2 в модуле контроллера в разъемах XP5/XP6, 6 в разъеме XP1)
  • Количество подключаемых полноразмерных (по 15 портов) исполнительных модулей (XP1/XP2, 34-пиновый шлейф): 2
  • Доступные "заводские" исполнительные модули: MegaD-8I7O-S/SD, MegaD-8I7O-R, MegaD-14-IOR, MegaD-14-R, MegaD-8I7O-S/SD/R, MegaD-2R, MegaD-2W
  • Количество подключаемых I2C исполнительных модулей: определяется прошивкой
  • IP-адрес по умолчанию: 192.168.0.14 (маска подсети 255.255.255.0)
  • Корпус устройства предназначен для монтажа на DIN рейку: 4 DIN (ширина 71 мм)
  • Рабочий температурный диапазон: от -40 до +85 С


Основные функциональные возможности

  • Поддерживаемые протоколы для управления устройством и взаимодействия с сервером: HTTP, MQTT, SNMP (бета)
  • Поддерживаемые интерфейсы для работы с датчиками/считывателями/ведомыми устройствами: I2C, 1-wire/TouchMemory (DS18B20/DS2401/DS1990A - считыватели, DS2413), Single-wire (DHT22/DHT11), Wiegand-26
  • Функция выполнения заданий по расписанию (cron)
  • Программирование выполнения заданий по заранее определенным условиям (program)
  • Поддержка часов реального времени: DS3231 (исполнение MegaD-2561-RTC со встроенным датчиком температуры), DS1307
  • Поддержка GSM-модулей: SIM300, SIM800L, SIM900, M590E и совместимые (работа в качестве GSM-сигнализации)
  • Возможность перепрошивки по сети и сохранения конфигурации (используется специальное ПО и протокол UDP). Подробнее
  • Поддерживаемые типы портов: IN (вход), OUT (выход), DSen (цифровые датчики), ADC (АЦП), I2C
  • Поддерживаемые режимы работы со входами: P (нажатие), R (отжатие), P&R (нажатие/отжатие), длительное удержание, C (режим фиксации одинарного/двойного клика)
  • Поддерживаемые устройства на портах типа IN (сухой контакт): выключатели, кнопки, герконы, датчики (протечки, ИК-извещатели, пожарные извещатели), счетчики (типа "геркон"), датчик напряжения U-Sensor и т.д.
  • Поддерживаемые устройства на портах типа OUT: любые нагрузки 0-250В AC/DC (для релейных модулей MegaD-8I7O-R/MegaD-14-R) и 170-220В AC (для симисторных модулей MegaD-8I7O-S/SD)
  • Функция диммирования (для MegaD-8I7O-SD и портов с поддержкой PWM/ШИМ): лампы накаливания, светодиодные и люминесцентные лампы типа Dimmable, светодиодные ленты (с помощью внешнего драйвера), некоторые модели бытовых вентиляторов, нагревательные приборы и другие устройства, допускающие регулировку тиристорными регуляторами мощности
  • Функция управления диммируемыми выходами с помощью одной кнопки (режим "~")
  • Поддерживаемые устройства на портах типа DSen: DS18B20 (в том числе шиной), DHT22, DHT11, считыватели TM (1-wire), считыватели Wiegand-26
  • Поддерживаемые аппаратно I2C-устройства на любых цифровых портах: HTU21D, Si7021, SHT31, BMP180, BMP280, BME280, MAX44009, OPT3001, BH1750, TSL2591, SSD1306, MCP23008, MCP23017, PCA9685, ADS1115, T6703/T67xx, MLX90614, MCP4725, MCP4018, I2C-Encoder-V2 (Duppa), MCP9600 и любые другие устройства и датчики (с помощью библиотеки I2C-PHP/I2C-API)
  • Поддерживаемые устройства на портах типа ADC: любые аналоговые датчики с выходным напряжением не выше 3,3В (датчики газа, освещенности) напрямую и с любым другим выходным напряжением (датчики давления жидкости) через устройство согласования
  • Функция управления техникой по ИК-протоколу
  • Функция управления лентами WS2818/WS2811/WS2813
  • Функция периодической отправки состояния всех портов на сервер (srv-loop)
  • Функция контроллера доступа (для считывателей, работающих по протоколу TouchMemory/1-wire, Wiegand)
  • Функция сброса настроек с помощью кнопки Erase EEPROM
  • Встроенная функция сторожевого таймера (watchdog)

Данный перечень не является конечным. Прошивка контроллера регулярно обновляется, внедряется поддержка новых устройств, расширяется набор функций.

 

Программное обеспечение с поддержкой MegaD-2561

Контроллер MegaD-2561 может работать автономно (без сервера), но польностью функциональные возможности контроллера раскрываются при работе совместо с серверным программным обеспечением.

  • Majordomo - открытая и бесплатная платформа для комплексного управления домашней автоматикой. Поддерживает различное оборудование, в том числе MegaD-328/MegaD-2561. Неплохой материал по настройке данного ПО размещен на форуме.
  • OpenHAB - открытое программное обеспечение для домашней автоматизации. Пользователями сайт ab-log.ru написаны специальные компоненты "биндинги" для работы с MegaD-328/MegaD-2561
  • ioBroker - платформа для Интернета Вещей. При помощи, так называемых модульных "драйверов", ioBroker может взаимодействовать с другими различными системами и устройствами.
  • Демо-интерфейс - ПО, которое используется автором сайта. База данных, CMS (система управления), Web-интерфейс и набор скриптов, которые можно использовать для построения собственной системы (требуются навыки Web-программирования). Только для опытных, подготовленных пользователей или программистов! Не является готовым, коробочным продуктом.
  • Apple HomeKit + HAP-NodeJS - управление устройствами через встроенное приложение "Дом" от Apple.
  • intraHouse - ПО, которое поддерживает контроллер MegaD-2561. Есть бесплатная версия Lite и платная Pro.
  • Бенукс - ПО для ОС Windows, что важно для начинающих пользователей. Создаваемое изначально для работы с 1-wire, программное обеспечение Бенукс в данный момент поддерживает широкий спектр оборудования, среди которого присутствует и контроллеры MegaD-328/2561.
  • Любое иное ПО, поддерживающее управление устройствами по протоколу HTTP или MQTT: Home Assistant, iRridium, Domoticz, Node-RED, OpenRemote и т.д.

 

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

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

Занимаемое место на DIN-рейке: 4 DIN


Разъем XT1. Питание контроллера

Разъем XT1 предназначен для подключения питания. Напряжение питания: 12В постоянного тока. Плюсовая клемма справа, минусовая клемма слева. Контроллер снабжен защитой от переполюсовки. Максимальное сечение провода питания - 1,5 мм2.

В качестве блока питания можно использовать любой стабилизирванный БП. Хорошо зарекомендовали себя блоки питания MeanWell (серии DR или новые HDR): DR-15-12, DR-30-12, DR-60-12, DR-100-12.

Рекомендуемое отклонение от номинального напряжения питания: +/- 10%. Максимальное напряжение 13,2В. Контроллер может выдержать и бОльшее напряжение, но необходимо учитывать требования к исполнительным модулям, которые получают питание через контроллер. В частности при подключении релейных исполнительных модулей (MegaD-8I7O-R, MegaD-14-R) не рекомендуется подавать напряжение на разъем XT1 выше 13,2-13,5В. Симисторные исполнительные модули (MegaD-8I7O-SD, MegaD-8I7O-S) более лояльны к повышенному напряжению.

Блок питания выбирается исходя из потребляемого тока контроллера, исполнительных модулей и подключенных к модулям датчиков.
Максимальный ток, потребляемый контроллером: 57мА (потребление исполнительных модулей указано в кратких руководствах)

Пример выбора блока питания.
Максимальный потребляемый ток MegaD-2561 и двух исполнительных модулей MegaD-8I7O-R: 57мА + 310 мА + 310 мА = 0,68А. Необходимо оставить запас.
Номинальная мощность DR-15-12 составляет 1,25A, значит один такой блок питания можно использовать с одним полным комплектом (контроллер + 2 релейных исполнительных модуля)
Номинальная мощность DR-30-12 составляет 2А, значит один такой блок питания можно использовать с двумя полными комплектами.


Разъем WT1. Подключение к сети Ethernet.

Разъем WT1 предназначен для подключения к сети Ethernet. Тип разъема: RJ-45. Поддержки PoE (Power over Ethernet) в текущий момент нет. На разъеме RJ-45 присутствуют два светодиода (Link/Act), по которым можно судить о доступности сети и сетевой активности.


Разъемы XP1/XP2. Подключение стандартных исполнительных модулей

Разъемы XP1/XP2 предназначены для подключения стандартных серийно выпускающихся модулей: MegaD-8I7O-SD, MegaD-8I7O-R, MegaD-8I7O-S, MegaD-14-IOR, MegaD-14-R.
Каждый исполнительный модуль подключается своим 34-пиновым шлейфом. Таким образом, к одному контроллеру можно подключить два любых исполнительных модуля в любой комбинации.
Исполнительные модули могут располагаться справа от контроллера, слева от него или по обе стороны от него. Все исполнительные модули комплектуются шлейфом достаточной длины.


Распиновка разъемов XP1/XP2

Розовым и голубым цветом выделены порты, которые имеют дополнительные функции, такие как АЦП (для подключения аналоговых датчиков) и ШИМ (для диммирования света, управления LED-лентами, ИК-диодами, конверторами 0-10В и т.д.) Пользователи, разбирающиеся в радиоэлектронике могут создавать свои исполнительные модули. Информация о распиновке разъемов XP1/XP2 будет для них полезной.


Разъем XT2. Подключение цифровых датчиков

Разъем XT2 предназначен для подключения цифровых датчиков и других цифровых устройств.

Контроллер позволяет подключать цифровые датчики не только к XT2, но и к любым портам, которые выведены на разъемы XP1/XP2 с помощью исполнительного модуля MegaD-14-IOR. В модуле контроллера MegaD-2561 предусмотрен отдельный разъем XT2 на тот случай, если необходимо, к примеру, контролировать температуру, влажность или давление, выводить информацию на дисплей, а разъемы XP1/XP2 заняты исполнительными модулями MegaD-8I7O, предназначенными для работы с кнопками и коммутации силовых линий. Подробнее описано в разделе "Как выбрать исполнительный модуль".

Для корректной работы цифровых шин все порты, выведенные на разъем XT2 имеют подтяжку 4,7кОм.
Количество и тип цифровых датчиков зависит от прошивки. Перечень поддерживаемых устройств постоянно расширяется.

На текущий момент к этим портам можно подключать следующие цифровые датчики:

  • DS18B20, DS18B20 Waterproof и аналоги
  • DHT22/DHT11
  • считыватели и кодовые панели, работающие по протоколу TM/1-wire
  • считыватели, работающие по протоколу Wiegand-26 (может потребоваться согласование уровней 5В-3,3В)
  • HTU21D, SHT31, Si7021 (температура / влажность)
  • BMP180/BMP280 (температура / атмосферное давление)
  • BME280 (температура / атмосферное давление / влажность)
  • MLX90614 (бесконтактный датчик температуры до +380С)
  • MCP9600 (высокоточный конвертер ЭДС термопары в градусы)
  • MAX44009 / OPT3001 / BH1750 / TSL2591 (освещенность)
  • SSD1306 (OLED-дисплей)
  • MCP23008/MCP23017 (расширители портов 8/16 каналов)
  • I2C-Encodev-V2 от Duppa (энкодер для управления диммируемыми портами)
  • PCA9685 (16 ШИМ каналов)
  • ADS1115 (внешний 4-х канальный 16/15-битный АЦП)
  • T6703/T67xx (CO2)
  • MCP4725 (12-битный ЦАП)
  • MCP4018 (7-битный переменный резистор)


Распиновка разъема XT2

Клемму +3,3В можно использования для питания датчиков или I2C-устройств.

Кроме цифровых устройств к портам на разъеме XT2 (P30-P35) в режиме "IN" можно подключать: датчики напряжения (U-Sensor), датчик протечки (Астра-361), ИК извещатели, выключатели/кнопки, но ввиду отсутствия на этих портах опторазвязки, защищающих порт от случайного попадания постороннего напряжения (в отличие от стандартных входов MegaD-8I7O и MegaD-14-IOR в режиме стандартного входа), такое подключение не рекомендуется и допускается только в отдельных случаях и относительно короткими проводами.

К цифровым портам нельзя подключать пожарные извещатели типа ИП-212-141 так, как это описано здесь. Извещатели подобного типа двумя проводами можно подключать только к "стандартным" входам MegaD-14-IOR, MegaD-8I7O и т.д.


Разъемы XP5/XP6. Подключение аналоговых датчиков

Разъемы XP5 и XP6 предназначены для подключения аналоговых датчиков и устройств с управлением логическими уровнями 3.3В. Аналоговые датчики - это приборы, которые меняют свое выходное напряжение в зависимости от измеряемой характеристики: освещенности, температуры, давления, концентрации газа и т.д. Напрямую без дополнительного согласования можно подключать любые аналоговые датчики с выходным напряжением не более опорного (3,3В):

  • TEMT6000 (датчик освещенности) и аналогичные
  • MH-Z14 (датчик углекислого газа)
  • Любые аналоговые датчики с выходным напряжением ниже 3.3В
  • Любые аналоговые датчики типа "ток" или с выходным напряжением выше 3.3В при условии организации согласания
  • Любые иные устройства, которые управляются логическим уровнями 3.3В

Поскольку в отличие от портов, выведенных на клемму XT2, вилки АЦП не снабжены цифровой подтяжкой и могут работать также как входы и выходы, это позволяет подключать к ним любые устройства с управлением логическими уровнями 3.3В. К этим портам также можно подключать и цифровые датчики при условии организации внешней подтяжки к питанию с помощью резистора необходимого номинала (обычно 4,7кОм).

Для упрощения подключения аналоговых датчиков на клеммы XP5/XP6 также выведено питание для датчиков +3,3В.

Контроллер оцифровывает (измеряет) напряжение на входе АЦП порта и выводит в виде значения в Web-интерфейсе или передает на сервер.

Помимо двух АЦП-портов, выведенных на рахъемы XP5/XP6, в контроллере еще 6 портов имеют функцию АЦП. Это порты P0-P5, выведенные на разъем XP1. Эти АЦП порты можно использовать вместе с исполнительным модулем MegaD-14-IOR или при прямом подключении датчиков к клемме XP1.

 

Кнопки Reset и Erase EEPROM

Кнопка Reset (на схеме устройства слева) предназначена для перезагрузки контроллера и используется в основном для отладочных целей. Необходимо отметить, что в процессе перезагрузки устройства состояние портов, в частности, выходов, принимает начальное положение.

Кнопка Erase EEPROM (на схеме устройства справа) предназначена для очистки энергонезависимой памяти устройства, в которой хранятся все настройки. Для того, чтобы запустить процедуру очистки EEPROM необходимо нажать кнопку в момент включения устройства ИЛИ, удерживая кнопку Erase EEPROM, нажать и отпустить кнопку Reset. В процессе сброса настроек, который занимает приблизительно 5 секунд, светодиод Act на лицевой панели будет редко моргать.

В контроллерах Ver 2.0 процедура очистки EEPROM не сбрасывает IP-адрес устройства.
В контроллерах Ver 2.2 процедура очистки EEPROM сбрасывает IP-адрес на заводсткой: 192.168.0.14, но не сбрасывает пароль!
В контроллерах Ver 2.2, выпущенные после марта 2019 кнопка очистки EEPROM сбрасывает как IP-адрес, так и пароль
Полностью очистить EEPROM можно с помощью скрипта megad-cfg-2561 не зависимо от аппаратной версии контроллера.

 

Исполнительные модули MegaD. Зачем они нужны и как выбрать

Контроллер MegaD-2561 (на форуме его часто называет "головой" или "мозгами") оснащен 38 портами, которые распределены по разъемам следующим образом:

  • XP1: 15 портов (34-пиновый разъем для подключения исполнительного модуля)
  • XP2: 15 портов (34-пиновый разъем для подключения исполнительного модуля)
  • XT2: 6 портов (клеммная колодка на 12 контактов, для подключения цифровых устройств)
  • XP5/XP6: 2 порта (две 3-пиновые вилки, универсальные)
  • Каждый порт контроллера в зависимости от настроек и с учетом дополнительных аппаратных функций может работать как: IN (вход), OUT (выход), DSen/I2C (цифровые устройства).

Некоторые порты могут работать как ADC (АЦП) и PWM (ШИМ).
Один и тот же порт в разных условиях может быть использован для подключения кнопки/выключателя, датчика или лампы/нагревателя/вентилятора. Но что это за условия и чем они определяются?


Использование контроллера без исполнительных модулей

Контроллер MegaD-2561 помимо XP1/XP2 для подключения исполнительных модулей оснащен разъемами XT2, XP5, XP6.

Разъем XT2 можно использовать для подключения цифровых датчиков: DS18B20, DHT22, HTU21D, Si7021, SHT31, BMP180, BMP280, BME280, MAX44009, OPT3001, FH1750, TSL2591, дисплея SSD1306, расширителе портов MCP23008, MCP23017, PCA9685, ADS1115, T6703/T67xx, MLX90614, MCP4725, MCP4018, I2C-Encoder-V2, MCP9600, считывателей ключей iButton (DS1990A), EM-Marine/Mifare (CP-Z2L/CP-Z2M,  Matrix II и подобных), модулей MegaD-2W и других цифровых устройств.

Разъемы XP5/XP6 можно использовать для подключения аналоговых датчиков: TEMT6000, MH-Z14 и других.
В некоторых случаях разъемы XT2, XP5, XP6 можно использовать для подключения входов, датчиков типа "сухой контакт", датчиков напряжения U-Sensor.

Таким образом, если необходимо подключить считыватель ключей, несколько цифровых датчиков температуры, датчик освещенности, и того количества портов, которые выведены на разъемы XT2, XP5, XP6 достаточно, то можно использовать контроллер без исполнительных модулей.


Использование контроллера с исполнительными модулями

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

Настройка порта контроллера, которая производится через Web-интерфейс (будет описано ниже) должна соответствовать тому исполнительному модулю, который используется и тому оборудованию, которое подключено к порту.

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


Типы портов исполнительных модулей

  • "Стандартный вход" - порт с опторазвязкой, защищающей его от внеших факторов, который предназначен для подключения: кнопок, выключателей, герконов, датчиков протечки, охранных извещателей, датчиков напряжения и других датчиков, которые работают по принципу ВКЛ/ВЫКЛ. Этот порт не предназначен для подключения цифровых датчиков и устройств, аналоговых датчиков для которых требуется измерение выходного напряжения
  • "Релейных выход" - порт, где в качестве коммутирующего цепь элемента используется механическое реле. Этот порт предназначен для управления любыми приборами в диапазоне напряжений от 0 до 250В. Реле может коммутировать как постоянный, так и переменный ток. Максимальный ток (мощность) указан в документации к исполнительным модулям. К минусам реле можно отнести наличие звука при замыкании и размыкании контактов (щелчки), которые характерны для механических реле любого типа. В случае если в цепи используется защитные автоматы, реле относительно хорошо переносят кратковременные короткие замыкания.
  • "Симисторный выход" - порт, где в качестве коммутирующего цепь элемента используется полупроводниковый прибор симистор. Этот порт предназначен для управления любыми приборами, работающими от сети 220В переменного тока. Таким образом, с помощью симисторов нельзя управлять, скажем, электромеханическими замками с напряжением 12В или приборами, работающими от постоянного тока. Симисторы могут коммутировать только переменный ток с напряжением выше 170В. В отличие от реле, симисторы абсолютно бесшумны. К минусам симисторов можно отнести неспособность переносить короткие замыкания. КЗ в управляемой цепи приводит к выходу симистора из строя и необходимости его замены.
  • "Цифровой вход" - порт с подтягивающим резистором 4,7кОм предназначен для подключения любых цифровых датчиков и устройств, а также (в случае наличия данной функции у порта) аналоговых датчиков.
     

Доступные исполнительные модули

MegaD-8I7O-R


MegaD-8I7O-R (7 входов / 7 релейных выходов 10А), 6 DIN

  • Порты P0-P6: "стандартные входы" для подключения кнопок, выключателей, охранно-пожарных датчиков, U-Sensor и т.д. Цифровые и аналоговые датчики с этими портами работать не будут.
  • Порты P7-P1: "релейные выходы" для управления любым оборудованием с напряжением питания от 0 до 250В. Максимальная мощность: 10A (2300Вт, переменный ток, активная нагрузка)
  • Порт P14 - "цифровой вход" для подключения цифровых датчиков и шин (например, DS18B20, считыватели 1-wire, DHT22). Для этого порта отсутствует индикация на лицевой панели.

    Краткое руководство
     

MegaD-8I7O-SD

MegaD-8I7O-SD (7 входов / 7 симисторных выходов, в т.ч. 3 диммируемых / 1 цифровой вход), 6 DIN

  • Порты P0-P6: "стандартные входы" для подключения кнопок, выключателей, охранно-пожарных датчиков, U-Sensor и т.д. Цифровые и аналоговые датчики с этими портами работать не будут.
  • Порты P7-P13: "симисторные выходы" для управления любым оборудованием с напряжением питания от 170 до 250В. Максимальная мощность: 1,4A (300Вт, переменный ток, активная нагрузка)
  • Порты P10, P12, P13: "диммируемые" для плавной регулировки ламп накаливания (и другой нагрузки активного типа с потреблением не выше 300Вт), светодиодных и люминесцентных ламп для сети 220В с функцией диммирования (Dimmable).
  • Порт P14: "цифровой вход" для подключения цифровых датчиков и шин (например, DS18B20, считыватели 1-wire, DHT22). Для этого порта отсутствует индикация на лицевой панели.

    Краткое руководство

     

MegaD-8I7O-S

MegaD-8I7O-S
MegaD-8I7O-S (7 входов / 7 симисторных выходов / 1 цифровой вход), 6 DIN

  • Порты P0-P6: "стандартные входы" для подключения кнопок, выключателей, охранно-пожарных датчиков, U-Sensor и т.д. Цифровые и аналоговые датчики с этими портами работать не будут.
  • Порты P7-P13: "симисторные выходы" для управления любым оборудованием с напряжением питания от 170 до 250В. Максимальная мощность: 1,4A (300Вт, переменный ток, активная нагрузка)
  • Порт P14: "цифровой вход" для подключения цифровых датчиков и шин (например, DS18B20, считыватели 1-wire, DHT22). Для этого порта отсутствует индикация на лицевой панели.

    Краткое руководство
     


MegaD-14-R


MegaD-14-R (14 релейных выходов, 1 цифровой вход), 9 DIN

  • Порты P0-P13: "релейные выходы" для управления любым оборудованием с напряжением питания от 0 до 250В. Максимальная мощность: 10A (2300Вт, переменный ток, активная нагрузка)
  • Порт P14: "цифровой вход" для подключения цифровых датчиков и шин (например, DS18B20, считыватели 1-wire, DHT22). Для этого порта отсутствует индикация на лицевой панели.

    Краткое руководство

     

MegaD-14-IOR

MegaD-14-IOR (14 настраиваемых входов, 1 релейный выход 10А), 6 DIN

  • Порты P0-P13: настраиваемые входы. Положение конфигурационных джамперов, которые находятся под лицевой крышкой определяют функциональность порта.
    • Правое положение: "стандартный" вход для подключения кнопок, выключателей, охранно-пожарных датчиков, U-Sensor и т.д.
    • Левое положение: "цифровой" вход для подключения цифровых датчиков и устройств
    • В режиме "цифрового входа" к портам P0-P5 можно подключать аналоговые датчики.
  • Порт P14 - "релейный выход" для управления любым оборудованием с напряжением питания от 0 до 250В. Максимальная мощность: 10A (2300Вт, переменный ток, активная нагрузка)

Подробнее о модуле и Краткое руководство.

 

MegaD-2R
MegaD-2R
MegaD-2R (2 релейных выхода 10А/2300Вт), 2 DIN

Модуль предназначен для ситуаций, когда нет необходимости в большом количество входов и выходов.
Подключается непосредственно к рахъемам XP1/XP2.
Подробнее о модуле и Краткое руководство

 

MegaD-2W
MegaD-2W
MegaD-2W (2 симисторных выхода 1.4А/300Вт), 2 DIN

В отличие от от MegaD-2R, модуль MegaD-2W подключается к цифровым портам и работает по шине 1-wire. Это позволяет подключать его к цифровым портам разъема XT2 контроллера (когда, например, разъемы XP1/XP2 заняты другими стандартными модулями), а также к любым другим цифровым портам (MegaD-14-IOR, цифровым портам MegaD-8I7O и т.д.). Причем для подключения модуля используется только один порт. Таким образом, задействуя только один порт контроллера можно получить два канала для управления нагрузками 220В переменного тока. Более того, контроллер позволяет к одному порту подключить несколько модулей MegaD-2W шиной.
Подробнее о модуле и Краткое руководство


Пример подбора конфигурации

Задача №1: подключить к автоматике 1 датчик протечки, 3 цифровых датчика температуры DS18B20, 5 выключателей, 5 осветительных приборов с лампами, 1 электромеханический замок, 1 датчик освещенности, 1 датчик углекислого газа.
Решение: MegaD-2561 + MegaD-8I7OR
DS18B20 x 3 подключаются к портам разъема XT2 контроллера MegaD-2561
Выключатели x 5 и датчик протечки подключаются к входам модуля MegaD-8I7O-R
Лампы x 5 и электромеханический замок подключаются к выходам модуля MegaD-8I7O-R
Датчик освещенности и датчи CO2 подключаются к разъемам XP5/XP6 модуля MegaD-2561

Задача №2: подключить к автоматике 5 датчиков температуры и влажности HTU21D, 1 датчик атмосферного давления (BMP180), 5 ИК-извещателей (датчиков движения), 7 выключателей, 3 лампы с управлением яркостью, 4 лампы без управления яркостью, 1 светодиодную RGB-ленту
Решение: MegaD-2561 + MegaD-14-IOR + MegaD-8I7O-SD
HTU21D x 5 и BMP180 подключаются к портам разъема XT2 контроллера MegaD-2561
ИК извещатели x 5 подключаются к модулю MegaD-14-IOR в режиме "стандартного входа"
RGB-светодиодная лента подключается через драйвер L298N к MegaD-14-IOR в режиме "цифрового входа" без подтяжки
Выключатели x 7 подключаются к входам модуля MegaD-8I7O-SD
Диммируемые лампы x 3 подключаются к выходам MegaD-8I7O-SD (порты P10, P12, P13)
Остальные лампы x 4 подключаются к выходам модуля MegaD-8I7O-SD

Комбинируя необходимые исполнительные модули, можно подобрать такую конфигурацию, которая отвечает поставленной задаче.
В том случае, если 38 портов, которыми оснащен контроллер MegaD-2561 не хватает, можно установить несколько контроллеров с разными IP-адресами.
В перспективе планируется выпуск модулей, работающих по цифровой шине I2C. В таком случае к одному контроллеру MegaD-2561 можно будет подключать более двух (в теории до 8 на порт) исполнительных модулей.


Настройка контроллера MegaD-2561 посредством встроенного Web-интерфейса

Встроенный Web-интерфейс предназначен, прежде всего, для настройки контроллера. HTML-разметка и внешний вид интерфейса адаптирован для достижения максимальной скорости работы при взаимодействии с управляющим программным обеспечением. Вот, почему он выглядит аскетично и просто. Необходима максимальная производительность при минимальном количестве затрачиваемых ресурсов. С помощью Web-интерфейса можно управлять из браузера выходами, просматривать состояние входов, значения, которые считываются с датчиков, но основная его задача - максимально быстро передать информацию по HTTP-протоколу на сервер. Предполагается что конечные пользователи, не связанные с администрированием автоматики, должны взаимодействовать с серверным программным обеспечением, которое имеет соответствующий внешний вид: openHAB, Majordomo, ioBroker, intraHouse и другое ПО.

IP-адрес устройства по умолчанию: 192.168.0.14
Пароль по умолчанию: sec

Для того, чтобы зайти на устройство через браузер необходимо, чтобы на компьютере была настроена сеть 192.168.0.0/24.
Если используется другая IP-сеть, то необходимо изменить IP-адрес устроойства. Сделать это можно двумя путями:

  1. Временно установить на компьютере IP-адрес, например, 192.168.0.15, зайти в Web-интерфейс устройства и изменить его адрес
  2. Воспользоваться PHP-скриптом megad-cfg-2561.php. Подробнее.


Системные настройки

Чтобы зайти на устройство, используя браузер, необходимо указать в адресной строке IP-адрес и пароль.
Получается URL вида: http://192.168.0.14/sec


На центральной странице встроенного Web-интерфейса отображается:

  • версия прошивки
  • ссылка на системную конфигурацию "Config"
  • ссылки на конфигурацию портов разъема XP1 (порты P0-P13)
  • ссылка на конфигурацию портов разъема XP2 (порты P15-P28)
  • ссылки на конфигурацию портов разъема XT2 (порты P30-P35)
  • ссылка на конфигурацию портов XP5/XP6 (порты P36-P37)

По умолчанию все порты находятся в состоянии NC (Not configured - не настроены). При изменении конфигурации порта, его тип отображается рядом с номером.

Чтобы изменить системные сетевые настройки необходимо перейти по ссылке Config

В настройках можно изменить следующие параметры

  • IP: адрес устройства (MAC-адрес устройства генерируется динамически на основе IP-адреса)
  • Pwd: пароль для доступа к устройству (максимально 3 символа)
  • GW: шлюз. Имеет смысл указывать только если сервер находится за пределами текущей IP-сети. Если не указан, то в поле отображается значение 255.255.255.255
  • SRV: IP-адрес главного сервера, на который MegaD-2561 будет отправлять сообщения о сработавших входах. После IP-адреса возможно указать порт. По умолчанию 80.
  • Script: скрипт на сервере, который обрабатывает сообщения от устройства и формирует ответы (максимально 15 символов).
  • Wdog: функция слежения за сервером. Если используется сервер (указан его IP-адрес и скрипт), то устройство примерно раз в 2 минуты проверяет его доступность и в случае, если сервер не отвечает выполняет сценарий порта, который указывается в поле Wdog. Подробнее о сценариях описано ниже.
  • GSM: работа с GSM-модулем типа SIM800L (полное описание ниже)
  • Uptime: время работы устройства после старта
  • Temp: температура микросхемы часов реального времени DS3231, температура внутри корпуса (только для версии MegaD-2561-RTC)


Если в поле SRV указан IP-адрес, то появляется поле SRV Type, необходимое для выбора протокола: HTTP или MQTT


Настройка портов

Каждый порт может быть сконфигурирован под определенный исполнительный модуль / задачу

Поле Type может принимать следующие значения:

  • IN - Вход (например, "сухой контакт, выключатели света", U-Sensor, датчик протечки, охранные датчики и т.д.)
  • OUT - Выход (например, включение электроприборов)
  • DSen - Цифровой датчик (например, датчики температуры DS18B20, температуры-влажности DHT22, считыватели iButton, Wiegand-26)
  • I2C - Датчики или иные устройств, подключаемые по шине I2C
  • ADC - АЦП, аналого-цифровой преобразователь (например, подключение аналоговых датчиков освещенности, давления, газа и т.д.) Доступен не для всех портов.


Настройка порта типа IN (Вход)

Порт, сконфигурированный как IN (Вход) предназначен для работы с кнопками, выключателями, счетчиками импульсов, герконами, датчиками протечки, ИК-извещателями (датчиками движения), пожарными извещателеями (датчиками дыма) и другими датчиками, которые на выходе имеют два состояния: включено/выключено.

Эта конфигурация порта может применяться для портов на клемме XT2 контроллера MegaD-2561, а также для входов исполнительных модулей: MegaD-8I7O, MegaD-14-IOR

После того, как порт сконфигурирован как IN (вход), на странице появляется несколько новых опций.

Рядом с номером порта отображается текущее состояние входа OFF (не активен), ON (активен, например, когда нажат выключатель) и счетчик срабатываний входа.
Action (Act) - действие, которое необходимо произвести, в случае, когда сервер не указан, не отвечает или HTTP-статус ответа отличный от "200 OK".

В том случае, когда контроллер работает в связке с сервером, при каждом срабатывании входа, устройство вызывает скрипт на сервере, в параметрах вызова которого указывается номер сработавшего входа. Выглядит запрос следующим образом:

http://192.168.0.250/megad.php?pt=2

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

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


Action (сценарии). Базовые принципы

Формат поля Action следующий: X:Y;X:Y;X:Y
где, X - номер порта, а Y - действие/команда

Возможные команды:

  • 0 - выключить;
  • 1 - включить;
  • 2 - изменить состояние на противоположное (переключить), т.е. если было включено выключить и наоборот
  • 3 - прямая синхронизация выхода со входом (кнопка нажата - лампа включена; кнопка отпущена - лампа выключена)
  • 4 - обратная синхронизация выхода со входов (кнопка нажата - лампа выключена; кнопка отпущена - лампа включена)
  • [0..255] - в случае с диммируемым портами, установить значение диммера (яркости света)

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

Пример сценария
7:1;8:2
Включить порт P7, переключить порт P8

"8:2" означает, что необходимо состояние порта P8 изменить на противоположное.
В поле Action через точку с запятой можно описать до пяти действий.
Допускается вместо двоеточия использовать знак равенства, например: "8=2"

 

Паузы в сценариях

В сценариях контроллер поддерживает работу с паузами.
Например: 7:1;p10;7:0 (включить выход 7, подождать 1 секунду [единица 0,1с], выключить выход 7)

Паузы в полном объеме и без ограничений работают только в сценариях по умолчанию (Action).
Начиная с версии прошивки 4.16b8 паузы также поддерживаются и в командах, поступающих извне. Но в этом случае одновременно может выполняться только один сценарий, содержащий паузы. Впрочем, если используется сервер, он может самостоятельно выдерживать любые паузы, не задействуя встроенный механизм контроллера.

 

Повтор сценария

Команда "r". Повтор записанного сценария несколько раз.
Пример сценария: 7:1;p5;7:0;p5;r4
Включить порт 7; пауза 0,5с; выключить порт 7; пауза 0,5с; повторить все это с самого начала еще 4 раза
Таким образом порт включится и выключится 5 раз.
Такую команду можно использовать для более компактной записи сложных сценариев.

С помощью данной команды возможна организация бесконечного цикла - "r0".
Пример: 7:1;p5;7:0;p5;r0
Выход P7 будет переключаться каждые полсекунды. Следует использовать данную функцию с осторожностью и только для особых случаев, так как в текущий момент времени в прошивке нет процедуры отмены запущенного бесконечного цикла.


Управление всеми выходами

Команда "a". Управление всеми выходами.
Например: a:0 (выключить все выходы), a:1 (включить все выходы)


Синхронизация входа и выхода

Если вход сконфигурирован как P&R (читайте об этом ниже), то команда 3 - состояние выхода соответствует состоянию входа, команда 4 - состояние выхода противоположно состоянию входа.
Простейший пример синхронизации входа и выхода - работа кнопки звонка. При нажатии на кнопку, которая подключена на вход, включается выход, к которому подключен звонок. При отпускании кнопки, звонок выключается.


Работа с ШИМ портами

Если управляемый сценарием выход сконфигурирован как ШИМ (подключен диммер или конвертор 0-10В), то вместо команды указывается конкретное значение от 0 до 255. Например: 10:200

Контроллер поддерживает команду переключения для ШИМ-порта, которая аналогична команде "2". Для этого используется модификатор *. Например: 10:*200
Эта команда означает, что при первом нажатии кнопки, значение порта ШИМ будет установлено 200, а при повторном 0.

 

Команды для управления диммируемыми каналами: +, -, ~

Например, требуется управлять яркостью освещения двумя кнопками. Одна кнопка будет увеличивать яркость, а другая уменьшать.

  • Для одной кнопки необходимо прописать Сценарий: 10:+
  • Для второй кнопки необходимо прописать Сценарий: 10:-

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

Но если требуется обойтись только одной кнопкой, то тогда в сценарии необходимо прописать так: 10:~

При использовании команды "~" режим работы входа должен быть установлен "P&R".
Работает управление аналогичным образом. Однократное нажатие включает или выключает нагрузку. Удержание изменяет яркость в то или другую сторону.

 

Команды для управления диммируемыми каналами: ^, v, x

Команды "+", "-" и "~", описанные ранее, работают только в режиме удержания кнопки и только в автономном режиме, когда они прописаны в поле Act.
Но что, если необходимо управлять процессом диммирования с помощью сервера?

Плавно менять яркость с помощью сервера можно тремя способами.

  1. С помощью отправки серии пакетов с запросом виде cmd=yy:xxx, где yy - номер порта, а xxx - значение ШИМ (PWM).
  2. С использованием опции smooth, с помощью которой можно было отправить только один пакет с заданной яркостью (например, cmd=12:255), а контроллер самостоятельно увеличивал/уменьшал яркость в зависимости от заданного в этой опции значения скорости.
  3. С помощью команд "^", "v", "x"

Команда "^" запускает процесс увеличения яркости. Например: 12:^
Команда "v" запускает процесс уменьшения яркости. Например: 12:v
Команда "x" останавливает ранее запущенный процесс изменения яркости. Например: 12:x

В отличие от "+-~" эти команды может использовать сервер.
Таким образом, сервер не задает конечное значение яркости, а запускает процесс изменения.
Эти же команды можно использовать в сценариях. Причем в отличие от "+-~" новые команды можно комбинировать с другими. Например: 12:^;7:2

В этой же команде можно передавать скорость изменения яркости от 1 до 9. Пример: 12:^2 (чем меньше цифра, тем быстрее происходит изменение. По умолчанию: 5)
Для того, чтобы остановить процесс изменения яркости достаточно снова выполнить одну из команд "^" или "v".

Эти команды расширяют возможности сервера для управления диммируемыми каналами.
В автономном режиме (без сервера) указанные команды можно использовать с двумя кнопками, когда нажатие на одну кнопку будет изменять яркость в одну сторону (без необходимости удержания), а нажатие на вторую кнопку в другую сторону.


Использование цифрового энкодера

Еще одной альтернативой для управления диммируемыми каналами является использования энкодера. Контроллер MegaD-2561 поддерживает работу с цифровым энкодером I2C-Encoder V2 от Duppa. Помимо основных функций, в данном энкодера присутствует встроенная RGB-подсветка, которая может управляться с помощью сервера. Энкодеры достаточно легко интегрируются в стандартные заглушки любой серии электротехнических изделий. Подробное описание энкодера и принципов работы с ним изложено в статье "Цифровой энкодер для MegaD-2561".


Обработка событий и взаимодействие с сервером


После срабатывания входа MegaD-2561, если прописан сервер, пытается в течение примерно 2 секунд связаться с ним. В случае неудачи, выполняется сценарий, описанный в поле Action. Также этот сценарий выполняется сразу, если сервер в сетевых настройках не прописан.

Флажок (чекбокс) справа от поля Act определяет логику работы сценария. Если он не установлен (по умолчанию), то сценарий выполняется ТОЛЬКО если сервер не прописан, недоступен или HTTP-статус отличен от 200. Если флажок установлен, то сценарий выполняется всегда независимо от наличия сервера. Контроллер в этом случае будет сообщать на сервер о событиях, но его ответные команды в рамках одной TCP-сессии будут проигнорированы.

Дополнительная команда "d" (default). Если сервер на факт срабатывания входа, возвращает 'd', то это дает сигнал устройству выполнить сценарий по умолчанию (Act). Эта команда дублиует поведение контроллера в случае установленного флажка Act, но в этом случае сам сервер определяет когда выполнять сценарий по умолчанию.
Таким образом можно использовать сервер вместе с командами управления диммируемыми выходами. При срабатывании входов серверу необходимо отправить устройству 'd' и он обработает все операции с клавишами выключателя. Но серверу интересно было бы знать значение ШИМ, которое получилось на выходе. Это просто. Контроллер сообщает о факте отжатия клавиши (m=1). Серверу необходимо лишь опросить состояние нужного выхода при получении сигнала об отжатии клавиши. Все остальное контроллер сделаем сам.

Иногда требуется, чтобы сценарий, описанный в поле Act для какого-либо порта, выполнялся не по какому-то конкретному событию, а вызывался в произвольный момент времени запросом с сервера. В этом случае сервер должен в GET-запросе для нужного порта передать: cmd=d
Пример: 192.168.0.14/sec/?pt=1&cmd=d
В этом случае выполнится сценария для входа P1, не смотря на то, что физически вход не замыкался.
 

Сетевые сценарии

NetAction (Net) - В этом поле записывается URL, который MegaD-2561 вызывает независимо от того, есть сервер или его нет. Этот URL вызывается после попытки связи с сервером и после того, как отработает сценарий, описанный в поле Action. После IP-адреса можно указать порт. По умолчанию 80.

Существует несколько ситуации, когда полезно использовать эту функцию.

  • Предположим, в сети работает несколько устройств типа MegaD-2561/328 или любых других, которые воспринимают команды по протоколу HTTP. В случае, когда сервера нет или он недоступен, эта функция позволяет дать команду другому устройству по сети Ethernet. Например, датчик протечки подключен к одному устройству, а клапан, перекрывающий подачу воды в дом к другому. Даже если сервер не отвечает, устройство формирует команду по сети на закрытие клапана. Эта функция позволяет в значительной степени улучшить отказоустойчивость критически важных систем.
  • Есть и другое применение этой функции. В сети может быть несколько устройств, которые бы хотели получать информацию об изменении состояния входов. Например, человек звонит в дверь,  компьютер включает звонок, но одновременно с этим HTTP пакет с командой NetAction получает, к примеру, телевизор, который выводит информацию о звонке на экран. Конечно, эту команду сможет сформировать и сервер, получив информацию от MegaD-2561, но с применением NetAction это будет а) быстрее б) надежнее.
  • Можно придумать и другие варианты использования NetAction, которые были бы полезны: дублирование сервера, журналирование действий и прочее. К примеру, можно в сети иметь мощный производительный сервер и маленький мини-сервер (на базе роутера), который бы дублировал основные функции основного сервера в случае его недееспособности.
  • Флажок (чекбокс) справа от поля Net указывает, что NetAction будет вызван ТОЛЬКО при недоступности сервера (или когда HTTP-статус ответа отличен от 200). По умолчанию вызывается всегда.

 

Режимы работы входа. Mode

 

Mode - настройка, определяющая режим работы входа

  • P - устройство реагирует (то есть отправляет сообщения на сервер, выполняет сценарии и т.д.) только при замыкании контакта/выключателя (Пример: http://192.168.0.1/megad.php?pt=4)
  • R - устройство реагирует только при размыкании контакта/выключателя. На сервер отправляется дополнительный параметр "m=1". (Пример: http://192.168.0.1/megad.php?pt=4&m=1)
  • P&R - устройство реагирует как на замыкание, так и на размыкания контакта.
  • С - Click Mode (обработка одинарных и двойных кликов/нажатий)

В режиме Click Mode:

  • При однократном нажатии на выключатель на сервер передается параметр click=1
    Пример: /md.php?pt=0&click=1&cnt=1
  • При двойном нажатии (двойной клик) на сервер передается параметр click=2
    Пример: /md.php?pt=0&click=2&cnt=2
  • При удержатии клавиши как и в других режимах передается параметр m=2
    Пример: /md.php?pt=0&m=2&cnt=3
  • После отпускания клавиши после длительного нажатия передается параметр m=1 (как в режиме P&R)
    Пример: /md.php?pt=0&m=1&cnt=3

Заложена специальная поддержка режима Click Mode в сценариях
Теперь допустимо написать так: 7:2|8:2
Это означает, что при одинарном клике выполнится 7:2, а при двойном 8:2

Необходимо отметить, что в случае одинарного клика (в режиме "C") информация на сервер (или выполнение сценария) происходит с задержкой в 500 мс, которая требуется для фиксации двойного клика.



Обработка длительных нажатий

Часто возникает задача по-разному реагировать на длительность нажатия. Например, короткое нажатие включает/выключает свет в одной комнате, а нажатие и удержание (длительное нажатие) включает свет во всех комнатах. Работать с длительными нажатиями можно как с помощью сервера, так и автономно без сервера.

Если используется сервер, то в том случае, когда вход (в режиме P или P&R) удерживается замкнутым более 1,5 секунд, на сервер отправляется второй запрос, в котором передается параметр m=2.

http://192.168.0.1/megad.php?pt=4
// спустя 1,5 секунды удержания клавиши выключателя
http://192.168.0.1/megad.php?pt=4&m=2

Это в значительной степени облегчает обработку таких событий на сервере.
Но если необходимости в этой функции нет (к примеру, используются обычные выключатели вместо кнопочных или пользователь случайно удерживает кнопку дольше обычного), и в серверном ПО функция не используется, то обязательно необходимо делать проверку на наличие параметра m=2, чтобы действия не выполнялись дважды.


Сценарии и длительное нажатие выключателя.

Начиная с версии прошивки 4.29b4 контроллер позволяет задавать автономные сценарии (Act) для длительного нажатия.

Для режима "P"
7:2|8:2
При однократном нажатии кнопки переключится выход P7
При нажатии и удержании кнопки переключится сразу P7, а спустя полсекунды P8.

Для режима "C" (Click Mode)
7:2|8:2|9:2
Одинарный клик - переключится P7
Двойной клик - переключится P8
Удержание - переключится P9


Флажок (чекбокс) справа от поля Mode указывает, что при наличии сервера, устройство отправляет на сервер сообщения всегда в режиме P&R, а при его отсутствии Action выполняется только в том режиме, который установлен в Mode. Данная опция не доступна для Click Mode.

 

Режим Raw

Raw - параметр отключает встроенную защиту от дребезга. При нажатии человеком на клавишу обычного выключателя или кнопки, коммутация контактов, когда две металлические пластины внутри выключателя только касаются друг друга, бывает ненадежной. За этот крайне небольшой промежуток времени, измеряемый миллисекундами, контроллер может зафиксировать десятки пограничных значений "включено-выключено". Этот эффект называется "дребезгом контактов" и может генерировать большое количество ложных событий. С самого начала в контроллере заложена защита от дребезга, которая позволяет выполнять сценарий по умолчанию или отправлять сообщение на сервер только тогда, когда контакт надежен и состояние входа не меняется. Однако в определенных ситуациях эта защита может мешать. Например, в случае подключения к входам устройства энкодера или датчиков с испульсным выходом. При вращении ручки энкодера длительность контакта не превышает 10 миллисекунд. Это слишком короткий промежуток времени, чтобы встроенная защита от дребезга смогла распознать срабатывание входа. В этой ситуации можно отключить этот механизм и переложить его на сервер. Другой пример - подключение к контроллеру различных импульсных счетчиков, где длительность импульса не превышает 10-15 миллисекунд. Активация этой опции требуется для подключения датчика скорости ветра.
 

Счетчик срабатываний входа

Контроллер считает количество срабатываний входа. Событие, которое увеличивает счетчик, определяется настройкой типа входа. Например, в режиме "P", контроллер считает количество замыканий, но не считает количество размыканий, а в режиме "P&R" контроллер увеличивает счетчик как при замыкании входа, так и при размыкании.
Значение счетчика можно увидеть в Web-интерфейсе устройства. Также это значение передается на сервер с помощью параметра "cnt". Таким образом, используя контроллер можно получать данные с различных счетчиков (воды, газа, электроэнергии) с импульсным выходом.

Максимальное значение счетчика входа: 65535

Сервер может обнулить или установить произвольное значение счетчика событий с помощью запроса запроса типа: 192.168.0.14/sec/?pt=0&cnt=0

 

Настройка порта типа OUT (Выход)

Порт, сконфигурированный как OUT (Выход) предназначен для управления различными приборами: лампами, нагревателями, клапанами, кранами, насосами, вентиляторами, двигателями, внешними реле/контакторами и любыми другими приборами.

Эта конфигурация порта может применяться для выходов исполнительных модулей: MegaD-8I7O, MegaD-14-R, а также в отдельных случаях для клемм XT2, XP5, XP6 и модуля MegaD-14-IOR в случае подключения к ним внешних драйверов или реле (для опытных пользователей).

Ссылки ON и OFF позволяют управлять состоянием выхода: включить, выключить.

Default state (Def): состояние порта после включения или перезагрузки устройства. В ряде случаев требуется, чтобы отдельные приборы по умолчанию были включены.

Если в системе используется сервер, он прописан в настройках, и порты контроллера переключались внутренней логикой: сценарий с признаком обязательного выполнения (Act с флажком), задания по расписанию (Cron), условное программирование (Program), контроллер отправляет на сервер сообщения об изменениях состояния входов

http://192.168.0.250/megad.php?pt=7&v=1

В данном случае запрос будет означать, что порт P7 был включен (v=1).

 

Режимы работы выхода

Mode: режим работы выхода. SW - обычный ключ (ВКЛ, ВЫКЛ), PWM - ШИМ (широтно-импульсная модуляция), SW LINK - связанный порт, DS2413 - двухканальный 1-wire модуль на базе микросхемы DS2413.

  • Режим SW (простое переключение) устанавливается для "релейных" или "симисторных" выходов модулей MegaD-8I7O и MegaD-14-R.
  • Режим PWM (ШИМ) предназначен для управления мощностью нагрузки, диммирования ламп, управления скоростью вращения вентилятора (для вентиляторов, способных управляться тиристорным регулятором) и других функций. Этот режим устанавливается для отдельных "симисторных" выходов модуля MegaD-8I7O-SD. PWM (ШИМ) доступен только на портах P10 (P25), P12 (P27) и P13 (P28).
  • Режим SW LINK (связанный порт) используется в тех случаях, когда необходимо предотвратить на аппаратном уровне включение двух или более портов одновременно. Это актуально для управления различными приводами (рольставен, кранов, клапанов). Данный режим предполагает, что если один из связанных портов включен, то любой другой включить уже нельзя. Для того, чтобы связать два или более портов, необходимо для каждого из них выбрать режим SW LINK и указать одинаковую группу в поле Group (любое число от 0 до 99).
  • Режим DS2413 предназначен для управления внешним двухканальным модулем, работающим по протоколу 1-wire. Этот режим можно установить для любых цифровых портов. Модули на базе DS2413 можно применять в нескольких случаях: когда функциональность исполнительного модуля MegaD-8I7O избыточна и требуется всего 1-2 порта для управления нагрузками; когда портов стандартных модулей не хватило для реализации задачи и есть свободные цифровые; когда требуется вынести модуль управления нагрузками на определенное расстояние (в этом случае достаточно проложить до модуля DS2413 кабель UTP).

 

Объединение выходов в группы

Group: поле для объединения портов в группы. Можно указать любой номер группы (от 0 до 99). Используется в нескольких случаях.

  • В режиме SW Link. В этом случае порты, для которых указан одинаковый номер в поле Group можно включить только по одному. Одновременно включить несколько портов нельзя.
  • В обычном режиме SW использование групп позволяет управлять всей группой одной командой типа g7:1, где 7 - номер группы. Это позволяет сократить количество команд в сценариях.

 

Особенности работы выхода в режиме PWM

Когда выход настроен как PWM (ШИМ), появляется возможность задать значение от 0 до 255, соответствующее уровню выхода. 0 - нагрузка отключена, 255 - 100% мощности.

Опция Freq

В ряде случае при управлении с помощью ШИМ-сигнала сторонним оборудованием возникает необходимость использовать более низкую или более высокую частоту ШИМ.
Частоту для ШИМ-каналов можно настроить: (Norm - 3064Гц, Low - 383Гц, High - 24510Гц)

Настройка частоты ШИМ, сделанная для одного порта, распространяется и на другие порты, связанные с этим же таймером.
Аппаратные таймеры микроконтроллера и связанные с ними порты:

  • Таймер1: P10, P12, P13
  • Таймер3: P25, P27, P28
  • Таймер2: P11


Опция Smooth. Плавное диммирование

Опция Smooth позволяет воспользоваться аппаратной возможностью устройства плавно менять значение ШИМ. В поле задается скорость изменения. Значение 1 примерно равно 1 секунде при изменении значения от 0 до 255. Если указать в этом поле значение 180, то изменение от 0 до 255 будет происходить очень медленно в течение 3 минут.

В отдельных случаях серверу может потребоваться управлять скоростью включения/выключения ШИМ порта. В этом случае менять каждый раз значение Smooth, которое хранится в энергонезависимой памяти контроллера, не нужно. Достаточно в запросе передать дополнительно параметр "cnt".

http://192.168.0.14/sec/?pt=13&pwm=255&cnt=2

В этом случае незвисимо от настроек порта (поле Smooth) скорость изменения от 0 до 255 составит около 2 секунд (cnt=2). Данная функция работает только если включена опция Smooth. Когда необходимо при включенной опции Smooth управлять ШИМ портом мгновенно (без плавного изменения), серверу необходимо передать параметр cnt=0.


Особенности работы выхода в режиме DS2413

Данный режим выбирается в том случае, когда к цифровому порту подключены модули на базе DS2413: MegaD-2W, 1W-MM5.
Готовые симисторные двух-канальные модули предназначены для управление двумя независимыми нагрузками 220В / 300Вт.

Так как модули на базе микросхемы DS2413 двухканальные, в Web-интерфейсе присутствует две пары ссылок для управления каналами A и B.

Выходами модулей DS2413 можно управлять как из встроенного Web-интерфейса, так и через сервер.
Для того, чтобы указать канал, который нужно переключить, передается дополнительно 'A' или 'B'

Например: cmd=33B:1

Для данного порта также доступны команды группового включения/выключения 'a:1/a:0/a:2'

Контроллер поддерживает работу с модулями MegaD-2W/1W-MM5 (и другими модулями на базе чипа DS2413) не только в режиме один порт - один модуль, но и в режиме общей шины, когда к одному порту подключается два и более модулей.

У каждого модуля есть свой уникальный адрес, записанный производителем микросхемы DS2413. Адрес состоит из 7 байт: 1 байт код семейства + 6 байт уникальный идентификатор.
В режиме OUT/DS2413 в Web-интерфейсе контроллера присутствует ссылка "Device List", по которой можно получить перечень адресов тех модулей, которые подключены к одному цифровому порту. По ссылке "Device List" данные отображаются в следующем формате:

c6c439000000:OFF/OFF;15b039000000:ON/OFF

Адреса разделяются точкой с запятой. Код семейства ("3А" для DS2413) не выводится. Выводится 48 битный уникальный идентификатор и через двоеточие состояние каналов.
Зная этот идентификатор можно внешними GET-запросами (с сервера) управлять каналами модуля.

http://192.168.0.14/sec/?cmd=30A:1&addr=c6c439000000

Указаный выше запрос включит канал "А" модуля с адресом "c6c439000000"
Если к шине подключено несколько модулей, то для включения или выключения всех каналы "А" или "B" всех модулей достаточно исключить из запроса параметр "addr".
Адресное управление модулями недоступно в стандартных сценариях. Данный механизм работает только с внешними запросами.

Через ссылку Device List в Web-интерфейсе контроллера (команда "cmd=list") можно получить состояние не только модулей с выходами (MegaD-2W, 1W-MM5), но и модулей, которые используют каналы в качество входов, а также адреса и значения температурных датчиков DS18B20, если они подключены к тому же порту, к той же шине.

Таким образом, к одному цифровому порту (а это все порты клеммы XT2 контроллера; все порты MegaD-14-IOR; порт P15 модулей MegaD-8I7O-R/S/SD, MegaD-14-R) возможно подключить много дополнительных двухканальных модулей, расширив тем самым, количество доступных управляемых выходов.

Важно еще раз отметить, что на одну шину можно подключить не только несколько модулей типа MegaD-2W или MM5, но и несколько датчиков DS18B20.
В том случае если, например, к порту подключен MegaD-2W и температурный датчик DS18B20, по клику на ссылку Device List отображается: 85a56a070000:85.00;79c439000000
85.00 - это значение датчика температуры с адресом "85a56a070000", когда конвертация температуры еще не производилась. Настройка порта OUT, поэтому контроллер сам не отправляет команду в шину датчикам на конвертацию температуры.
Чтобы контроллер отправил в шину команду на конвертацию, необходимо отправить запрос (пример): http://192.168.0.14/sec/?pt=32&cmd=conv
Теперь по клику на ссылку Device List у датчиков DS18B20 будет отображаться температура (пример): 85a56a070000:24.12;79c439000000

Сервер должен сам давать команды на конвертацию с нужной ему периодичностью.
В "Device List" не отображается код семейства, а только 6-байтный адрес устройства, так как пока есть возможность однозначно идентифицировать датчики температуры по наличию значения температуры.


Настройка порта типа ADC (АЦП)

Порт, сконфигурированный как ADC (АЦП) предназначен для работы с аналоговыми датчиками: датчики освещенности, газа, давления жидкости и т.д.

Данный тип порта применяется для разъемов XP5, XP6, а также для входов исполнительного модуля MegaD-14-IOR (левое положение конфигурационного джампера) для портов с функцией АЦП (P0-P5). Выходное напряжение датчика не должно превышать 3,3В. В случае, если выходное напряжение превышает 3,3В необходимо дополнительное согласование.

В Web-интерфейсе отображается текущее значение, формируемое АЦП микроконтроллера в диапазоне от 0 до 1023. Это значение может быть считано и конвертировано в необходимые единицы измерения (согласно документации на конкретный датчик) сервером.

Контроллер MegaD-2561 способен не только отображать значение АЦП в Web-интерфейсе или передавать его по запросу сервера. Он может отслеживать значение и сообщать серверу о достижении определенного порога самостоятельно. Такая возможность позволяет избежать постоянного опроса контроллера сервером. Когда это будет необходимо, устройство само сообщит о критическом уровне. Более того, MegaD-2561 может управлять выходами в зависимости от значений подключенных датчиков. Например, может самостоятельно включать/выключать свет, если к АЦП-порту подключен датчик освещенности.
Данную функциональность обеспечивают параметры Mode, Val, Action и NetAction

Mode - режим работы АЦП порта

  • N (Norm)  в этом режиме значения АЦП контроллером самостоятельно не проверяются, никакие действия устройство не предпринимает
  • > Порт считается активным, если значение больше заданного порога. Активностью считается момент перехода через пороговое значение
  • < Порт считается активным, если значение меньше заданного порога. Активностью считается момент перехода через пороговое значение
  • <> Порт считается активным, если значение проходит порог как в меньшую, так и в большую сторону.

Val - Пороговое значение
Hst - Гистерезис (допустимое отклонение от порогового значения в обе стороны)
Параметры Action и NetAction и флажки (чекбоксы) полностью соответствуют тому, что описано для портов типа In (Вход). Action - сценарий по умолчанию, который выполняется устройством. NetAction - URL, который вызывается устройством.

При проходе значения АЦП-порта через настроенный порог на сервер отправляется запрос следующего вида (пример).

/md.php?pt=36&v=299&dir=1
  • md.php - имя скрипта, указанное в сетевых настройках
  • pt=36 - номер АЦП-порта
  • v=299 - текущее значение АЦП-порта
  • dir=1 - направление перехода (снизу вверх - 1, сверху вниз - 0)


Настройка порта типа DSen (цифровые датчики и устройства)

Порт, сконфигурированный как DSen предназначен для работы с цифровыми датчиками и устройствами, работающими по цифровым шинам.
Данный тип порта применяется для разъема XT2 контроллера MegaD-2561, а также для любых входов цифровых портов стандартных исполнительных модулей.

В данном режиме контроллер поддерживает работу с датчиками: DHT11/DHT22 (также более известными как AM2302), датчиками DS18B20 (1W), любыми считывателями, поддерживающими протокол 1-wire (iButton, TouchMemory) и работу с DS1990A (считыватели "таблеток", а также считыватели EM-Marine/Mifare в режиме эмуляции, например, CP-Z2L/CP-Z2M, Matrix-II), любыми считыватели, поддерживающими протокол Wiegand-26 (W26).


Локальный и "удаленный" термостат с помощью DS18B20 и MegaD-2561

Порт, настроенный для работы с датчиком температуры DS18B20, может не только отображать температуру или передавать ее на сервер. У порта есть режим термостата, когда можно управлять нагрузкой в зависимости от значения температуры. Принцип настройки аналогичен АЦП-порту. А также доступны команды "3" и "4, синхронизирующие значение температуры и состояние выхода. Например, если мы установим режим (Mode) "<>", значение температуры (Val) 29, гистерезис (Hst) 0.50, а сценарий (Act) 7:3, то когда температура будет выше 29.5 градусов, выход P7 будет включен, а когда ниже 28.5, то выключен. Гистерезис работает в обе стороны от заданного порога.
А кроме того, устройство может управлять не только локальным выходом, но и выходом другого устройства. Для этого в поле Net мы прописываем, например "192.168.0.15/sec/?cmd=8:3". Тогда порт 8 совершенно другого устройства будет синхронизирован со значением температуры так, словно этот порт локальный. Разумеется, доступны и другие стандартные команды: выключить - "0", включить - "1", переключить - "2".

Иногда требуется изменить значение термостата внешним HTTP-запросом без перезагрузки контроллера и записи этого значения в энергонезависимую память.
Делается это командой вида: http://192.168.0.14/sec/?pt=32&misc=24
где pt=32 - номер порта, misc=24 - значение термостата.


Подключение датчиков DS18B20 шиной (несколько на один порт)

Контроллер MegaD-2561 поддерживает подключение цифровых датчиков DS18B20 шиной (несколько на один порт). Для этого в Web-интерфейсе контроллера выбрать типа датчика: 1WBUS

При нажатии на ссылку Device List или через запрос вида
http://192.168.0.14/sec/?pt=32&cmd=list
Можно получить в ответ следующий результат: 8aad6a070000:32.43;85a56a070000:32.43
Результат отображается по следующему принципу: [адрес датчика]:[температура];[адрес датчика]:[температура];

Контроллер автоматически каждые 30 секунд отправляет в шину команду на конвертацию температуры.
Если шина занята конвертацией, то в ответ вернется просто "Busy"
Но можно отправить такой запрос и вручную (или автоматически при опросе с сервера), вызвав URL вида
http://192.168.0.14/sec/?pt=32&cmd=conv

При подключении датчиков шиной крайне желательно обеспечить датчикам питание (от контроллера, +3,3В).
При подключении датчиков по схеме паразитного питания датчики могут периодически или всегда отображать температуру 85.00 градусов.



MegaD-2561 в качестве контроллера доступа

Если хотя бы один порт настроен как "DSen iB" (работа со считывателями DS1990A: iButton, EM-Marine в режиме эмуляции iButton) или Wiegand (DSen/W26), то в системных настройках появляется новый пункт "iB Keys".

Перейдя по ссылке можно указать до 5 ключей, которые контроллер сохранит в энергонезависимую память.
Перечень ключей один для всех портов типа "iB".
"Last key" - адрес последнего ключа, который считал контроллер. Это позволяет проверить адрес ключа и при необходимости занести его в память.

Так как W26 предполагает не 6, а 3 байта в качестве идентификатора ключа, то при указании "46efcb" записывается "46efcb000000".
В таблице могут содержаться как 6-и байтовые 1-wire ключи, так и 3-х байтовые W26 ключи.
Существуют считыватели, которые уже содержат в своей памяти списки разрешенных ключей. В этом случае передача адреса ключа говорит, что ключ находится в списке разрешенных. Подобные считыватели не передают адрес, если он не содержится в памяти. В такой ситуации нет смысла указывать адреса ключей в закладке iB Keys и можно просто прописать вместо адреса '*' (звездочку) - разрешать всем.

В настройке порта типа "iB" или "DSen/W26", к которому подключен считыватель, присутствуют стандартные поля "Action" и "NetAction"

На скриншоте типовой пример работы с электромеханическим замком: включить порт; подождать 0,2 секунды; выключить порт. Другими словами, на электромеханический замок подается импульс длительностью 0,2 секунды, достаточный для его отпирания.

  • Если сервер не прописан, то контроллер сверяется со списком ключей, сохраненных в памяти и выполняет сценарий при совпадении адреса ключа.
  • Если сервер прописан, то контроллер отправляет данные на сервер и ждет указаний от него (с внутренним перечнем ключей не сверяется).
  • Если сервер прописан, но не отвечает, то контроллер снова берет управление на себя.

Поля Action и NetAction, а также флажков (чекбоксы) рядом с этими полями работают также как для портов типа IN (Вход), которые описаны выше.


Работа со считывателями по протоколу Wiegand-26

В данном режиме контроллер поддерживает работу с любыми считывателями или кодовыми панелями, передающими информацию по протоколу Wiegand-26.

Большинство считывателей с интерфейсом Wiegand используют уровни 5В. Для подключения линий D0/D1 к контроллеру необходимо использование простейшего согласования уровней 5В-3,3В.

Для передачи данных в стандарте Wiegand используется две линии (два порта на контроллере: D0 (для передачи бита "0"), D1 (для передачи бита "1").

  1. Необходимо выбрать тип W26 и указать режим: D0 или D1.
  2. Затем для линии D0, необходимо указать какой порт (номер порта) используется в качестве линии D1. Таким образом создается "пара" и контроллер понимает какие порты подключены к одному считывателю.

При поднесении к считывателю ключа или наборе кода на сервер передается информация вида:
/md.php?pt=30&wg=ec532f

где в параметре "wg" содержится адрес ключа или набранный код.

Считыватели можно подключать к любым портам, но в силу особенностей работы протокола Wiegand стабильность работы многократно улучшается при подключении считывателя к портам, имеющим функцию внешнего прерывания.

Перечень портов с функцией EINT:
XT2: P30, P31, P32, P33 (4 порта)
XP2: P22, P23, P25, P27 (4 порта)

Начиная с версии прошивки 4.21b5 у портов типа W26/D0 есть поля Act и Net, а контроллер позволяет сохранять 3-байтовые идентификаторы ключей в закладке "iB Keys". Это позволяет использовать функцию контроллера доступа в том числе со считывателями, передающими данные по протоколу Wiegand.

 

Настройка порта типа I2C

Порт, сконфигурированный как I2C предназначен для работы с цифровыми датчиками и устройствами, работающими по цифровой шине I2C.
Данный тип порта применяется для разъема XT2 контроллера MegaD-2561, а также для любых цифровых портов исполнительных модулей.

Особенность прошивки контроллера MegaD-2561 заключается в том, что I2C-устройства и датчики можно подключать к любым портам, а не только к тем, у которых есть аппаратная поддержка I2C на уровне микроконтроллера.

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

В данный момент поддерживаются датчики/устройства: HTU21D, Si7021 (в выпадающем списке выбрать HTU21D), SHT31m MAX44009, OPT3001, BH1750, TSL2591, BMP180, BMP280, BME280, SSD1306, MCP23008, MCP23017, I2C-Encoder-V2, PCA9685, ADS1115, T6703/T67xx, MLX90614, MCP4725, MCP4018, MCP9600. Данный перечень постоянно расширяется.
Вот так (стандартным образом) отображается информация с датчика HTU21D.

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

Пример: http://192.168.0.14/sec/?pt=30&cmd=get

В этом случае датчик вернет все свои значения, которых может быть несколько.
Для запроса определенных значений следует использовать команды:

# Отображение влажности (HTU21D/Si7021)
http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=htu21d
# Отображение температуры (HTU21D)
http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=htu21d&i2c_par=1
# Отображение влажности (SHT31)
http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=sht31
# Отображение температуры (SHT31)
http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=sht31&i2c_par=1
# Отображение освещенности (MAX44009)
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=max44009

# Отображение освещенности (BH1750)
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=bh1750

#Отображение освещенности (TSL2591)
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=tsl2591

# Отображение атмосферного давления (BMP180)
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=bmp180
# Отображение температуры (BMP180)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmp180&i2c_par=1
# Отображение атмосферного давления и температуры  (BMP180)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmp180&i2c_par=2

# Отображение атмосферного давления (BMP280/BME280)
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=bmx280
# Отображение температуры (BMP280/BME280)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=1
# Отображение влажности (BME280)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=2
# Отображение всех 3-х параметров: давление, температура, влажность (BME280)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=3

# Отображение концентрации CO2 в воздухе (T6703/T67xx)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=t67xx

# Отображение температуры окружающей среды и температуры объекта (MLX90614)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=mlx90614
# Отображение температуры окружающей среды (MLX90614)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=mlx90614&i2c_par=1
# Отображение температуры объекта (MLX90614)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=mlx90614&i2c_par=2
# Отображение температуры термопары (MCP9600)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=mcp9600
# Отображение температуры окружающей среды, встроенный в микросхему сенсор (MCP9600)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=mcp9600&i2c_par=1
# К одному порту можно подключить несколько MCP9600 и запрашивать данные по 7-битному адресу в hex-формате
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=mcp9600&addr=67

# Установить напряжение примерно в районе 1.7В
# (i2c_par=2000, значения DAC от 0 (0В) до 4095 (~3.4В) / параметр i2c_par)
http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=mcp4725&i2c_par=2000
# У MCP4725 есть интересная особенность. При подаче питания микросхема сразу же выдает напряжение,
# сохраненное в собственной энергонезависимой памяти.
# Для того, чтобы установить напряжение и одновременно записать его в память,
# необходимо указать параметр i2c_par2=1
http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=mcp4725&i2c_par=100&i2c_par2=1

# Установить значение (от 0 до 127; в примере 50) (MCP4018)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=mcp4x&i2c_par=50
# Считать текущее значение (MCP4018)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=mcp4x

Некоторых пользователей смущает, что для I2C-устройств необходимо использование двух портов (SDA, SCL).
Это так, но есть определенные нюансы.

1. К двум портам SDA/SCL можно повесить несколько различных датчиков с разными адресами:
В этом случае независимо от типа выбранного устройства во встроенном Web-интерфейсе для получения данных сервер может вызывать URL вида:

http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=htu21d
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=max44009
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=bh1750
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=tsl2591
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=bmp180
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=bmx280

Одним словом, все эти датчики могут подключаться к одним и тем же портам.

2. У двух одинаковых датчиков (например, HTU21D) одинаковый адрес, поэтому их нельзя подключить к одной и той же SDA линии. Но можно использовать одну SCL линию.
Это позволяет фактически использовать для каждого датчика не 2, а 1 порт. (* На одной линии SCL не работают вместе датчики HTU21D и Si7021)

Ссылка I2C Scan позволяет просканировать шину на предмет подключенных датчиков/устройств. Эта функция выводит адреса подключенных устройств и их тип (если контроллер этот тип поддерживает).

 

 

MegaD-I2C-API

Определенным преимуществом контроллера является то, что возможна работа даже с теми I2C-устройствами, которые не поддерживается прошивкой. Для этого на сервере используется программный "драйвер" для I2C-устройства, а MegaD-2561 является посредником между I2C-устройством и сервером, который берет на себя низкоуровневую работу с шиной.

pt - номер порта, к которому подключена линия SDA
scl - номер порта, к которому подключена линия SCL

i2c_cmd - команды (1 - инициализация; 2 - старт; 3 - стоп)
Пример: http://192.168.0.14/sec/?pt=35&scl=34&i2c_cmd=1

i2c_send - отправка данных в HEX-виде
Пример: http://192.168.0.14/sec/?pt=35&scl=34&i2c_send=80

i2c_read - считывание данных в HEX-виде (0 - на конце ACK; 1 - на конце NACK [конец связи])
Пример: http://192.168.0.14/sec/?pt=35&scl=34&i2c_read=0

i2c_sendp - отправка пакетных данных в HEX-виде
Пример: http://192.168.0.14/sec/?pt=35&scl=34&i2c_send=780020

Это означает, что к системе управления посредством контроллера MegaD-2561 можно подключить любые I2C-устройства. Описанное выше API позволяет без знаний в области программирования микроконтроллеров управлять I2C-устройствами из любого прикладного языка программирования: PHP, Python, Perl, Java и т.д. Даже если прошивка контроллера "не поддерживает" какой-либо датчик, можно написать свой плагин для ПО сервер и таким образом получить доступ к I2C-датчику. Изменений в прошивке при этом не потребуется.

Подробнее с примерами

 

Работа с модулями на базе расширителей MCP23008/MCP23017

Контроллер позволяет работать с микросхемами-расширителями портов MCP23008 (дополнительно 8 портов) и MCP23017 (дополнительно 16 портов) и модулями, постронных на этих микросхемах.
Подключив подобный расширитель к двум цифровым портам контроллера можно получить дополнительно 8/16 портов. Тип этих дополнительных портов также конфигурируется в Web-интерфейсе контроллера. Порты могут быть "входами" IN и "выходами" OUT. Тип подключенной микросхемы (MCP23008, MCP23017) контроллер определяет автоматически.

Настройка порта, к которому подключена линия SDA расширителя.


В верхней части отображается состояние всех дополнительных портов расширителя (состояние всех портов также можно запросить с помощью стандартной команды "cmd=get")

Обязательно необходимо в перечне устройств выбрать Dev: MCP230XX. К этому же порту пожно подключить и другие I2C-устройства, не требующие специальной инициализации: HTU21D, MAX44009, BH1750 и т.д. Запросить их состояние можно с помощью запросов типа "?pt=30&scl=31&i2c_dev=max44009", которые описаны выше.

В поле INT необходимо указать номер порта, к которому подключена линия INT (прерывание) расширителя. Это необходимо ТОЛЬКО в том случае, если порты расширителя используются в качестве входов. Если расширитель используется только для организации дополнительных выходов (реле, симисторы), то заполнять это поле не требуется.

Когда SDA-порт настроен на работу с устройством MCP230XX, в общем списке портов появляется ссылка Ext-IO, которая ведет к настройкам и управлению расширенными портами.

На странице конфигурации расширенных портов отображается тип микросхемы, а также текущее состояние и тип портов.

Каждый расширенный порт можно сконфигурировать как вход (IN) или выход (OUT) согласно аппаратной конфигурации подключаемого модуля.
Если порт настроен как выход, им можно управлять с помощью ссылок ON и OFF.
Управлять такими портами из сценариев или с помощью команд сервера можно следующим образом.

Пример: 31e4:1
31 - номер порта, который подключен к линии SDA расширителя.
e4 - номер порта расширителя (e - сокращенно от expander/extended port)
:1 - стандартная команда включения порта

В виде HTTP GET-запроса это выглядит так: http://192.168.0.14/sec/?cmd=31e4:2
Собственно, все аналогично управлению обычными выходами за исключением добавления к номеру основного порта номера расширенного порта: eN

Если порт настроен как вход, то линия INT (прерывание) должна быть обязательна подключена к свободному порту и указана в настройках SDA порта.

Что такое линия INT? Модуль на базе расширителей MCP23008/MCP23017 по сути совершенно независимое, отдельное от основного контроллера устройство, подключенное к нему по цифровой шине I2C. Эта шина предполагает, что только "мастер" (контроллер) может инициировать связь с устройством и запросить у него какую-то информацию. Но если расширенные порты используются как входы, то без использования отдельной линии прерывания это озночало бы, что контроллеру нужно постоянно опрашивать расширитель, чтобы не пропустить срабатывание входа. Не очень надежное и правильное решение. Вот почему у модуля расширителя должен быть отдельная линия INT. Когда происходит срабатывание входа, расширитель замыкает порт, к которому подключена линия INT (прерывание), тем самым сообщая контроллеру о том, что произошло какое-то событие. Только тогда контроллер считывает состояние портов и определяет, какой именно порт сработал.

Порт, к которому подключена линия INT расширителя, должен быть настроен как вход IN в режиме "P" с обязательно установленным флажком "Raw".

Когда происходит срабатывание входа расширителя, на сервер отправляется сообщение.

?pt=22&ext0=1

где pt=22 - номер порта, к которому подключена линия INT,
ext0 - номер порта расширителя вида extN (ext0 - это порт 0, ext7 - порт 7 и т.д.)
=1 - тип срабатывания. (1 - замыкание, 0 - размыкание).

На сервер всегда отправляется информация как о замыкании, так и о размыкании портов расширителя.
Если происходит одновременное событие по разным портам, то информация на сервер передается в одном пакете таким образом:

?pt=22&ext0=1&ext1=1

В данном случае произошло замыкание на портах 0 и 1

В целях экономии портов контроллера, при подключении модулей на базе расширителя MCP23017 (16 дополнительных портов) линии INTA и INTB можно подключить к одному входу контроллера.

Поскольку для расширенных портов нет возможности настройки сценариев (Act), сетевых сценариев (Net), различных режимов (управление диммированием, Click mode) целесообразнее использовать подобные модули для реализации выходов. В этом случае не потребуется также настройка и подключение линии INT. Однако и входы работают вполне надежно в простых задачах: герконы на окнах и дверях, различного рода извещатели, выключатели освещения и т.д.

 

Работа с модулями на базе расширителя PCA9685

PCA9685 - это микросхема-расширитель портов, работающая по шине I2C и предоставляющая 16 ШИМ каналов с разрешением 12 бит (от 0 до 4095).
Для SDA-порта необходимо выбрать тип PCA9685

При выборе типа устройства PCA9685 появляется поле Freq.
Freq - частота работы ШИМ. Одна одна для всех расширенных портов.
По умолчанию частота ШИМ: 200Гц, но можно установить любую в диапазоне от 24 до 1526Гц.

Теперь у SDA-порта появляется ссылка Ext-IO

Перейдя по ссылке, можно увидеть список доступных ШИМ-каналов.

Выбрав нужный порт, можно задать уровень ШИМ (от 0 до 4095).

В контроллере заложена работа с этими портами в сценариях и командах сервера.

Пример: http://192.168.0.14/sec/?cmd=10:2;31e3:4000;31e2:2000;11:2

31e3:4000 (31 - SDA-порт, к которому подключена микросхема, e3 - порт P3 расширитеря, 4000 - значение ШИМ)

Для данных портов поддерживается команда "get".

Пример: http://192.168.0.14/sec/?pt=31&ext=15&cmd=get

 

Работа с внешним АЦП ADS1115

Выбор типа устройства в поле Dev в данный момент отсутствует. Тип выбирается: ANY
Режим: 4 отдельных несимметричных входа, коэффициент усиления штатный. В этом режиме разрядность АЦП - 15 бит. Значения от 0 до 32767
Через функцию "Scan" чип находится с "адресом" 0x90.

Считывание значения канала (пример)

http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=ads1115&i2c_par=0

где i2c_par - номер канала (от 0 до 3)

 

Работа с OLED-дисплеями SSD1306

Контроллер MegaD-2561 на аппаратном уровне поддерживает работу с дисплеями SSD1306.

Дисплей можно подключить к ЛЮБОМУ порту.
После настройки порта как I2C/SDA и указав номер порта I2C/SCL, можно выбрать тип устройства: SSD1306

Поле Bright определяет яркость дисплея (от 2 до 254). По умолчанию: 127

Флажок Clock позволяет вывести на экран часы в формате ЧЧ:ММ. Фукнция может быть полезной для пользователей RTC-версий с часами реального времени.
После того, как хотя бы один дисплей подключен к контроллеру, у большинства портов (за исключением NC) появляется поле "Disp"

Если в этом поле указать номер порта, к которому подключен дисплей, то информация о состоянии порта будет отображаться на этом дисплее.

При изменении состояния порта, информация тут же отображается на дисплее.

В данный момент поддерживается отображение состояний для типов: IN, OUT (в режиме SW) и DSen (в режиме 1W)
К контроллеру может быть подключено несколько дисплеев. Таким образом, оперируя значением в поле Disp, можно выводить состояние разных портов на разных дисплеях.

Если для вывода информации на дисплей выбран только один порт, к которому подключен датчик DS18B20, то значение температуры на экране отображается крупно.

Если для вывода информации на дисплей используется библиотека I2C-PHP, то стоит иметь ввиду, что настроенный таким образом дисплей инициализируется контроллером автоматически. Поэтому можно сразу начинать вывод информации на него без предварительной инициализации.

Иногда требуется, чтобы информация на дисплее отображалась не все время, а по какому-то событию (при срабатывании ИК-извещателя или при нажатии кнопки). Это можно реализовать с помощью стандартных сценариев. Дисплей поддерживает команды 0 - выключить, 1 - включить, 2 - переключить.

Например, необходимо сделать так, чтобы по нажатию кнопки/выключателя, дислей отобразил информацию в течение 5 секунд.
В этом случае в поле Act кнопки достаточно прописать следующий сценария (SDA-линия дисплея подключена к P35): 35:1;p50;35:0

Подобным же образом, через стандартные команды сценариев, можно управлять и яркостью дисплея (например, снижать яркость в темное время суток). Например: 35:50 (где 50 - яркость дисплея).

Вывод крупных цифр на экране дисплея можно реализовать и с помощью сервера.

http://192.168.0.14/sec/?pt=33&text=25.8:

pt=33 - порт, к которому подключена SDA-линия дисплея
text=25.8: - значение, которое нужно вывести.

В текущий момент поддерживается отображение цифр, точки, плюса, минуса и значка градуса, процента и иконки "ppm", которая кодируется символом 'p'. Двоеточие после температуры ":" как раз и дает понять контроллеру, что необходимо отобразить значок градуса. Это упрощает ситуацию, ведь в отличие от символа градуса двоеточие присутствует на клавиатуре, а для передачи этого символа в GET-запросе нет необходимости в дополнительном кодировании.

Когда для отображения температуры используется сервер, есть только одна маленькая хитрость - форматирование отображаемого значения. Дело в том, что количество символов в значении температуры может быть разным: 0.0 (3 символа), 25.8 (4 символа), -22.7 (5 символов). Чтобы любое значение в диапазоне от -99.9 до +99.9 отображалось по центру дисплея, можно использоваь простой скрипт на PHP.

<?php
$my_temp = number_format("25.82", 1); // Получаем значение из базы данных, форматируем его
if ( strlen($my_temp) < 4 && $my_temp > 0 )
$my_temp = "s+$my_temp";
elseif (strlen($my_temp) < 4 )
$my_temp = "ss$my_temp";
elseif (strlen($my_temp) < 5 )
$my_temp = "s$my_temp";

file_get_contents("http://192.168.0.110/sec/?pt=33&text=$my_temp:");
?>

Здесь мы видим, что скрипт в зависимости от количества цифр добавляет символ "s", который означает "space" (пробел). Шрифт, который заложен в контроллер моноширинный, поэтому температура отображается всегда ровно, цифры не прыгают и не смещаются.
Символ "_" также означает пробел, то в отличие от "s" (пробел, равный ширине символа), символ "_" кодирует пробел, равный половине ширины цифры. Это можно использовать для выравнивания текста.

Также сервер может выводить на экране дисплея мелкий текст (подписи). Сделать это можно так.

http://192.168.0.14/sec/?pt=31&text=test&col=0&row=0

Здесь col и row - координаты (колонка, ряд), откуда выводить текст.

В прошивке заложены русские буквы. Кодовая страница CP866.
Из PHP вывести русские буквы можно следующим образом

file_get_contents("http://192.168.0.14/sec/?pt=31&text=".iconv("utf-8", "cp866", "Улица")."&col=0&row=0");

Пробелы кодируются символом "_".

Если нам нужно вывести на экран подпись к крупным цифрам, то сначала нужно отправить мелкий текст, а затем крупный.

file_get_contents("http://192.168.0.14/sec/?pt=31&text=".iconv("utf-8", "cp866", "Улица_1")."&col=0&row=0");
file_get_contents("http://192.168.0.14/sec/?pt=31&text=+27.3:");

Для очистки строк целиком можно использовать специальную функцию.

http://192.168.0.14/sec/?pt=31&disp_cmd=1&row=0

где row - ряд, который нужно очистить.
 


Планировщик заданий и поддержка часов (RTC)
Функция cron

Контроллер MegaD-2561 поддерживает работу с часами реального времени (RTC).
Часы - это небольшие платки, на которых смонтирована микросхема, например, DS3231 и элемент питания.
При отсутствии питания ход часов не останавливается, благодаря батарейке. При включении MegaD-2561 устройство синхронизируется с часами. Таким образом, время в устройстве всегда актуальное.
Работа с часами реального времени используется для выполнения команд (переключения выходов) по расписанию.

Контроллер поддерживает микросхемы DS3231 и DS1307.
Целесообразно использовать DS3231 по двум причинам.

  1. Питание +3,3В (есть в модуле MegaD-2561). В то время как DS1307 требует +5В.
  2. DS3231 точнее.

Подключить DS3231 можно к любым двум портам. Эти часы работают по протоколу I2C, поэтому необходимо использование 2-х портов.

Контроллер в исполнении MegaD-2561-RTC поставляется уже с часами реального времени DS3231, которые подключены к внутреннему служебному разъему. Количество портов при таком подключении остается прежним.

Для настройки выполнения команд по расписанию необходимо перейти по ссылке Cron, которая находится на странице системных настроек.

Кликнув по ссылке, пользователь попадает страницу управления планировщиком.

Cur time: текущее время. В квадратных скобках указан день недели (1-7). В частности [5] - пятница.

Set time: здесь можно задать время. Формат ЧЧ:ММ:СС:ДН, то есть 15:30:00:5 - последняя цифра - день недели

SCL/SDA: порты микроконтроллера, к которым подключены часы. Здесь указывается не номер порта (как обычно), а его индекс (можно посмотреть в документации). Это сделано для того, чтобы имелась возможность подключить часы не только к разъему XT2 (зеленые клеммники внизу) и исполнительным модулям MegaD-14-IOR, но и к внутреннему 16-пиновому разъему XP4.

В случае использования контроллера в исполнении MegaD-2561-RTC можно оставить эти поля пустыми. Контроллер сам определит наличие платы часов, подключенных к служебному разъему XP4 и синхронизируется с ними.

T/Act: Сами задания. Их может быть 5 шт.
Немного подробнее о заданиях
T: формат ЧЧ:ММ:ДН

Примеры:

14:30:0 - выполнять в 14:30 каждый день (последний 0 - означает каждый день)
08:00:3 - выполнить в 8:00 в среду (3 - среда)
03:15:3-7 - выполнять в 03:15 со среды по воскресенье включительно (3-7)
*:/03:0 - выполняется каждые 3 минуты. Вместо значения "час" необходимо задать '*'. Последний ':0' - дни недели. 0 - каждый день. День недели учитывается. Можно задать выполнение циклической операции в определенные дни недели.
/02:15:0 - выполняется каждые 2 часа в 15 минут. То есть в 2:15; 4:15; 6:15 и т.д.

Act - стандартное поле сценария.
Важно, что здесь работают паузы (команды p). То есть, если необходимо включить, например, автополив на 30 минут, то не обязательно разносить это на два задания. Можно ограничится одним.

Замечание по поводу плат DS3231 из Китая. Они продаются с батарейками и аккумуляторами. В случае подключения к MegaD-2561 необходимо выбирать те платки, которые снабжены батарейкой CR2032 3V, а не аккумулятором. При питании от +3,3V аккумулятор не будет заряжаться.

Стоит добавить, что часы внутри микроконтроллера, когда он работает, идут и без дополнительной платы RTC (DS3231), но в этом случае они, во-первых, всегда сбрасываются в момент выключения/включения и, во-вторых, не являются точными. Использование DS3231 гарантирует, что устройство "не забудет" время при перебоях в электроснабжении (даже если отключение электроэнергии будет очень длительным), а время будет всегда точным.

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

http://192.168.0.14/sec/?cf=7&stime=10:57:06:4

Так как контроллер в момент своего включения отправляет на сервер сообщение с параметром "st=1", то сервер, получив это сообщение, может установить в контроллере правильное время.

 

Программирование условий для выполнения сценариев
Функция Program

Контроллер MegaD-2561 может выполнять заданные команды (сценарии) в случае возникновения какого-то события: нажата кнопка, температура выросла выше определенного значения и т.д. Для этого у соответствующих портов присутствует поле "Act". Но у этого штатного механизма есть ряд ограничений: он работает для входов (IN, ADC, DSen/1W), но не работает для выходов (OUT); нельзя задать дополнительное условие для выполнение сценария (например: нажата кнопка -> включить свет, но только в том случае, если датчик освещенности не выше определенного заданного значения). Для решения этой проблемы можно использовать функцию Program, которая позволяет задавать сценарии в том числе для выходов и строить цепочки подчиненных условий. Таким образом, в каких-то не очень сложных задачах можно обойтись только средствами контроллера без использования сервера.

Ссылка на "Program" находится на странице "Config".


Всего можно задать до 10 условий типа  "если значение порта больше/меньше/равно, выполнить сценарий"
Пример: Если значение температурного датчика, который подключен к P32 равно 30.1 градусу выполнить сценарий "8:1" (включить порт P8)


Редактирование условия.
Задается номер порта, тип сравнения (больше / меньше / равно), значение, сценарий, тип условия (основное / подчиненное).

Самое интересное в данной функции - работа с подчиненными условиями.
Предположим нам необходимо, чтобы порт P7 переключился только в том случае, если нажаты одновременно обе клавишы, подключенные к разным портам P0 и P1.

Пример решения этой несложной задачи показан на скриншоте выше.
Здесь условие №0 является основным, а условие №1 подчиненным (флажок slave). В сценарии основного условия прописано "&1", что означает "AND (И) 1", то есть, проверить условие №1.
При возникновении события, связанное с портом P0, контроллер проверит состояние P1, и если оба условия соответствуют заданным в Program, выполнится сценарий "7:2".
Данный механизм работает в обе стороны - условия связаны. При нажатии на клавишу, подключенную к P1, произойдет проверка P0.

В общем списке подчиненные условия маркируются символом решетки "#".
Можно строить каскад условий, когда условие №3 подчиняется условию №2, а оно в свою очередь №1.

Также функцию Program можно использовать в тех случаях, когда не хватает размера стандартного поля Act для хранения длинного сценария.

 

MegaD-2561 в качестве GSM-сигнализации и SMS-шлюза

Контроллер MegaD-2561 может выполнять функции полноценной GSM-сигнализации в автономном режиме (без участия сервера), а также выполнять роль GSM-шлюза, принимая и отправляя SMS-сообщения по команде сервера. Для этого необходимо подключить к контроллеру GSM-модуль: SIM800L, SIM300, SIM900, M590E и другие совместимые по командам.
GSM-модуль подключается к портам P32, P33 клеммы XT2 контроллера. Пин TX модуля GSM подключается к порту P32 (RX) контроллера, а пин RX модуля GSM к порту P33 (TX) контроллера.


После подключения GSM-модуля в настройках контроллера необходимо включить опцию "GSM" и указать номер телефона, на который будут отправляться SMS-сообщения.

Настройка SMS timeout определяет время в секундах (от 1 до 254), в течение которого не отправлять повторные SMS о срабатывании входов. Если какой-либо вход срабатывает слишком часто, то с помощью этой опции можно сократить число отправляемых сообщений.

Mode: "disarm" (наблюдение), "ARM" (охрана) - отображает текущий режим.

После того, как активирована опция GSM у всех входов появляются новая настройка.

Опция SMS определяет, необходимо ли отправлять SMS-сообщение при срабатывании входа в автономном режиме работы.

  • no - не отправлять SMS
  • always - всегда отправлять SMS независимо от режима охраны
  • arm - отправлять только в режиме "охрана" - ARM

Для переключения режима охраны предусмотрена специальная стандартная команда "S"

  • "S:0" - снять с охраны (disarm)
  • "S:1" - поставить на охрану (ARM)
  • "S:2" - переключить (инвертировать) режим охраны

Управлять режимом охраны можно тремя разными способами

1. С помощью стандартных сценариев

Сценарий (например, "S:2" - переключить режим охраны) можно прописать для какой-либо кнопки, для считывателя, даже для температурного датчика. Везде, где есть поле Act. Также управлять режимом охраны можно через Cron (задания по расписанию) и Program (программирование условий).

2. С помощью сервера или другого контроллера MegaD-2561. Команда на включение (например, "cmd=S:1"), может поступить по сети Ethernet.

3. С помощью входящего SMS-сообщения. Если сообщение с текстом, например, "S:0" поступило от номера, прописанного в конфигурации, то контроллер выключит режим охраны

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


Обработка входящих SMS

Контроллер выполняет обработку входящих SMS-сообщений. В автономном режиме, когда сервер не используется и не прописан в конфигурации, контроллер обрабатывает сообщения только от того абонента, чей номер указан в настройках. Формат команд для SMS полностью соответствует тому, что используется в сценариях. Так, например, если необходимо, чтобы контроллер включил порт P7 следует отправить сообщение вида "7:1". В ответ контроллер пришлет "Done". Это означает, что MegaD-2561 получил и выполнил команду.

Для запроса состояния порта нужно отправить команду вида "get:n", где n - номер порта. Например, по команде "get:0" контроллер в ответном сообщении пришлет состояние порта P0. Ответ полностью идентичен тому, что устройство возвращает по запросу cmd=get через HTTP.


MegaD-2561 в качестве SMS-шлюза

Когда в настройках контроллера указан сервер, то устройство с подключенным к нему GSM-модулем становится SMS-шлюзом, которое передает все входящие SMS сообщения на сервер и отправляет SMS по команде сервера. Входящее SMS-сообщение передается на сервер следующим образом.

/script.php?sms_phone=+79000001234&sms_text=hello

В таком режиме уже сервер решает, нужно ли реагировать на сообщение от этого номера и как интерпретировать текст.

Сервер также может через контроллер отправлять произвольные сообщения на произвольные номера. Для этого необходимо отправить запрос следующего вида.

http://192.168.0.14/sec/?sms=Alarm!&phone=+79000000000

Текст сообщения должен состоять только из символов "латинского алфавита".

 

Голосовые звонки

При срабатывании входа, контроллер может не только отправить SMS-сообщение, но и позвонить. Это может быть полезным для критически важных событий.


По умолчанию звонок будет "молчаливым". При ответе на звонок в трубке будет тишина.
Но контроллер позволяет загрузить в GSM-модуль, в котором для этого присутствует специальная память, произвольный звуковой файл. Этот файл будет проигрываться в случае соединения с абонентом.

Для того, чтобы загрузить в GSM-модуль звуковой файл необходимо сделать следующее.

  • Скачать и распаковать архив megad-gsm-amr.zip
  • Отредактировать скрипт, указав нужный IP-адрес контроллера и имя AMR-файла
  • Запустить из текущей папки скрипт: php megad-gsm-amr.php

В архиве уже включен файл warning.amr, который содержит фразу: "Внимание! Сработал порт контроллера"
Можно создать свой аудио-файл с помощью любого сервиса синтеза речи или сделать запись с микрофона. Полученный WAV-файл необходимо сконвертировать в формат AMR. Пользователям Linux проще всего воспользоваться утилитой SOX.

sox warning.wav output.amr-nb


Поддерджка протокола MQTT

Для того, чтобы связать контроллер MegaD-2561 с сервером по протоколу MQTT, необходимо выбрать опцию MQTT в поле SRV Type.
Порт 1883 пропишется автоматически.

После старта устройство соединяется с сервером и подписывается на топик: megad/14/cmd
Здесь 14 - последний байт IP адреса устройства. Если прописан MegadID, то используется он.

1486454199: New connection from 192.168.0.14 on port 1883.
1486454199: New client connected from 192.168.0.14 as megad-14 (c1, k30).
1486454199: Sending CONNACK to megad-14 (0, 0)
1486454200: Received SUBSCRIBE from megad-14
1486454200:     megad/14/cmd (QoS 0)
1486454200: megad-14 0 megad/14/cmd
1486454200: Sending SUBACK to megad-14

В данный момент при срабатывании входа устройство публикует информацию в топике: megad/14/n, где n - номер порта.
Например, при срабатывании P0 топик будет megad/14/0

1486454392: Received PUBLISH from megad-14 (d0, q0, r0, m0, 'megad/14/0', ... (22 bytes))

Передача информации происходит в JSON-формате

{"port":"0","cnt":"1"}

Соответственно "сервер", подписанный на megad/14/0 и получивший информацию о событии, публикует сообщение в топике megad/14/cmd
Формат этого сообщения пока прежний и соответствует стандартным командам сценариев: 7:2;8:2 (пример)

1486454501: Received PUBLISH from megad-14 (d0, q0, r0, m0, 'megad/14/0', ... (22 bytes))
1486454501: Sending PUBLISH to server (d0, q0, r0, m0, 'megad/14/0', ... (22 bytes))
1486454501: Received PUBLISH from server (d0, q0, r0, m0, 'megad/14/cmd', ... (7 bytes))
1486454501: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (7 bytes))

В качестве "брокера" можно использовать mosquitto.
В качестве "сервера" можно использовать PHP-скрипт с библиотекой phpMQTT.php

Вот грубый пример такого "сервера".

<?php
require("phpMQTT.php");
$mqtt = new phpMQTT("192.168.0.250", 1883, "server");

if(!$mqtt->connect()){
   exit(1);
}

$topics['megad/14'] = array("qos"=>0, "function"=>"procmsg");
$mqtt->subscribe($topics,0);

while($mqtt->proc()){}

$mqtt->close();

function procmsg($topic,$msg){
   global $mqtt;
      echo "Msg Recieved: ".date("r")."Topic:{$topic} $msg";
      $mqtt->publish("megad/14/cmd","8:2;7:2",0);
}
?>

Через протокол MQTT также можно запросить состояние порта устройства. Для этого следует отправить в топик "megad/14/cmd" (где 14 - последний байт IP-адреса) команду вида "get:10" (где 10 - номер порта). Устройство в ответ на полученный запрос опубликует в топике megad/14/10 следующее: {"port":"10","value":"ON"}
В поле "value" в текущий момент содержится то, что содержалось бы в ответе на HTTP GET-запрос.
В ситуации, когда к порту подключен датчик температуры, ответ будет примерно таким: {"port":"32","value":"temp:26.31"}

Начиная с версии 4.36b4 контроллер может принимать команды, отправленные в топик "cmd", в формате JSON

{"port":6} // получить состояние порта P6
{"port":10,"value":"ON"} // включить порт P10

 

Управление техникой по ИК-каналу

Контроллер MegaD-2561 можно использовать для управления техникой по ИК каналу. Любой техникой, работающей по стандартным протоколам. Это не только телевизоры, плееры и другие бытовые приборы, но и, что наиболее важно, кондиционеры. По сути MegaD-2561 способен работать в роли Ethernet-ИК шлюза (Ethernet-IR gate), когда команды, отправляемые сервером, транслируются по сети Ethernet, кодируются контроллером и передаются по ИК-каналу.

В текущий момент функция "ИК" доступна для портов P10, P11, P12, P25, P27, P28 (разъем XP1 контроллера MegaD-2561). Для удобства подключения можно использовать исполнительный модуль MegaD-14-IOR. Для того, чтобы попробовать ИК-управление достаточно взять простейший ИК-диод стоимостью 3-5 рублей, подключив его через токоограничивающий резистор непосредственно к порту, например, P12 без какого-либо дополнительного питания. Но в этом режиме максимальное расстояние от приемника до ИК-диода составит не более метра. Поэтому лучше использовать ИК-передатчик, который был разработан специально для подключения к модулям MegaD.
Подробное описание принципов работы с ИК-передатчиком.

 

Управление LED-лентами на базе чипов WS2818, WS2811, WS2813

Контроллер MegaD-2561 также поддерживает работу с чипами WS2818, WS2811, WS2813 применяющихся для создания светодиодных лент, в которых можно управлять цветом каждого светодиода (или сегмента) в отдельности, адресно. Отличительной особенностью лент WS2818, WS2811, WS2813 является то, что для управления ими нужен всего один цифровой порт (не имеет значение имеет ли порт функцию ШИМ или нет). А кроме того, нет необходимости в использовании дополнительных драйверов или исполнительных модулей.

Управлять лентой можно с помощью простых HTTP-запросов.

Пример: включить все диоды красным цветом
http://192.168.0.14/sec/?pt=35&ws=FF0000

Поддержка подобных лент контроллером MegaD-2561 позволяет расширить возможности пользователя по созданию уникальных сценариев для гирлянд и различных подсветок, не ограничиваясь штатными алгоритмами специализированных контроллеров.
Подробное описание принципов управления лентами на базе WS2818/WS2811/WS2813

Лентами можно управлять не только с помощью сервера, но и с помощью кнопок, подключенных к контроллеру.
Предположим, лента подключена к порту P35 и к контроллеру также подключена двухклавишная кнопка.
Для одной кнопки прописывается команда сценария: 35:~ (управление яркостью/диммированием)
Для второй кнопки прописывается команда сценария: 35:# (выбор цвета)

Таким образом, одной кнопкой ленту можно включить/выключить, а также изменить яркость.
Другой кнопкой выбирается цвет. При удержании нажатой кнопки, цвет плавно меняется по кругу. Однократное нажатие выбирает произвольный цвет.

 

Аварийное сохранение состояний выходов

Иногда возникают такие задачи, которые требуют, чтобы после аварийного выключения питания контроллер восстанавливал состояние своих выходов без участия сервера.
Очевидное на первый взгляд решение, сохранять состояние портов в энергонезависимой памяти микроконтроллера при каждом переключении выходов, в действительности не слишком удачное. У ячеек EEPROM есть хоть и довольно большой, но конечный ресурс записи, а в некоторых задачах порты переключаются очень часто. Значит необходимо сохранять состояние выходов только в момент выключения устройства.

Существует довольно интересный вариант решения этой задачи. Известно, что современные импульсные БП такие как MeanWell DR-(60/30/15)-12, которые часто используются для питания модулей, после отключения 220В отключаются не сразу, а примерно через секунду-полторы. Это то самое время, когда состояние портов можно сохранить. Реализация очень простая. Необходимо задействовать любой свободный вход, подключив к нему U-Sensor, который соединить с клеммами входного напряжения 220В блока питания. Когда напряжение 220В пропадет, контроллер это зафиксирует и сохранит состояние своих выходов.

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

Флажок, рядом с полем сценария (Act) запускает сценарий независимо от наличия сервера.
Mode: R - запускает сценарий при размыкании порта (отключении электроэнергии)
"s" - это и есть команда сохранения состояния выходов.
При необходимости команду 's' для сохранения состояния портов может отправить и сервер.

Пример: http://192.168.0.14/sec/?cmd=s

 

Пример интеграции контроллера MegaD-2561 с сервером по протоколу HTTP


Обработка сообщений от MegaD-2561 и формирование ответов

Для того, чтобы принимать от устройства сообщения, необходим Web-сервер. Простейший Web-сервер можно написать самостоятельно. Однако значительно проще использовать уже готовый, например, Apache, lighttpd, nginx, IIS. Установка Web-сервера на Linux или Windows занимает не более нескольких минут.
Далее необходим какой-либо язык программирования. Например, PHP. Это достаточно простой язык программирования с низким порогом вхождения, в котором легко освоиться начинающим пользователям.

MegaD-2561 формирует сообщения вида http://ip-address/script?pt=n, где ip-address - адрес сервера, указанный в сетевых настройка, scipt - скрипт, указанный в сетевых настройках, а n - номер активированного порта. Запрос может выглядеть так http://192.168.0.250/megad.php?pt=6

Соответственно можно создать на сервере простейший скрипт megad.php

<?php
if ( $_GET['pt'] == "6" )
{
// Выполнение действий
}
?>

Собственно, вот и все программирование. Если мы получили сообщение от устройства о нажатии кнопки, подключенной к порту 6, выполняем необходимые действия.
Но мы можем сразу же сформировать ответ, где скажем MegaD-2561, какие выходы должен включить, выключить или переключить контроллер. Тогда скрипт приобретает такой вид.

<?php
if ( $_GET['pt'] == "6" )
{
   echo "7:1";
}
?>

Если сработал порт 6, включаем нагрузку, подключенную к порту 7. Формат команды описан выше и соответствует формату поля Action.
Первая цифра - номер порта
Вторая цифра после двоеточия - действие (0 - выключить, 1 - включить, 2 - переключить, изменить состояние на противоположное).
Как и в случае с полем Action, есть возможность дать команды на управление сразу нескольким портам.

echo "7:1;8:0";

Команды разделяются точкой с запятой. Порт 7 - включить, Порт 8 - выключить.


Получение состояния портов

Получить состояние порта можно с помощью любого Web-клиента, в том числе с помощью функций PHP.

URL для получения текущего состояния порта:

http://192.168.0.14/sec/?pt=4&cmd=get

где параметр pt определяет номер порта.

Можно использовать любые удобные функции: file_get_contents(), curl() или socket'ы. Например:

<?php
$state = file_get_contents('http://192.168.0.14/sec/?pt=4&cmd=get');
?>

После выполнения данной команды в переменной $state у нас будет содержаться ON (если порт находит в активном состоянии), OFF или текущее значение, если порт настроен в режим PWM (ШИМ) или ADC (АЦП).

Контроллер также позволяет вывести состояние всех своих портов по команде cmd=all

http://192.168.0.14/sec/?cmd=all

 

Управление выходами

В предыдущих примерах сервер управлял выходами в ответ на сообщение контроллера, которое формируется в связи с каким-то событием (например, нажатие выключателя). Но сервер может управлять выходами контроллера, инициировав связь с устройством самостоятельно. Для этого программа на сервере вызывает URL вида:

http://192.168.0.14/sec/?cmd=10:1

Где формат команды (cmd) стандартный, который описан в разделе про Сценарии (Act).
Если выход настроен как PWM (ШИМ), то допускается указывать значения от 0 до 255

http://192.168.0.14/sec/?cmd=12:150

Пример управления группой (см. описании работы с группами)

http://192.168.0.14/sec/?cmd=g1:1

 

Поддержка протокола SNMP

Контроллер MegaD-2561 может отвечать на SNMP-запросы, возвращая состояния портов: IN, OUT, ADC, DSen/1W.
Поддерживается SNMP v1.
OID: 1.3.6.1.4.1.42

Примеры.
Получение состояния всех портов: snmpwalk -v1 -c public 192.168.0.14 1.3.6.1.4.1.42
Получение состояния порта P7: snmpwalk -v1 -c public 192.168.0.14 1.3.6.1.4.1.42.7

 

Краткие руководства

Актуальные версии модулей

MegaD-2561 Ver 2.0-2.2
MegaD-8I7O-R Ver 1.0
MegaD-8I7O-S Ver 1.0
MegaD-8I7O-SD Ver 1.0
MegaD-14-IOR Ver 1.0
MegaD-14-R Ver 2.0
MegaD-2R Ver 1.0-2.0
MegaD-2W Ver 1.0

Снятые с производства версии модулей

MegaD-2561 Ver 1.0
MegaD-7I7O-R Ver 5.2+
MegaD-7I7O-SD Ver 5.2+
MegaD-14-R Ver 1.0
MegaD-14-IN Ver 6.2
MegaD-328 / MegaD-7I7O-R/S Ver 5.2
MegaD-328 / MegaD-7I7O-R/S Ver 5.0
MegaD-328 / MegaD-7I7O Ver 4.0

Для использования в схемах и документациях можно скачать основные изображения модулей в векторном формате

Изображения устройств в формате EPS
 

О производстве

Все производство модулей находится в России.
Монтаж плат осуществляется на автоматических линиях (как SMD, так и DIP).
Закупка комплектующих осуществляется через официальных дилеров или напрямую у производителей.
При выборе комплектующих главным критерием является не цена, а надежность, стабильные характеристики, качество.
Фрезерование корпусов (в том числе отверстия для индикации) осуществляется на высокоточном станке с ЧПУ собственной сборки.
Каждый модуль проходит тщательное тестирование для выявления всех потенциальных дефектов. Отгрузка модулей с неисправностями исключена.

 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:



Сортировка комментариев: Последние сверху | Первые сверху

2019-05-13 11:46:32 | Andrey_B
Артем, в текущий момент такая функция в контроллере отсутствует. Не очень понятно, нужна ли она в принципе. Отображение уровня сигнала обычно востребовано в носимых устройствах.


2019-05-13 09:35:21 | Артем
Андрей здравствуйте. За неимением дисплея sd1306 такой вопрос, возможно ли отображение сигнала сети и подобной информации при подключенном модуле sim800 ?


2019-04-24 10:18:23 | Andrey_B
Геннадий, выше в статье есть абзац, который так и называется "Повтор сценария".
Довольно странно звучит, что сервер что-то не дает. Наверное речь идет о каком-то конкретном ПО. Сервер же в общем случае способен выдерживать любые паузы. Но, наверное, вы правы. Если задача стоит отправлять команды 10 раз в секунду, то использование встроенных возможностей контроллера здесь целесообразно.


2019-04-24 08:33:31 | Геннадий
Добрый день, Андрей! Где-то встречал заметку о возможности использования повторов в сценариях MegaD. Поиск не помог. Проблема в необходимости регулировать мощность на ТЗНе. Как сделать низкочастотный ШИМ (1-10Гц) для управления SSR-40DA.? Сервер не даёт циклы меньше 1 секунды. А на MegaD можно до 0,1 сек.


2019-04-12 10:19:27 | Andrey_B
Аскар, во-первых, необходимо проверить физическое соединение контроллера с сетью Ethernet. Светятся ли индикаторы Link на сетевом разъеме контроллера и на коммутаторе/роутере. Можно попробовать заменить патчкорд или переключить контроллер в другой порт коммутатора. Во-вторых, попробовать запустить скрипт/программу megad-2561-cfg с ключом --scan. Если контроллер физически доступен в сети, а широковещательный трафик не блокируется, то скрипт покажет IP-адрес устройства. Возможно, в какой-то момент времени у вас менялись настройки сети, например, роутер стал использовать другую IP-сеть. В-третьих, если используется роутер, проверить настройки, нет ли каких-то блокировок на порту, к которому подключен контроллер. Чудес не бывает, причина найдется.


2019-04-12 07:08:03 | Аскар
Добрый день. Возникла следующая проблемка. Установил и настроил контроллер Megad-2561 в связке с MegaD-14-IN и MegaD-14-R. Настроил выключение света и подключил необходимые датчики. Устройство работает - свет где надо включает, выключает, индикаторы портов горят. Но не могу достучаться до веб-интерфейса MegaD-2561 через браузер, пробовал с разных компьютеров - недоступен. ping тоже ничего не дает. В общем как-то вот раз и пропала связь с контроллером. Прошу оказать содействие в поиске неисправности. Нужно перепрошивать и сбрасывать настройки на заводские?? У меня контроллер всего один и настроено через него все освещение в доме.


2019-04-07 12:28:19 | Andrey_B
Дмитрий, температурный датчик внутри DS3231 не слишком точный +/- 3 градуса. Но вы правы, наверное, раз он там все равно есть, имеет смысл его куда-нибудь вывести. Думаю, сделаю.
UPD: Добавлено в версии 4.35b2


2019-04-06 12:21:11 | Дмитрий
Андрей здравствуйте. megad2561 с rtc имеет микросхему ds3231 , не подскажите как вывести значения температуры в контроллер megad ?


2019-04-05 09:21:29 | Александр
Спасибо это радует, у нас тут спор развернулся по поводу megaD в целом, после того как я собрал на нем щит, кто то говорит что дешёвые компоненты используются и это не надежно, кто то наоборот поддерживает и считает megaD достаточно надежным, не сочтите за рекламу можете удалить данный комментарий, просто интересно ваше мнение.
https:/www.instagram.com/p/Bv1F5ZPl_ka/?utm_source=ig_share_sheet&igshid=mn0ge3rjk5zx


2019-04-04 21:48:38 | Andrey_B
Александр, нагреваются не реле, а обвязка светодиодов индикации. И то, что вы трогаете, это не транзистор и не конденсатор, а резистор 750 Ом типоразмера 1206. В штатном режиме в замкнутом пространстве корпуса они нагреваются до 60-70 градусов (при максимальной температуре в 155 градусов). В схеме индикации на резисторе рассеивается 0,127Вт. Это совершенно нормально и не является проблемой. Сами же реле нагреваются во включенном состоянии при комнатной температуре только до 40 градусов.
В общем, не стоит беспокоится. Это нормальный режим работы модуля.


2019-04-04 12:25:21 | Александр
К вопросу ниже, додумался сам, просто написал 99:0|99:0|a:0.
Подскажите ещё один волнующий меня вопрос. Если включить все 7 реле MegaD-8170-R то где то минут через 10 лицевая часть исполнительного модуля нагревается, если снять лицевую крышку, транзистор или конденсатор нагревается так что пальцем не дотронуться, это нормально, если к примеру, какие то реле будут включены постоянно?


2019-04-04 10:49:01 | Александр
Здравствуйте, подскажите пожалуйста, есть ли возможность на вход IN, настроить только длительное нажатие кнопки, что бы контроллер на одиночные и двойные нажатия не реагировал.


2019-03-31 11:39:47 | Andrey_B
artem521, MegaD-2561 очень универсальный контроллер. Ставите внешний пьезоизлучатель или даже сирену и управляете ею тем или иным способом с помощью любого порта. Нет никакого смысла резервировать для этого отдельный порт. Он ничем не будет отличаться от любых других портов.


2019-03-31 10:17:54 | artem521
Так как на плате самой меги нет звукового зуммера ( пьезоизлучателя ) , то было бы не плохо иметь такой канал, на который можно повесить этот пьезоизлучатель. Например при аварии или недопустимым каким-то заданным значением, при обрыве датчика ( NA) и прочими событиями был прерывистый звуковой сигнал, который дает знать что стоит обратить внимание. Это очень удобно если модуль работает самостоятельно, без участия сервера.


2019-03-31 09:02:43 | Andrey_B
artem521, подскажите, что это за канал (бипер) и для чего он нужен?


2019-03-31 06:36:24 | artem521
Андрей здравствуйте. Не планируете ли вы сделать прошивку , в которой будет канал для звукового бипера, как это сделано на промышленных ПЛК.


2019-03-20 11:28:40 | Andrey_B
Александр, если прописан сервер, то устройство будет отправлять информацию о нажатии кнопок ему. Если сервер корректно принял сообщение, но ничего не ответил, то контроллер не будет ничего делать. Нужно на сервере задать, какие команды, на какие события отправлять.
Если же установлен флажок рядом с полем Act, то контроллер будет выполнять собственный сценарий независимо от наличия или отсутствия сервера.


2019-03-20 09:08:35 | Александр
Здравствуйте, не могу найти ответ на свой вопрос, может вы подскажете, при подключении MegaD2561 и MegaD-8I7O-R первоначально через контроллер настроил IN P0 на OUT P7, P1 на P8. от кнопок все работает замечательно, далее подключил Mojordomo вот по этому видео https:/www.youtube.com/watch?v=BxgC9zFBx5o, и сделал выключатели для управление P7 и P8, все ок.
А вот далее настроил остальные выходы и входы через контроллер MegaD2561, но они не работают пока включен сервер Mojordomo, как только его отключаю, все кнопки работают. Отмечу что кнопки P0 и P1 работают в любом случае. Подскажите с чем это связано, как можно поправить


2019-03-16 10:34:04 | Andrey_B
Роман, если использовать 3 входа, подключив их параллельно кнопке, то можно с помощью трех NetAct. А стандартной такой команды пока нет. Может быть, появится в будущем, но пока нет.


2019-03-15 22:38:52 | Роман
Андрей,здравствуйте. У меня 4 контроллера MegaD. Все они "коннектятся" друг с другом по средству простенького 5-портового коммутатора Netgear,который в свою очередь подключен к роутеру. Если я напишу вот так "NetAct + cmd=a:0" - то я выключу всё на контроллере ,к которому подключена кнопка + всё на другом каком-то,а как выключить всё ещё на 2ух оставшихся.т.е. всё и везде разом на 4ёх MegaD без участия сервера?


2019-03-15 21:43:37 | Andrey_B
Александр, вопрос сформулирован очень неоднозначно. Можно ли с помощью кнопки, подключенной к одному контроллеру, выключить все выходы другого контроллера? Да, NetAct + cmd=a:0
Можно ли с помощью кнопки выключить все выходы исполнительного модуля, подключенные к другому разъему этого же контроллера? Можно, групповое управление выходами и, например, g1:0.


2019-03-15 20:36:24 | Александр Долго
Здравствуйте, подскажите пожалуйста, есть ли возможность с одной кнопки подключенной к IN в MegaD-8I7O-R выключить все релейные модули подключенные ко второй MegaD-8I7O-R через MegaD-2561?


2019-03-11 13:37:57 | Иван
Добрый день, у меня выключатели света в комнатах замыкают фазу 220в, провода от них все приходят в щиток, планируется установка бистабильных импульсных реле. Но вот нюанс: они управляются от 220в, поддерживает мега + исполнительный модуль такую схему (а не "сухие контакты")?
Или придется делать переходник-реле которые будут управляться контроллером и коммутировать кратковременно 220в на импульсные реле? :)

Основная идея: нужно сохранить возможность отказа от "умного дома" полностью, и в случае необходимости соединить провод от выключателя с проводом от нагрузки, что при обычном двухпозиционном выключателе света даст классическую схему.


2019-03-05 17:42:08 | Andrey_B
linX, функциональность контроллера главным образом формируется запросами пользователей. Если у пользователя возникает интересная и полезная идея, как правило, она не остается без внимание. Вот поэтому я и спросил - в каких задачах требуется контроль/измерение напряжения 24В постоянного тока? Например, в моем доме такой потребности ранее не возникало.


2019-03-05 16:05:16 | linX
Просто хотел сделать одну мегу в качестве web вольтметра. Не то чтобы это необходимо, но вдруг дальнейший проект потребует измерение напряжения.


2019-03-05 12:35:33 | Andrey_B
Готового решения нет.
Либо нужно брать INA219 и добавлять поддержку в прошивку, либо тем или иным способом согласовывать 24В с АЦП контроллера 3.3В или внешним АЦП ADS1115, который поддерживается. Скажите, а в каких задачах требуется измерять напряжение 24В?


2019-03-05 11:27:46 | linX
Напряжение DC до 24 вольт


2019-03-04 21:47:27 | Andrey_B
linX, уточните, о каком напряжении идет речь? Сетевое 230В?


2019-03-04 18:24:33 | linX
Андрей подскажите пожалуйста как мерять напряжение с помощью megad 2561, чтобы зайти на веб меги и посмотреть напряжение. Спасибо.


2019-02-11 11:10:08 | Andrey_B
kanakoff, вот здесь подробнее.
MAX44009 пока не поддерживается в Program. Для сложных сценариев проще и существенно перспективнее настроить сервер.


2019-02-10 21:55:28 | kanakoff
"Влажность пока только для HTU21D и только в рамках функции Program. "

Подскажите подробнее как это реализовать? А также возможно ли также использовать MAX44009?


2019-02-06 16:22:34 | Andrey_B
В текущей аппаратной ревизии контроллера нет высокоточного источника опорного напряжения, поэтому показания будут в некотором диапазоне гулять. Самый правильный вариант в данном случае делать 5-10-30 измерений и усреднять на сервере. Это совершенно нормальная практика для работы с АЦП.


2019-02-06 13:04:39 | Дмитрий
Андрей подскажите пожалуйста как убрать плавающие значение ацп? Вместо датчика даже от резисторов значения "гуляют "


2019-01-26 14:45:58 | Andrey_B
Олег, если речь идет об автономной работе без сервера, то сценарии (Act) поддерживаются для DS18B20. Влажность пока только для HTU21D и только в рамках функции Program. С сервером же можно все.


2019-01-26 13:12:09 | Олег
Да я так и думал что это аналоги, я б сказал практически копии. :)
Андрей, подскажите , есть возможность управлять входом по изменению температуры с далласовского датчика, а планируете реализовать аналогичное для влажности? (например стоит в ванной влажность возросла и он вентилятор включился, упала выключился)


2019-01-26 13:02:14 | Andrey_B
Олег, "харьковские" модули - это аналоги, к которым я не имею никакого отношения. Поэтому, как вы понимаете, мне сложно оказывать техническую поддержку по этим изделиям.


2019-01-26 12:58:52 | Олег
Я не знаю насколько оно у меня оригинальное, я нахожусь в Украине и покупал его тут (в Харькове.) Может Вы лучше знаете насколько оно оригинальное, но выявил что P30 и P31 подписаны а при подключении по факту P30 это P31 и наоборот.


2019-01-26 12:54:50 | Andrey_B
Олег, что значит перепутаны? У вас самодельное устройство или какой-то аналог?
Все модемы, которые я подключал к своим модулям, работали нормально без каких-либо особенностей. Спалить что-то в модеме? Вряд ли.


2019-01-26 12:39:22 | Олег
Спасибо, за информацию. А можно ещё пару вопросов. Не могу с этим SIM800L разобраться. Изначально поставил симкарту в него и подал питание, отправлял смс и приходил отчет о доставке, потом туда сюда крутил подключал и при отправке смс на карту видимо они не доходят, отчет одоставке не приходит. Хотя на карту если звонить то гудки идут и светодиод который горит гаснет. Может я что-то в модеме спалил? И ещё у меня на Меге есть нюанс, а именно порты Р30 и Р31 перепутаны (при подключении термодатчика на Р30 значениия видны по Р31 и наоборот)


2019-01-26 12:19:12 | Andrey_B
Олег, порты можно оставить в NC. Также требуется внешний БП на 5В. Земли объединять, конечно, нужно.


2019-01-26 12:14:05 | Олег
Андрей, можете подробнее рассказать про подключение и настройку SIM800L. Нужно ли как-то настраивать Р32 и Р33 или они остаются настроенными по умолчанию NC и достаточно только поставить в конфигурации галочку GSM? Как я понимаю для подключения модема нужно 5 вольт а на Меге есть только выход 3 вольта, и что б запитать модем нужен блок питания на 5 вольт. (Нужно ли соединять gnd на модеме с Мегой?)


2019-01-25 10:27:49 | Andrey_B
Rpi, в MegaD-14-IOR можно установить конфигурационные джамперы так, что на клеммах порта будет голый порт микроконтроллера без всякой обвязки. И делайте с ним все, что хотите, если, конечно, имеется достаточная квалификация. Поэтому этот модуль и называется не "IN", а "IO" (input/output). Подробнее описано в статье про MegaD-14-IOR.


2019-01-24 22:40:07 | Rpi
Возможно ли на MegaD-14-IOR что бы на клеммах допустим был не вход, а выход через опторазвязку? То есть выход с меги пошел не на выход оптопары в MegaD-14-IOR, а на питание светодиода оптопары, чтобы развязать таким образом разные устройства , например между мегой и ардуино.


2019-01-23 18:41:13 | Andrey_B
Артем, хорошо, подумаем.


2019-01-23 18:11:40 | Andrey_B
Сергей, реле - это способ механического соединения двух проводников. Все остальное - вопросы электрики. Нарисуйте вместе со специалистом на бумаге свою электрическую цепь. Скорее всего подобные вопросы отпадут.


2019-01-23 18:07:08 | Andrey_B
Дмитрий, да, правильно. Грубо говоря, к одному контроллеру можно подключить два MegaD-8I7O-SD. И все диммируемые порты будут работать на обоих разъемах.


2019-01-23 17:32:46 | Артем
Андрей, хочу предложить Вам если такое возможно, на исполнительных устройствах на наклейках где указан порт, рядом в скобках ставить номер порта например p0 (p15 ) , для большего удобства.


2019-01-23 17:10:33 | Ruslan
to Овчинников Сергей. Поскольку, как правило, на реле коммутируется только фаза, то как фазу саму на себя не замыкай, ничего страшного не произойдет. Если на контактах реле торжественно встретятся (без нагрузки) ноль и фаза, будет короткое замыкание. А если, допустим, напряжение у вас 3-фазное, и встретятся фаза с другой фазой, будет... ну, в общем, без обильного использования непарламентских выражений не описать.

Допустим, в одной руке вы держите фазу, а другой -- ноль. Если касаясь пришедших в ваш щиток от штор проводов вы сможете заставить шторы крутиться, то и с MegaD сможете сделать то же самое.


2019-01-23 16:20:28 | Овчинников Сергей
И еще раз здравствуйте. Уточню вопрос про управление рольставнями. Если выходные контакты реле (выходного порта) будут замкнуты снаружи, как это повлияет на работу контроллера 2561?


2019-01-23 14:52:00 | Дмитрий
Подскажите пожалуйста, правильно ли я понял что по инструкции на megad2561 разъем хр2 порты 25, 27, 28 аналогичны портам на разъеме хр1 10,12,13 то есть шим и можно на разъем подключить megad 8170 sd. Просто про это не где не указано, а приводятся только порты 10,12,13.


2019-01-22 13:09:05 | Andrey_B
Сергей, ответ на этот вопрос может дать только электрик (или тот, кто его заменяет) на основе анализа того, как проложена проводка и где происходит коммутация. Заочно ничего определенно сказать нельзя.


2019-01-22 11:59:29 | Овчинников Сергей
Еще раз здравствуйте. Сообщите, пожалуйста, возможно ли с помощью контроллера (и видимо модулей расширения) управлять рольставнями (моторы 220В около 300 Вт ), провода которых собраны в один щиток, и кроме этого, рядом с каждой ставней, по месту, есть свои кнопки поднимания/опускания. Спасибо.


2019-01-19 12:07:35 | Andrey_B
Artem, прочитайте про "обработку длительных нажатий" для режима "P". Может быть, вас это устроит.


2019-01-19 11:00:06 | Artem
В ниже написанном коментарии забыл указать при удержании кнопки.


2019-01-19 10:51:59 | Artem
Андрей здравствуйте. Такой вопрос, можно-ли на megad 2561 сделать так, чтобы вначале шим работал 2 секунды 100% а через секунды 2 на 50% ?


2019-01-18 12:07:26 | Andrey_B
Дмитрий, это аналоговый вход, который измеряет напряжение на входе (от 0 до 3,3В). Требования в данном случае не столь жесткие. Чем длиннее линия и чем тоньше провод, тем больше падение напряжения. Здесь больше вопрос к интерпретации результатов и алгоритму обработки считанных данных.


2019-01-18 10:44:59 | Дмитрий
Здравствуйте. Есть ли на форуме техническая информация по корректному подключению устройств к АЦП ( тип кабеля, длинна линии до АЦП) ?


2019-01-17 10:17:53 | Andrey_B
Артем, обнулится.


2019-01-17 05:17:44 | Артем
Андрей здравствуйте. Подскажите пожалуйста, по истечению максимального значения счетчика входа 65535 если не чего не произвести, значение это так и останется? Само не обнулится?


2019-01-13 14:05:27 | Andrey_B
Мне кажется, вся информация есть в статье.
Всего в контроллере MegaD-2561 доступно 7 портов с функцией ШИМ, которые разнесены по разъемам XP1 и XP2.
Если к обоим разъемам подключены MegaD-8I7O-SD, то оставшийся порт ШИМ (P11) будет задействован под обычный выход. Его можно будет переключить в контроллере на PWM, но этого ничего не даст. Обвязка порта в модуле SD будет обычной.


2019-01-13 11:15:53 | Коля
MegaD-8I7O-SD . P10, Р12, P13 диммируемые выходы. Если я закажу 2561 + MegaD-8I7O-SD +MegaD-8I7O-SD , то у меня получится 6 диммируемых выходов, а сколько получится Оставшихся ШИМ каналов? Они будут на модулях MegaD-8I7O-Sd? Или их можно брать только с 2561?


2019-01-13 10:53:10 | Andrey_B
ШИМ - это не только диммеры для переменного тока. Это и управление светодиодными лентами и PWM-0/10V конвертеры и прочее, что в качестве управляющего сигнала использует ШИМ. Кроме того, никто не запрещает пользователям, умеющим это, делать кастомные исполнительные модули.
Изделия от Мастер Кит подключается напрямую к контактам разъемов XP1 или XP2. Для него не нужен исполнительный модуль. Но все эти подключения, а также вопросы, что делать с остальными портами, выведенными на разъем, остаются в вашей компетенции. Эта уже та область, где пользователь четко понимает, что, как и зачем он делает.


2019-01-13 10:52:47 | Коля
Может как то не верно ставлю вопрос, попробую: мне нужно на 2561+ 2 любых модуля получить максимальное количество диммируемых групп освещения и плюс каналов ШИМ для управления таким диммерам от мастеркит
https:/masterkit.ru/zip/mp248.pdf


2019-01-13 10:40:26 | Коля
А зачем тогда 7 каналов? Какой то еще модуль дает использовать 3 а не 4?


2019-01-13 10:07:52 | Andrey_B
Коля, если мы говорим о двух модулях MegaD-8I7O-SD, то получиться использовать только 6 ШИМ-каналов, так как в каждом исполнительном модуле MegaD-8I7O-SD только 3 канала имеют функцию диммирования.


2019-01-13 08:43:24 | Коля
"""Количество портов с функцией ШИМ: 7 (4 в разъеме XP1, 3 в разъеме xp2)""""
Для того чтоб использовать 7 каналов ШИМ - нужно меге купить 2 модуля
MegaD-8I7O-SD? Какие тогда это каналы на модулях?


2019-01-10 12:22:27 | Andrey_B
Андрей, отключите в nginx Chunked transfer encoding.


2019-01-10 05:49:21 | Андрей
Подскажите почему Мега может не реагировать от ответ от сервера "d"
Заголовки ответа
200 ОК
Connection: keep-alive
Content-Type: text/html; set=UTF-8
Date: Thu, 10 Jan 2019 02:46:13 GMT
Server: nginx/1.14.0
Transfer-Encoding: chunked

Сначала подумал из за gzip on - но отключение, не помогло. скрипт наипростейший


2019-01-07 20:28:52 | Andrey_B
Алексей, порты настраивать не нужно (NC). А вот GND соединять конечно же нужно.


2019-01-07 13:51:16 | Алексей
Добрый день!
При подключении к Меге модуля SIM900 порт P32 и P33 нужно как то настраивать? Провод GND нужно подключать или достаточно только RX и TX?


2018-12-29 12:02:11 | Andrey_B
Алексей, моноширинным является только крупный шрифт.
Мелкий не моноширинный.


2018-12-29 06:17:09 | Алексей
Андрей, добрый день!
Вопрос по моноширинному мелкому тексту для подписей. Какая типовая ширина букв?
Хочу сделать функцию центровки подписей на дисплее. Столбцов 128 и если каждая буква текста имеет фиксированную ширину, то могу узнать с какого col мне надо начать выводить текст для его центровки на дисплее.
Вы что-то подобное делали?


2018-12-28 11:49:49 | Andrey_B
Артем, где, как и зачем этот модуль может потребоваться?


2018-12-28 08:33:32 | Артем
Андрей здравствуйте. Возможно ли в будущем применение модулей NRF905se для расширения возможностей меги?


2018-12-08 10:56:34 | Andrey_B
andvas, насчет паразитного питания. Да, в некоторых партиях работают на паразитном питании. В некоторых нет. Сейчас все больше тех, что не работают. Если разобрать гильзу, то внешне такие датчики зачастую не отличить от оригинала (хотя в дешевых там даже маркировка не DS18B20). Но оригинал всегда работает на паразитном питании. Поэтому логически можно сделать вывод. Либо в таких гильзах аналоги, либо оригинал, но "отбракованный". Скорее всего, аналоги. Но это домыслы.
При подключении датчиков шиной питание в любом случае обязательно, даже с оригиналом. Это связано с тем, что запрос на конвертацию отправляется один всем датчикам и паразитного питания в этом случае может не хватать.
DS18B20-WP нормально работают на шине, но не нужно путать шину и звезду. Ответвления от шины не должны быть более 30-50 см. Чем меньше, тем лучше.


2018-12-08 09:03:36 | andvas
Здравствуйте Andrey_B
Есть интересный вопрос по датчикам "DS18B20 Waterproof" , насколько я понял из ваших ответов в комментариях, китайский вариант этих датчиков практически не работают на паразитном питании, но опять же судя из ваших ответов работают при нормальном "3-х проводном питании". Вопрос вот в чем, а MegaD-2561 при подключении на одну шину нескольких китайских датчиков Waterproof, при условии нормального питания по трем проводам, работает нормально? и показывает температуру нормально со всех датчиков одновременно?


2018-12-05 15:03:35 | Артем
Здравствуйте. Существуют ли схемы исполнительных модулей и самих megad 2561 -328 в открытом доступе на случай ремонта? Бывает всякое. Умный дом построен, укомплектован модулями текущих ревизий. Через лет 10 вдруг что-то выйдет из строя, а схем нет.


2018-12-03 17:08:43 | Andrey_B
Артем, проблема описана несколько сумбурно. Я не вполне понимаю суть.
В комментариях подобные ситуации обсуждать не очень удобно. Опишите более подробно на почту или на форуме с обязательным скриншотом настройки порта, а также с указанием команд, которые отправляет сервер.


2018-12-03 15:28:49 | Артем
Андрей доброго времени суток. Столкнулся с такой проблемой. Перепрошил megad 2561 RTC на прошивку ver 4.30 beta8 . Проблема такова, что на порте 0 прописан сценарий 10:~ для 10 порта шим, но при управлении с сервера допустим до значения 100, значения начинают меняться, сначала от 0 и до 255 и останавливается на 255, а веб megad при этом значение 0. Если снимаю галочку с поля Act 10:~ то все работает корректно. 2-я megad 2561 без RTC с этой же прошивкой и сценарием ~ работает отлично.


2018-12-02 20:31:11 | Andrey_B
Дмитрий, без сервера, только с помощью сценариев, это сделать нельзя. Но есть же такие лампы типа "Step Dimmer". Делают ровно то, что вы написали. И ШИМ-порты даже для них не нужны.


2018-12-02 17:57:10 | Дмитрий
Андрей здравствуйте. Помогите пожалуйста разобраться с megad 2561 шим портами. Есть двухклавишный выключатель, хочу сделать так: Порт 0 используется как IN порт 10 как PWM. При нажатии на клавишу, значение шим 255, при следующем нажатии 100 и 3-е нажатие значение 0. Сервер не будет использоваться.


2018-11-05 11:02:03 | Andrey_B
Олег, подключил к портам P33, P34 два дисплея и проверил ваш код. Все отработало нормально. Каких-то особенностей не заметил.
Пара мыслей.
1. Без задержки совсем отправлять две команды на вывод крупных цифр нельзя. Микроконтроллеру требуется время на отображение информации. Секундная задержка - более, чем достаточно.
2. В вашем коде обе температуры отправляются на P33. Это ошибка?
3. Необходимо, чтобы прошивка была последней. Также необходимо проверить, не установлен ли чекбокс GSM в настройках.
4. Если ничего не помогает, попробуйте перенести один дисплей с P33, на P35. Также временно сконфигурируйте два других порта, к которым подключены дисплеи, отображающие информацию средствами контроллера, в состояние NC. Проверьте, меняет ли эту ситуацию.
И просьба дальнейшее обсуждение перенести на форум или в электронную почту, так как в комментариях это делать не очень удобно.


2018-11-04 23:16:55 | Олег
Здравствуйте, Андрей! Ситуация такая - на первой MegaD-2561 висят 4 штуки SSD1306 , два DS18B20 и кнопка.
На второй MegaD-2561 висят 2 штуки D18B20. При нажатии кнопки на первой загораются 1-й и 2-й дисплеи по
Act 31:1;32:1;p100;31:0;32:0 и нажатие кнопки ловит сервер. Берет у себя из базы температуры второй меги и выполняет такой код

file_get_contents("/192.168.1.16/sec/?cmd=33:1;34:1"); / зажигает 2 оставшихся дисплея
sleep(1);
file_get_contents("/192.168.1.16/sec/?pt=33&text=$t3"); /отправляет на 3-й дисплей температуру
sleep(1);
file_get_contents("/192.168.1.16/sec/?pt=33&text=$t4"); /отправляет на 4-й дисплей температуру
sleep(10); /ждет 10 сек и
file_get_contents("/192.168.1.16/sec/?cmd=33:0;34:0"); /гасит 3-й и 4-й дисплеи

Проблема в том, что без sleep экраны не отображают ничего (редко один может), а со sleep работают, но неустойчиво
(то не загораются, то показывают часть картинки, то показывают и гаснут по несколько раз).

Судя по плавному отображению информации на 2-х последних дисплеях, информация попиксельно идет с сервера, и, неуспев закончить с первым
сервер начинает общаться с другим. Если увеличиваю sleep больше 1 наступает полный хаос. Первые 2 дисплея( которые без сервера) работают четко.
На планшете все отображается, сервер - мажордомо, скрипт - megad.php . SCL подключал и вместе и по-отдельности. Можно ли решить проблему?


2018-11-04 10:34:15 | Andrey_B
Дмитрий, в текущий момент такой функции нет.


2018-11-04 08:39:41 | Дмитрий
Андрей здравствуйте. Возможно ли на megad 2561 rtc чтобы импульсы от от какого либо счетчика не просто считались и по их заданному значению срабатывал сценарий, а чтобы это было с интервалом времени. Например 100 импульсов на 2 минуты и срабатывает сценарий.


2018-10-15 10:53:15 | Andrey
Спасибо. Работает как надо. Значения ШИМ сохраняются.


2018-10-13 21:28:30 | Andrey_B
Andrey, исправлено в 4.30b2


2018-10-10 21:37:29 | Andrey_B
Andrey, проверю.


2018-10-10 14:00:17 | Andrey
Андрей, добрый день. Настраиваю порт 13 IN (Act 10:~). Порт 10 (PWM, Mode:P&R). Кнопкой на 13-м порту меняю значение ШИМ - всё ОК. Кнопкой выключаю-включаю, при включении значение ШИМ такое же, как до выключения (Допустим 200). ОК. Затем из браузера передаю /192.168.5.40/sec/?cmd=10:100. Значение ШИМ изменилось на 100 - реагирует. Далее выключаю кнопкой и включаю ею - значение 200. То есть, значение при передаче из браузера (сервера) не запоминается. Мне кажется что это не очень удобно... Или я что-то делаю не так?


2018-10-08 15:58:44 | Andrey_B
Дмитрий, работа групп для выходов типа "SW" описана в данной статье.
А что касается PWM, то это обсуждалось на форуме. Вот здесь.


2018-10-08 14:01:08 | Дмитрий
Андрей здравствуйте. Объясните пожалуйста что такое в
ver 4.29 beta8
- поддержка групп для PWM-портов?


2018-09-27 20:49:52 | Andrey_B
Артем, силовые провода с небольшими токами и бытовыми потребителями (особенно освещение) не должны оказывать заметного влияния на работу слаботочных цепей. У меня во многих местах провода цифровых шин и Ethernet соседствуют с 220В. Никаких проблем не отмечено.


2018-09-27 16:39:26 | Артем
Андрей здравствуйте. Делаю монтаж контроллеров и модулей. Так получается, что снизу megad2561 где разъем ХТ2 идет кабель от модуля 8170-s к этому разьему подключены витая пара, скажите пожалуйста, это критично к сетевым наводкам? И какие рекомендации можете дать при монтаже слаботочных кабелей, витых пар и кабелей (не силы где килловаты), а 220 вольт , котрые запитывают разную мелочь. Сила в отдельном шкафу.


2018-09-26 12:28:55 | Ruslan
to sorgchik
1. Обычные выключатели использовать, конечно, можно.
2. Выключатели с подсветкой, полагаю, использовать тоже можно, но подсветка работать не будет, т.к. для нее требуется наличие 220 В. Для себя решил делать подсветку в некоторых выключателях-кнопках путем встраивания в рамку выключателя светодиода, запитываемого с выхода Меги.
3. Особых ограничений нет, но, во-первых, использовать в УД обычные выключатели просто неудобно, т.к. положение выключателя ничего не скажет нам о том, включен свет или выключен (поскольку свет может быть включен/выключен со смартфона/планшета или по команде сервера как "забытый" или по факту детекции движения в помещении). Во-вторых, с обычными выключателями теряется функционал длительных нажатий, а также сложно и неудобно реализовывать функционал множественных нажатий.


2018-09-26 08:10:05 | Andrey_B
Сергей, для двух микросхем MCP23008/MCP23017 использовать один порт INT нельзя.


2018-09-24 15:30:40 | sorgchik
Подскажите пожалуйста, можно ли с megad-14-i использовать
1. обычные выключатели
2. выключатели с подсветкой
3. есть ли в этом какие либо ограничения по сравнению с кнопками?


2018-09-24 15:18:26 | Сергей
Добрый день. Насколько я смог найти информацию - несколько MCP23008/MCP23017 нельзя вешать на один порт SDA. Если я не ошибаюсь, то возможно использование одного SLC. А возможно ли использование одного порта INT для нескольких микросхем MCP23008/MCP23017 (например для двух MCP23017)?


2018-09-20 10:22:51 | Andrey_B
Артем, конечно, Smooth работает в обе стороны.


2018-09-17 13:30:55 | Артем
Андрей здравствуйте. Подскажите пожалуйста, Опция Smooth меняет 0..255 то есть плавно, а в обратную сторону тоже плавно или сразу 0 , если используется сервер?


2018-09-13 13:54:52 | Вадим
Благодарю. Сервер планирую, но хочется жизненно важные функции(логику) продублировать в штатной прошивке, на случай если сервер по каким-то причинам будет недоступен.


2018-09-13 10:02:15 | Andrey_B
Вадим, cron - это выполнение заданий по расписанию. Все, что угодно. Освещение, отопление, вентиляция, полив, промывка фильтров и т.д. Если есть сервер, то встроенный в контроллер планировщик не нужен. У сервера гораздо больше возможностей, чтобы выполнять задания по расписанию. Но если сервера нет, то можно использовать встроенный в контроллер.


2018-09-12 13:40:31 | Вадим
Андрей, спасибо за ответ.
Может быть подскажите, какие типичные (а может и специфичные) задачи по использованию крона?
Я планировал взять из разряда "чтобы было", но так я товарищ неопытный, может не догадываюсь о каких-то прелестях его использования.


2018-09-11 11:10:52 | Andrey_B
Вадим, если в системе будет сервер, то RTC модули вообще не обязательны. Если в системе не будет сервера и модули будут работать автономно, то одного RTC для управления разными контроллерами будет недостаточно. Контроллер по расписанию не может давать команды другим контроллерам. Функция Net (управление другими контроллерами) работает только со входами (IN), но не с функцией cron.


2018-09-10 09:39:06 | Вадим
Добрый день.
Планирую купить несколько головных блоков 2561. Достаточно ли будет одного головного блока с RTC, чтобы им по расписанию управлять всеми устройствами в сети?


2018-09-07 18:24:31 | Andrey_B
Сергей, не совсем понятно. Если вы спрашиваете именно про 1-wire модули, то в текущий момент модули с реле мы не производим. Только с симисторами. Может быть, такие модули появятся в будущем.


2018-09-07 15:17:27 | Сергей
Андрей, добрый день! Подскажите пожалуйста, есть ли у вас релейные исполнительные модули, позволяющие коммутировать нагрузку 1кВт (нагреватель)? Использую реле, поскольку нет нормального места для радиаторов на симисторы, не хочется ими стенку изнутри греть. К сожалению у меня не получится использовать исполнительные блоки MegaD поскольку в доме уже проложена сеть 1-wire и силовая проводка проведена в каждой комнате от местной распаячной коробки. Третий год у меня работают самодельные блоки с развязкой на КР293КП1Б по схеме, которая раньше была опубликована на сайте benuks, но уже дважды по непонятным причинам эта микросхема выходила из строя. Это настораживает и хочется поставить что-то сделанное профессионально а не с помощью ЛУТ. Спасибо!


2018-09-02 12:44:06 | Andrey_B
Сергей, в текущий момент нет. В текущий момент MegaD-2561 поддерживает только микросхему DS2413. Такие модули есть и у "радиосетей" и у меня.


2018-09-02 11:34:25 | Сергей
Андрей, добрый день!
Скажите пожалуйста, возможно ли использование с MegaD модулей управления освещением на базе ds2406, в частности с сайта radioseti (/radioseti.ru/index.php?route=product/product&path=63_64&product_id=138)


2018-08-27 11:54:19 | Andrey_B
Алексей, датчики с интерфейсом I2C будут работать на расстоянии 2-7 метров от контроллера. С помощью сервера можно вывести информацию на дисплеи SSD1306, которые поддерживает контроллер. Но они достаточно мелкие. Альтернатива - использование недорогих планшетов, которые будут выполнять роль дисплеев, и применение Web-интерфейса.


2018-08-26 09:51:23 | Алексей
Здравствуйте Андрей!
Необходимо контролировать температуру и влажность в нескольких помещениях удаленных от дома от 2 до 7 метров. Будет ли работать I2C корректно на больших расстояниях? Возможно ли осуществлять вывод на ЖК дисплей, а не на компьютер? Так как для пожилого человека это было бы удобнее.
Спасибо!


2018-08-18 10:32:05 | Andrey_B
Андрей, не обязательно давать какой-то конкретный ответ. Необходимо просто корректно завершить текущую TCP-сессию. В PHP, например, это можно сделать с помощью вызова функции flush(). Иначе сессия остается открытой и контроллер предполагает, что сервер что-то будет отвечать, поэтому не открывает новую сессию по событию "отжатия".


2018-08-18 01:14:58 | Андрей
Оказалось нужно обязательно слать ответ сразу какой-то на пришедший датчик. Без этого мега считала что сервер не отвечает и ждала.


2018-08-17 22:53:43 | Андрей
Здравствуйте! В режиме P&R на сервер приходят только нажатия кнопок, а отжатия с m=1 приходят только после выдержки нажатия примерно 1,5 секунд после нажатия или уже после m=2. То есть если клацать быстро, то приходят только нажатия с cnt через один (без отжатий). Так же нажатия приходят на сервер иногда с легкой задержкой до секунды. Это нормально? Какая обычно скорость передачи команд серверу?


2018-07-08 18:58:34 | Артем
Здравствуйте. Подскажите пожалуйста как на megad2561 сделать вольтметр 3х канальный с выводом на OLED дисплей.


2018-06-04 09:13:29 | Andrey_B
Александр, конечно, допустимо.


2018-06-04 00:48:11 | Александр
Добрый день!
Допустимо ли расположение двух исполнительных модулей (MegaD-8I7O и/или MegaD-14 IN в различных комбинациях) не на одной DIN-рейке рядом с контроллером MegaD-2561, как в описании, а в соседних рядах (выше или ниже) с подключением обоих устройств длинными 34-пиновыми кабелями из комплекта поставки?


2018-05-10 17:30:07 | Andrey_B
Юрий, тогда нужно убрать сценарий (Act) из конфигурации порта, к которому подключен датчик движения и прописать правила в Program
0. Если порт датчика = 0 (датчик сработал), то смотрим подчиненное правило 1
#1. Если порт выключателя = 0 => включаем свет (правило slave)
2. Если порт датчика = 0 (датчик отключился), то смотрим подчиненное правило 3
#3. Если порт выключателя = 0 => выключаем свет (правило slave)
Прошивка должна быть не ниже 4.25b4, а желательно последняя.
Дальнейшее обсуждение, если потребуется, целесообразно вести не в комментариях, а по электронной почте или на форуме.


2018-05-10 10:16:17 | Юрий
Да, обычный выключатель с фиксацией.


2018-05-08 16:28:00 | Andrey_B
Юрий, выключатель кнопка или обычный?


2018-05-07 09:10:03 | Юрий
Потенциально я могу датчик подключить паралельно группе освещения. Тогда он не будет включать и выключать свет, пока выключатель включен.
Но есть нюанс. У меня на выключателе несколько групп, а на датчике только одна и не хочется, что б ночью зажигался весь свет. В то-же время не хочется, что б датчик вносил свои коррективы, пока включен свет.


2018-05-07 09:03:57 | Юрий
Здравствуйте, Андрей!
Я не могу разобраться с новой функцией Program в меню Config.
Описан случай, что бы сценарий срабатывал при одновременно нажатых клавишах, а мне нужно сделать, что б датчик движения не мог включать и отключить свет, пока он включен на выключателе. Никак не могу понять, как это сделать. Уж по всякому пробовал.
Спасибо!


2018-05-04 10:47:18 | Andrey_B
Николай, на текущий момент Act на удержание в контроллере прописать нельзя. Но если есть сервер, то это событие легко можно принять и обработать.


2018-05-03 21:47:53 | Николай
Проясните пожалуйста:
Настройка порта типа IN (Вход)
Mode - параметр, позволяющий использовать устройство в широком спектре задач. Эта опция определяет режим входа
С - Click Mode

В режиме Click Mode:
При однократном нажатии на выключатель на сервер передается параметр click=1
Пример: /md.php?pt=0&click=1&cnt=1
При двойном нажатии (двойной клик) на сервер передается параметр click=2
Пример: /md.php?pt=0&click=2&cnt=2
При удержании клавиши как и в других режимах передается параметр m=2
Пример: /md.php?pt=0&m=2&cnt=3
После отпускания клавиши после длительного нажатия передается параметр m=1 (как в режиме P&R)
Пример: /md.php?pt=0&m=1&cnt=3

Есть изменения и в работе сценария по умолчанию (Action).
Теперь допустимо написать так: 7:2|8:2
Это означает, что при одинарном клике выполнится 7:2, а при двойном 8:2

А при удержании как указать действие по умолчанию?


2018-04-18 19:58:10 | Andrey_B
DMITRIY, я думаю эти вопросы лучше обсудить на нашем форуме.


2018-04-18 14:29:09 | DMITRIY
Хорошо, выкинули мы все DHT и поставили даласы. Контролер megad управляет шаровыми кранами коллектора теплого пола по 2м датчикам температуры (воздуха и пола). Как организовать на уровне контроллера (автономно без сервера) управление по 2м датчикам?


2018-04-18 14:15:37 | DMITRIY
Андрей, в том и суть, что задача контроллера продолжать работу автономно. Что за причины (кроме надежности), по которым использование других датчиков нецесообразно? Функция "термостата" используется много где, не только на контроле температуры, ее можно использовать на освещение, набор воды в бак и тд. Хотелось бы открыть данную возможность для остальных вариантов использования. Что же касается использования даласов на шине, разве нельзя конкретно указать, с каким датчиком общаться? С точки зрения программирования имеется какая-то не решенная задача?


2018-04-18 13:57:22 | Andrey_B
DMITRIY, в предыдущем сообщении я писал: "для I2C-датчиков по целому ряду причин встроенная функция термостата недоступна." Program не исключение. Да, для DS18B20 функция термостата доступна только в том случае, если подключен один датчик. Ведь иначе контроллер не знает, какой датчик на шине следует опрашивать. Вот для всего этого нужен сервер, который можно запрограммировать как угодно. Контроллер отдаст серверу любые данные в лучшем виде и четко выполнит все его команды.


2018-04-18 13:43:34 | DMITRIY
Причем я так понял, что даласовский датчик в таком случае должен быть подключен на один порт в единсвенном лице. Режим работы шиной тоже не работает с термостатом?


2018-04-18 13:39:57 | DMITRIY
HTU21D ведь тоже получается нельзя использовать в термостате? Режим программирования program недоступен для этих датчиков?


2018-04-18 13:35:23 | Andrey_B
DMITRIY, Датчики типа DHT22 (особенно в исполнении AM2302) не отличаются надежностью. Я бы не стал такие использовать у себя. Я использую преимущественно HTU21D, которые хорошо себя зарекомендовали. Но для I2C-датчиков по целому ряду причин встроенная функция термостата недоступна.
При использовании же сервера возможно все.


2018-04-18 13:27:12 | DMITRIY
Получается придется даласовский датчик доукомплектовывать датчиком DHT22, что само по себе очень странно. Может есть такая возможность включить термостат и для DHT?


2018-04-18 13:21:57 | DMITRIY
Хотелось бы иметь такой режим и для более универсального датчика, где есть еще влажность


2018-04-18 13:20:24 | DMITRIY
Андрей, имеется ввиду Программирование условий для выполнения сценариев. Функция Program. В нем также нельзя задать аналог режима термостата?


2018-04-18 13:18:36 | Andrey_B
DMITRIY, встроенный автономный "термостат" работает в данный момент только с датчиками DS18B20 и АЦП-портами. А что такое "режим сценариев"?


2018-04-18 12:58:26 | DMITRIY
Если штатный режим не работает, можно ли задействовать режим сценариев ?


2018-04-18 11:18:20 | DMITRIY
режим термостата работает с датчиками DHT22?


2018-04-09 11:51:45 | Andrey_B
Артем, если вы используете встроенную в контроллер функцию термостата без сервера и вы по тем или иным причинам считаете, что DS18B20 завышает температуру, то вам никто не мешает устанавливать пороговое значение в контроллере выше на величину превышения. Скажем, не 50, а 51-52. Это ровно та же "коррекция".


2018-04-09 11:48:13 | Andrey_B
Максим М, это зависит от типа модуля. Если это "стандартный" исполнительный модуль для разъемов XP1/XP2, то все можно подключить соответственно два таких модуля. Если это модули для цифровых шин, такие как MegaD-2W, то теоретически их может быть много - пару сотен. Кроме того, самих контроллеров может быть много. Вовсе не обязательно ограничиваться одним, если есть необходимость в большом количестве портов.


2018-04-08 17:18:05 | Артем
Эталонный термометр, поверенный, в силу своей работы по нему калибруем приборы ( температуру ), занесенный в гос реестр. По нему сравнивал температуру и разница с разными датчиками ds18b20 имеет разбег 1-2 градуса. Считаю что это критично если применять в качестве термостата или в самогоноворении. P.s измерения проводились при температуре +50 градусов, не в домашних условиях.


2018-04-08 17:16:03 | Максим М
Сколько максимум модулей можно подключить на MegaD 2561?


2018-04-08 16:47:35 | Andrey_B
Во-первых, что это за "эталонный" термометр? Из музея международной системы Си? Во-вторых, даже если какой-то конкретный экземпляр DS18B20 дает в определенном диапазоне температур значения, слегка отличные от некоего прибора, что с того?
Если вы разместите рядом несколько разных "эталонных" термометров с очень большой долей вероятности все они будут показывать слегка различные значения. И я не вижу в этом ничего трагического.


2018-04-08 16:28:35 | Артем
По эталонному термометру, дачик ds18b20 завышает.


2018-04-08 11:15:05 | Andrey_B
Артем, а зачем температуру корректировать?


2018-04-08 11:14:22 | Andrey_B
Дмитрий А, "сколько в ней портов для 220В кабелей" - в ней - это в ком? В системе MegaD есть различные модули под различные задачи.
Например MegaD-2561 + два MegaD-14-R = это 28 релейных портов для коммутации в том числе 220В. Могут быть и другие конфигурации. Да и контроллеров может быть несколько.


2018-04-08 07:16:28 | Артем
Андрей здравствуйте. Можно ли корректировать температуру датчиков 18b20 на megaD 2561 без участия сервера?


2018-04-07 20:09:27 | Дмитрий А
А сколько в ней портов для 220В кабелей


2018-04-04 11:29:43 | Валерий
Да, к стандартному входу. Кабель ВВГнг 4х1.5 Попробую подключить так, а то не хочется прокладывать новый кабель. Спасибо.


2018-04-04 11:19:47 | Andrey_B
Валерий, смотря какой кабель. И 12В - это что, подключение к стандартному входу? Если кабель предназначен для 220В и токи не очень большие (а на освещении они обычно не бывают очень большими), то так в принципе делать можно. Сбоев не будет.


2018-04-03 16:20:15 | Валерий
Здравствуйте Андрей!
Могу я в одном кабеле длиной 10 метров пустить 220В освещения и 12В на кнопку для вкл/выкл света? Будет ли стабильно работать MegaD-8I7O-SD?
Согласно п.2.1.16 ПУЭ это запрещено. Спасибо.


2018-03-30 11:08:37 | Andrey_B
Виктор, в поле Act прописываются только локальные порты.
Нумерация портов "сквозная".
0-14 - это XP1
15-29 - это XP2
Для работы с удаленным портами предназначено поле Net.


2018-03-30 09:51:37 | Виктор
Формат поля Action следующий: X:Y;X:Y;X:Y
где, X - номер порта, а Y - действие
Не могу разобраться, если к MegaD-2561 подключено 2 блока MegaD-14-IN к порту XP-1
и исполнительный блок MegaD-14-R к порту XP-2.
Каким образом указать номер порта, если он находится на другом исполнительном блоке
подключенном например к XP-2, или вообще порт находится на исполнительном блоке
подключенном к другой MegaD-2561. Прошу показать для примера эти два варианта команд в поле Act,
без участия сервера. Спасибо.


2018-03-29 10:53:55 | Andrey_B
Любые стандартные исполнительные модули MegaD подходят, в том числе MegaD-7I7O.


2018-03-29 09:44:40 | Владимирович Петровский
В списке устройств подключаемых к MegaD-2561 отсутствует MegaD-7I7O-R, значит ли это что оно не подходит


2018-03-26 19:12:05 | Виктор
Так 8 жил мне все-таки хватит? На вопрос 2018-03-26 09:24:37


2018-03-26 12:20:28 | Andrey_B
Виктор, да, правильно. Порт можно настроить как iB, тогда контроллер сразу же сообщит на сервер, как только метка подключится к шине.
А с помощью команды "cmd=list" можно получать информацию обо всех метках, которые присутствуют на шине. Скорее не для охраны, а для контроля, какие окна в текущий момент открыты.


2018-03-26 12:16:03 | Andrey_B
Виктор, все земли (минусы питания) в любом случае нужно объединять, чтобы все это работало.


2018-03-26 09:52:51 | Виктор
Здравствуйте Andrey_B.
Второй вопрос, который у меня возникает это по поводу сигнализации?
У меня планируется на каждое окно установка геркона с электронной меткой DS2401,
окна разбиты на две группы и занимать два входа на MegaD-14-IN при замыкании геркона
в сети будет видна только электронная метка на сработавшем герконе
и при опросе выдаст именно ее. Таким образом я буду информирован о месте взлома.
Правильно ли я думаю по данному вопросу?


2018-03-26 09:24:37 | Виктор
Здравствуйте Андрей!.
Возник такой вопрос. в каждую комнату у меня заходит витая пара 8 жил.
в комнате планируется:
1. подключение датчика температуры DS18B20;
2. Датчик открывания окон геркон с функцией при срабатывании
подключается электронная метка DS2401;
3. Датчик движения Астра;
4. один + провод питание на 5В;
5. один + провод питание на 12В.
Вопрос в следующем хватит ли мне этих 8 жил или нет?
Как я думаю:
DS18B20 - 2 жилы и одна одна общая жила это питание + 5В;
DS2401 - 2 жилы и одна общая жила это питание + 5В;
Датчик движения - 2 жилы и одна общая жила это питание + 12В;

Меня смущает питание все таки есть + и -, а я использую только +.


2018-03-21 11:53:10 | Andrey_B
Евгений, ATmega2561-16AU


2018-03-21 10:04:26 | Евгений
Доброго времени суток, Андрей!

Подскажи пожалуйста какой контроллер используется
ATmega2561-16AU или ATmega2561V-8AU


2018-03-18 10:47:20 | Andrey_B
Артем, сохранить конфигурацию контроллера можно с помощью скрипта megad-cfg-2561.php


2018-03-18 06:56:45 | Артем
Скажите пожалуйста, нету возможности делать Backup с настройками?


2018-02-21 10:13:38 | Andrey_B
Павел, контроллер использует чип производства Atmel/Microchip atmega2561.
"2560 рев3" - это не индекс микроконтроллера, это изделие Arduino 2560 R3, в котором используется чип atmega2560.
MegaD-2561 - это не Arduino, хотя аппаратно похож на него.
Насчет MTRF-64 - нужно разобраться. Наверное, можно как-то подружить.


2018-02-20 23:21:44 | Павел
к чему вопрос - к модулю noolite приёмо-передатчика МТRF-64/ хочется подружить его напрямую... вот и все ))))


2018-02-20 18:37:43 | Павел
а это именно 2561 или же все таки 2560 рев3 ??


2018-02-17 12:28:13 | Andrey_B
Павел, пока не могу сказать ничего определенного. Потенциал atmega2561 еще не раскрыт полностью.


2018-02-17 11:26:08 | Павел
Андрей, приветствую. Когда будет третья версия? на новых ардуино? или может быть интел или самсунг?


2017-12-10 11:28:50 | Andrey_B
Vadim, теоретически, наверное, можно. Подумаю.


2017-12-09 20:45:13 | Vadim
Андрей,
А для W26 нельзя сделать список ключей в контроллере, по аналогии с IB?


2017-12-09 10:10:59 | Andrey_B
Vadim, да будет, только мне не удалось получить данные по интерфейсу TM, а вот по Wiegand все прекрасно. Кроме того, эта модель интересна тем, что умеет отправлять данные в контроллер не по одной набранной цифре, а весь код целиком. То есть, пользователь ввел 123456 (6 знаков), нажал ENT и данные ушли в контроллер.
Если пользователь ввел 1234+ENT, то прилетит 001234
"0" кодируется как "а", чтобы отличить эту ситуацию от той, когда в коде меньше 6 цифр. Например, при вводе 6004+ENT прилетит 006aa4.


2017-12-08 23:50:22 | Vadim
Андрей,
Кодонаборник ironLogic Matrix-IV EHT Keys Metal
https:/ironlogic.ru/il.nsf/htm/ru_matrixmkeys
будет работать по iB с контроллером по аналогии с картами?
Спасибо.


2017-11-25 15:56:28 | Andrey_B
Константин, реализации SNMP в устройстве нет. Но при наличии всей заложенной функциональности, зачем нужна эта реализация?


2017-11-25 13:48:55 | Константин
Андрей, здравствуйте!
В меге есть реализация протолокла SNMP?


2017-11-24 18:57:40 | Andrey_B
minimax, включу в планы. Кстати, Лидер-4 с двумя брелками без доставки - 2880 руб в их Интернет-магазине.


2017-11-24 18:21:18 | minimax
Андрей, не надо покупать брелки. Там в комплекте с приемником один идет. Я еще сам посмотрю на выходных. Может пойму что там не так.


2017-11-24 12:58:02 | minimax
Да я собственно об этом и говорю :). Не хотите потестить? там цена вопроса - 1500р или меньше. Если конечо Вы в этом смысл видите. Мне кажется функциональность появляется весьма богатая, гораздо круче чем карточки. думаю можно для начала просто с их поддеркой поговорить - там есть люди вполне в теме.


2017-11-24 12:34:24 | Andrey_B
minimax, не имея данного прибора сложно что-то сказать. Возможно, есть какие-то особенности в части реализации протокола 1-wire.


2017-11-24 02:21:24 | minimax
Андрей, здравствуйте.
Недавно нашел устройство, которое очень напомнило мне то, что я давно хотел - я хотел иметь радио-брелки для управления мегами, но хотел различать конкретные брелки и кнопки на них. Сейчас я использую roiscok но там просто реле и различить два брелка можно только сделав два приемника и используя два порта. Я нашел устройство /arsenal-sib.ru/seria_lider/pribory/lider_ver4/ которое умеет работать по протоколу touch memory и различать семь нажатий на одном брелке и брелки между собой. Я уже собрался воплотить свою мечту, но ничего не получилось потому, что подключенный как touch memory приемник генерил уникальные ключи на каждое нажатие кнопки брелка :) я в печали. Что может быть не так? Очень хочется использовать такую возможность. Тем более, что производитель утверждает, что это очень частый кейс использования их брелков - как удаленных карточек touch memory.


2017-11-06 20:38:58 | Vadim
Андрей,
К сожалению, смысл написанного смог восстановить только с применением Wireshark.
Предлагаю изложить пункт в следующей редакции:

Устройство отправляет на сервер дополнительную информацию о факте размыкания контакта (...?pt=&m=1&cnt=ZZ).
Пример:
Mode P, CheckBox ON:
...md1.php?pt=8&cnt=10
...md1.php?pt=8&m=2&cnt=10 ( при долгом нажатии)
...md1.php?pt=8&m=1&cnt=10

Mode P, CheckBox OFF:
...md1.php?pt=8&cnt=3
...md1.php?pt=8&m=2&cnt=3 ( при долгом нажатии)


2017-11-05 21:35:39 | Andrey_B
Vadim, при отсутствии _сервера_.


2017-11-05 16:09:57 | Vadim
Андрей, добрый день!
"Флажок (чекбокс) справа от поля Mode указывает, что при наличии сервера, устройство отправляет на сервер сообщения всегда в режиме P&R, а при его отсутствии Action выполняется только в том режиме, который установлен в Mode. Данная опция не доступна для Click Mode."
Можно расписать более однозначно? Я что-то туплю.
Если сам код не писал, то не очень понятна реализация из приведенного текста.
Русский язык позволяет трактовать фразу, как угодно:
"... а при его отсутствии..."
Отсутствии чекбокса, сервера, режима PR или сообщения?

Желательно расписать, что происходит с влюченным и выключенным чекбоксом.
Спасибо.


2017-10-21 07:38:03 | Эрик
Есть ли электрическая развязка у выходов? Можно ли к соседним портам одного MegaD-14-R подключить нагрузку, запитанную от разных фаз?


2017-09-08 07:27:55 | Andrey_B
Vital, обычные выключатели (механические, "сухой контакт") можно подключать к цифровым входам так: один провод на землю (любую), другой на порт. Но стоит предупредить, что если стандартные входы модуля MegaD-7I7O защищены от помех и наводок специальной обвязкой, то на цифровых портах такой защиты нет. На длинных линиях (десятки метров) и если провода будут проходить рядом с силовыми теоретически возможна нестабильная работа таких входов.


2017-09-08 07:18:34 | Vital
Я собирался в одном из щитков освещения установить MegaD-2561 с двумя MegaD-7I7O-R. Но получается, что второй MegaD-7I7O-R может не поместиться в щитке. Поэтому вместо него можно установить один или два MegaD-2R. Но тут все равно остается вопрос - входы тоже нужны (для выключателей). Здесь написано, что обычные бинарные выключатели можно подключить к цифровым входам самого MegaD-2561. Но как?


2017-09-07 17:07:46 | Andrey_B
Юрий, теоретически при температуре окружающего воздуха +25 градусов, по +12 можно снять до 1А, а по +3,3 до 500мА, НО! снимать столько крайне не рекомендуется из-за возможного негативного влияния на работу микроконтроллера. Поэтому безопасно снимать до 500мА по +12В и до 300мА по +3,3В.


2017-09-07 14:06:09 | Юрий
Подскажите, какой максимальный ток можно снимать с контакта +3,3В и +12В?


2017-09-06 14:19:38 | Andrey_B
Виталий, подобные ограничения трудно декларировать, так как это зависит не только от длины, но и от типа провода, от того как он уложен, от других внешних факторов. Но я думаю, что при установке контроллера в доме, невозможно будет упереться в такое ограничение с любым проводом.


2017-09-06 10:54:55 | Виталий
Добрый день. Нигде не увидел ограничения по длине проводов до кнопок. Они есть? Интересуюсь в плане наводок, т.к. пока этого параметра нет, не возможно определится с размещением Меги.


2017-08-19 14:54:28 | Andrey_B
Руслан, можно попробовать заменить датчик. Напишите мне по электронной почте и пришлите пожалуйста скриншоты настроек портов, к которым подключен датчик.


2017-08-19 12:23:31 | Руслан
Питание для htu21d брал с клемм 14-IN. Специально измерил мультитестером - стабильно выдает 3,51 В.


2017-08-19 12:15:28 | Руслан
Датчик висит на "родных" проводах. Т.е. это примерно 37 см. Сейчас подключил к другим портам исп. модуля. Картина такая же. Может сам датчик "дурит" (к сожалению, другого экземпляра нет, чтобы проверить)?


2017-08-19 11:10:10 | Andrey_B
Руслан, трудно сказать. Если датчик действительно подключен правильно и порты настроены, то такого быть не должно. На каком расстоянии находится датчик от контроллера?


2017-08-18 22:14:35 | Руслан
Добрый день! Подключил к модулю 14-IN датчик htu21d. Вроде нигде не "накосячил" в проводах. Порты сконфигурировал. Положение джамперов - нижнее. Но почему-то показывает явно какую-то "охинею". Каждую секунду обновляю данные и получаю: temp:25.89/hum:56.06; temp:4294967250.4294967219/hum:4294967290.00; temp:4294967272.4294967208/hum:4294967291.4294967201; temp:62.60/hum:111.55; temp:99.80/hum:64.05; temp:4294967251.4294967249/hum:4294967290.00 и т.д. Что могло вызвать такое странное поведение? (MegaD-2561 fw: 4.13b8)


2017-07-12 15:19:05 | Andrey_B
Константин, функция srv-loop отправляет данные на сервер примерно раз в минуту.
Опрос состояния всех портов (пример): http://192.168.0.14/sec/?cmd=all


2017-07-10 20:11:51 | Константин
Купил на тест MegaD-2561+MegaD-7I7O-R, хочу поблагодарить за разработку.
Тут много вопросов по режиму 1wbus, меня реализация режима полностью устраивает, без сервера все равно не обойтись.
Единственным вопрос для меня пока стало: как часто мега отправляет состояние портов на сервер с настройкой "srv-loop", и интересен синтаксис команды запроса меги на состояние всех портов, было бы удобно просить ее с сервера.


2017-06-16 11:35:45 | Andrey_B
Николай, да, верно.


2017-06-16 04:57:51 | Николай
Верно ли я понимаю, что на 1 порт SDA и SLC я могу подключить датчик Si7021 и дисплей SSD1306?


2017-06-09 21:45:33 | Стас
Доброе время суток, подскажите можно подключить датчики от arduino HR-SR501, HCSR04, светочувствительный датчик и какие датчики от arduino можно подключить. какой лучше сервопривод на коллектор теплого пола выбрать и на какие контакты цепляются.


2017-06-09 17:36:36 | Andrey_B
Юрий, контроллер понимает длинные нажатия и сообщает об этом на сервер.
Но если вы имеете ввиду выполнение отдельного сценария по факту длинного нажатия в автономном режиме, то пока такая функция не заложена, так как для этого нужно либо дополнительное поле Act, либо изменение синтаксиса текущего.


2017-06-09 17:34:03 | Andrey_B
Юрий, передача команд другому контроллеру возможна через поле Net входа. То есть при срабатывании входа один контроллер может передать команду другому контроллеру. В заданиях по расписанию (Cron) нет поля Net, есть только поле Act (выполнение собственных сценариев).


2017-06-09 06:54:37 | Юрий
Андрей, планируете ли Вы научить контроллер понимать длительные нажатия?


2017-06-09 06:51:32 | Юрий
Доброго дня!
Андрей, нужно ли прошить данный контроллер, что бы он общался по сети с другими девайсами или же эта функция уже включена?
Сможет ли данный девайс не только сам работать по расписанию, но и управлять таким же девайсом?
Например, для управления наружным освещением я буду использовать 2 таких контроллера. В каждом из них можно задать 5 событий по расписанию. Расширится ли расписание до 10 при использовании 2х девайсов?


2017-06-08 15:35:00 | Александр
Здравствуйте, Андрей.
Можно ли получить схему электрическую принципиальную MegaD-2561 Ver 2.0?


2017-06-05 18:01:24 | Andrey_B
Юрий, режим Click работает и без сервера. А вот действия на длительные нажатия пока в автономные сценарии прописать нельзя.


2017-06-05 09:08:02 | Юрий
Здравствуйте!
Андрей, уточните, пожалуйста информацию о режиме Клик.
Режим работает только приналичии сервера или контроллер сам способен выполнять команды в режиме Клик?
У меня нет необходимости устанавливать сервер. Но я хочу управлять освещением кликами и длительными нажатиями.
Спасибо!
Хорошего дня!


2017-06-01 16:09:24 | Andrey_B
Стас, не понял вопрос про блок питания. Максимальная мощность блока питания никак не ограничивается. Блок питания должен выдавать минимальный ток, требуемый для работы модулей. Если он способен выдать значительно больше - хорошо. Максимальную длину кабеля UTP для подключения датчиков заранее заявить невозможно. Это зависит от самого кабеля и от того, какие в нем жилы используются и от наличия рядом электромагнитных помех и от самого датчика и от протокола, который используется для передачи информации. В этой формуле очень много неизвестных. Могу только сказать, что в домашних условиях обычно нет таких расстояний, на которых невозможно было бы подключить датчики.
Например, датчик MAX44009 у меня дома подключен к контроллеру UTP кабелем длиной 15 метров. Сбоев нет.


2017-06-01 13:18:21 | Стас
на сколько ампер максимум можно подключить блок пит. и второй вопрос какая максимальная длина UTP провода от MegaD-2561 до датчика.


2017-05-23 20:12:53 | Andrey_B
Rustam, это зависит от буферов, размер которых может меняться в зависимости от версии прошивки. Ориентировочно можно подключить до 30 датчиков на один порт. Максимальную длину не определяет даже сам производитель, так как она зависит от целого ряда факторов. Фактически же на тех расстояниях, которые обычно встречаются в домашних условиях, 1-wire шина с датчиками DS18B20 нормально работает и с питанием и без. Хочу только предупредить, что в природе существует китайская разновидность DS18B20, к которой относятся и DS18B20 Waterproof. Эти датчики нормально работают с питанием, но некоторые экземпляры могут не работать на паразитном питании при любых расстояниях. Возможно, китайцы используют "отбраковку" производства.


2017-05-23 11:19:02 | Rustam
"Подключение датчиков DS18B20 шиной (несколько на один порт)" - в каком интервале в штуках исчисляется "несколько", и максимальная длины провода с питанием или без


2017-04-30 21:14:20 | Andrey_B
Bonefolder, эти датчики у меня уже есть. В скором времени проведу сравнительное тестирование MAX44009 и TSL2591.


2017-04-30 15:05:17 | Bonefolder
Андрей, что-нибудь получилось с датчиком освещённости MAX44009?


2017-04-16 11:06:54 | Andrey_B
Виталий, отсутствие ответа по ICMP-протоколу (ping) вовсе не означает, что устройство не может работать с другими протоколами стека TCP/IP. В коде загрузчика содержится только самое необходимое для обеспечения процесса прошивки.


2017-04-16 00:39:30 | Виталий
Андрей, сделал так:

php megad-cfg-2561.php --local-ip 192.168.0.188 --ip 192.168.0.14 -w -f -e -p sec --ee

Connecting... OK (chip type: atmega2561)
Downloading firmware... OK
Checking firmware... OK
Erasing firmware... OK
Writing firmware... OK
Erasing EEPROM... OK
Restarting device... OK

и все заработало.

смутило изначально то, что по IP девайс не пинговался. я решил что и пытаться восстановить его не получится, раз уж по IP не отвечает. ан нет - есть какая-то хитрость. Расскажете в чем дело?

В любом случае - спасибо за помощь!


2017-04-15 23:01:47 | Andrey_B
Виталий, прошить в режиме восстановления (ключи -f -e). И скрипт об этом написал и в статье про перепрошивку по сети об этом есть информация. При обновлении прошивки лучше сбрасывать все настройки (ключ --ee).


2017-04-15 20:12:14 | Виталий
Добрый день Андрей!

Девайс 2561 v2.0

Обновил прошивку такой командой:
php megad-cfg-2561.php --local-ip 192.168.0.188 --ip 192.168.0.14 -w -p sec

ответ такой был:

Connecting... OK (chip type: atmega2561)
Downloading firmware... OK
Checking firmware... OK
Erasing firmware... OK
Writing firmware... FAULT
Please firmware in recovery mode (-f -e)
OK
Restarting device... OK

после этого девайс не доступен по адресу и не пингуется
лампочка Act постоянно мигает (раньше мигала при загрузке и потом переставала)

Что делать чтобы оживить девайс?


2017-03-13 11:54:55 | Andrey_B
Константин, прошивка для Ver 1.0 и Ver 2.0 абсолютно одинаковая. Разница в "железе" с функциональной точки зрения только в том, что в Ver 2.0 есть кнопки Reset и Erase EEPROM.


2017-03-12 22:24:14 | Константин
В чем разница устройств с прошивками ver.1 и ver.2?


2017-02-22 07:01:31 | Владимир
Датчики подключены на шину параллельно. Один датчик сразу возле колодки устройства, потом припаян кабель 15 метров, на конце кабеля еще один датчик. Правильно ли я понимаю, что у датчика 3-й и 1-й контакт замыкаются м/у собой и подключаются на ноль, средний контакт - это плюс. Если отключить кабель, т.е. когда висит только один датчик, то показывает нормально.


2017-02-19 21:38:30 | Andrey_B
Владимир, как подключены датчики? Проблема, скорее всего, в подключении. Напомню, 1-wire шина предполагает, что датчики висят на одной линии (кабеле) с минимальным ответвлением.


2017-02-19 16:17:34 | Владимир
Подскажите почему при настройке порта в режиме 1WBUS и подключении двух термодатчиков ds18b20 выдаёт всё время разные значения, причём довольно странные:
0ad5d7020000:23.25;0ad5d7020000:23.25
0ad557020000:-0.06
0ad557020000:-0.06;0ad557020000:-0.06
0ad5d7020000:-104.62

Одно и тоже при подключении к портам Xt2 и через MegaD-14-IN

Прошивка 4.07b2


2017-02-10 16:59:07 | Andrey_B
Андрей, существующие исполнительные модули, которые подключаются к контроллеру 34-проводным шлейфом нельзя удалять от контроллера.
Контроллер + исполнительный модуль - это фактически одно устройство, разделенное на два корпуса. Можно сделать исполнительный модуль в одном корпусе с контроллером и тогда он может располагаться везде, где есть Ethernet. Но стоимость при этом изменится мало. Я же говорил про поддержку исполнительных модулей, которые подключаются по I2C. Они могут располагаться на некотором (не очень большом) удалении. "Логическая" часть таких модулей проще и дешевле, но есть нюансы: передача данных между контроллером и исполнительным модулем будет существенно медленнее, чем в случае подключения по 34-проводному шлейфу. Для работы с выключателями это имеет значение.


2017-02-10 12:00:01 | Андрей
Можно надеяться, что в будущем исполнительный модуль можно будет установить на удалении от контролера, или просто будет осуществлено увеличение количества исполнительных модулей поддерживаемых контролером?


2017-02-09 19:01:08 | Andrey_B
Андрей, это вопрос скорее не технический, а философский.
Где лучше держать деньги? В одном банке с высоким процентом или в нескольких банках под более низкий процент? Чувствуете аналогию? И это только одно из обстоятельств. Компоновка конечного устройства может быть разной. И вариантов на самом деле очень много. Но и есть другая народная мудрость - про "зайцев" и про "не поймаешь". Предложенная компоновка сложилась исторически и пока она отвечает поставленным задачам. Есть у нее и плюсы и минусы. Я работаю над поддержкой и развитием выбранной компоновки. Но вы также не забывайте, что соразмерно количеству портов растут и требования к ресурсам микроконтроллера. Ему нужно больше памяти, больше производительности. А используя более оснащенные микроконтроллеры мы увеличиваем и стоимость. Грубо говоря, чудес не бывает. И здесь больше вопрос оптимального сочетания свойств.
А что касается увеличения количества исполнительных модулей, то, уверяю вас, это можно сделать не только с помощью "сдвиговых регистров". Есть и другие способы, некоторые из которых, надеюсь контроллер скоро будет поддерживать.


2017-02-09 17:39:55 | Андрей
Добрый день! Очень интересует Ваша разработка для организации системы Умный дом. Но как минус со своей стороны считаю ограниченное количество подключаемых исполнительных модулей и не возможность установить исполнительный модуль на удалении от контролера, т.е. если мне нужно более 34 портов или установить исполнительный модуль в другом месте, то требуется приобрести дополнительный контролер.
Нашел еще одну похожую разработку - REAVISOR, где к одному контролеру можно подключить 10 исполнительных модулей, но там по 8 входов/выходов.
Возможно ли что в будущем появиться Мега на большее количество исполнительных модулей (выходов)?
Может в помощь Вам будет информация одного из участников форума по данной тематике: "Порты увеличил банально 8 сдвиговых регистров на выход по 8 каналов итого +64 выхода дискретных, в двух корпусах D6MG. Так же спаял в корпусе D6MG переходник для 4-х 16-ти портовых мультиплексоров и получил +64 входа дискретно/аналоговых. Понаследовал в своих классах функции DigitalWrite/DigitalRead/analogRead научив их работать с портами номерами выше 70 (54 дискретных на arduino + 16 аналоговых) и имея 198 портов ни в чем себе не отказываю :) Могу еще хоть три раза по столько же портов прикрутить."
Я в этой области не очень смыслю, может Вам будет понятнее.
Спасибо!


2017-02-01 12:16:58 | Andrey_B
Александр, с помощью сервера. В качестве сервера может выступать любой ПК или мини-ПК типа raspberry Pi, перепрошитые роутеры и т.д.


2017-01-31 22:28:59 | Александр
И еще вопрос. Планируете ли вы добавление этого функционала?


2017-01-31 22:26:05 | Александр
Если у вас реализовано подключение нескольких датчиков или исполнительный устройство на шину 1-wire, то как их читать или ими управлять? У меня задача управлять теплым электрическим полом на площади 100 кв.М. Нужно регулировать температуру в 25 зонах нагрева. Подскажите пожалуйста варианты.


2017-01-31 21:58:11 | Andrey_B
Александр, не понял ваш вопрос. Если вы спрашиваете, доступна ли функция термостата для порта, работающего с 1-wire шиной, то ответ - нет, в текущий момент не доступна. Если вы спрашиваете о другом, то пожалуйста сформулируйте вопрос иначе.


2017-01-31 18:06:15 | Александр
Здравствуйте!
подключив на шину 1-wire 25 датчиков температуры, я могу регулировать эти зоны обоими исполнительными модулями?? Или все таки необходим отдельный сервер?
И вообще как реализовать такое?


2017-01-30 11:05:31 | Andrey_B
Дмитрий, формально температурный диапазон от 0 градусов. Производители отдельных компонентов заявили именно такой диапазон. Фактически, думаю, контроллер должен работать без каких-либо особенностей при температурах до -15.


2017-01-30 00:44:03 | Дмитрий
наткнулся на док : "Для всех модулей рабочая температура, град. C: от 0 до +55." , так понимаю для уличной установкой не подходит.


2017-01-29 23:37:00 | Дмитрий
Добры день,
Какая рабочая температура для Меги-2561 а также исполнительных блоков(хочу понять если можно ставить шкаф на улице где -20 зимой а так-же в чердачном помещении где летом +30 )

Спасибо


2017-01-16 17:47:34 | Сергей Т
Скажите, а вы сертифицировали в России это устройство? Если да, то в кратце какие сложности были связанные с этим? Аесли нет, то почему? Спасибо


2017-01-10 12:10:07 | Maxmen
Андрей, спасибо. У меня задача несложная. Требуется управлять 2-мя вытяжными вентиляторами (1 с задержкой отключения, другой в ванной будет по датчику влажности срабатывать), считывать показания 2-х счетчиков воды с импульсными выходами, мониторить 2 датчик затопления и управлять 2-мя перекрывающими кранами. Хотя, наверное лучше отдельную megad поставить на все это и еще свет через нее же запустить.


2017-01-09 22:22:54 | Andrey_B
Maxmen, во-первых, каждый порт микроконтроллера может быть отдельной 1-wire шиной. Все 36/38 портов. Во-вторых, чисто технически нет никаких проблем подключать к одной шине несколько различных устройств. Проблема только в том, что функции порта привязаны к его настройкам. Это не позволяет в текущий момент одновременно осуществлять управление модулями DS2413 и считывание данных с DS18B20. По очереди (меняя настройки порта) можно, но не одновременно. Другой вопрос, при наличии такого количества портов, действительно ли это необходимо? Дело в том, что разделение управляющих элементов DS2413 от датчиков DS18B20 определенно имеет смысл. Если, к примеру, датчики подключены по схеме паразитного питания, то в процессе конвертации температуры никакие команды по шине 1-wire передаваться не могу. Это особенность работы 1-wire. Два ключа DS2413 тоже в данный момент подключить нельзя. То есть теоретически, конечно же, можно, но пока нет поддержки адресации. Все дело в том, что вообще связка MegaD-2561 + DS2413 - вещь достаточно специфическая в силу того, что гораздо удобнее использовать в качестве исполнительных модулей MegaD-7I7O/MegaD-14-R. DS2413 имеет смысл использовать в узких задачах, когда требуется вынести исполнительный модуль далеко от контроллера. Это редкие ситуации и пока спроса на адресное управление 1-wire модулями нет.


2017-01-09 15:38:32 | Maxmen
Все классно, только не могу понять- по 1-wire можно только 1 устройство подключить к контроллеру? Можно ли на 1 линию 1-wire к контроллеру подключить несколько устройств? Например, на 1 линию "повесить" 2-х канальный силовой ключ с интерфейсом 1-wire и 2 датчика S18B20? Какая максимальная длина 1-wire провода, если тянуть экранированной витой парой 6 категории?


2017-01-06 18:18:44 | Виктор
А можно получить разводку платы, этого девайса.


2016-11-25 20:59:15 | Andrey_B
Конечно, это очень специфические задачи, которые редко требуются в быту.
Реализовать такое, безусловно, можно. Вопрос в целесообразности...


2016-11-25 01:58:15 | Nishiki
Для меня лично, самое основное это - контроль потока жидкости в контуре испарителя теплового насоса.
Еще можно контролировать поток воды в системе фильтров Clack.
Контроль оборотов всевозможных двигателей.


2016-11-24 12:15:26 | Andrey_B
Nishiki, а в каких практических задачах это может потребоваться?


2016-11-23 20:49:38 | Nishiki
Да предполагаю учет импульсов но не в минуту, а гораздо быстрей с интервалом 100-10 мс.
Если нужно было в минуту, то можно обойтись скриптом на php используя параметр "cnt".


2016-11-23 17:45:26 | Andrey_B
Nishiki, а чем это отличается от стандартной функции, которую мы называем "термостат"? Она доступна для АЦП-портов. Или "тахометр" предполагает учет количества импульсов в минуту?


2016-11-23 16:12:44 | Nishiki
Андрей!
Вы не планировали добавить именно в Мегу функцию тахометра?
Большинство двигателей имеют встроенный тахометр.
Допустим в поле Action можно будет вписать при 1000 об включаем нагрузку а при 1100 выключаем.


2016-10-26 12:06:24 | Денис
Понятно, я подумал, что вы имели ввиду аппаратную реализацию I2C в самой atmega2561.


2016-10-25 17:26:02 | Andrey_B
Денис, аппаратная в данном случае означает средствами устройства без применения дополнительных программных библиотек на сервере. Реализация работы с I2C выполнена в прошивке для любого из портов.


2016-10-25 15:31:40 | Денис
Здравствуйте. Не совсем понял, как у вас реализована аппаратная поддержка I2C для любого из цифровых портов? Ведь аппаратный I2C есть только на портах PD0 и PD1 и, судя по datasheet на atmega2561, функции мультиплексирования (как для ADC) для I2C не предусмотрено.


2016-10-23 05:19:31 | Юрий
Ок! Спасибо, Андрей!


2016-10-20 11:08:01 | Andrey_B
Юрий, режим встроенного термостата работает только тогда, когда к порту подключен один датчик. В случае подключения датчиков шиной необходимо использовать "сервер" для считывания/анализа данных с датчиков.


2016-10-20 06:57:12 | Юрий
Здравствуйте, Андрей!
Я прочитал статью и у меня появился вопрос. Например я подключаю на шину несколько датчиков (Подключение датчиков DS18B20 шиной). Но не понимаю, как эти датчики использовать. Как сделать, что бы при достижении заданной температуры измеряемой среды включались/отключались порты, к которым подключены термоэлектрические приводы на батареях и гребёнках тёплого пола?


2016-10-03 14:22:07 | Andrey_B
Евгений, в ближайшие месяцы выпуск такого модуля не планируется.


2016-10-03 13:15:47 | Евгений
Добрый день, планируется ли к выпуску устройство, в котором в одном компактном корпусе, как у контроллера, будет и контроллер и исполнительный модуль с небольшим количеством портов?


2016-09-29 16:49:20 | Andrey_B
Руслан, проверил у себя. Проблема не выявилась. После перезагрузки значение поля PWM такое, какое указано в Default. Проверил все PWM порты на XP1 и XP2.
Хочу только обратить ваше внимание, что максимальное значение в этом поле 255.


2016-09-29 10:55:26 | Руслан
Андрей, спасибо за ответ, но, вероятно я не правильно описал суть проблемы. Значение, указанное в поле Default, сохраняется, но, после перезагрузки устройства, вне зависимости от значения указанного в этом поле, полю PWM (0-255) всегда присваивается значение 2.


2016-09-28 18:47:48 | Andrey_B
Руслан, прошивка 4.03b2. Проблем пока не вижу ни на разъеме XP1, ни на разъеме XP2. Значения, которые я указываю в поле Default сохраняются корректно.
Исходники прошивки доступны прямо с главной страницы сайта.


2016-09-28 16:05:43 | Руслан
Здравствуйте.
Столкнулись со следующей проблемой: на новом MegaD-2561 на прошивке 4.01b2 на ШИМ портах P10-P13 разъема XP1 возможно выставить значение по умолчанию и оно сохраняется, а на портах P25,P27,P28 разъёма ХР2 это значение всегда сбрасывается на "2". После обновления прошивки до версии 4.03.b2 этот функционал перестал работать и для разъёма ХР1. Есть ли какие-то пути решения этой проблемы?
И еще один вопрос - возможно ли получить исходники прошивки для MegaD-2561 - самостоятельные поиски не увенчались успехом?


2016-09-23 17:27:42 | Andrey_B
Юрий, в текущий момент DS2423 не поддерживается. И есть ли смысл в этой поддержке, если MegaD может сам считать импульсы, а DS2423 уже много лет как снят с производства?


2016-09-23 10:50:36 | Волков Юрий
Добрый день. А к MegaD-2561 возможно подключить ds2423 для считывания показаний ?


2016-09-22 12:24:01 | Andrey_B
Роман, для того, чтобы управлять реле или принимать сигнал от кнопки нужна электронная обвязка для "голого" порта. Вот именно эта электронная обвязка и присутствует в исполнительных модулях. "Голый" порт не может управлять реле и качественно работать с кнопкой.


2016-09-22 11:02:13 | Роман
Андрей здравствуйте. Если покупать MegaD-2561 обязательно нужен (MegaD-7I7O-R, MegaD-7I7O-SD, MegaD-14-IN и т.д.). Или же с помощью обычный портов можно управлят реле или принимать синал от кнопку.


2016-09-19 11:16:30 | Andrey_B
Роман,
В настройках устройствах поле Watchdog, в котором прописан номер порта, с описанным сценарием. (В данном случае 0, то есть P0).
Если поле пустое, функция не активна.
Устройство проверяет наличие сервера примерно раз в 2 минуты и в случае его отсутствия выполняет сценарий по умолчанию для указанного порта.


2016-09-18 18:32:03 | Роман
Андрей,что за графа Wdog(в ранних версиях меги 328 точно помню было,а найти никак не могу) и какие значения вписывать?


2016-09-10 11:48:11 | Andrey_B
Да, можно подключать.


2016-09-10 10:18:01 | Mixman
Считыватель. который у Вас тут на сайте - Считыватель карт Proximity EM-Marime (накладной)


2016-09-09 22:54:54 | Andrey_B
Mixman, вы какие карты имеете ввиду?


2016-09-09 21:03:11 | Mixman
Правильно ли я понимаю, что к контроллеру напрямую можно подключить Считыватель карт?


2016-09-01 18:53:54 | Andrey_B
Иван, если вы имеете ввиду подключение аналоговых датчиков, то в этом плане MegaD-2561 ничем принципиально не отличается от MegaD-328. Подключать можно любые датчики с выходным напряжением менее 3,3В. Датчики шума - это отдельная история, в которой есть много нюансов.


2016-09-01 17:47:21 | Иван
Похоже MegaD-2561 получился отличным контроллером! А датчик шума к нему можно подключить будет?