2016-03-08 3 views
4

Я пытаюсь получить данные своего датчика с моей малины Pi, используя сетевой приемник nrf24l01 +.nrf24l01 + между ардуино и малиной Pi в NodeJS

Я отправляю его с платы Arduino nano. Вот установка моего Arduino:

STATUS  = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 
RX_ADDR_P0-1  = 0xcccccc3ccc 0xcccccc3c3c 
RX_ADDR_P2-5  = 0x33 0xce 0x3e 0xe3 
TX_ADDR  = 0xcccccccc3c 
RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20 
EN_AA  = 0x3e 
EN_RXADDR = 0x3f 
RF_CH  = 0x5a 
RF_SETUP  = 0x07 
CONFIG  = 0x0f 
DYNPD/FEATURE = 0x3f 0x04 
Data Rate = 1MBPS 
Model  = nRF24L01+ 
CRC Length = 16 bits 
PA Power  = PA_MAX 

Мой Raspberry Pi подключен с NRF24L01 + через GPIO. Я убедился, что соединение в порядке, используя пример C++, приведенный на https://github.com/TMRh20/RF24:

RF24 radio(RPI_BPLUS_GPIO_J8_15,RPI_BPLUS_GPIO_J8_24, BCM2835_SPI_SPEED_8MHZ); 

Данные OK. Теперь я хочу использовать программу nodeJS для получения этих данных. Я использую эту библиотеку: https://github.com/natevw/node-nrf

код очень прост, но почему-то не работает (консоль молчит):

var spiDev = "/dev/spidev0.0"; 
var cePin = 15; //RPI_BPLUS_GPIO_J8_15 
var irqPin = null; 
var channel = 0x5a; //90 

var radio = require('nrf').connect(spiDev, cePin, irqPin); 

radio 
    .channel(channel) 
    .dataRate('1Mbps') 
    .crcBytes(1) 
// .autoRetransmit({count:15, delay:4000}) 
    ; 

radio.begin(function() { 
    var rx = radio.openPipe('rx', 0xcccccccc3c); 
    rx.pipe(process.stdout); 
}); 

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

Благодаря

ответ

0

Обычно, чтобы узнать, что случилось с СИФ, вы должны начать с основ:

  1. Попробуйте проще НРФ конфиги, чтобы проверить, если его работы, особенно с не CRC байт и т.д. .
  2. Попробуйте использовать динамическую полезную нагрузку и попробуйте фиксированный размер полезной нагрузки с обоих концов.
  3. Auto подтверждени также может быть проблемой (обратите внимание, что при автоматическом изведе включена, CRC не может быть отключен, поскольку она используется для обеспечения подтверждения передачи в этом режиме).
  4. Убедитесь, что Длина CRC Совместимость на обоих концах. В вашем примере на Arduino у вас есть CRC Length = 16 bits ли малина настроена с radio.crcBytes(1).
  5. Не полагайтесь на значения по умолчанию, всегда обеспечивают такую ​​же полную конфигурацию на обоих концах.

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