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