Nrf24l01 + bme280 + mp5060 + dht11

Estoy tratando de que los sensores envíen la información a través del Modulo NRF24L01(1000m) pero el código si se compila, pero a la hora de abrir el monitor serial solo aparecen ceros "0" pero no se ve nada de los sensores . alguien me podría ayudar.

#include <Wire.h>
#include <SPI.h> // incluye libreria SPI para comunicacion con el modulo
#include <RH_NRF24.h> // incluye la seccion NRF24 de la libreria RadioHead
#include <RF24.h>
RH_NRF24 nrf24; // crea objeto con valores por defecto para bus SPI
// y pin digital numero 8 para CE
RF24 radio(8, 10); //CE, CSN
String str_humedad; // string para almacenar valor de humedad

struct MyData
{
float temperatura ;
float presion;
float altitud ;
float P0;
float GRx ;
float GRy;
float GRz ;
float ACx ;
float ACy;
float ACz ;
};
typedef struct package Package;
MyData data;
const byte identificacion[6] = "00001";
void setup() {
Serial.begin(9600); // inicializa monitor serie a 9600 bps
radio.begin();
radio.setChannel(115);
radio.setPALevel(RF24_PA_MAX);
radio.setDataRate( RF24_250KBPS ) ;
radio.openWritingPipe(identificacion);
radio.stopListening();
delay(1000);
}

void loop()
{
uint8_t buf[5]; // buffer de 5 posiciones
uint8_t buflen = sizeof(buf); // obtiene longitud del buffer

if (radio.available());{
char presion[32] = "";
radio.read(&data.presion, sizeof(data.presion));
Serial.print(data.presion, "hPA");
char Humedad[32] = "";
radio.read(&str_humedad, sizeof(str_humedad));
Serial.print(str_humedad);
char temperatura[32] = "";
radio.read(&data.temperatura, sizeof(data.temperatura));
Serial.print(data.temperatura);
char altitud[32] = "";
radio.read(&data.altitud, sizeof(data.altitud));
Serial.print(data.altitud);
delay(1000);
char AceleracinX[32];
radio.read(&data.ACx, sizeof(data.ACx));
Serial.print(data.ACx, "hPA");
char AceleracinY[32];
radio.read(&data.ACy, sizeof(data.ACy));
Serial.print(data.ACy, "hPA");
char AceleracinZ[32];
radio.read(&data.ACz, sizeof(data.ACz));
Serial.print(data.ACz, "hPA");
delay(1000);
char GiroX[32];
radio.read(&data.GRx, sizeof(data.GRx));
Serial.print(data.GRx, "hPA");
char GiroY[32];
radio.read(&data.GRy, sizeof(data.GRy));
Serial.print(data.GRy);
char GiroZ[32];
radio.read(&data.ACz, sizeof(data.ACz));
Serial.print(data.ACz);

}

}

// Segundo programa lado Remoto
#include <Wire.h>
#include <SPI.h> // incluye libreria SPI para comunicacion con el modulo
#include <RH_NRF24.h> // incluye la seccion NRF24 de la libreria RadioHead
#include <DHT.h> // incluye libreria necesaria para el uso del sensor DHT11
#define DHTTYPE DHT11 // incluye libreria necesaria para el uso del sensor DHT11
#include <Adafruit_BMP280.h>
#include <Adafruit_MPU6050.h>
#include <RF24.h>
//#define SEALEVELPRESSURE_HPA (1013.25)
RH_NRF24 nrf24;
Adafruit_BMP280 bme(4);
struct MyData
{
float temperatura ;
float presion;
float altitud ;
float P0;
float GRx ;
float GRy;
float GRz ;
float ACx ;
float ACy;
float ACz ;

};
typedef struct package Package;
MyData data;
// crea objeto con valores por defecto para bus SPI
// y pin digital numero 8 para CE
RF24 radio(8, 10); //CE, CSN
const byte identificacion[6] = "00001";
#define SENSOR 4 // establece a SENSOR con numero 4, pin de senal del DHT11
DHT dht(SENSOR, DHT11); // crea objeto dht
String str_humedad;
int HUMEDAD; // variable para almacenar valor de humedad
Adafruit_MPU6050 mpu;
Adafruit_Sensor *mpu_accel, *mpu_gyro;
void setup()
{
Serial.begin(9600); // inicializa monitor serie a 9600 bps
mpu.begin();
bme.begin();
dht.begin();
radio.begin();
radio.setChannel(115);
radio.setPALevel(RF24_PA_MAX);
radio.setDataRate( RF24_250KBPS ) ;
radio.openWritingPipe(identificacion);
radio.startListening();
delay(1000); // RF muestra texto
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);

mpu_accel = mpu.getAccelerometerSensor();
mpu_accel->printSensorDetails();

mpu_gyro = mpu.getGyroSensor();
mpu_gyro->printSensorDetails();
}

void loop()
{
sensors_event_t accel;
sensors_event_t gyro;

mpu_accel->getEvent(&accel);
mpu_gyro->getEvent(&gyro);

data.ACx= accel.acceleration.x;
data.ACy= accel.acceleration.y;
data.ACz= accel.acceleration.z;

data.GRx= gyro.gyro.x;
data.GRy= gyro.gyro.y;
data.GRz= gyro.gyro.z;
data.P0 = bme.readPressure()/100;//TEMPERATURA = dht.readTemperature(); // obtiene y almacena temperatura
HUMEDAD = dht.readHumidity(); // obtiene y almacena humedad
data.altitud =bme.readAltitude(data.P0);
data.temperatura = bme.readTemperature();
data.presion = bme.readPressure();
radio.write(&data, sizeof(data));
radio.write(&HUMEDAD, sizeof(HUMEDAD));
delay(1000);
// demora de 1 segundo entre envios
}

}Texto preformateado

Moví tu publicación al subforo español.
por favor use inglés en el foro general.

Moderador:
Por favor, lee las Normas del foro
Si posteas en el foro en inglés usa idioma inglés para expresarte.
Si escribes en español debes usar el foro Arduino en español.
Edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>


Edita el tiulto usando expresión en español?
A quien querías engañar con titulo en inglés y cuerpo del mensaje en español?
Incluso si todo estaba en inglés pero el comentario esta en español, igual te lo mueven a este foro.
No sigas respondiendo si corregir lo que te he solicitado!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.