Ну как минимум отсутствие места в щитеzelevova писал(а):А что мешает взять две меги и рядом повесить?
Прошивка MegaD-328 (релизы, обсуждения, предложения)
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Вы хоть бы показали свое творение, кто ж Вам поможет с Вашим кодом если они этот код не видели?А вот программно...
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Andrey_B, установил последнюю прошивку 3.37b2, ошибка unautorized не появляется.
При значении порта IN, команда записанная в поле NET (192.168.2.12/sec/?cmd=8:2), не отрабатывается. В чем может быть дело?
При значении порта IN, команда записанная в поле NET (192.168.2.12/sec/?cmd=8:2), не отрабатывается. В чем может быть дело?
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Evgeny_nd, при какой конфигурации порта и сетевых настроек не отрабатывается?
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Андрей, возникло предложение:
Может сделать что бы при изменении выхода его состояние отправлялось на сервер аналогично входу?
То есть выход (out) при переключении в другой режим (вкл/выкл/*255/...) отправляет запрос на сервер вида http://192.168.1.2/megad.php?pt=9&m=1 говорящий о том что реле на порту 9 выключилось.
Это поможет синхронизировать статусы в веб интерфейсе и железке при использовании локальных реакций меги.
Может сделать что бы при изменении выхода его состояние отправлялось на сервер аналогично входу?
То есть выход (out) при переключении в другой режим (вкл/выкл/*255/...) отправляет запрос на сервер вида http://192.168.1.2/megad.php?pt=9&m=1 говорящий о том что реле на порту 9 выключилось.
Это поможет синхронизировать статусы в веб интерфейсе и железке при использовании локальных реакций меги.
Это да. У меня тоже место закончилось. Придется еще один рядом вешать.Evgeniy писал(а):Ну как минимум отсутствие места в щите
-
- Сообщения: 400
- Зарегистрирован: 21 сен 2013, 00:38
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Обнаружил один момент, при записи в порт PWM значения больше 255, но влезающее в 3 знака - получаем изменяющийся сигнал PWM на выходе, у меня скачет со скоростью, заданной в "Smooth".
offtopic: опробовал драйверы PT4115 в паре с Мега-Д. Так вот, диммируются исключительно. Четко и весь диапазон теперь доступен. По настоящему плавное получается переключение!
offtopic: опробовал драйверы PT4115 в паре с Мега-Д. Так вот, диммируются исключительно. Четко и весь диапазон теперь доступен. По настоящему плавное получается переключение!
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
kod.begemot, поправил.
http://ab-log.ru/files/File/ip_manager3 ... a3-hex.zip
zelevova, не уверен. Ведь, вроде бы, зачем устройствам работать автономно при наличии сервера? Да и в крайнем случае можно использовать поле Net (NetAction).
http://ab-log.ru/files/File/ip_manager3 ... a3-hex.zip
zelevova, не уверен. Ведь, вроде бы, зачем устройствам работать автономно при наличии сервера? Да и в крайнем случае можно использовать поле Net (NetAction).
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Экраны настроек (общий, порт 1 и порт 8) приведены на картинке.
- Вложения
-
- Настройки.jpg (46.18 КБ) 12783 просмотра
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Evgeny_nd, вы в поле Net прописываете адрес самого же устройства?
Так поле Net работать не будет. Оно предназначено для вызова внешних URL, а не для выполнения локальных команд.
Так поле Net работать не будет. Оно предназначено для вызова внешних URL, а не для выполнения локальных команд.
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Я не могу проверить (пока) на другой Меге, но насколько я понял логику и описание, то из поля NET можно управлять другой мегой http командами подобными той, которая сейчас у меня записана. Из этого я и сделал вывод, что для проверки должно работать. А если будет вписан другой IP адрес другой Меги, будет работать?
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Спасибо, позже попробую, как появится возможность.
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Andrey_B, а Вы не задумывались о реализации с Mega-D управляемого модуля для подключения на выход инфракрасных датчиков, по типу как на вход таблеток, соответственно с управлением через Megad-D управления этих датчиков с сервера. Пример: на сервере лежат запрограммированные коды пультов, например в базе или файле, на сайте управления есть несколько пультов, которые привязаны к тому или иному коду. После нажатия определенной кнопки на виртуальном пульте, отправляется на определенный выходной порт Mega-D этот код, который в дальнейшем передается на управляемый модуль и с него на инфракрасный датчик. Я конечно не в курсе, сложно это реализовать или нет, но идея как мне кажется была бы интересной. И если хотя бы один (а лучше три ) порт такой был, то можно было бы управлять хотя бы в одной комнате сразу всем оборудованием, которые имеют пульты. Видел несколько таких разработок на Arduino. Кстати такой же можно сделать и один вход, для програмирования с пультов и отправки кода на сервер, по типу таблеток. Заранее спасибо за ответ.
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Prokol, мысль в принципе интересная. Нужно подумать.
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
MegaD-328 может управлять любой техникой через ИК. Вместо родных пультов.
По сути MegaD-328 может потенциально стать этаким Ethernet-Infrared Remote Control Gate.
Можно управлять не только телевизорами и прочей бытовой техникой, но и, что самое интересное, климатической техникой.
Для пробы я взял обычный ИК-диод и подключил его через токоограничивающий резистор непосредственно к порту MegaD-14-IN без всякого дополнительного питания. При таком подключении максимальное расстояние от приемника до диода не должно быть большим - около метра, но для тестов сгодится.
"Немного" поправил прошивку, чтобы обеспечить несущую частоту в районе 38КГц.
Задал в браузере что-то типа...
http://192.168.0.14/sec/?pt=12&ir=BFFBFEFF1716
где BFFBFEFF1716 - команда переключения ТВ на 8 канал в протоколе Panasonic.
...и телевизор послушно откликнулся на запрос отработав посылаемую команду.
Команды, которые посылают пульты можно скачать с сайта lirc, а можно собрать простенький прибор (что и было сделано) и использовать программу mode2 из пакета lirc.
И тогда можно увидеть что именно посылает конкретный пульт
Конечно, тут много нюансов.
К сожалению Ethernet + TCP + HTTP не слишком быстрая связка, чтобы передавать отдельные биты информации в каждом пакете. Каждый такой пакет по времени занимает пару миллисекунд, тогда как ИК-протоколы оперируют микросекундами. Поэтому в контроллер нужно передавать команду в HEX. А далее контроллер должен преобразовать эту команду в бинарный код и отработать ее с нужными задержками. Процедура преобразования простая, но требует памяти. Далее. Сейчас в природе огромное количество различных протоколов. Почти у каждого производителя и даже модели свои особенности. Поэтому нельзя написать реализацию для всех устройств, но можно попытаться настроить взаимодействие с помощью дополнительных параметров, передаваемых устройству через GET-запрос (HTTP). А этих параметров достаточно много. Это и преамбула, и величина паузы для определения 0 и 1, и количество повторов и т.д.
Все это можно реализовать, но для такого существенного по объему кода в atmega328 нет достаточного количества памяти. Решить этот вопрос можно только двумя способами - сделать специальную прошивку для ИК-управления и перебраться на atmega2560. Переезд на более оснащенный чип давно назревал и рано или поздно это должно произойти в любом случае.
По сути MegaD-328 может потенциально стать этаким Ethernet-Infrared Remote Control Gate.
Можно управлять не только телевизорами и прочей бытовой техникой, но и, что самое интересное, климатической техникой.
Для пробы я взял обычный ИК-диод и подключил его через токоограничивающий резистор непосредственно к порту MegaD-14-IN без всякого дополнительного питания. При таком подключении максимальное расстояние от приемника до диода не должно быть большим - около метра, но для тестов сгодится.
"Немного" поправил прошивку, чтобы обеспечить несущую частоту в районе 38КГц.
Задал в браузере что-то типа...
http://192.168.0.14/sec/?pt=12&ir=BFFBFEFF1716
где BFFBFEFF1716 - команда переключения ТВ на 8 канал в протоколе Panasonic.
...и телевизор послушно откликнулся на запрос отработав посылаемую команду.
Команды, которые посылают пульты можно скачать с сайта lirc, а можно собрать простенький прибор (что и было сделано) и использовать программу mode2 из пакета lirc.
И тогда можно увидеть что именно посылает конкретный пульт
Конечно, тут много нюансов.
К сожалению Ethernet + TCP + HTTP не слишком быстрая связка, чтобы передавать отдельные биты информации в каждом пакете. Каждый такой пакет по времени занимает пару миллисекунд, тогда как ИК-протоколы оперируют микросекундами. Поэтому в контроллер нужно передавать команду в HEX. А далее контроллер должен преобразовать эту команду в бинарный код и отработать ее с нужными задержками. Процедура преобразования простая, но требует памяти. Далее. Сейчас в природе огромное количество различных протоколов. Почти у каждого производителя и даже модели свои особенности. Поэтому нельзя написать реализацию для всех устройств, но можно попытаться настроить взаимодействие с помощью дополнительных параметров, передаваемых устройству через GET-запрос (HTTP). А этих параметров достаточно много. Это и преамбула, и величина паузы для определения 0 и 1, и количество повторов и т.д.
Все это можно реализовать, но для такого существенного по объему кода в atmega328 нет достаточного количества памяти. Решить этот вопрос можно только двумя способами - сделать специальную прошивку для ИК-управления и перебраться на atmega2560. Переезд на более оснащенный чип давно назревал и рано или поздно это должно произойти в любом случае.
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Отлично, ждем продолжения!
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Andrey_B, мне казалось, что MegaD-14-IN предназначен только для входов. Даже исходя из его названия. Или я в чем-то заблуждаюсь?
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Prokol, чисто с потребительской точки зрения MegaD-14-IN предназначен для "входов". Но на самом деле это не совсем так.
Возьмем, к примеру, DS18B20 или DHT-22. Они передают информацию в контроллер по цифровому протоколу. Это значит, что данные идут в обе стороны. Пользователю может показаться, что контроллер просто считывает температуру с датчика. В действительности при работе с цифровыми датчиками контроллер как передает, так и принимает информацию. То есть он фактически переключает режим работы порта с входа на выход и обратно, только очень быстро (алгоритм зависит от конкретного протокола).
ИК диод в этом разрезе ничем особенно не отличается от цифровых датчиков. Отличие в том, что он ничего не передает в контроллер. Диод только светит тогда, когда ему скажут. Порт при этом настроен как "выход". Мало того, задействована аппаратная возможность контроллера для формирования модулирующего сигнала на нужном канале. Ведь для того, чтобы наши телевизоры не реагировали на каждый чих, они воспринимают только тот ИК сигнал, который идет с частотой 38 (реже 36) килогерц.
В принципе для использования ИК совместно с MegaD-328 исполнительный модуль не обязателен, но он удобен с точки зрения коммутации проводов.
Возьмем, к примеру, DS18B20 или DHT-22. Они передают информацию в контроллер по цифровому протоколу. Это значит, что данные идут в обе стороны. Пользователю может показаться, что контроллер просто считывает температуру с датчика. В действительности при работе с цифровыми датчиками контроллер как передает, так и принимает информацию. То есть он фактически переключает режим работы порта с входа на выход и обратно, только очень быстро (алгоритм зависит от конкретного протокола).
ИК диод в этом разрезе ничем особенно не отличается от цифровых датчиков. Отличие в том, что он ничего не передает в контроллер. Диод только светит тогда, когда ему скажут. Порт при этом настроен как "выход". Мало того, задействована аппаратная возможность контроллера для формирования модулирующего сигнала на нужном канале. Ведь для того, чтобы наши телевизоры не реагировали на каждый чих, они воспринимают только тот ИК сигнал, который идет с частотой 38 (реже 36) килогерц.
В принципе для использования ИК совместно с MegaD-328 исполнительный модуль не обязателен, но он удобен с точки зрения коммутации проводов.
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Продолжение...
Выкладываю экспериментальную прошивку. Это не новая бета, а скорее некое ответвление.
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? Мне кажется, было бы интересно.
Выкладываю экспериментальную прошивку. Это не новая бета, а скорее некое ответвление.
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? Мне кажется, было бы интересно.