i want use NRf24l01 to send and receive Value of DHT11 and i have a error: it doesn't send or receiver value. Please help me! Sory about my English!
I used 1 board mega 2560 ( send) and 1 board Uno (receve).
MEGA 2560:Send.
DHT11: pin data connect with pin 4 on MEga
#include <SPI.h>
#include "RF24.h"
#include "nRF24L01.h"
#include "DHT.h"
const int DHTPIN = 4;
const int DHTTYPE = DHT11;
DHT dht(DHTPIN, DHTTYPE);
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(9,53);
void setup(){
Serial.begin(9600);
dht.begin();
radio.begin();
radio.setAutoAck(1);
radio.setRetries(1,1);
radio.setDataRate(RF24_1MBPS);
radio.setPALevel(RF24_PA_MAX);
radio.setChannel(10);
radio.openWritingPipe(pipe);
}
void loop(){
int h = dht.readHumidity();
int t = dht.readTemperature();
Serial.print("Temp: ");
Serial.println(t);
Serial.print("Huminity: ");
Serial.println(h);
Serial.println();
delay(1000);
int sensor[2]={h,t};
radio.write( sensor, sizeof(sensor) );
}
UNO: receive
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int sensor[2];
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(9,10);
void setup() {
Serial.begin(9600);
radio.begin();
radio.setAutoAck(1);
radio.setDataRate(RF24_1MBPS);
radio.setChannel(10);
radio.openReadingPipe(1,pipe);
radio.startListening();
}
void loop() {
if (radio.available()){
while (radio.available()){
radio.read(sensor, sizeof(sensor));
Serial.println(sensor[0]);
Serial.print("Huminity: ");
Serial.println(sensor[1]);
Serial.print("Temp: ");
delay(1000);
}
}
}
and in window serial monitor of UNO i can receive 0 value.
P/S: In window Serial monitor of Mega Value of DHT 11 is: Huminity: 71, Temp: 30