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

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

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

#261

Сообщение Слимпер » 20.11.2016{, 11:36}

Во общем можно сказать эксперименты по созданию блока с шифрованной передачей данных, принесли свой результат.

Сделал два дополнительных блока.
Для передачи команд управления в шифрованном виде.

Общий принцип взял из [url=http://]статьи[/url]
СпойлерПоказать
Использовал библиотеку AESLib

В обоих  блоках вставляются три 16 Байтных  ключа, комплект ключей должен быть одинаковый.

Массив шифруемых и передаваемых между устройствами данных тоже состоит из 16 байт.

Для генерации случайных числе используется один из аналоговых входов, (выбирается в параметрах). Этот порт нельзя использовать в проекте. И он не должен быть подключен, или подтянут к земле(питанию).

Для большей универсальности одновременно передается две переменные:
command - код команды byte
setPoint - уставка, int.

Насчет надежности этой системы, я судить не могу, в шифровании полный ноль.

Проверял работает, но нужно дополнительное тестирование.
СпойлерПоказать
Вообще хотел упомянуть, что мой старый варинат блока для NFR24  и текущий NRF24_Network конфликтуют. Перед использованием нового, надо  удалять папку
Flprog\ide\libraries\RF24-master
Добавлено (20.11.2016, 11:36)
---------------------------------------------
Народ, вопрос тем кого интересует доведение новой версии блоков до ума.

Какие параметры необходимо сделать настраиваемыми после прошивки контроллера.
А какие можно оставить в виде параметров.
Просто каждый параметр перенесенный на входы увеличит размеры блоков.
Вложения
RF24Network_.rar
(313.63 КБ) 62 скачивания
8109871.png
Последний раз редактировалось Слимпер 19.11.2016{, 10:38}, всего редактировалось 1 раз.

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

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

#262

Сообщение CraCk » 20.11.2016{, 14:20}

Слимпер писал(а):Этот порт нельзя использовать в проекте.
Вот это ход 
Программный рандом чем плох?
CraCk писал(а):А какие можно оставить в виде параметров.
Один вариант как есть
Второй вариант
Channe
Level
Rate
AddressDevice
Третий вариант
AddressDevice
Четвертый
Channe
AddressDevice
Последний раз редактировалось CraCk 20.11.2016{, 14:21}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

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

#263

Сообщение Слимпер » 20.11.2016{, 17:45}

CraCk писал(а):Вот это ход  Программный рандом чем плох?
Вот описание функции рандом

Кстати в FLprog  при генерации случайных чисел, тоже Аналговый порт 0 используется.

Добавлено (20.11.2016, 17:45)
---------------------------------------------
zikkgaz24, Опробовал схему подключения к ATtiny85 nRF24L01 где используется только 3 пина, работает.

За одним протестировал режим сон, что реализован в RF24Network.
Связка  ATtiny85+nRF24L01, рабочем режиме ~17мА, в режиме сна 0,56мА.
Правда сон получился только по таймеру. Но это похоже из-за того вход с аппаратным прерыванием уже занят.
За то датчик который будет передавать данные раз в несколько секунд сделать можно.

zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26.08.2016{, 22:53}
Репутация: 0
Откуда: Красноярск

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

#264

Сообщение zikkgaz24 » 20.11.2016{, 20:43}

Слимпер писал(а):Опробовал схему подключения к ATtiny85 nRF24L01 где используется только 3 пина, работает.
а питание также от блока и стабилизатора?

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

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

#265

Сообщение Слимпер » 20.11.2016{, 20:50}

zikkgaz24 писал(а):а питание также от блока и стабилизатора?
 ATtiny85 -5В  nRF24L01 через светодиод получилось 3.4В 
Согласно  схеме от сюда, и здесь похожая, в части подключения модуля к МК.

zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26.08.2016{, 22:53}
Репутация: 0
Откуда: Красноярск

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

#266

Сообщение zikkgaz24 » 23.11.2016{, 13:49}

Слимпер писал(а):За одним протестировал режим сон, что реализован в RF24Network.
Слимпер писал(а):Правда сон получился только по таймеру
подробней можно
блоки те которые до этого сделал?
и таймер какой?

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

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

#267

Сообщение Слимпер » 23.11.2016{, 14:16}

zikkgaz24 писал(а):подробней можно блоки те которые до этого сделал?и таймер какой?
Не я просто проверил функции которые есть в библиотеки RF24Network, а одна из таких функций, это сон, с возможностью пробуждения по таймеру и по входу с прерыванием.

Но ввиду того,  что INT0 (нога 7) заняты SCK при подключении nRF24L01, то пробуждение по сигналу  с ноги IRQ модуля не возможно. Так, что получилось будить только по внутреннему таймеру.

zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26.08.2016{, 22:53}
Репутация: 0
Откуда: Красноярск

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

#268

Сообщение zikkgaz24 » 23.11.2016{, 14:44}

Слимпер писал(а):Так, что получилось будить только по внутреннему таймеру.
что использовал?

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

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

#269

Сообщение Слимпер » 23.11.2016{, 14:58}

zikkgaz24 писал(а):что использовал?
Аппаратный таймер МК.
С точки зрения программы, пару функций (команд) вызвал, настроив спать на 5 секунд, затем проснутся, сделать несколько операций и опять заснуть.

Будет время по тестирую, может доделаю еще один блок в дополнении к серии  RF24Network.

zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26.08.2016{, 22:53}
Репутация: 0
Откуда: Красноярск

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

#270

Сообщение zikkgaz24 » 23.11.2016{, 15:38}

получаеться те блоки сна не канают для использования

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

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

#271

Сообщение Слимпер » 24.11.2016{, 20:20}

zikkgaz24 писал(а):получаеться те блоки сна не канают для использования
На Attiny85, да не будет работать.

Добавлено (24.11.2016, 20:20)
---------------------------------------------
Думаю в выходные выложить бета версию полного комплекта блоков, решил вынести всё же параметры в виде входов, так более функционально. Но срабатывать эти параметры будут только в момент загрузки контроллера. Т.е. сменил параметр,  надо перезагрузить контроллер для вступления изменений в силу. Это сделано для оптимизации скорости исполнения блоков.
 
 Единственное в блоках Шифрования, ключи шифрования придется задавать, аж  через редактирования блоков, не вижу способа передать в блок три массива по 16 цифр.

zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26.08.2016{, 22:53}
Репутация: 0
Откуда: Красноярск

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

#272

Сообщение zikkgaz24 » 25.11.2016{, 14:46}

Тогда какой код использовал для сна и просыпания Тини по времени?

Добавлено (25.11.2016, 14:46)
---------------------------------------------
Тогда какой код использовал для сна и просыпания Тини по времени?

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

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

#273

Сообщение Слимпер » 26.11.2016{, 08:29}

zikkgaz24 писал(а):Тогда какой код использовал для сна и просыпания Тини по времени?
Чуть позже, проведя ряд тестов, думаю сделаю блок со засыпанием. 
А код
СпойлерПоказать
В секции Setup

zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26.08.2016{, 22:53}
Репутация: 0
Откуда: Красноярск

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

#274

Сообщение zikkgaz24 » 26.11.2016{, 08:35}

привет вопрос мож ты поймешь а то я чет в стопоре в связке тини и нрф при питании с блока 3.3в все работает а вот от батарейки RS2032 не пашет хотя должно, есть много проектов, где лежит подвох
сама тини от батарейки пашет на ура а нрф чет не хотит , мож с кондером чет напутал стоит 1мкф керамика смд
что подскажешь?

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

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

#275

Сообщение Слимпер » 26.11.2016{, 16:43}

zikkgaz24 писал(а):сама тини от батарейки пашет на ура а нрф чет не хотит , мож с кондером чет напутал стоит 1мкф керамика смд что подскажешь?
Попробуй еще 100мкФ электролит поставить, на пробу, я их при подключении ставлю.
Последний раз редактировалось Слимпер 26.11.2016{, 16:44}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

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

#276

Сообщение Слимпер » 26.11.2016{, 17:06}

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

Главная особенность блоков автоматическая передача данные по сети блоков, достаточно правильно настроить систему адресации.



Состав:
Главный блок - настраивает связь. Является обязательным. Добавить можно только один блок.
Отдельный главный блок для ATTiny, подключение NRF по 3 проводной схеме.

Передача 5 числе INT - пара блоков, один прием, один передача. Возможно применение нескольких в проекте, при условии разных адресов и/или идентификатор сообщения (typeMessage).

Передача строки - пара блоков, один прием, один передача. Возможно применение нескольких в проекте, при условии разных адресов и/или идентификатор сообщения (typeMessage).

Блок передачи шифрованных команд  - пара блоков, один прием, один передача. Возможно применение нескольких в проекте, при условии разных адресов.

В связи не совместимости старой и новой версии.
СпойлерПоказать
Тем кто использовал прошлую версию  блоков (не сетевую) необходимо удалить папку
RF24-master из папки Flprog\ide\libraries\ или c:\Users\Имя пользователя\Documents\Arduino\libraries\
Добавлено (26.11.2016, 16:50)
---------------------------------------------
Тем кто пробовал тестовые блоки из серии RF24Network
СпойлерПоказать
Так как было сделано несколько измений в файле RF24Network_config.h надо удалить
RF24Network из папки Flprog\ide\libraries\ или c:\Users\Имя пользователя\Documents\Arduino\libraries\

Так будет установлена заново библиотека.
Добавлено (26.11.2016, 17:00)
---------------------------------------------
Пояснения по адресации

Сеть RF24 прекрасно работает с несколькими узлами, но она была разработана для умного дома полного модулей. Узлы автоматически сконфигурированы в топологии дерева, в зависимости от их адреса. Узлы общаться напрямую только со своим родителем и своими детьми. А уже сеть будет автоматически отправлять сообщения в нужное место.

Узел 00 это базовый узел. Узлы 01-05 непосредственно взаимодействуют с узлом 00, но не друг с другом. Таким образом чтобы узлу 01 передать сообщение на узел 02, нужно будет пройти через узел 00. Узлы 011, 021, 031 и так далее — это дети узла 01. Таким образом, для узла 011, чтобы отправить сообщение на узел 02, сообщение пойдет к 01, а потом к 00, и только после этого на 02.
СпойлерПоказать
Изображение
Удалось добиться того, что адреса нужно задавать именно так, как описывается и показано на картинках. Ограничение в 5 уровней, может возможно и больше не уверен. Хотя мне сложно представить сеть таких размеров. Да и задержки на доставку там будут значительными.

Добавлено (26.11.2016, 17:06)
---------------------------------------------
По результатам тестирования, наверное, создам новый материал в Блоках пользователей.
Вложения
5061724.png
Последний раз редактировалось Слимпер 26.11.2016{, 17:01}, всего редактировалось 1 раз.

zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26.08.2016{, 22:53}
Репутация: 0
Откуда: Красноярск

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

#277

Сообщение zikkgaz24 » 27.11.2016{, 06:07}

ок бум пробовать !!!

Добавлено (27.11.2016, 00:34)
---------------------------------------------
Слимпер, подскажи пожалуйста а тот блок инт 1 прием со сбросом сделаный для меня будет работать с новыми блоками или нет???

Добавлено (27.11.2016, 06:00)
---------------------------------------------
Слимпер,  первая проба новых блоков дает ошибки
СпойлерПоказать
Arduino: 1.6.3 (Windows 7), Плата"ATtiny x5 series, CPU, ATtiny85, 1 MHz (internal), B.O.D. Disabled"

d:/програмы ардуино/flprog_2-1-1_portable/ide/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: C:\Users\ZIKKGA~1\AppData\Local\Temp\build967015470409681058.tmp/pr4.cpp.elf section `.text' will not fit in region `text'

d:/програмы ардуино/flprog_2-1-1_portable/ide/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: region `text' overflowed by 2356 bytes

collect2.exe: error: ld returned 1 exit status

Ошибка компиляции.
Добавлено (27.11.2016, 06:07)
---------------------------------------------

СпойлерПоказать
Arduino: 1.6.3 (Windows 7), Плата"ATtiny x5 series, CPU, ATtiny85, 1 MHz (internal), B.O.D. Disabled"

d:/програмы ардуино/flprog_2-1-1_portable/ide/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: C:\Users\ZIKKGA~1\AppData\Local\Temp\build1307737104982112692.tmp/pr7.cpp.elf section `.text' will not fit in region `text'

d:/програмы ардуино/flprog_2-1-1_portable/ide/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: region `text' overflowed by 2360 bytes

collect2.exe: error: ld returned 1 exit status

Ошибка компиляции.

  Это сообщение будет содержать больше информации чем
  "Отображать вывод во время компиляции"
  включено в Файл > Настройки

zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26.08.2016{, 22:53}
Репутация: 0
Откуда: Красноярск

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

#278

Сообщение zikkgaz24 » 27.11.2016{, 06:26}

вот проект тестовый
Вложения
9183660.png

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

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

#279

Сообщение Слимпер » 27.11.2016{, 07:55}

zikkgaz24 писал(а):подскажи пожалуйста а тот блок инт 1 прием со сбросом сделаный для меня будет работать с новыми блоками или нет???
Вроде должен, только там надо адреса вручную пересчитывать из 8 в 10 систему.

А ошибка по моему вызвана тем что памяти не хватает, шифрование очень тяжелый блок.

zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26.08.2016{, 22:53}
Репутация: 0
Откуда: Красноярск

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

#280

Сообщение zikkgaz24 » 27.11.2016{, 08:02}

то же самое и с мегой идет

Ответить

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