autor: Zefirek » 03 gru 2022, 23:52
Poniżej przedstawiony złożony układ do zdalnej kontroli temperatury i wilgotności na bazie modułów NRF24L01 i DHT11 . Nadajnik oraz Odbiornik.

- Gotowy układ.jpg (64.82 KiB) Przejrzano 1079 razy
Lista części do budowy układu:
Arduino UNO 2szt.
NRF24L01 1szt.
DHT11 Sensor 1szt.
LCD Display 16x2 1szt.
Potenciometr 10k

- nrf24l01-module.jpg (29.65 KiB) Przejrzano 1078 razy

- NRF24L01-Piny.jpg (57.04 KiB) Przejrzano 1055 razy

- DHT11-Pinout.jpg (68.04 KiB) Przejrzano 1053 razy

- Odbiornik.jpg (80.15 KiB) Przejrzano 1057 razy

- Nadajnik.jpg (51.64 KiB) Przejrzano 1056 razy
Jak podłaczyc:
MISO connects to pin 12 Arduino UNO
MOSI connects to pin 11 Arduino UNO
SCK connects to pin 13 Arduino UNO
CE connects to pin 8 Arduino UNO
CSN connects to pin 9 Arduino UNO
GND i VCC w NRF24L01 do GND i 3.3V w Arduino UNO
KOD NADAJNIK:
Kod: Zaznacz cały
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <DHT11.h>
int pin = A0;
DHT11 dht11(pin);
float temperature[2];
double Fahrenheit(double celsius) {
return ((double)(9 / 5) * celsius) + 32;
}
double Kelvin(double celsius) {
return celsius + 273.15;
}
RF24 radio(8, 9);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void) {
radio.begin();
radio.openWritingPipe(pipe);
}
void loop(void)
{
float temp, humi;
dht11.read(humi, temp);
temperature[0] = temp;
temperature[1] = humi;
radio.write(temperature, sizeof(temperature));
delay(1000);
}
KOD ODBIORNIK
Kod: Zaznacz cały
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <DHT11.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
float temperature[2];
RF24 radio(8, 9);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void)
{
Serial.begin(9600);
lcd.begin(16, 2);
radio.begin();
radio.openReadingPipe(1, pipe);
radio.startListening();
lcd.print("Humidity & temp");
delay(2000);
lcd.clear();
lcd.print("Starting.....");
delay(2000);
}
void loop(void)
{
if ( radio.available() )
{
bool done = false;
while (!done)
{
done = radio.read(temperature, sizeof(temperature));
lcd.clear();
delay(500);
lcd.setCursor(0, 0);
lcd.print("Temp");
lcd.setCursor(0, 1);
lcd.print("Humidity");
lcd.setCursor(9, 0);
lcd.print(temperature[0]);
lcd.print(" C");
lcd.setCursor(9, 1);
lcd.print(temperature[1]);
lcd.print(" %");
delay(1000);
}
}
else
{
lcd.setCursor(0, 0);
lcd.print("No radio Found");
}
}
Oczywiście do budowy układu można wykorzystać zamiast dużych i nieporęcznych układów UNO
o wiele mniejsze układy Nano lub nawet bezpośrednio atmege328p z tym ze należy wtedy wykozystac stabilizatos 3,3v do zasilenia modułów NRF i DHT11.
Biblioteki:
[b]Poniżej przedstawiony złożony układ do zdalnej kontroli temperatury i wilgotności na bazie modułów NRF24L01 i DHT11 . Nadajnik oraz Odbiornik.[/b]
[attachment=8]Gotowy układ.jpg[/attachment]
Lista części do budowy układu:
Arduino UNO 2szt.
NRF24L01 1szt.
DHT11 Sensor 1szt.
LCD Display 16x2 1szt.
Potenciometr 10k
[attachment=7]nrf24l01-module.jpg[/attachment]
[attachment=1]NRF24L01-Piny.jpg[/attachment]
[attachment=0]DHT11-Pinout.jpg[/attachment]
[attachment=3]Odbiornik.jpg[/attachment]
[attachment=2]Nadajnik.jpg[/attachment]
Jak podłaczyc:
MISO connects to pin 12 Arduino UNO
MOSI connects to pin 11 Arduino UNO
SCK connects to pin 13 Arduino UNO
CE connects to pin 8 Arduino UNO
CSN connects to pin 9 Arduino UNO
GND i VCC w NRF24L01 do GND i 3.3V w Arduino UNO
KOD NADAJNIK:
[code]
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <DHT11.h>
int pin = A0;
DHT11 dht11(pin);
float temperature[2];
double Fahrenheit(double celsius) {
return ((double)(9 / 5) * celsius) + 32;
}
double Kelvin(double celsius) {
return celsius + 273.15;
}
RF24 radio(8, 9);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void) {
radio.begin();
radio.openWritingPipe(pipe);
}
void loop(void)
{
float temp, humi;
dht11.read(humi, temp);
temperature[0] = temp;
temperature[1] = humi;
radio.write(temperature, sizeof(temperature));
delay(1000);
}
[/code]
KOD ODBIORNIK
[code]
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <DHT11.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
float temperature[2];
RF24 radio(8, 9);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void)
{
Serial.begin(9600);
lcd.begin(16, 2);
radio.begin();
radio.openReadingPipe(1, pipe);
radio.startListening();
lcd.print("Humidity & temp");
delay(2000);
lcd.clear();
lcd.print("Starting.....");
delay(2000);
}
void loop(void)
{
if ( radio.available() )
{
bool done = false;
while (!done)
{
done = radio.read(temperature, sizeof(temperature));
lcd.clear();
delay(500);
lcd.setCursor(0, 0);
lcd.print("Temp");
lcd.setCursor(0, 1);
lcd.print("Humidity");
lcd.setCursor(9, 0);
lcd.print(temperature[0]);
lcd.print(" C");
lcd.setCursor(9, 1);
lcd.print(temperature[1]);
lcd.print(" %");
delay(1000);
}
}
else
{
lcd.setCursor(0, 0);
lcd.print("No radio Found");
}
}
[/code]
[b][i]Oczywiście do budowy układu można wykorzystać zamiast dużych i nieporęcznych układów UNO
o wiele mniejsze układy Nano lub nawet bezpośrednio atmege328p z tym ze należy wtedy wykozystac stabilizatos 3,3v do zasilenia modułów NRF i DHT11.
[/i][/b]
Biblioteki:
[attachment=6]nRF24L01.zip[/attachment]
[attachment=5]RF24.zip[/attachment]
[attachment=4]DHT11.zip[/attachment]