The problem is TX Code sent data to RX Code,in the RX Code should be get data from TX and sent them to SINK node
TX1 to RX1
TX2 to RX2
RX1 & RX2 to SINK (multinodes)
I have been succesfull when sent data from TX1 and 2 to RX1 and 2 by using difference pipe,when I want to sent that data to SINK node i added 3 pipe from RX1,RX2 and SINK and failed to sent data to SINK Node,anybody can help me?
this TX code
#include <nRF24L01.h>
#include <RF24.h>
#include <SPI.h>
#include <DHT.h>
#define DHT1TYPE DHT11
#define DHT1PIN A0
#define DHT2TYPE DHT11
#define DHT2PIN A1
#define DHT3TYPE DHT11
#define DHT3PIN A2
#define DHT4TYPE DHT11
#define DHT4PIN A3
//#define DHT5TYPE DHT11
//#define DHT5PIN A4
//#define DHT6TYPE DHT11
//#define DHT6PIN A5
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
float t1;
float t2;
float t3;
float t4;
DHT dht1(DHT1PIN, DHT1TYPE);
DHT dht2(DHT2PIN, DHT2TYPE);
DHT dht3(DHT3PIN, DHT3TYPE);
DHT dht4(DHT4PIN, DHT4TYPE);
void setup(void)
{
Serial.begin(9600);
SPI.begin();
radio.begin();
radio.openWritingPipe(pipe);
dht1.begin();
dht2.begin();
dht3.begin();
dht4.begin();
}
void loop(void) {
float t1 = dht1.readTemperature();
float t2 = dht2.readTemperature();
float t3 = dht3.readTemperature();
float t4 = dht4.readTemperature();
radio.write(&t1, sizeof(float));
radio.write(&t2, sizeof(float));
radio.write(&t3, sizeof(float));
radio.write(&t4, sizeof(float));
delay(1000);
Serial.print("Temp1: ");
Serial.println(t1);
delay(500);
Serial.print("Temp2: ");
Serial.println(t2);
delay(500);
Serial.print("Temp3: ");
Serial.println(t3);
delay(500);
Serial.print("Temp4: ");
Serial.println(t4);
delay(500);
}
this RX Code
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9,10);
const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL };
float t1;
float t2;
float t3;
float t4;
void setup(void) {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1, pipes[1]);
radio.startListening();
delay(1000);
Serial.begin(9600);
radio.begin();
radio.setDataRate(RF24_250KBPS);
radio.openWritingPipe(pipes[1]);
radio.startListening();
}
void loop(void)
{
if ( radio.available() ) {
radio.read(&t1, sizeof(t1));
Serial.print("Temp1: ");
Serial.println(t1);
delay(500);
radio.read(&t2, sizeof(t2));
Serial.print("Temp2: ");
Serial.println(t2);
delay(500);
radio.read(&t3, sizeof(t3));
Serial.print("Temp3: ");
Serial.println(t3);
delay(500);
radio.read(&t4, sizeof(t4));
Serial.print("Temp4: ");
Serial.println(t4);
delay(500);
//radio.read(&t5, sizeof(t5));
//Serial.print("Temp5: ");
//Serial.println(t5);
//delay(500);
radio.write(&t1, sizeof(float));
radio.write(&t2, sizeof(float));
radio.write(&t3, sizeof(float));
radio.write(&t4, sizeof(float));
delay(1000);
}
}
this SINK node
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9,10);
const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL };
float t1,t2,t3,t4;
float h1,h2,h3,h4;
void setup(void) {
Serial.begin(9600);
radio.begin();
radio.setDataRate(RF24_250KBPS);
radio.openReadingPipe(1, pipes[1]);
radio.openReadingPipe(2, pipes[2]);
radio.startListening();
delay(1000);
}
void loop(void) {
if ( radio.available() )
{
delay(50);
radio.read(&t1, sizeof(t1));
Serial.print("T1: ");
Serial.println(t1);
radio.read(&t2, sizeof(t2));
Serial.print("T2: ");
Serial.println(t2);
radio.read(&t3, sizeof(t3));
Serial.print("T3: ");
Serial.println(t3);
radio.read(&t4, sizeof(t4));
Serial.print("T4: ");
Serial.println(t4);
delay(500);
radio.read(&h1, sizeof(h1));
Serial.print("H1: ");
Serial.println(h1);
radio.read(&h2, sizeof(h2));
Serial.print("H2: ");
Serial.println(h2);
radio.read(&h3, sizeof(h3));
Serial.print("H3: ");
Serial.println(h3);
radio.read(&h4, sizeof(h4));
Serial.print("H4: ");
Serial.println(h4);
}
else
{
Serial.println("No radio available");
}
delay(1000);
}