|
Среда, 27.11.2024, 11:32 | | RSS |
|
Защита, контроль, управление |
|
Радиомодуль
|
|
ppwwdd | Дата: Среда, 02.01.2019, 06:13 | Сообщение # 391 |
Группа: Пользователи
Сообщений: 454
Статус: Offline
| Утро вечера мудренее. Заработали исполнительные устройства. Наверное, радиомодуль "притерся". Одно только осталось, что в поле Transmitter не отображается информация о нажатых кнопках.
|
|
| |
AlexAW | Дата: Среда, 02.01.2019, 10:46 | Сообщение # 392 |
Группа: Пользователи
Сообщений: 310
Статус: Offline
| Цитата ppwwdd ( ) а с радиомодулем AlexAW-версии, в который я записал коды брелков не хотят, С новым годом! С новым устройством. Каким образом вы записали сигналы с брелков в радиомодуль? Копированием или записью кодов в ЕЕПРОМ? И какие параметры модуляции у брелков с которых копировали? Для приемников нет разницы будет преамбула впереди или сзади, в любом из протоколов чтение кода начинается после преамбулы. Длительность преамбулы должна быть 32а где а длительность импульса, те в ваших измерениях это 400us импульс 12400us пауза. Но для приемника высокая точность соблюдения паузы не важна, но лучше придерживаться. Если передача с радиомодуля не заработала, тому может быть две причины. Не верная частота несущей передатчика, не правильно записан код или частота модуляции сообщения. Что касается устройств датчиков протечек и датчиков окон вот тут измененые прошивки для варианта схемотехники Михаила.
|
|
| |
ppwwdd | Дата: Среда, 02.01.2019, 16:53 | Сообщение # 393 |
Группа: Пользователи
Сообщений: 454
Статус: 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 | Сообщение # 394 |
Группа: Пользователи
Сообщений: 310
Статус: Offline
| Цитата ppwwdd ( ) Первым байтом для этого брелка стоит 0В. я так понял, что это параметр, который в первом столбце таблицы "Таблица расчета периода". Да правильно поняли Код который вы выбрали будет соответствовать периоду 1600 мкс. Если ваш брелок выдает с тем же периодом то все верно. Вообще можно было и не париться с записью кодов а просто записать коды в радиомодуль методом который показан на видео. Он сам бы и коды прописал и константу ближайшую подходящую подобрал.
Цитата ppwwdd ( ) Дело в том, что то что передает контроллер на трансивер и что получит с ресивера контроллер на приемной стороне - оно будет отличаться. Вот тут что то не понял. Почему это будет отличаться и в чем?
|
|
| |
Admin | Дата: Четверг, 03.01.2019, 15:50 | Сообщение # 395 |
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
| Как-то уже давно наткнулся на вот такие девайсы Broadlink:
https://mysku.ru/blog/china-stores/40732.html (эмулятор радио и ИК-пульта)
https://mysku.ru/blog/china-stores/41102.html (эмулятор ИК-пульта)
Вполне можно рассматривать как альтернативу радиомодулю (первая ссылка), если научить его еще и обрабатывать принимать команды (приемник там уже встроен). Только вот категорически не нравится мне работа через «облачные» ресурсы, несмотря на красочное приложение и очень широкие возможности по адаптации различных девайсов и создание сценариев работы. Вот если бы «облако» Broadlink можно было бы развернуть локально, тогда другое дело
Тем не менее, может и закажу один из таких контроллеров и попробую интегрировать его в WHP. Скорее всего, все там построено на протоколе MQTT, а значит можно обойтись и без «облака».
|
|
| |
ppwwdd | Дата: Четверг, 03.01.2019, 18:13 | Сообщение # 396 |
Группа: Пользователи
Сообщений: 454
Статус: Offline
| Цитата AlexAW ( ) Вот тут что то не понял. Почему это будет отличаться и в чем? Отличие будет во временных параметрах. Длина импульса сокращается пауза растягивается. Я думаю из-за специфики работы самого передатчика. Некоторое время идет на "разгон".
|
|
| |
AlexAW | Дата: Пятница, 04.01.2019, 09:38 | Сообщение # 397 |
Группа: Пользователи
Сообщений: 310
Статус: Offline
| Запуск генератора передатчика происходит довольно быстро это практически не должно повлиять на величину импульса до критических величин. разницей в десяток микросекунд можно пренебречь, алгоритмы дешифраторов приемников и радиомодуля благополучно справляются с этим.
|
|
| |
ppwwdd | Дата: Суббота, 05.01.2019, 18:10 | Сообщение # 398 |
Группа: Пользователи
Сообщений: 454
Статус: 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 приходила, когда радиомодуль поймал знакомый код.
|
|
| |
AlexAW | Дата: Воскресенье, 06.01.2019, 05:41 | Сообщение # 399 |
Группа: Пользователи
Сообщений: 310
Статус: Offline
| Цитата ppwwdd ( ) Поблымали семафорами. Семафоры работают всегда. Они дают информацию задачам и диспетчеру задач о состоянии и необходимости запуска в роботу. ТМ0 создает системные тики 100 мкс. По ним происходит контроль состояний задач, а задачей генерации пауз вычисляются и создаются все необходимые длинные (более 100 мкс) паузы. Паузы тоже разруливаются своими флагами. Вообще большинство задач снабжены флаговыми регистрами. Контроль переднего фронта происходит по прерыванию с входа приемника (по обработке у него наивысший приоритет, для обеспечения большей точности отсчета ТМ1. От фронта до фронта таймером ТМ1 считается период. Знание периода достаточно что бы знать величину импульса и паузы. Нам же известно что их соотношение должно быть 1/4 и 3/4.(делим на 4 это два сдвига вправо вот вам и четверь она и есть базовая величина) Для более точного определения периода считаем среднее из двух измерений (сложить и сдвинуть вправо 1 раз, значения суммы не превышают байта плюс флаг переноса) Цитата ppwwdd ( ) выходим на подпрограмму обработки, а счетчик TMR1 давно уже считает. Он считает с тех пор как мы его инициализировали, а инициализировали мы его тоже тут в прерывании, и если он даже чего то насчитал не того алгоритм обработки проигнорирует некорректные данные. ведь на входе может быть и просто шум.И так непрерывно идет обработка расчета периода, а вот если обнаружится преамбула тогда алгоритм запустит расшифровку кодов с текущим вычисленным периодом.Цитата ppwwdd ( ) Вывод RB7 можно задействовать для подачи на какой-нибудь вход GPIO Это вывод контроль приема. Он включается всегда когда верно прошла принята последовательность и на знакомый и на не знакомый код.
|
|
| |
ppwwdd | Дата: Воскресенье, 06.01.2019, 06:12 | Сообщение # 400 |
Группа: Пользователи
Сообщений: 454
Статус: Offline
| Цитата AlexAW ( ) Нам же известно что их соотношение должно быть 1/4 и 3/4 Действительно!!! Я об этом знаю, но даже не догадался о том, что это можно использовать в алгоритме. Как говорится: "Одна голова - хорошо, но... лучше с туловищем." Гениальное - все простое. Но не все простое гениальное.13510Цитата AlexAW ( ) Он включается всегда когда верно прошла принята последовательность и на знакомый и на не знакомый код Я имел ввиду, что когда веб сервер не работает, а радиомодуль поймал сработавший датчик. Откуда мы будем знать, что датчик сработал? Пока не зайдем на сервер. А так будет уже предупреждение, что радиомодуль обнаружил сработавший датчик. А дальше уже нужно зайти на сервер, чтобы определить, какой из датчиков сработал. По крайней мере мне это необходимо будет.Добавлено (06.01.2019, 06:55) ---------------------------------------------
Цитата AlexAW ( ) Знание периода достаточно что бы знать величину импульса и паузы. Цитата AlexAW ( ) Нам же известно что их соотношение должно быть 1/4 и 3/4 А между прерываниями, как отслеживается, когда был спад у импульса? На 1/4 или на 3/4 периода? Т.е. "0" это или "1".
|
|
| |
T2M © 2024 | Сайт управляется системой uCoz |
| |
|