nRF24-Batch icon indicating copy to clipboard operation
nRF24-Batch copied to clipboard

Flipper Zero application for nRF24L01 external board. Send batch commands.

nRF24-Batch

Flipper Zero application for nRF24L01 external board. Sends batch commands.

Приложение для Flipper Zero, предназначено для отправки пакетных команд на удаленные устройства, использующие радио nRF24L01.

Можно использовать для настройки или чтения данных с удаленного устройства. На удаленной стороне требуется поддержка, ссылка на код для микроконтроллера AVR ниже.

Сначала выбирается файл настройки с описанием команд.
Можно отредактировать адрес и номер канала.
Затем стрелками влево или вправо выбирается нужный режим:

  • Пакетное чтение (Read Batch),
  • Чтение по одной команде (Read cmd),
  • Пакетная запись (Write Batch),
  • Пакетная отправка (Set),
  • Режим прослушивания адреса (Listen).

    Чтение по одной команде - отправка пакета, переключение на прием и отображение на экране, что получили. Длительное нажатие кнопки Ok включает режим автоматического повторного запроса через заданный интервал в секундах (настройка "ReadCmd repeat:").

    Пакетное чтение - выполнение подряд нескольких команд чтения.

    Пакетная запись - фактически отправка пакетов подряд с нужными данными. Предварительно отправляется пакет "Write start", если эта строка присутствует в файле настроек.

    Пакетная отправка - режим пульта, отправка пакетов сразу из списка без вопросов и без преварительного пакета "Write start".

    Режим прослушивания - если в файле присутствует строка "Listen: <адрес>=<поле 1>,<поле 2>,...", где "поле.." название поля. Адрес можно менять - долго нажать кнопку Ok.


    Формат пакета для отправки (payload) задается в виде размера полей структуры в байтах, например, так "Payload struct: 2,1,1", что означает структуру из 3 полей: 2 байта, 1 байт, 1 байт.
    Полученный в ответ пакет (такой же длины как и отправленный) состоит из одного значения (остаток пакета не используется), размерность по умолчанию 1 байт (int8), при необходимости, она задается числом после '*' после имени команды.

    Перед отправкой пакета, он заполняется сначала по шаблону по умолчанию "R default" для запроса чтения, "W default" - для записи.
    Поля разделены - ','. Для "W default" есть специальный маркер 'n', говорящий какое поле будет заполняться значением после '=' из команды "WBatch".
    Можно использовать константы по их имени, они задаются в файле в формате "имя=число", число либо десятичное или шестнадцатеричное с префиксом 0x.
    Затем берутся заполненные значения полей из самой команды ("R:" или "W:").
    Если в конце строки с командой чтения символ '#', то считанное значение будет показано в шестнадцатеричном виде, если '$' - то в десятичном.

    Пакеты чтения "RBatch:", записи "WBatch:", отправки "SBatch:" состоят из списка имен команд "R:" или "W:"("S:"), соответственно, перечисленных через ";".
    "S:" то же самое, что и "W:", только пакет "Write start" отправлен не будет

    Отправка пакета для записи - длительно нажать Ok в списке и подтвердить.
    Перед пакетом команд для записи отправляется пакет "Write start", если эта строка присутствует в файле настроек.

    Значение команды для записи можно редактировать - Ok на списке команд, стрелки - +/- и переход по цифрам, завершить - Назад, вставка цифры - Ok, удаление цифры - длительный Ok.
    Из списка команд в пакетах чтения и записи команды можно убирать - для этого нужно долго нажать на кнопку влево и подтвердить.
    Это нужно, например, чтобы убирать те команды в сохраненном пакете для чтения, для которых нет команды записи.

    Пример файл CO2_mini
    Для устройства на Attiny44A, которое отправляет данные с датчика CO2 на контроллеры, управляющие вентиляцией или проветриватели: https://github.com/vad7/CO2-mini
    Управляет вентиляцией на кухне: https://github.com/vad7/Kitchen_Vent
    Еще один контроллер управление вентиляцией, с регулировкой мощности: https://github.com/vad7/Kitchen_Dimmer
    Более подробно тут: https://vad-7.blogspot.com/2023/07/kitchen-vent.html


    Структура файла настроек:




Mini board for Flipper Zero to connect nRF24l01:



Gerber for mini board with 5V - 3.3V converter LM1117-3.3
Easyeda source