Большие посылки по nRF24

Radjah
Offline
Зарегистрирован: 06.08.2014

Колхозю в свободное время метеостанцию на связке двух ардуин с помощью радиопередатчиков nRF24. Одна данные собирает, формирует структуру и пересылает данные другий, вторая посылку разбирает, показывает и записывает.

Читал в интернетах про этот передатчик и нашел инфу, что буфер у него 32 байта на прием и передачу.

Сейчас структура имеет такой вид:

struct sendtemp {
  uint32_t dt;       // Время unixtime
  float    outtemp;  // Температура на улице
  float    intemp;   // Температура внутри
  float    pres;     // Давление
  float    humin;    // Влажность относительная
  float    humout;   // Влажность относительная
};

Если я правильно понимаю, то сейчас передается 5*4+4=24 байта.

Кто-нибудь сталкивался с проблемой передачи больших объемов данных через nRF24? Каким макаром это обойти можно?

Отлавливание прерываний, разбитие на более мелкие посылки с вводом дополнительных полей.

На принимающей стороне в бесконечном цикле проверяется наличие данных в буфере и обработка по мере поступления.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да передавай сразу 24 байта. вот только как флоаты передавать хз. я домножал и передавал целые числа

хотя флоаты как разбивать и собирать наверно можно взять из этой темы

http://arduino.ru/forum/programmirovanie/zapis-i-chtenie-eeprom-peremenn...

 

Radjah
Offline
Зарегистрирован: 06.08.2014

Флоаты нормально уходят. Хреновина эта давно работает.

Меня волнует ситуация, когда структура станет больше 32 байт.  Я так понимаю, что буфера никакого нет для приема, кроме того, что в самом чипе передатчика. Я так понимаю, что передатчик разобьет их на пакеты по 32 байта и протолкнет по воздуху, приемник полчит первый пакет, потом второй, который вытолкнет первый в астрал, если его никто не прочитает.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

больше надо наверно разбивать самому. если передать больше 32 байт что будет незнаю. не проверял