Ключевое ?лово

vk

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Софт:обсуждение программного обеспечения для умного дома

ТЕМА: Не работает передача nRF24LE1

Не работает передача nRF24LE1 17 Май 2016 14:33 #12649

  • Андрей33
  • Андрей33 аватар
  • Не в сети
  • Новый участник
  • Сообщений: 1
  • Репутация: 0
Добрый день!
Пытаюсь передавать температуру с помощью модуля nrf24le1 с DS1820 на Raspberry с подключенным модулем nrf24l01.
Код передатчика генерируется конструктором.
На приемнике код следующий:
#include <iostream> //for usleep
#include <time.h> //for CLOCK_REALTIME
#include <RF24/RF24.h> //for radio
#include <stdio.h> //for printf
#include <math.h>

using namespace std;

// Setup for GPIO 22 CE and CE0 CSN with SPI Speed @ 8Mhz
RF24 radio(RPI_V2_GPIO_P1_15, RPI_V2_GPIO_P1_24, BCM2835_SPI_SPEED_8MHZ);

// Radio pipe addresses for the 2 nodes to communicate.
// const uint8_t pipes[][6] = {"1Node","2Node"};

typedef struct{
unsigned char identifier;// номер передатчика. Неизменяемые данные
unsigned long count;// счетчик передач для контроля качества канала.
float temperature_Sensor; //передаём температуру.
}
nf1;
nf1 clientnf1;

int main(int argc, char** argv){
timespec time;
// for some reason read() reads 8 bytes, not 1, so make sure we allocate
// enough memory; otherwise it scribbles over other memory
// int paylad[8];

radio.begin();
radio.setChannel(1);
radio.setRetries(15,15);
radio.printDetails();

// radio.openWritingPipe(pipes[0]);
// radio.openReadingPipe(1,pipes[1]);

radio.openWritingPipe(0xF0F0F0F0E1);
radio.openReadingPipe(0,0xF0F0F0F0D2LL);
radio.startListening();

while (1) {

if ( radio.available() ) {
printf("Begin");
radio.read( &clientnf1, sizeof(clientnf1) );
// clock_gettime(CLOCK_REALTIME, &time);
// int temp = paylad[0];
// float temp1 = clientnf1.temperature_Sensor;
// double tempC = temp/100.00;
printf("Received: %2.2f \n", clientnf1.count);
// FILE *file_temp = fopen("/home/pi/temperature", "w");
// fprintf(file_temp, "%2.2f", tempC);
// fclose(file_temp);
}
delay(1000);
}
returt 0;
}

Программа компилируется без ошибок, но температуру не отображает. Пробовал в строке radio.openReadingPipe все цифры от 0 до 5.
Модуль малиной определяется:
root@raspberrypi:~# ./test.out
================ SPI Configuration ================
CSN Pin = CE0 (PI Hardware Driven)
CE Pin = Custom GPIO22
Clock Speed = 8 Mhz
================ NRF Configuration ================
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0d2 0xc2c2c2c2c2
RX_ADDR_P2-5 = 0xc3 0xc4 0xd2 0xc6
TX_ADDR = 0xf0f0f0f0e1
RX_PW_P0-6 = 0x20 0x00 0x00 0x00 0x20 0x00
EN_AA = 0x3f
EN_RXADDR = 0x13
RF_CH = 0x01
RF_SETUP = 0x07
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX

В чем может быть проблема?
Спасибо!
Администратор запретил публиковать записи гостям.

Не работает передача nRF24LE1 22 Июль 2016 18:07 #13711

  • Mishustik
  • Mishustik аватар
  • Не в сети
  • Новый участник
  • Сообщений: 2
  • Репутация: 0
Андрей, получилось ли решить проблему?
Администратор запретил публиковать записи гостям.
Модераторы: FlyRouter, Dolfik
Время создания страницы: 0.100 секунд

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.