nRF24L01+ пользовательский блока на Си

Создаем свой блок. Вопросы, помощь знатоков.
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

CraCk,  Результаты работы с библиотекой RF24Network

Получилось на данный момент:
1. Один главный блок, обязательный на всех контролерах (на ретрансляторах  нужен только он)
2. Парные блоки передачи/приема для 1 INT, 5 INT, String
3. Довольно легко переделать блоки передачи/приема под любой набор данных.
4. Направление передачи любое (в том  числе двухстороннее)
5. Блоки передачи/ приема могу использоваться несколько раз в одно проекте.
6. Есть контроль доставки сообщения (выход status)

Пока собрано только две макетки, по этому не проверял сложную сеть, но должна работать, если правильно настроить адреса во всех блоках.

Возможно будут конфликты со старой библиотекой для NRF24, в этом случаи надо найти и удалить  библиотеку RF24-master.

Добавлено (29.10.2016, 09:03)
---------------------------------------------
Почитал документацию  на библиотеку NRF24 от TMRh20  похоже можно запустить не только на аппаратном SPI но программном и даже c использованием UART  Описание
Правда не пробовал, но информация интересная
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Слимпер 29 окт 2016, 08:41, всего редактировалось 1 раз.
CraCk
Лейтенант
Сообщения: 674
Зарегистрирован: 10 сен 2015, 21:51
Благодарил (а): 1 раз
Поблагодарили: 1 раз

nRF24L01+ пользовательский блока на Си

Сообщение CraCk »

Цитата СлимперРезультаты работы с библиотекой RF24Network Спасибо за труд. Протестирую как только найду третю ардуинку и время с которым сейчас проблематично. Пересмотрел блоки и примеры. Из недостатков по сравнению с блоками NRF24, скетч занимает в два раза больше места на контролере Главный блок и INT5 берут 20% на НАНО. Из плюсов сами блоки проще и удобней в использование. По сравнению с блоками многоножками.
Есть некоторые непонятки:
Немогу разовбраться с NRF24OnMessage -получено сообщение, желательно блокировать все длительные операция до перехода выхода в 0
Можна на примере объяснит что и как блокировать при полученном сообщении.
typeMessage можно таблицу ASCII с кодом 65-127?
Выход status теперь контролер передатчик сам опрашивает приемник, получено ли сообщение? На сколько такому методу можно доверять?
Размышления:
Если одновременно отправят  два передатчика приемнику данные тогда они в любом случае будут приняты, но только нужно добавит небольшую логику с выхода status на передатчиках чтобы обеспечить повторную отправку данных .

Правильно думаю?
Слимпер писал(а):3. Довольно легко переделать блоки передачи/приема под любой набор данных.
А как?
Слимпер писал(а):Почитал документацию  на библиотеку NRF24 от TMRh20
Но тогда не будет сети, а это одно из преимуществ nRF24L01. Mesh сетю никто не может похвалиться из доступных радио модулей. Мне кажеться что луче двигаться в направление энерго сбережения, долгая жизнь от аккумуляторов. Получи себе такого небольшого убийцу ESP8266  так как ESP8266 без розетки ни как.
Последний раз редактировалось CraCk 30 окт 2016, 00:05, всего редактировалось 1 раз.
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

CraCk писал(а):Но тогда не будет сети, а это одно из преимуществ nRF24L01. Mesh сетю никто не может похвалиться из доступных радио модулей.
Не правильно понял мое сообщение.  RF24Network это надстройка над NRF24, и по этому я писал, что можно если возникнит необходимость использовать не только аппаратный SPI порт, но и другие контакты. А конфликты бывают.

Кстати библиотеку  RF24Mesh я еще не использовал (это уже надстройка над  RF24Network), думаю с ней будет еще тяжелее код.
CraCk писал(а):Немогу разовбраться с NRF24OnMessage -получено сообщение, желательно блокировать все длительные операция до перехода выхода в 0
Ну имел виду, что когда было получено сообщение (1 на этом выходе), желательно (но не обязательно), запретить долгие операции (чтение датчиков, отправка данных в com порт). пример чуть позже. 
CraCk писал(а):typeMessage можно таблицу ASCII с кодом 65-127?
 
[spoiler=Спойлер][/spoiler]

Добавлено (30.10.2016, 08:28)
---------------------------------------------
CraCk писал(а):Выход status теперь контролер передатчик сам опрашивает приемник, получено ли сообщение? На сколько такому методу можно доверять?Размышления:Если одновременно отправят  два передатчика приемнику данные тогда они в любом случае будут приняты, но только нужно добавит небольшую логику с выхода status на передатчиках чтобы обеспечить повторную отправку данных .Правильно думаю?
Если честно, пробовал разобраться в код библиотеки отвечающий за это, но там все слишком мудрено для меня. Из описание понял, что это не контроль приема модулем, а полноценное отвеное сообщение генерируемое библиотекой, при считывании полученных данных.
Т.е. отправил данные библиотека ждет ответного сообщения, о доставки до адресата, а только потом, выдает статус доставлено.
Кстати, если я правильно понял, то при  typeMessage заданном в диапазоне 0-64 контроля доставки не будет, это может быть полезно для разгрузки сети. 
CraCk писал(а):А как?
Проще всего посмотреть как реализованы блоки  NRF24_INT5_посылка и  NRF24_INT5_прием.
Там данные передаются в виде структуры, а в нее можно упаковать любые типы данных кроме String. Если будет интересно потом сделаю для примера блоки с набором разно типных входов.

Добавлено (30.10.2016, 10:21)
---------------------------------------------
CraCk писал(а):Мне кажеться что луче двигаться в направление энерго сбережения, долгая жизнь от аккумуляторов.
Ну если будет нормально работать можно попробовать и это сделать.
CraCk писал(а):Из недостатков по сравнению с блоками NRF24, скетч занимает в два раза больше места на контролере Главный блок и INT5 берут 20% на НАНО.
Размер не сравнивал, но он большей степени зависит от библиотеки, я и так попытался оптимизировать расход память, в меру моего разумения.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26 авг 2016, 22:53
Откуда: Красноярск

nRF24L01+ пользовательский блока на Си

Сообщение zikkgaz24 »

привет слимпер проверил твои новые блоки есть плюсы однако появился вопрос снова нету времени задержки данных в блоке приема думаю не лишнее и главный вопрос такой работают блоки только если использовать адрес устройства с номером 0 и 1 с другими номерами не работают
это так и должно быть или где то ошибки есть ?
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

zikkgaz24 писал(а):главный вопрос такой работают блоки только если использовать адрес устройства с номером 0 и 1 с другими номерами не работают это так и должно быть или где то ошибки есть ?
Посмотри видео из сообщения 168 или поищите статьи про RF24Network там целая система организации адресов.
Да и адреса надо перепрописывать во всех блоках.
zikkgaz24 писал(а):однако появился вопрос снова нету времени задержки данных в блоке приема думаю не лишнее
А вот как раз не вижу в этом необходимости. Если нужно можно и внешней обвязкой сделать. Блоки и так тяжелые получились.

Ну максимум, может понадобится, это импульсный выход  новые данные.

Да и использовать их имеет смысл только если будет сеть из 3 и больше контроллеров.
zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26 авг 2016, 22:53
Откуда: Красноярск

nRF24L01+ пользовательский блока на Си

Сообщение zikkgaz24 »

в моей ситуации как раз имеет смысл именно новых блоков т.к. новая библиотека оптимизирована под аттини и надо только решить с spi
я уже поприбовал вшить блоки в аттини убирая spi ардуино и код шьеться но spi не активный вот
про внешнюю обьвязку поподробней можно а то непонял как это реализовать

Добавлено (31.10.2016, 19:38)
---------------------------------------------
про адреса смотрел и понял что адрет главного должен начинаться с 0 и потом паутиной расходиться непонятно почему так думал может ты знаешь про это
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

zikkgaz24 писал(а):что адрет главного должен начинаться с 0
Ну это проста форма записи восьмеричной системы счисления, также как 0x в начали записи числа означает шестнадцатеричную  систему счисления.
Вот хоть и на английском, но про систему записи адресов 
Но в  FLProg, так записать в числовую переменную нельзя, вот и я тоже до конца не уверен будет ли правильно работать.  
Цитата
zikkgaz24 писал(а):в моей ситуации как раз имеет смысл именно новых блоков т.к. новая библиотека оптимизирована под аттини и надо только решить с spi
вот тут посмотри
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

zikkgaz24 писал(а):вопрос снова нету времени задержки данных в блоке приема думаю не лишнее и
zikkgaz24 писал(а):про внешнюю обьвязку поподробней можно а то непонял как это реализовать
Вот доработал блоки, добавил выход new - одиночный импульс при получении новых данных.
А внешняя обвязка примерно такая
[spoiler=Спойлер][/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06 сен 2015, 13:12
Откуда: Тюмень-Баку
Имя: Максим

nRF24L01+ пользовательский блока на Си

Сообщение Max »

Вот еще небольшой вопрос. Я так понял, что сейчас в блоке созданным Дмитрием NRF, можно сказать, работает "открытым текстом". Возможно ли дополнить блок схемой шифрования и дешифрирования данных?
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

Max писал(а):Я так понял, что сейчас в блоке созданным Дмитрием NRF, можно сказать, работает "открытым текстом". Возможно ли дополнить блок схемой шифрования и дешифрирования данных?
Я не разрабатываю блок с нуля, по сути сделал блоки использую всего несколько из функций имеющихся в библиотеки RF24Network, но системы шифрования я там не видел.
Да и если честно не очень понимаю зачем уже так нужно шифрован, это же не Wifi, самодельная сеть с непонятным набором данных? 
Да и в шифровании я полный ноль. 
Но если сильно надо, можно наверное и блок с шифрованием сделать, но это если кто то готовую библиотеку шифрования найдет, сам я таким точно заниматься не буду. Знаний не хватить, а желания сильно углубляться в эту тему  нет.
CraCk
Лейтенант
Сообщения: 674
Зарегистрирован: 10 сен 2015, 21:51
Благодарил (а): 1 раз
Поблагодарили: 1 раз

nRF24L01+ пользовательский блока на Си

Сообщение CraCk »

Слимпер писал(а):но это если кто то готовую библиотеку шифрования найдет,
https://www.youtube.com/watch?v=qiOaeGK ... e=youtu.be
zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26 авг 2016, 22:53
Откуда: Красноярск

nRF24L01+ пользовательский блока на Си

Сообщение zikkgaz24 »

привет слимпер посмотрел ссылку и да я читал и должно работать но чет пока пробовал один раз и не пошло возможно с нрф что то первый раз пробую версию мини тут приобрел еще одну как домой попаду так проверю
и исходя из статьи их можно подключать двумя вариантами с 3 или 5 контактов без spi библиотеки вот думаю просто радиомодуль дохлый вот и непошло
если интересно как проверю другой могу сообщить как с аттини все обстоит!!!
Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06 сен 2015, 13:12
Откуда: Тюмень-Баку
Имя: Максим

nRF24L01+ пользовательский блока на Си

Сообщение Max »

Слимпер писал(а):Да и если честно не очень понимаю зачем уже так нужно шифрован, это же не Wifi, самодельная сеть с непонятным набором данных?
Да, если ты просто читаешь какие то данные (температуру, влажность, состояние контактов и т.д.), ну а если управляешь чем нибудь? Тут конечно надо защиту.
zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26 авг 2016, 22:53
Откуда: Красноярск

nRF24L01+ пользовательский блока на Си

Сообщение zikkgaz24 »

и да мне развязка такая не пойдет так как я использую диалоговую передачу данных и постоянная задержка все рушит ! по этому хотел спросить старые блоки смотрел и сравнивал код и увидел много идентичного по коду и то что ты дополнял для моих нужд . если выбрать эти данные части кода и вставить в новые будет работать или нет если да то какой блок надо редоктировать основной или приема

Добавлено (02.11.2016, 18:14)
---------------------------------------------
Max, тебе вопрос зачем шифровка ? ты пробовал сканером смотреть свои же данные управления?
Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06 сен 2015, 13:12
Откуда: Тюмень-Баку
Имя: Максим

nRF24L01+ пользовательский блока на Си

Сообщение Max »

zikkgaz24 писал(а):Max, тебе вопрос зачем шифровка ? ты пробовал сканером смотреть свои же данные управления?
Сканера у меня нет. А зачем, я выше написал.
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

zikkgaz24 писал(а):и да мне развязка такая не пойдет так как я использую диалоговую передачу данных и постоянная задержка все рушит !
Странно, я на внешних блоках сделал ровно тоже, что делал кодом в блоках. По получению новых данных, они выдаются на выход, а по прошествии стольких то миллисекунд, в места них выдаются нули.
zikkgaz24 писал(а):по этому хотел спросить старые блоки смотрел и сравнивал код и увидел много идентичного по коду и то что ты дополнял для моих нужд . если выбрать эти данные части кода и вставить в новые будет работать или нет если да то какой блок надо редоктировать основной или приема
По идеи вполне все должно сработать. А править надо блоки приема.

Добавлено (02.11.2016, 20:01)
---------------------------------------------
Ну там похоже, может закодировать только одиночный байт. Может и достаточно будет для каких то целей.

Вот сайт с примерами на который идет ссылка в видео.
zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26 авг 2016, 22:53
Откуда: Красноярск

nRF24L01+ пользовательский блока на Си

Сообщение zikkgaz24 »

Max, собери ты сканер простой есть даже пример проверки нрф и увидешь обсолютно непонятные цифры которые ни как не сопоставить и определить что это на крайняк можеш использовать блок рандум -случайное число и плюсуй свои команды и будет тебе шифровка

Добавлено (03.11.2016, 19:37)
---------------------------------------------
Слимпер, подскажи в блоке приема надо просто вставить эти куски кода или как то иначе?
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

zikkgaz24 писал(а):Слимпер, подскажи в блоке приема надо просто вставить эти куски кода или как то иначе?
Ну попробуй сделать как кажется правильным  и скинь в личку, если будут ошибки поправлю.
Последний раз редактировалось Слимпер 03 ноя 2016, 20:06, всего редактировалось 1 раз.
zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26 авг 2016, 22:53
Откуда: Красноярск

nRF24L01+ пользовательский блока на Си

Сообщение zikkgaz24 »

ок понял
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

Слимпер писал(а):Ну там похоже, может закодировать только одиночный байт. Может и достаточно будет для каких то целей.
Не я неправильно понял принцип работы KeeLoq. Данные передаются открыто, но в мести с ними передается зашифрованный номер счетчика команд, если на приемнике после рашифровки номер счетчика совпадают, значит команды обрабатываются.
Но, посмотрел код библиотеки, и мне не нравится там циклы из 528 операций, да и сам механизм записи значения счетчика в EEPROM
Ответить

Вернуться в «Разработка пользовательских блоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей