Professional Documents
Culture Documents
Wireless NRF24L01 Con Temperatura
Wireless NRF24L01 Con Temperatura
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);
#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);