#include #include #include #include #define CE_PIN 0 // Pin CE del módulo nRF24L01P #define CSN_PIN 5 // Pin CSN del módulo nRF24L01P RF24 radio(CE_PIN, CSN_PIN); int paquetedatos=0 float presion; float tempbmp; Adafruit_BMP280 bmp280; unsigned long task_time_ms=0; void fnc_io_i2c_scanner(){ byte error, address; int nDevices=0; for(address = 1; address < 127; address++){ Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0){ Serial.print("I2C device: "); Serial.print("0x"); if(address<16)Serial.print("0"); Serial.println(address,HEX); nDevices++; } } Serial.print("I2C devices found: "); Serial.println(nDevices); } void setup() { radio.begin(); radio.openWritingPipe(0xF0F0F0F0E1LL); // Dirección del canal de escritura Wire.begin(); bmp280.begin(0x76); bmp280.setSampling(Adafruit_BMP280::MODE_NORMAL,Adafruit_BMP280::SAMPLING_X2,Adafruit_BMP280::SAMPLING_X16,Adafruit_BMP280::FILTER_X16,Adafruit_BMP280::STANDBY_MS_500); Serial.begin(9600); Serial.flush(); while(Serial.available()>0)Serial.read(); fnc_io_i2c_scanner(); } void loop() { yield(); if((millis()-task_time_ms)>=1000){ task_time_ms=millis(); presion = (bmp280.readPressure()/100.0); tempbmp = bmp280.readTemperature(); Serial.print("Temperatura: "); Serial.print(tempbmp); Serial.print(" °C, Presion: "); Serial.print(presion); Serial.println(" hPa"); // Enviar datos a través de la radio radio.write(&tempbmp, sizeof(tempbmp)); delay(100); // Añadir un pequeño retraso para evitar interferencias radio.write(&presion, sizeof(presion)); delay(900); // Esperar un segundo antes de la próxima lectura paquetedatos++; } }