Прошивка MegaD-328 (релизы, обсуждения, предложения)

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Evgeniy
Сообщения: 32
Зарегистрирован: 14 ноя 2014, 10:25

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Evgeniy » 22 ноя 2015, 12:29

zelevova писал(а):А что мешает взять две меги и рядом повесить?
Ну как минимум отсутствие места в щите

alexsis_76

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение alexsis_76 » 22 ноя 2015, 13:03

А вот программно...
Вы хоть бы показали свое творение, кто ж Вам поможет с Вашим кодом если они этот код не видели?

Evgeny_nd
Сообщения: 136
Зарегистрирован: 07 ноя 2015, 06:59
Откуда: г. Красноярск

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Evgeny_nd » 23 ноя 2015, 15:10

Andrey_B, установил последнюю прошивку 3.37b2, ошибка unautorized не появляется.
При значении порта IN, команда записанная в поле NET (192.168.2.12/sec/?cmd=8:2), не отрабатывается. В чем может быть дело?

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 23 ноя 2015, 16:21

Evgeny_nd, при какой конфигурации порта и сетевых настроек не отрабатывается?

zelevova
Сообщения: 90
Зарегистрирован: 30 авг 2013, 12:03
Откуда: Краснодарский край

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение zelevova » 23 ноя 2015, 23:51

Андрей, возникло предложение:
Может сделать что бы при изменении выхода его состояние отправлялось на сервер аналогично входу?
То есть выход (out) при переключении в другой режим (вкл/выкл/*255/...) отправляет запрос на сервер вида http://192.168.1.2/megad.php?pt=9&m=1 говорящий о том что реле на порту 9 выключилось.

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

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение kod.begemot » 24 ноя 2015, 00:13

Обнаружил один момент, при записи в порт PWM значения больше 255, но влезающее в 3 знака - получаем изменяющийся сигнал PWM на выходе, у меня скачет со скоростью, заданной в "Smooth".
offtopic: опробовал драйверы PT4115 в паре с Мега-Д. Так вот, диммируются исключительно. Четко и весь диапазон теперь доступен. По настоящему плавное получается переключение!

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 24 ноя 2015, 12:15

kod.begemot, поправил.

http://ab-log.ru/files/File/ip_manager3 ... a3-hex.zip

zelevova, не уверен. Ведь, вроде бы, зачем устройствам работать автономно при наличии сервера? Да и в крайнем случае можно использовать поле Net (NetAction).

Evgeny_nd
Сообщения: 136
Зарегистрирован: 07 ноя 2015, 06:59
Откуда: г. Красноярск

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Evgeny_nd » 24 ноя 2015, 17:49

Экраны настроек (общий, порт 1 и порт 8) приведены на картинке.
Вложения
Настройки.jpg
Настройки.jpg (46.18 КБ) 12783 просмотра

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 24 ноя 2015, 18:03

Evgeny_nd, вы в поле Net прописываете адрес самого же устройства?
Так поле Net работать не будет. Оно предназначено для вызова внешних URL, а не для выполнения локальных команд.

Evgeny_nd
Сообщения: 136
Зарегистрирован: 07 ноя 2015, 06:59
Откуда: г. Красноярск

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Evgeny_nd » 24 ноя 2015, 18:07

Я не могу проверить (пока) на другой Меге, но насколько я понял логику и описание, то из поля NET можно управлять другой мегой http командами подобными той, которая сейчас у меня записана. Из этого я и сделал вывод, что для проверки должно работать. А если будет вписан другой IP адрес другой Меги, будет работать?

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 24 ноя 2015, 18:12

Да, должно.

Evgeny_nd
Сообщения: 136
Зарегистрирован: 07 ноя 2015, 06:59
Откуда: г. Красноярск

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Evgeny_nd » 24 ноя 2015, 18:17

Спасибо, позже попробую, как появится возможность.

Prokol
Сообщения: 197
Зарегистрирован: 25 янв 2015, 21:43

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Prokol » 26 ноя 2015, 03:28

Andrey_B, а Вы не задумывались о реализации с Mega-D управляемого модуля для подключения на выход инфракрасных датчиков, по типу как на вход таблеток, соответственно с управлением через Megad-D управления этих датчиков с сервера. Пример: на сервере лежат запрограммированные коды пультов, например в базе или файле, на сайте управления есть несколько пультов, которые привязаны к тому или иному коду. После нажатия определенной кнопки на виртуальном пульте, отправляется на определенный выходной порт Mega-D этот код, который в дальнейшем передается на управляемый модуль и с него на инфракрасный датчик. Я конечно не в курсе, сложно это реализовать или нет, но идея как мне кажется была бы интересной. И если хотя бы один (а лучше три :) ) порт такой был, то можно было бы управлять хотя бы в одной комнате сразу всем оборудованием, которые имеют пульты. Видел несколько таких разработок на Arduino. Кстати такой же можно сделать и один вход, для програмирования с пультов и отправки кода на сервер, по типу таблеток. Заранее спасибо за ответ.

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 26 ноя 2015, 12:53

Prokol, мысль в принципе интересная. Нужно подумать.


Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 30 ноя 2015, 01:20

MegaD-328 может управлять любой техникой через ИК. Вместо родных пультов.
По сути MegaD-328 может потенциально стать этаким Ethernet-Infrared Remote Control Gate.
Можно управлять не только телевизорами и прочей бытовой техникой, но и, что самое интересное, климатической техникой.

Для пробы я взял обычный ИК-диод и подключил его через токоограничивающий резистор непосредственно к порту MegaD-14-IN без всякого дополнительного питания. При таком подключении максимальное расстояние от приемника до диода не должно быть большим - около метра, но для тестов сгодится.
ir-test1.jpg
ir-test1.jpg (47.1 КБ) 13505 просмотров
"Немного" поправил прошивку, чтобы обеспечить несущую частоту в районе 38КГц.
ir-test2.jpg
ir-test2.jpg (80.33 КБ) 13505 просмотров
Задал в браузере что-то типа...

http://192.168.0.14/sec/?pt=12&ir=BFFBFEFF1716

где BFFBFEFF1716 - команда переключения ТВ на 8 канал в протоколе Panasonic.
...и телевизор послушно откликнулся на запрос отработав посылаемую команду.

Команды, которые посылают пульты можно скачать с сайта lirc, а можно собрать простенький прибор (что и было сделано) и использовать программу mode2 из пакета lirc.
И тогда можно увидеть что именно посылает конкретный пульт
ir-test3.jpg
ir-test3.jpg (50.89 КБ) 13505 просмотров
Конечно, тут много нюансов.
К сожалению Ethernet + TCP + HTTP не слишком быстрая связка, чтобы передавать отдельные биты информации в каждом пакете. Каждый такой пакет по времени занимает пару миллисекунд, тогда как ИК-протоколы оперируют микросекундами. Поэтому в контроллер нужно передавать команду в HEX. А далее контроллер должен преобразовать эту команду в бинарный код и отработать ее с нужными задержками. Процедура преобразования простая, но требует памяти. Далее. Сейчас в природе огромное количество различных протоколов. Почти у каждого производителя и даже модели свои особенности. Поэтому нельзя написать реализацию для всех устройств, но можно попытаться настроить взаимодействие с помощью дополнительных параметров, передаваемых устройству через GET-запрос (HTTP). А этих параметров достаточно много. Это и преамбула, и величина паузы для определения 0 и 1, и количество повторов и т.д.
Все это можно реализовать, но для такого существенного по объему кода в atmega328 нет достаточного количества памяти. Решить этот вопрос можно только двумя способами - сделать специальную прошивку для ИК-управления и перебраться на atmega2560. Переезд на более оснащенный чип давно назревал и рано или поздно это должно произойти в любом случае.

vtec
Сообщения: 459
Зарегистрирован: 19 сен 2011, 09:28

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение vtec » 30 ноя 2015, 10:10

Отлично, ждем продолжения!

Prokol
Сообщения: 197
Зарегистрирован: 25 янв 2015, 21:43

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Prokol » 30 ноя 2015, 22:53

Andrey_B, мне казалось, что MegaD-14-IN предназначен только для входов. Даже исходя из его названия. Или я в чем-то заблуждаюсь?

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 30 ноя 2015, 23:46

Prokol, чисто с потребительской точки зрения MegaD-14-IN предназначен для "входов". Но на самом деле это не совсем так.
Возьмем, к примеру, DS18B20 или DHT-22. Они передают информацию в контроллер по цифровому протоколу. Это значит, что данные идут в обе стороны. Пользователю может показаться, что контроллер просто считывает температуру с датчика. В действительности при работе с цифровыми датчиками контроллер как передает, так и принимает информацию. То есть он фактически переключает режим работы порта с входа на выход и обратно, только очень быстро (алгоритм зависит от конкретного протокола).

ИК диод в этом разрезе ничем особенно не отличается от цифровых датчиков. Отличие в том, что он ничего не передает в контроллер. Диод только светит тогда, когда ему скажут. Порт при этом настроен как "выход". Мало того, задействована аппаратная возможность контроллера для формирования модулирующего сигнала на нужном канале. Ведь для того, чтобы наши телевизоры не реагировали на каждый чих, они воспринимают только тот ИК сигнал, который идет с частотой 38 (реже 36) килогерц.

В принципе для использования ИК совместно с MegaD-328 исполнительный модуль не обязателен, но он удобен с точки зрения коммутации проводов.

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 01 дек 2015, 00:19

Продолжение...

Выкладываю экспериментальную прошивку. Это не новая бета, а скорее некое ответвление.
http://ab-log.ru/files/File/ip_manager3 ... l2-hex.zip

Реализована возможность управления техникой через ИК-канал (вместо стандартного пульта).
В этой версии удалена функция Watchdog'а за сервером (для высвобождения памяти).
ИК-светодиод можно подключить только к порту P12 (пока только к нему).

Передача команд выглядит примерно так:
http://192.168.0.14/sec/?pt=12&ir=BFFBF ... &irp4=1300

Выглядит страшно, но на самом деле все просто.
ИК протоколы достаточно незамысловатые. Работают (как правило, то есть есть исключения) они так:
Сначала посылается длинный импульс, после которого идет длинная пауза (приемник понимает, что сейчас начнется)...
Далее посылаются биты данных. 0 от 1 отличается только паузой.
Пример: Светодиод моргнул, пауза 400 микросекунд - это "1". Светодиод моргнул, пауза 1300 микросекунд - это ноль.
Для чего я это все рассказываю? Все дело в том, что все эти задержки индивидуальны не только для разных марок техники, но и для разных моделей.
А теперь несколько слов о передаваемых параметрах

irp0 - длительность первого импульса для инициализации
irp1 - длительность паузы после первого импульса
irp2 - длительность свечения диода, после которого пойдет пауза, определяющая 0 или 1
irp3 - длительность паузы для 1
irp4 - длительность паузы для 0

Все, а дальше параметр ir - это сама команда.
А еще проще и понятнее станет, если зайти на сайт lirc в базу, где собрана вся информация по протоколам (паузам, длительностям) различных пультов.
http://lirc-remotes.sourceforge.net/remotes-table.html

А теперь вопрос к общественности. Насколько это направление интересно?
Еще раз по поводу того, зачем это нужно. Возьмем обычный кондиционер. Интегрировать его в общую систему без глубокого внедрения в электронику управляющей платы достаточно сложно. По ИК-каналу - проще простого.

По подключению.
Можно использовать ИК-диод без обвязки, но с обязательным токоограничиващим резистором. Минус такого подключения, как уже было сказано, небольшая дальность действия. То есть светодиод должен располагаться не далее 50-70 см от приемника.
Но что, если сделать специальную платку (подобно датчику напряжения), которая бы включала в себя схему импульсного усиления сигнала для увеличения радиуса действия до 5-7 метров и без паяльника и колхоза подключалась бы к порту исполнительного модуля MegaD-14-IN? Мне кажется, было бы интересно.

Ответить