Большие посылки по nRF24
- Войдите на сайт для отправки комментариев
Колхозю в свободное время метеостанцию на связке двух ардуин с помощью радиопередатчиков nRF24. Одна данные собирает, формирует структуру и пересылает данные другий, вторая посылку разбирает, показывает и записывает.
Читал в интернетах про этот передатчик и нашел инфу, что буфер у него 32 байта на прием и передачу.
Сейчас структура имеет такой вид:
struct sendtemp {
uint32_t dt; // Время unixtime
float outtemp; // Температура на улице
float intemp; // Температура внутри
float pres; // Давление
float humin; // Влажность относительная
float humout; // Влажность относительная
};
Если я правильно понимаю, то сейчас передается 5*4+4=24 байта.
Кто-нибудь сталкивался с проблемой передачи больших объемов данных через nRF24? Каким макаром это обойти можно?
Отлавливание прерываний, разбитие на более мелкие посылки с вводом дополнительных полей.
На принимающей стороне в бесконечном цикле проверяется наличие данных в буфере и обработка по мере поступления.
да передавай сразу 24 байта. вот только как флоаты передавать хз. я домножал и передавал целые числа
хотя флоаты как разбивать и собирать наверно можно взять из этой темы
http://arduino.ru/forum/programmirovanie/zapis-i-chtenie-eeprom-peremenn...
Флоаты нормально уходят. Хреновина эта давно работает.
Меня волнует ситуация, когда структура станет больше 32 байт. Я так понимаю, что буфера никакого нет для приема, кроме того, что в самом чипе передатчика. Я так понимаю, что передатчик разобьет их на пакеты по 32 байта и протолкнет по воздуху, приемник полчит первый пакет, потом второй, который вытолкнет первый в астрал, если его никто не прочитает.
больше надо наверно разбивать самому. если передать больше 32 байт что будет незнаю. не проверял