nRF24L01+ Wireless Temperature Monitoring DS18B20 Arduino UNO
Parts List
- nRF24L01+
- DS18B20 Temperature Sensor
- Arduino UNO
- 4.7k resistor
Library
nRF24L01 Library
RF24 Library
DallasTemperature 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
Code
Upload Code to TX
#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);
RF24 radio(9, 10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void) {
Serial.begin(9600);
sensors.begin();
radio.begin();
radio.openWritingPipe(pipe);
}
void loop(void)
{
sensors.requestTemperatures();
float temperature = sensors.getTempCByIndex(0);
radio.write(&temperature, sizeof(float));
delay(1000);
}
Upload Code to RX
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void) {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1, pipe);
radio.startListening();
Serial.begin(9600);
Serial.println("Temperature Starting.....");
delay(1000);
Serial.println("by www.elec-cafe.com");
delay(1000);
}
void loop(void)
{
if (radio.available()) {
float temperature = 0;
if (!radio.read(&temperature, sizeof(float))) {
Serial.println("ACK not received by client.");
}
Serial.print("Temperature : ");
Serial.println(temperature);
delay(1000);
}
}
Monitor Temperature
Use Serial monitor on Arduino UNO (RX)


