Komunikasi Arduino Dengan Menggunakan NRF24L01 Untuk Menampilkan Data Suhu Dan Kelembaban Pada LCD

SFE Electronics 0 Comments 9 Nov. 2021, 4.04

Pada tutorial kali ini kita akan menggunakan dua buah arduino untuk berkomunikasi dengan menggunakan modul wireless NRF24L01. Kedua arduino akan dikoneksikan menggunakan NRF24L01, satu arduino sebagai transmitter akan terhubung dengan sensor modul DHT22 dan satu arduino sebagai receiver akan terhubung dengan LCD 16x2 untuk menampilkan data suhu dan kelembaban dari DHT22 yang terhubung dengan arduino pertama

II. Skematik

Untuk skematik dapat dilihat seperti gambar berikut

III. Bahan Dan Alat

Untuk tutorial ini berikut komponen dan modul yang dibutuhkan

No Nama Komponen Jumlah Gambar
1 Arduino Nano 2
2 NRF24L01 2  
3 DHT22 Sensor Module 1  
4 LCD 16x02 plus I2C 1  
5 Kabel jumper  Secukupnya  
6 Breadborad 1  

IV. Source Code

Transmitter

#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
#include <DHT.h>
#include <DHT_U.h>

#define DHTPIN 2
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);
RF24 radio(9,10);

const byte writingAddress=11;

struct dht22Data{
  float temp;
  float hum;
};

dht22Data data;

void setup() {
  Serial.begin(9600);
  dht.begin();
  radio.begin();
  radio.openWritingPipe(writingAddress);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
  
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  data.temp = t;
  data.hum= h;
  bool ok = radio.write(&data, sizeof(data));
  if(ok){
    Serial.println(data.temp);
  }
  delay(500);
}

 

Receiver

#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,16,2);
RF24 radio(9,10);

const byte readingAddress=11;

struct dht22Data{
  float temp;
  float hum;
};

dht22Data data;

void setup()
{
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0,readingAddress);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
  lcd.init();
  lcd.backlight();
  lcd.print("Temp : ");
  lcd.setCursor(0,1);
  lcd.print("Hum  : ");                 
}
void loop()
{
  if(radio.available()){
    Serial.print("Data is : ");
    radio.read(&data, sizeof(data));
    lcd.setCursor(7,0);
    lcd.print(data.temp);
    lcd.setCursor(7,1);
    lcd.print(data.hum);
    Serial.println(data.temp);
  }
}

 

V. Video

Incoming.....

4 comments

Responsive image

Fahrul

3 minggu, 3 hari yang lalu / Repost / Reply

As with other HTTP headers in request.META, the header name received from the server is normalized by converting all characters to uppercase, replacing any hyphens with underscores, and adding an 'HTTP_' prefix to the name. For example, if your client sends a 'X-XSRF-TOKEN' header, the setting should be 'HTTP_X_XSRF_TOKEN'.

Responsive image

Fahrul

3 minggu, 3 hari yang lalu / Repost / Reply

siapppp

Responsive image

Fahrul

3 minggu, 3 hari yang lalu / Repost / Reply

sdsdsdsds

Responsive image

Fahrul

3 minggu, 3 hari yang lalu / Repost / Reply

@Yihaaa wutuuuuiii aaa

Responsive image

Fahrul

3 minggu, 2 hari yang lalu / Repost / Reply

Vivaaa tttt

Responsive image

Fahrul

3 minggu, 2 hari yang lalu / Repost / Reply

Nice comment man

Responsive image

Fahrul

3 minggu, 3 hari yang lalu / Repost / Reply

Lantangggg suaraannyaaa

Responsive image

Fahrul

3 minggu, 3 hari yang lalu / Repost / Reply

Rania Batricia Rizal cinggg...

Responsive image

Fahrul

3 minggu, 3 hari yang lalu / Repost / Reply

Sangar Boiiii

Responsive image

Fahrul

3 minggu, 3 hari yang lalu / Repost / Reply

@NN opone sing sangar mbrakkk

Load more