Опрос


Что для Вас Умный Дом?


Результаты

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

01/09/2016 16:51:13

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


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


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

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


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

Поддерживаемые протоколы для управления устройством и взаимодействия с сервером: HTTP, MQTT (бета)
Поддерживаемые протоколы для работы с датчиками/считывателями/ведомыми устройствами: I2C, 1-wire/TouchMemory (DS18B20/DS2401/DS1990A - считыватели), Single-wire (DHT22/DHT11), Wiegand-26 (через устройство согласования уровней 5В-3.3В)
Функция выполнения заданий по расписанию (cron)
Поддержка часов реального времени: DS3231 (исполнение MegaD-2561-RTC), DS1307
Возможность перепрошивки по сети (используется PHP-скрипт и протокол UDP)
Поддерживаемые типы портов: IN (вход), OUT (выход), DSen (цифровые датчики), ADC (АЦП), I2C
Поддерживаемые режимы работы со входами: P (нажатие), R (отжатие), P&R (нажатие/отжатие), длительное удержание, C (режим фиксации одинарного/двойного клика)
Поддерживаемые устройства на портах типа IN (сухой контакт): выключатели, кнопки, герконы, датчики (протечки, ИК-извещатели, пожарные извещатели), счетчики (типа "геркон"), датчик напряжения U-Sensor и т.д.
Поддерживаемые устройства на портах типа OUT: любые нагрузки 0-250В AC/DC (для релейных модулей MegaD-7I7O-R/MegaD-14-R) и 170-220В AC (для симисторных модулей MegaD-7I7O-S/SD)
Функция диммирования (для MegaD-7I7O-SD и портов с поддержкой PWM/ШИМ): лампы накаливания, светодиодные и люминесцентные лампы типа Dimmable, светодиодные ленты (с помощью внешнего драйвера), некоторые модели бытовых вентиляторов, нагревательные приборы и другие устройства, допускающие регулировку тиристорными регуляторами мощности
Функция управления диммируемыми выходами с помощью одной кнопки (режим "~")
Поддерживаемые устройства на портах типа DSen: DS18B20 (в том числе шиной), DHT22, DHT11, считыватели TM (CP-Z2L, Matrix II и другие), считыватели Wiegand-26 (Matrix IV, Strazh SR-R150K и другие)
Поддерживаемые устройства на портах типа I2C: HTU21D, Si7021, BMP180, BMP280, BME280, BH1750, TSL2591, SSD1306, MCP23008 (средствами контроллера) и любые другие (с помощью библиотеки I2C-PHP)
Поддерживаемые устройства на портах типа ADC: любые аналоговые датчики с выходным напряжением не выше 3,3В (датчики газа, освещенности) напрямую и с любым другим выходным напряжением (датчики давления жидкости) через устройство согласования.
Функция периодической отправки состояния всех портов на сервер (srv-loop)
Функция контроллера доступа (для считывателей, работающих по протоколу TouchMemory/1-wire)
Функция сброса настроек с помощью кнопки Erase EEPROM
Встроенная функция сторожевого таймера (watchdog)

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

 

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

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

Демо-интерфейс - ПО, которое используется автором сайта. База данных, CMS (система управления), Web-интерфейс и набор скриптов, которые можно использовать для построения собственной системы (требуются навыки Web-программирования)
OpenHAB - Открытое программное обеспечение для домашней автоматизации. Пользователями сайт ab-log.ru написаны специальные компоненты "биндинги" для работы с MegaD-328/MegaD-2561
Majordomo - открытая и бесплатная платформа для комплексного управления домашней автоматикой. Поддерживает массу оборудования, в том числе MegaD-328/MegaD-2561
ioBroker - это платформа для Интернета Вещей и служит центральным сервером для умного дома, автоматизации зданий. При помощи, так называемых модульных "драйверов", ioBroker может взаимодействовать с другими различными системами и устройствами.
intraHouse - платное ПО, которое поддерживает контроллер MegaD-2561 в тестовом режиме. Для всех пользователей MegaD-2561 предоставляется 50% скидка!
Бенукс - ПО для ОС Windows, что важно для начинающих пользователей. Создаваемое изначально для работы с 1-wire, программное обеспечение Бенукс ныне поддерживает широкий спектр оборудования, среди которого присутствует и контроллеры MegaD-328/2561.
Любое иное ПО, поддерживающее управление устройствами по протоколу HTTP или MQTT.

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

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

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


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

Разъем XT1 предназначен для подключения питания.
Напряжение питания: 12В постоянного тока. Плюсовая клемма справа, минусовая клемма слева. Контроллер снабжен защитой от переполюсовки.
Максимальное сечение провода для данного разъема 1,5 мм2
В качестве блока питания можно использовать любой стабилизирванный БП. Хорошо зарекомендовали себя блоки питания MeanWell: DR-15-12, DR-30-12, DR-60-12, DR-100-12
Рекомендуемое отклонение от номинального напряжения питания: +/- 10%. Максимальное напряжение 13,2В. Контроллер может выдержать и бОльшее напряжение, но необходимо учитывать требования к исполнительным модулям, которые получают питание через контроллер. В частности при подключении релейных исполнительных модулей (MegaD-7I7O-R, MegaD-14-R) не рекомендуется подавать напряжение на разъем XT1 выше 13,2-13,5В. Симисторные исполнительные модули (MegaD-7I7O-SD, MegaD-8I7O-S) более лояльны к повышенному напряжению.
Блок питания выбирается исходя из потребляемого тока контроллера, исполнительных модулей, подключенных датчиков.
Максимальный потребляемый ток контроллером: 57мА (без исполнительных модулей, их потреблением смотрите в документации к ним)

Пример подбора БП.
Максимальный потребляемый ток MegaD-2561 и двух исполнительных модулей MegaD-7I7O-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-7I7O-SD, MegaD-7I7O-R, MegaD-8I7O-S, MegaD-14-IN, MegaD-14-R.
Каждый исполнительный модуль подключается своим 34-пиновым шлейфом. Таким образом, к одному контроллеру можно подключить два любых исполнительных модуля в любой комбинации.
Исполнительные модули могут располагаться справа от контроллера, слева от него или по обе стороны от него. Короткий шлейф входит в комплект исполнительного модуля. Длинный шлейф, с помощью которого подключается второй исполнительный модуль, расположенный дальше от первого, входит в комплект контроллера.


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

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


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

Разъем XT2 предназначен для подключения цифровых датчиков и других цифровых устройств.
Важно! Контроллер позволяет подключать цифровые датчики не только к XT2, но и к любым портам, которые выведены на разъемы XP1/XP2 с помощью исполнительного модуля MegaD-14-IN. В модуле контроллера MegaD-2561 предусмотрен отдельный разъем XT2 на тот случай, если необходимо, к примеру, контролировать температуру, влажность или давление, выводить информацию на дисплей, а разъемы XP1/XP2 заняты исполнительными модулями MegaD-7I7O, которые предназначены для работы с кнопками и коммутации силовых линий. Подробнее описано в разделе "Как выбрать исполнительный модуль".
Для корректной работы цифровых шин все порты, выведенные на разъем XT2 имеют подтяжку 4,7кОм.
Количество и тип цифровых датчиков зависит от прошивки. Перечень поддерживаемых устройств постоянно расширяется.
На текущий момент к этим портам можно подключать следующие цифровые датчики: DS18B20, DHT22/DHT11, считыватели и кодовые панели, работающие по протоколу TouchMemory/1-wire (CP-Z2L, Matrix II и другие), считыватели, работающие по протоколу Wiegand-26 (Matrix IV, Strazh SR-R150K и другие, внимание! может потребоваться согласование уровней 5В-3,3В!), I2C-устройства: I2C: HTU21D, Si7021 (температура / влажность), BMP180/BMP280 (температура / атмосферное давление), BME280 (температура / атмосферное давление / влажность), BH1750 (освещенность), TSL2591 (освещенность), SSD1306 (OLED-дисплей), MCP23008 (расширитель портов).


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

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


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

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

Контроллер оцифровывает (измеряет) напряжение на входе АЦП порта и выводит в виде значения в Web-интерфейсе или передает на сервер.
Необходимо обратить внимание, что помимо двух АЦП-портов, выведенных на рахъемы XP5/XP6, в контроллере еще 6 портов имеют функцию АЦП. Это порты P0-P6, выведенные на разъем XP1. Эти АЦП порты можно использовать вместе с исполнительным модулем MegaD-14-IN.
К контроллеру можно подключать датчики и с более высоким выходным напряжением, а также датчики, которые выдают сигнал типа 4-20мА, но для подключения подобных сенсоров требуется несложное согласование.


Кнопки Reset и Erase EEPROM

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

 

Исполнительные модули 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 оснащен разъемами XT2, XP5, XP6.
Разъем XT2 можно использовать для подключения цифровых датчиков: DS18B20, DHT22, HTU21D, Si7021, BMP180, BMP280, BME280, FH1750, TSL2591, дисплея SSD1306, расширителя портов MCP23008, считывателей ключей iButton (DS1990A), Em-Marine (CP-Z2L, Matrix II и подобных) и других цифровых устройств.
Разъемы XP5/XP6 можно использовать для подключения аналоговых датчиков: TEMT6000, MH-Z14 и других.
В некоторых случаях разъемы XT2, XP5, XP6 можно использовать для подключения входов, датчиков типа "сухой контакт", датчиков напряжения U-Sensor.

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


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

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

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

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

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

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


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

MegaD-7I7O-R


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

Порты P0-P6 - "стандартные входы" для подключения кнопок, выключателей, охранно-пожарных датчиков, U-Sensor и т.д. Цифровые датчики с этими портами работать не будут.
Порты P7-P13 - "релейные выходы" для управления любым оборудованием с напряжением питания от 0 до 250В. Максимальная мощность (на портах P7, P9, P10, P12): 10A (2300Вт, переменный ток, активная нагрузка)

 

MegaD-7I7O-SD

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

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


MegaD-14-R


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

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

 

MegaD-14-IN

MegaD-14-IN (14 настраиваемых входов), 6 DIN

Порты P0-P13: настраиваемые входы. Положение конфигурационного джампера (справа от разъема XT3) определяет функциональность порта.
Верхнее положение: "стандартный" вход для подключения кнопок, выключателей, охранно-пожарных датчиков, U-Sensor и т.д.
Нижнее положение: "цифровой" вход для подключения цифровых датчиков и устройств
В режиме "цифрового входа" к портам P0-P5 можно подключать аналоговые датчики.


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

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

Задача №2: подключить к автоматике 5 датчиков температуры и влажности HTU21D, 1 датчик атмосферного давления (BMP180), 5 ИК-извещателей (датчиков движения), 7 выключателей, 3 лампы с управлением яркостью, 4 лампы без управления яркостью, 1 светодиодную RGB-ленту
Решение: MegaD-2561 + MegaD-14-IN + MegaD-7I7O-SD
HTU21D x 5 и BMP180 подключаются к MegaD-2561 на разъем XT2
ИК извещатели x 5 подключаются к модулю MegaD-14-IN в режиме "стандартного входа"
RGB-светодиодная лента подключается через драйвер L298N к MegaD-14-IN в режиме "цифрового входа"
Выключатели x 7 подключаются к MegaD-7I7O-SD на входы
Диммируемые лампы x 3 подключаются к MegaD-7I7O-SD на выходы (порты P10, P12, P13)
Остальные лампы x 4 подключаются к MegaD-7I7O-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 (маска подсети 255.255.255.0)
Пароль по умолчанию: sec
Для того, чтобы зайти на устройство через браузер необходимо, чтобы на компьютере была настроена сеть 192.168.0.0/24.
Если используется другая IP-сеть, то необходимо изменить IP-адрес устроойства. Сделать это можно двумя путями:
1. Временно установить на компьютере IP-адрес, например, 192.168.0.15, зайти в Web-интерфейс устройства и изменить его адрес
2. Воспользоваться PHP-скриптом megad-cfg-2561.php. Подробнее.


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

Чтобы зайти на устройство, используя браузер, необходимо указать в строке URL 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. Подробнее о сценариях описано ниже.
Uptime: время работы устройства после старта


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


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

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

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


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

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

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

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

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

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

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

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

Формат поля Action следующий: X:Y;X:Y;X:Y
где, X - номер порта, а Y - действие
0 - выключить;
1 - включить;
2 - изменить состояние на противоположное (переключить), т.е. если было включено выключить и наоборот

Номер порта, двоеточие, действие. Таких действий может быть несколько и тогда они разделяются точкой с запятой.
"10:2" означает, что необходимо состояние порта P10 изменить на противоположное.
В поле Action через точку с запятой можно описать до пяти действий.

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

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

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

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

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

Команды для управления диммируемыми каналами: +, -, ~
Например, требуется управлять яркостью освещения двумя кнопками. Одна кнопка будет увеличивать яркость, а другая уменьшать.
Для одной кнопки необходимо прописать Сценарий: 10:+
Для второй кнопки необходимо прописать Сценарий: 10:-
Тогда однократное нажатие на кнопку прибавления включает свет на ту величину, на которую свет был включен предыдущий раз. Соответственно однократное нажатие на кнопку убавления выключает свет.
Нажатие и удержание кнопок плавно увеличивает или уменьшает яркость.
Но если требуется обойтись только одной кнопкой, то тогда в сценарии необходимо прописать так: 10:~
Работает управление аналогичным образом. Однократное нажатие включает или выключает нагрузку. Удержание изменяет яркость в то или другую сторону.

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

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

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

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

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

Флажок (чекбокс) справа от поля Net указывает, что NetAction будет вызван ТОЛЬКО при недоступности сервера. По умолчанию вызывается всегда.

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

Есть изменения и в работе сценария по умолчанию (Action).
Теперь допустимо написать так: 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, чтобы действия не выполнялись дважды, если пользователь случайно нажал и удерживал кнопку дольше обычного.

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

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

 

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

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

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

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

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

Mode: режим работы выхода. SW - обычный ключ (ВКЛ, ВЫКЛ), PWM - ШИМ (широтно-импульсная модуляция), DS2413 - двухканальный 1-wire модуль на базе микросхемы DS2413.
Режим SW (простое переключение) устанавливается для "релейных" или "симисторных" выходов модулей MegaD-7I7O и MegaD-14-R.
Режим PWM (ШИМ) предназначен для управления мощностью нагрузки, диммирования ламп, управления скоростью вращения вентилятора (для вентиляторов, способных управляться тиристорным регулятором) и других функций. Этот режим устанавливается для отдельных "симисторных" выходов модуля MegaD-7I7O-SD. PWM (ШИМ) доступен только на портах P10 (P25), P12 (P27) и P13 (P28).
Режим DS2413 предназначен для управления внешним двухканальным модулем, работающим по протоколу 1-wire. Этот режим можно установить для портов разъема XT2 или для любого порта модуля MegaD-14-IN в режиме цифрового входа (нижнее положение конфигурационного джампера). Модули на базе DS2413 можно применять в нескольких случаях: когда функциональность исполнительного модуля MegaD-7I7O избыточна и требуется всего 1-2 порта для управления нагрузками; когда требуется вынести модуль управления нагрузками на определенное расстояние (в этом случае достаточно проложить до модуля DS2413 кабель UTP).

Режим 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 минут.

Режим DS2413

Так как модуль на базе DS2413 двухканальный, то в Web-интерфейсе присутствует две пары ссылок для управления каналами A и B.
Готовые симисторные двух-канальные модули предназначены для управление двумя независимыми нагрузками 220В.
Для работы с подобными модулями в общем случае требуется мастер 1-wire сети (например, DS9490R) и соответствующее ПО (например, owfs).
MegaD-2561 может работать с модулями на базе DS2413 напрямую, то есть выполнять роль мастера.

Выходами модуля DS2413 можно управлять из встроенного Web-интерфейса или через сервер.
Для того, чтобы указать, какой именно канал переключить, в команде передается дополнительно 'A' или 'B'
Например: cmd=33B:1
Для данного порта также доступны команды группового включения/выключения 'a:1/a:0/a:2'


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

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

Данный тип порта применяется для разъемов XP5, XP6, а также для входов исполнительного модуля MegaD-IN (нижнее положение конфигурационного джампера) для портов с функцией АЦП (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, который вызывается устройством.


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

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

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

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

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


Подключение датчиков 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


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

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

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

В настройке порта типа "iB", к которому подключен считыватель, присутствуют стандартные поля "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").
Необходимо выбрать тип W26 и указать режим: D0 или D1.
Затем для линии D0, необходимо указать какой порт (номер порта) используется в качестве линии D1. Таким образом создается "пара" и контроллер понимает какие порты подключены к одному считывателю.

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

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

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

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


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

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

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

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

В данный момент поддерживаются датчики/устройства: HTU21D, Si7021 (в выпадающем списке выбрать HTU21D), BH1750, TSL2591, BMP180, BMP280, BME280, SSD1306, MCP23008 (но этот перечень будет расширен).
Вот так (стандартным образом) отображается информация с датчика 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
Отображение освещенности (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
Отображение атмосферного давления (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

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

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=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-устройствами, которые не поддерживается прошивкой. Для этого на сервере программируется программный "драйвер" для устройства, а MegaD-2561 является посредником между устройством и сервером, который берет на себя низкоуровневую работу с шиной.

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 и т.д. Другими словами, даже если контроллер "не поддерживает" какой-либо датчик, можно написать плагин для системы управления, которая используется на сервере, например, OpenHAB, ioBroker, Majordomo, Демо-интерфейс и таким образом получить доступ к I2C-датчику. Изменений в прошивке при этом не потребуется.


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

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

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

После того, как хотя бы один дисплей подключен к контроллеру, у большинства портов (за исключением NC) появляется поле "Disp"

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

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

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

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

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

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

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


Планировщик заданий (cron) и поддержка часов (RTC) DS3231/DS1307

Контроллер 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-IN, но и к внутреннему 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)

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", то сервер, получив это сообщение, может установить в контроллере правильное время.


Поддерджка протокола 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
Принцип формирования описан выше

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

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

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

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

1486454501: Received PUBLISH from megad-14 (d0, q0, r0, m0, 'megad/14', ... (22 bytes))
1486454501: Sending PUBLISH to server (d0, q0, r0, m0, 'megad/14', ... (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);
}
?>


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

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

Для того, чтобы принимать от устройства сообщения, необходим Web-сервер. Простейший Web-сервер можно написать самостоятельно. Однако значительно проще использовать уже готовый, например, Apache или lighttpd. Установка 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/?pt=4&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

 

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

MegaD-2561 Ver 2.0
MegaD-7I7O-R Ver 5.2+
MegaD-7I7O-SD Ver 5.2+
MegaD-14-IN Ver 6.2
MegaD-14-R Ver 1.0

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

 

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



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



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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

Спасибо


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


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


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


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


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


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


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


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


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


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


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


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


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


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