Суббота, 19.01.2019, 14:31
| RSS
Главная | Радиомодуль - Страница 40 - Форум
Защита, контроль, управление
Форма входа
Логин:
Пароль:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS · Чат ]
Модератор форума: Zoolu  
Форум » ФОРУМ » Домашняя автоматизация на Raspberry Pi » Радиомодуль
Радиомодуль
ppwwddДата: Вторник, 01.01.2019, 19:14 | Сообщение # 391
Группа: Участники
Сообщений: 391
Статус: Offline
С Новым годом!
Все, наверное, отдыхают, а я сегодня запаял еще один радиомодуль, чтобы прошивку AlexAW-версии  попробовать. На версии WebHomePi_25_11_18 не получается, потому что скрипты стоят для радиомодуля ADMIN-версии, а скрипты для второй версии радиомодуля где-то потерялись, так что пробовал на  версии WebHomePi_06_06_2018. К тому же там задействованы два радиомодуля. При отсутствии передатчика на радиомодуле AlexAW-версии, все работает как на скрине изображено. Обмен данными происходит нормально.  Информация от брелков и от кнопок интерфейса отображается в поле Receiver и Transmitter. При вставленном передатчике информация отображается только от брелков в поле Receiver. Если включен в работу радиомодуль ADMIN-версии, то обмен с ним продолжается недолго.

ADMIN, что может быть? К тому же у меня исполнительные устройства с радиомодулем ADMIN-версии и радиобрелками работают нормально, а с радиомодулем AlexAW-версии, в который я записал коды брелков не хотят, Сигналы с обоих радиомодулей снимал логическим анализатором. Отличие в параметрах сигналов почти нет.  От брелка работает исполнительное устройство  418_remote_4,  От радиомодуля  AlexAW-версии не хочет. Алгоритм приема кодовой посылки в  устройстве 418_remote_4 я применил такой: вылавливается импульс (преамбула или синхро больше 250us), который следует 25 в серии (первые 24 импульса пропускаются - протокол 2262) затем пауза больше 7000us. Потом уже читаются 24 импульса. Радиомодуль ADMIN-версии передает: "0" и синхро (преамбула) - около 400us, "1"- около 1100us, пауза - около 10000us. Радиомодуль AlexAW-версии передает:  "0" и синхро (преамбула) - около 400us, "1"- около 1200us, пауза - около 12000us. Единственное отличие, что радиомодуль AlexAW-версии начинает передачу с преамбули и паузы.
Прикрепления: 5428374.png(157.5 Kb) · 8348439.png(151.0 Kb) · 7146476.png(180.3 Kb) · 9108202.png(185.3 Kb)
 


ppwwddДата: Среда, 02.01.2019, 06:13 | Сообщение # 392
Группа: Участники
Сообщений: 391
Статус: Offline
Утро вечера мудренее. Заработали исполнительные устройства. Наверное, радиомодуль "притерся". Одно только осталось, что в поле Transmitter не отображается информация о нажатых кнопках.
Прикрепления: 9498676.png(155.5 Kb)
 
AlexAWДата: Среда, 02.01.2019, 10:46 | Сообщение # 393
Группа: Участники
Сообщений: 287
Статус: Offline
Цитата ppwwdd ()
а с радиомодулем AlexAW-версии, в который я записал коды брелков не хотят,
С новым годом! С новым устройством.
Каким образом вы записали сигналы с брелков в радиомодуль? Копированием или записью кодов в ЕЕПРОМ? И какие параметры модуляции у брелков с которых копировали?
Для приемников нет разницы будет преамбула впереди или сзади, в любом из протоколов чтение кода начинается после преамбулы. Длительность преамбулы должна быть 32а где а длительность импульса, те в ваших измерениях это 400us импульс 12400us пауза. Но для приемника высокая точность соблюдения паузы не важна, но лучше придерживаться. 
Если передача с радиомодуля не заработала, тому может быть две причины. Не верная частота несущей передатчика, не правильно записан код или частота модуляции сообщения.
Что касается устройств датчиков протечек и датчиков окон вот тут измененые прошивки для варианта схемотехники Михаила.
 
ppwwddДата: Среда, 02.01.2019, 16:53 | Сообщение # 394
Группа: Участники
Сообщений: 391
Статус: Offline
AlexAW, записывал я коды с брелков путем копирования в режиме программирования. Например, у меня брелок 315 мГц с адресом 01, который закомутирован на плате пайкой перемычек, имеет коды в двух версиях:
                                     A                            B                           C                          D

ADMIN-версия           03 00 03                 03 00 0С                03 00 30                03 00 С0

AlexAW-версия         С0 00 С0                С0 00 30                С0 00 0С                С0 00 03,
 
в принципе коды идентичные, только в ADMIN-версии вверх ногами и задом наперед. Но передается все одинаково. Первым байтом для этого брелка стоит 0В. я так понял, что это параметр, который в первом столбце таблицы "Таблица расчета периода". 

    Александр, в принципе, радиомодуль с Вашей прошивкой заработал. Я доволен. Дело в том, что то что передает контроллер на трансивер и что получит с ресивера контроллер на приемной стороне - оно будет отличаться. Параметры сигнала на приемной стороне сильно отличаются. я когда-то изучал это с помощью лог. анализатора. 
    Плохо распознает команды от радиомодуля устройство, которое стоит на улице, притом в металлическом ящике. Но с этим я справлюсь.
А вот почему в поле Transmitter ничего не пишется - вот это для меня загадка.
 
AlexAWДата: Четверг, 03.01.2019, 13:37 | Сообщение # 395
Группа: Участники
Сообщений: 287
Статус: Offline
Цитата ppwwdd ()
Первым байтом для этого брелка стоит 0В. я так понял, что это параметр, который в первом столбце таблицы "Таблица расчета периода".
 Да правильно поняли Код который вы выбрали будет соответствовать периоду 1600 мкс.  Если ваш брелок выдает с тем же периодом то все верно.
Вообще можно было и не париться с записью кодов а просто записать коды в радиомодуль методом который показан на видео. Он сам бы и коды прописал и константу ближайшую подходящую подобрал. 
Цитата ppwwdd ()
Дело в том, что то что передает контроллер на трансивер и что получит с ресивера контроллер на приемной стороне - оно будет отличаться.
Вот тут что то не понял. Почему это будет отличаться и в чем?
 
AdminДата: Четверг, 03.01.2019, 15:50 | Сообщение # 396
Admin
Группа: Администраторы
Сообщений: 4100
Статус: Offline
Как-то уже давно наткнулся  на вот такие девайсы Broadlink:

https://mysku.ru/blog/china-stores/40732.html (эмулятор радио и ИК-пульта)

https://mysku.ru/blog/china-stores/41102.html (эмулятор ИК-пульта)

Вполне можно рассматривать как альтернативу радиомодулю (первая ссылка), если научить его еще и обрабатывать принимать команды (приемник там уже встроен). Только вот категорически не нравится мне работа через «облачные» ресурсы, несмотря на красочное приложение и очень широкие возможности по адаптации различных девайсов и создание сценариев работы. Вот если бы «облако» Broadlink можно было бы развернуть локально, тогда другое дело biggrin

Тем не менее, может и закажу один из таких контроллеров и попробую интегрировать его в WHP. Скорее всего, все там построено на протоколе MQTT, а значит можно обойтись и без «облака».
 


ppwwddДата: Четверг, 03.01.2019, 18:13 | Сообщение # 397
Группа: Участники
Сообщений: 391
Статус: Offline
Цитата AlexAW ()
Вот тут что то не понял. Почему это будет отличаться и в чем?
Отличие будет во временных параметрах. Длина импульса сокращается пауза растягивается. Я думаю из-за специфики работы самого передатчика. Некоторое время идет на "разгон".
 
AlexAWДата: Пятница, 04.01.2019, 09:38 | Сообщение # 398
Группа: Участники
Сообщений: 287
Статус: Offline
Запуск генератора передатчика происходит довольно быстро это практически не должно повлиять на величину импульса  до критических величин. разницей в десяток микросекунд можно пренебречь, алгоритмы дешифраторов приемников и радиомодуля благополучно справляются с этим.
 
ppwwddДата: Суббота, 05.01.2019, 18:10 | Сообщение # 399
Группа: Участники
Сообщений: 391
Статус: Offline
Устранил  проблему из-за которой не отображалась информация в поле Transmitter при посылании команд с вебстраницы Radio control. Подпаял электролит 100,0х25В и керамич. на 0,1 мкф прямо к выводам передатчика +Uпит. и GND и пошла информация о нажатых кнопках на вебстранице. Может кому-то будет полезная информация, кто не знал таких нюансов. Я с таким сталкивался, когда использовал модули NRF24L01.

Добавлено (05.01.2019, 18:55)
---------------------------------------------
Александр, помогите разобраться. Не могу "въехать" никак. Я об исходнике. Включили радоиомодуль. Прошел сброс, инициализация. Поблымали семафорами. Пошел первый импульс (предположим протокол 2262), - прерывание  по RB0, выходим на подпрограмму обработки, а счетчик TMR1 давно уже считает. Я думал он должен начинать считать с момента прихода прерывания. Я так понимаю, что самый первый импульс не в счет. Счетчик сбрасывается в конце обработки прерывания и затем считывается в начале следующего прерывания. Т.е. измеряется не длина импульса, а период между двумя прерываниями. И так до тех пор, пока не выловится длинный период между двумя прерываниями. Это будет преамбула. Затем уже начинается прием информации. А как определяется длина импульса, если измеряется только период между прерываниями?

Добавлено (05.01.2019, 19:08)
---------------------------------------------
AlexAW, от радиомодуля я в восторге. Ловит все, что летает. Вывод RB7 можно задействовать для подачи на какой-нибудь вход GPIO, чтобы sms приходила, когда радиомодуль поймал знакомый код.

Прикрепления: 4669228.png(335.5 Kb)
 
AlexAWДата: Воскресенье, 06.01.2019, 05:41 | Сообщение # 400
Группа: Участники
Сообщений: 287
Статус: Offline
Цитата ppwwdd ()
Поблымали семафорами.
Семафоры работают всегда. Они дают информацию задачам и  диспетчеру задач о состоянии и необходимости запуска в роботу. ТМ0 создает системные тики 100 мкс. По ним происходит контроль состояний задач, а задачей генерации пауз вычисляются и создаются все необходимые длинные (более 100 мкс) паузы.  Паузы тоже разруливаются своими флагами. Вообще большинство задач снабжены флаговыми регистрами.
Контроль переднего фронта происходит по прерыванию с входа приемника (по обработке у него наивысший приоритет, для обеспечения большей точности отсчета ТМ1.  От фронта до фронта таймером ТМ1 считается период.  Знание периода достаточно что бы знать величину импульса и паузы. Нам же известно что их соотношение должно быть 1/4 и 3/4.(делим на 4 это два сдвига вправо вот вам и четверь она и есть базовая величина) Для более точного определения периода считаем среднее из двух измерений (сложить и сдвинуть вправо 1 раз, значения суммы не превышают байта плюс флаг переноса)
Цитата ppwwdd ()
выходим на подпрограмму обработки, а счетчик TMR1 давно уже считает.
Он считает с тех пор как мы его инициализировали, а инициализировали  мы его тоже тут в прерывании, и если он даже чего то насчитал не того алгоритм обработки проигнорирует некорректные данные. ведь на входе может быть и просто шум.И так непрерывно идет обработка расчета периода,  а вот если обнаружится преамбула тогда алгоритм запустит расшифровку кодов с текущим вычисленным периодом.
Цитата ppwwdd ()
Вывод RB7 можно задействовать для подачи на какой-нибудь вход GPIO
Это вывод контроль приема. Он включается всегда когда верно прошла принята последовательность и на знакомый и на не знакомый код.
Прикрепления: PT2262_5.pdf(590.6 Kb)
 
Форум » ФОРУМ » Домашняя автоматизация на Raspberry Pi » Радиомодуль
Поиск:



T2M © 2019
Сайт управляется системой uCoz