0% found this document useful (0 votes)
402 views10 pages

Wireless nRF24L01 Con Temp

This document describes a project using two Arduino nodes transmitting temperature sensor readings via nRF24L01+ modules to a receiver node, which displays the temperatures on an LCD screen. The transmitter nodes each contain a DS18B20 temperature sensor and transmit the temperature over radio frequency to the receiver using nRF24L01+ modules. The receiver node displays the two temperatures sequentially on a 16x2 LCD screen connected via I2C. Libraries are used to interface with the temperature sensors, radio modules and LCD display.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
402 views10 pages

Wireless nRF24L01 Con Temp

This document describes a project using two Arduino nodes transmitting temperature sensor readings via nRF24L01+ modules to a receiver node, which displays the temperatures on an LCD screen. The transmitter nodes each contain a DS18B20 temperature sensor and transmit the temperature over radio frequency to the receiver using nRF24L01+ modules. The receiver node displays the two temperatures sequentially on a 16x2 LCD screen connected via I2C. Libraries are used to interface with the temperature sensors, radio modules and LCD display.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 10

Multiple Nodes nRF24L01+ Wireless

Temperature DS18B20 with Arduino


UNO (2 Transmitter , 1 Receiver)
11 January 2016 admin Arduino UNO, DS18B20, LCD Display, Multi Channels, Multiple
Nodes, nRF24L01+, Temperature

Parts List
 nRF24L01+
 DS18B20 Temperature Sensor
 I2C LCD display 16×2
 Arduino UNO
 4.7k resistor
Library
nRF24L01 Library
RF24 Library
DallasTemperature Library
LiquidCrystal_I2C Library
Wire Library

Wiring
Wire nRF24L01+ to Arduino UNO
GND <–> GND
VCC <–> Arduino 3.3V
CE <–> Arduino pin 9
CSN <–> Arduino pin 10
SCK <–> Arduino pin 13
MOSI <–> Arduino pin 11
MISO <–> Arduino pin 12

nRF2
4L01+ DS18B20 TX 1
nRF2
4L01+ DS18B20 TX 2
nRF24L01+ RX (Multiple Nodes)
Code
Upload Code to TX 1

#include <SPI.h>

#include "nRF24L01.h"

#include "RF24.h"

#include <OneWire.h>

#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

float temp1;

RF24 radio(9, 10);

const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 
0xF0F0F0F0E3LL };

void setup(void) {

Serial.begin(9600);

sensors.begin();

radio.begin();

radio.setDataRate(RF24_250KBPS);

radio.openWritingPipe(pipes[1]);

radio.startListening();

void loop(void)

sensors.requestTemperatures();

temp1 = sensors.getTempCByIndex(0);

radio.write(&temp1, sizeof(temp1));

delay(10);

Upload Code to TX 2
#include <SPI.h>

#include "nRF24L01.h"

#include "RF24.h"

#include <OneWire.h>

#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

float temp2;

RF24 radio(9, 10);

const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 
0xF0F0F0F0E3LL };

void setup(void) {

Serial.begin(9600);

sensors.begin();

radio.begin();

radio.setDataRate(RF24_250KBPS);

radio.openWritingPipe(pipes[2]);

radio.startListening();

}
void loop(void)

sensors.requestTemperatures();

temp2 = sensors.getTempCByIndex(0);

radio.write(&temp2, sizeof(temp2));

delay(10);

Upload Code to RX (Multiple Nodes)

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

#include <Wire.h>

#include <LCD.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

// Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity

float temp1, temp2;

RF24 radio(9, 10);

const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 
0xF0F0F0F0E3LL };
void setup(void) {

Serial.begin(9600);

radio.begin();

radio.setDataRate(RF24_250KBPS);

radio.openReadingPipe(1, pipes[1]);

radio.openReadingPipe(2, pipes[2]);

radio.startListening();

lcd.begin(16, 2);

lcd.backlight();

lcd.clear();

lcd.print("nRF24L01+ Temp");

delay(1000);

lcd.clear();

lcd.print("Connecting.....");

delay(1000);

void loop(void)

lcd.clear();

delay(500);

if ( radio.available() )

{
delay(50);

radio.read(&temp1, sizeof(temp1));

lcd.setCursor(0, 0);

lcd.print("Temp 1");

lcd.setCursor(9, 0);

lcd.print(temp1);

lcd.print(" C");

delay(50);

radio.read(&temp2, sizeof(temp2));

lcd.setCursor(0, 1);

lcd.print("Temp 2");

lcd.setCursor(9, 1);

lcd.print(temp2);

lcd.print(" C");

else

lcd.println("No radio available");

delay(1000);

DS18B20 nRF24L01+ Temperature with LCD


Display
Temp 1 amd Temp 2 on LCD Display

You might also like