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
Untuk skematik dapat dilihat seperti gambar berikut
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 |
#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);
}
#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);
}
}
Incoming.....