komunikasi-arduino-dengan-menggunakan-nrf24l01-untuk-menampilkan-data-suhu-dan-kelembaban-pada-lcd

Komunikasi arduino dengan menggunakan NRF24L01 untuk menampilkan data Suhu dan Kelembaban Pada LCD

SFE Electronics 0 Comments 24-October-2019 10:53:03

I. Pengenalan

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.....