Блок чтения кода радио датчиков 433 МГц.

В данный форуме Вы можете создавать темы посвящённые расширению функционала программы или сайта. После рассмотрения Ваше предложение будет перенесено в соответствующее место
Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Блок чтения кода радио датчиков 433 МГц.

#1

Сообщение Max » 12.04.2016{, 07:09}

Предлагаю создать блок для работы (чтения, записи, обработки) с распространенными беспроводными датчиками на 433 МГц (так же касается датчиков на 315МГц) разного назначения (датчики дыма, движения, герконовые и т.д.). Такие датчики используются в домашних GSM сигнализациях.
Блок был бы очень полезен для конструкций типа "Умный дом" и интеграции с уже установленными подобными системами.
К тому же, эти датчики свободно продаются и доступны для всех начинающих и опытных конструкторов.
P.S. Блок либо самодельный (для тех, кто хорошо знает вопрос и протокол связи), либо Разработчик создаст. И вообще, возможно ли создать такой блок?
Последний раз редактировалось Max 12.04.2016{, 08:11}, всего редактировалось 1 раз.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#2

Сообщение Boroda » 04.05.2016{, 12:21}

Ну сделать пользовательский блок несложно, единственная проблема - в приемнике необходимо использовать аппаратный 16-разрядный таймер с тиками 1 мкс (ну +- можно поиграться) и необходимо довольно часто (максимум через 80мкс) запускать подпрограмму сканирования выхода приемника. В приложении кусок кода для самописного протокола (прием-пердача) на PicBasic, который легко переносится на СИ. Нужно немного поиграться с таймингами и данными, чтоб получился протокол SC2262 или EV1527).

П.С. на вылавливание сигнала по прерыванию на входе не стоит надеяться, микроконтроллер навсегда зависнет в обработчике прерываний из-за шума на выходе приемника.



Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось Boroda 04.05.2016{, 19:54}, всего редактировалось 1 раз.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#3

Сообщение Boroda » 04.05.2016{, 22:52}

Вот нарисовал тут пользовательский блок для приема сигнала с кодеров SC2262 или EV1527. Описание и рекомендации внутри, надеюсь Автор FLProg доработает как надо. Я, к сожалению, с AVR и СИ не дружу, всю свою сознательную жизнь кодил под ПИКи на Бейсике и АСМе.
7204753.jpg
версия FLProg 1.11.1

Оптимизировал код, обновил версию
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось Boroda 05.05.2016{, 13:43}, всего редактировалось 1 раз.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#4

Сообщение Boroda » 05.05.2016{, 01:16}

Ну а эта версия СИ+FBD должна более лояльно относиться к загроможденности программы, т.к. фильтр входных импульсов выполнен на стандартных таймерах.
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось Boroda 05.05.2016{, 13:44}, всего редактировалось 1 раз.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#5

Сообщение Boroda » 05.05.2016{, 02:14}

Ну и еще одна версия с выходом Unsigned Long и String. Немного оптимизировал код.
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось Boroda 05.05.2016{, 13:45}, всего редактировалось 1 раз.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#6

Сообщение Boroda » 05.05.2016{, 17:32}

Перевел все на СИ, объединил блоки, привязал к глобальному таймеру micros(). Работает намного стабильнее. На этом, я думаю, надо закончить.
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось Boroda 05.05.2016{, 17:48}, всего редактировалось 1 раз.

Аватара пользователя
CraCk
Лейтенант
Сообщения: 594
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 8

Блок чтения кода радио датчиков 433 МГц.

#7

Сообщение CraCk » 06.05.2016{, 21:10}

Может все это сделать на библиотеках? Может будет работать понадежней?
https://dzrmo.wordpress.com/2012....android
https://github.com/smartin....s1527.h
http://statusorel.ru/technol....ch.html
https://github.com/sui77/rc-switch

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#8

Сообщение Boroda » 07.05.2016{, 15:23}

Да и так хорошо работает. К библиотекам отношусь скептически, не оптимально люди-человеки иногда делают, да и Delay() очень любят использовать. Поэтому стараюсь писАть сам.

vovka1973
Капитан
Сообщения: 768
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 24
Откуда: kazahstan

Блок чтения кода радио датчиков 433 МГц.

#9

Сообщение vovka1973 » 10.05.2016{, 20:04}

Boroda писал(а):Да и так хорошо работает. К библиотекам отношусь скептически, не оптимально люди-человеки иногда делают, да и Delay() очень любят использовать. Поэтому стараюсь писАть сам.
Для приема блок работает отлично ,не могли бы вы сделать блок для передачи?
Изображение

Аватара пользователя
CraCk
Лейтенант
Сообщения: 594
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 8

Блок чтения кода радио датчиков 433 МГц.

#10

Сообщение CraCk » 11.05.2016{, 15:10}

vovka1973 писал(а):Для приема блок работает отлично
Какой датчик пробовали подключать?
vovka1973 писал(а):не могли бы вы сделать блок для передачи?
Да было бы неплохо. Можна тогда делать беспроводные датчики и привязывать к китайским сигнализациям.

Попробовал подключить пульт от сигналки 1527. Очень плохо работает. Код отправляет в уарт через 3-4 раза, при щелканье одной кнопкой. Если щелкать четыре кнопки одна за другой с интервалом 1 сек. то тогда срабатывает через раз. Иногда с одной кнопки принимает разные значения. Ростояние пульта от приемника 40см.
Последний раз редактировалось CraCk 11.05.2016{, 15:13}, всего редактировалось 1 раз.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#11

Сообщение Boroda » 11.05.2016{, 17:10}

CraCk, попробуйте нормальный приемник поставить, а не китайскую поделку с катушками за 15 рублей. Причем его надо запитать через катушку 100мкГ и поставить кондеры 100мкФ и 0,1, иначе он забивается генератором Ардуины. Нормальный приемник раскачивается со второй-пятой посылки, а китайские модули с десятой и ловят метров на 10. Да и вообще протокол 2262 и 1527 совсем никудышный. Нет преамбулы для раскачки приемника, нет контрольной суммы. Посмотрите во втором сообщении картинку - так должен выглядель нормальнай протокол (преамбула,адрес, данные,контрольная сумма). По такому принципу парнишке собирал приемник/передатчик, так он на несколько километров связь 433 кидал. Все это было сделано на PIC12F629 - аналог тини13.

Добавлено (11.05.2016, 16:34)
---------------------------------------------
И резисторы надо посмотрель частотозадающие, может длина импульсов в посылке другая. А может у Вас что-то тяжелое еще в программе крутится. К моему блоку процессор должен обращаться хотябы раз в 80-100 мкс.

Добавлено (11.05.2016, 17:10)
---------------------------------------------
Должен нормально работать с 1527 с резистором 330кОм. Дома буду, расширю диапазон принимаемых импульсов до 2,2мс.
Последний раз редактировалось Boroda 11.05.2016{, 17:15}, всего редактировалось 1 раз.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#12

Сообщение Boroda » 11.05.2016{, 21:03}

Расширил диапазон ширины принимаемых импульсов. Должен нормально принимать сигналы с 1527 с резисторами 300..470кОм и с 2262 с резисторами 2,2..4,7МОм. Тестируйте. В архиве блок, проект FLProg_1.11.1  и тест китайского приемника (с ним работает только на расстоянии 10 см).

Добавлено (11.05.2016, 21:03)
---------------------------------------------
Модули SYN480R и SYN115 должны быть не хуже DRA887RX и DRA888TX.
DRA тут 10 комплектов за 900 рублей (самое дешевое, что нашел), ну а SYN на ebay полно.
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось Boroda 11.05.2016{, 20:55}, всего редактировалось 1 раз.

Аватара пользователя
CraCk
Лейтенант
Сообщения: 594
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 8

Блок чтения кода радио датчиков 433 МГц.

#13

Сообщение CraCk » 12.05.2016{, 15:04}

Boroda
Тестируйте.
Все заработало!!! Данные цифры летят ка с пулемета) Иногда проскакивают другие цифры. Еще проблема flprog монитора, он не успевает обрабатывать такое количество данных. При отпускание кнопки на брелке. Данные в мониторе еще продолжают приходить. В IDE мониторе такого нет.
Boroda
Нормальный приемник раскачивается со второй-пятой посылки, а китайские модули с десятой и ловят метров на 10Какая цена такой и сигнал.
Но для домашних поделок хватитает и транзисторного приемника. И еще, блок будет работать с приемником в диапазоне 315мГц?
Boroda писал(а):Модули SYN480R и SYN115 должны быть не хуже DRA887RX и DRA888TX.
А такие модули подойдут?
http://ru.aliexpress.com/item....2060402
Boroda
В архиве блок, проект FLProg_1.11.1  и тест китайского приемника (с ним работает только на расстоянии 10 см)
У меня работает на 10м без прямой видимости и без антенны.  Попробуйте модную зеленую катушку покрутить, возможно частота сбита.
Вот реализация на таких приемниках радиореле.
https://www.youtube.com/watch?v=qp1SpD9vGn4
https://www.youtube.com/watch?v=R8oyZ5E3hEY
Boroda
Да и вообще протокол 2262 и 1527 совсем никудышный
На форуме очень не хватает знатоков по радиочастотной связи знающих программирование. А автор программы не успевает за всеми хотелками пользователей. Если есть желание и время, можете реализовать в Flprog разные протоколы беспроводной передачи данных, в том числе и Rolling code?
Последний раз редактировалось CraCk 12.05.2016{, 15:16}, всего редактировалось 1 раз.

vovka1973
Капитан
Сообщения: 768
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 24
Откуда: kazahstan

Блок чтения кода радио датчиков 433 МГц.

#14

Сообщение vovka1973 » 12.05.2016{, 18:13}


Но для домашних поделок хватитает и транзисторного приемника. И еще, блок будет работать с приемником в диапазоне 315мГц?
У меня работает ! Ну а как с передачей быть, кто нибудь знает?
Изображение

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#15

Сообщение Boroda » 12.05.2016{, 20:14}

CraCk писал(а):А такие модули подойдут?
Подойдут.
CraCk писал(а):реализовать в Flprog разные протоколы беспроводной передачи данных
С делаю чуть попозже.
vovka1973 писал(а):Ну а как с передачей быть, кто нибудь знает?
Сделаю чуть попозже. Хотите датчики к какой-то системе сделать?

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#16

Сообщение Boroda » 12.05.2016{, 23:02}

Тестируйте передатчик 2262.
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
CraCk
Лейтенант
Сообщения: 594
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 8

Блок чтения кода радио датчиков 433 МГц.

#17

Сообщение CraCk » 13.05.2016{, 00:45}

Можете по простому обяснить разницу между протоколом 2262 и 1527. Отличаються только количеством передаваемых данных?
По этих протоколах можна передавать данные от датчиков например температуру?
Ели я хочу скопировать какой нибудь датчик, я получаю данные в виде long int. После этого можно передавать цифры в блок TX прямо на сигналку?

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#18

Сообщение Boroda » 13.05.2016{, 10:03}

Вот как-то так выглядит протокол 2262/1527.
5334764.jpg
Температуру или еще какие-либо данные передать с помощью него сложно, только дискретные сигналы (сработало/не сработало). Для данных сделаю другие блоки приема/передачи на 1,2,3,4,5 интов с адресом и контрольной суммой. С помощью инта спокойно можно передавать и влажность, и температуру с точностью до двух знаков после запятой (+/-327.67). В передатчике (Float*100) -> Int, в приемнике Int->Float и результат делим на 100.
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
CraCk
Лейтенант
Сообщения: 594
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 8

Блок чтения кода радио датчиков 433 МГц.

#19

Сообщение CraCk » 13.05.2016{, 15:11}

Boroda писал(а):Тестируйте передатчик 2262.
В вашем блоке написано что 
Подаваемое на вход число ULong не более 16777215 (24 бит единиц)
А в даташите 2262
PT2262 is a remote control encoder paired with PT2272 utilizing CMOS Technology. Itencodes data and address pins into a serial coded waveform suitable for RF or IR
modulation. PT2262 has a maximum of 12 bits of tri-state address pins providing up to
531,441 (or 312) address codes; thereby, drastically reducing any code collision and
unauthorized code scanning possibilities.
Так понимаю 12 бит и число не более 531441.
Как понимать?
Еще в примере Вы создали симметричный генератор 50мсек. Это значение моно менять, или оно разное для разных радиочастот.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 33
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок чтения кода радио датчиков 433 МГц.

#20

Сообщение Boroda » 13.05.2016{, 17:08}

В 2262 1 бит это 2 импульса (короткий_короткий - 0, длинный_длинный - 1, короткий_длинный - F), таким образом комбинаций получается 3^12. При этом для настройки используется всего 12 ног. В 1527 один бит это 1 импульс. Я их приравнял и принимаю 24 импульса отдельно, и передаю 24 импульса отдельно, поэтому число комбинаций получается 2^24=16777215, как у 1527 с учетом битов кнопок ((2^20)*(2^4)). Генератор - период передачи посылок. У стандартного пульта 2262 период около 80мс. В моем варианте 100мс.
Последний раз редактировалось Boroda 13.05.2016{, 17:14}, всего редактировалось 1 раз.

Ответить

Вернуться в «Новые»