Penjelasan Singkat
Pada project multiple nodes ini merupakan pengembangan dari tutorial arduino mengakses module wireless nRF24L01+ sebelumnya.
Difungsikan untuk monitoring secara nirkabel yang dapat menjangkau jarak yang ingin dimonitoring tanpa harus menarik kabel yang terlalu panjang (maks. 100m), yang berakibat ke pembacaan sensor yang salah.
Perbedaan yang terdapat project ini dibanding project sebelumnya yaitu pada bagian jumlah TX (transceiver) dan RX (Receiver).
Pada project ini digunakan 2 TX dengan RX (receiver) 1 yang dimana ini dinamakan dengan multiple nodes dan data ditampilkan pada LCD 16×2.
Kebutuhan yang diperlukan nRF24L01+ multiple node
Refrensi pembelajaran tutorial dasar :
- Tutorial mengakses DHT11
- Tutorial mengakses penampil LCD dengan i2c PCF8574
- Tutorial mengakses nRF24L01
Bahan yang perlu dipersiapkan antara lain :
- Arduino Uno
- nRF24L01+
- LCD 16×2
- Module i2c LCD PCF8574
- DHT11
- Modul power supply adjustable + Adaptor 2A 12Vdc
- Kabel Jumper
- Komputer + Software IDE Arduino
Skema rangkaian yang perlu dirangkaikan seperti gambar dibawah ini :
Keterangan pengkabelan :
Rangkaian TX.1 & TX.2
- Pin A0 : D0 modul DHT11
- VCC : VCC
- GND : GND
- VCC : 3.3 Vdc modul nRF24L01+
- GND : GND
- Pin 9 : CE
- Pin 10 : CS
- Pin 13 : SCK
- Pin 11 : MOSI
- Pin 12 : MISO
Rangkaian RX
- Pin A5 : SCL modul i2cPCF8574
- Pin A6 : SDA
- VCC : VCC
- GND : GND
- VCC : 3.3 Vdc modul nRF24L01+
- GND : GND
- Pin 9 : CE
- Pin 10 : CS
- Pin 13 : SCK
- Pin 11 : MOSI
- Pin 12 : MISO
Library yang dibutuhkan :
- DHT11 [ddownload id=”1086″]
- i2c LCD PCF8574 [ddownload id=”1087″]
- nRF24L01+ [ddownload id=”1066″]
Peletakan Library pada OS :
1. Mac : (home directory)/Documents/Arduino/libraries
2. PC (Windows) : My Documents -> Arduino -> libraries
3. Linux : (home directory)/sketchbook/libraries
Kode Pemrograman TX.1
/* www.nyebarilmu.com */ //project monitoring suhu dan kelembaban nRF24L01+ multiple Nodes //©2017 #include <SPI.h> #include <RF24.h> #include <nRF24L01.h> #include <DHT.h> #define DHTTYPE DHT11 // DHT 11 #define DHTPIN A2 //Pin apa yang digunakan RF24 radio(9, 10); const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL }; float h,t,f; DHT dht(DHTPIN, DHTTYPE); void setup(void) { Serial.begin(9600); dht.begin(); radio.begin(); radio.setDataRate(RF24_250KBPS); radio.openWritingPipe(pipes[1]); radio.startListening(); } void loop(void) { //Pembacaan untuk data DHT11 h = dht.readHumidity(); //Pembacaan dalam format celcius (c) t = dht.readTemperature(); //pembacaan dalam format Fahrenheit f = dht.readTemperature(true); radio.write(&h, sizeof(h)); radio.write(&t, sizeof(t)); radio.write(&f, sizeof(f)); delay(1000); }
Kode Pemrograman TX.2
[lockercat]
/* www.nyebarilmu.com */ //project monitoring suhu dan kelembaban nRF24L01 multi-Node //©2017 #include <SPI.h> #include <RF24.h> #include <nRF24L01.h> #include <DHT.h> #define DHTTYPE DHT11 // DHT 11 #define DHTPIN A2 //Pin apa yang digunakan RF24 radio(9, 10); const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL }; float h1,t1,f1; DHT dht(DHTPIN, DHTTYPE); void setup(void) { Serial.begin(9600); dht.begin(); radio.begin(); radio.setDataRate(RF24_250KBPS); radio.openWritingPipe(pipes[2]); radio.startListening(); } void loop(void) { //Pembacaan untuk data DHT11 h1 = dht.readHumidity(); //Pembacaan dalam format celcius (c) t1 = dht.readTemperature(); //pembacaan dalam format Fahrenheit f1 = dht.readTemperature(true); radio.write(&h1, sizeof(h1)); radio.write(&t1, sizeof(t1)); radio.write(&f1, sizeof(f1)); delay(1000); }
[/lockercat]
Kode program untuk RX
/* www.nyebarilmu.com */ //project monitoring suhu dan kelembaban nRF24L01 multiple Nodes //©2017 #include <Wire.h> #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #include <LiquidCrystal_I2C.h> //alamat 0x27 perlu dipastikan dengan i2c scanner LiquidCrystal_I2C lcd(0x27,16,2); RF24 radio(9, 10); const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL }; float h,t,f; float h1,t1,f1; void setup(void) { Serial.begin(9600); radio.begin(); //Prosedur pemulaian LCD lcd.init(); //menyalakan backlight LCD lcd.backlight(); radio.setDataRate(RF24_250KBPS); radio.openReadingPipe(1, pipes[1]); radio.openReadingPipe(2, pipes[2]); radio.startListening(); //Menuliskan pada baris ke-1 lcd.setCursor(00, 00); lcd.print("www.nyebarilmu.com"); //Menuliskan pada baris ke-2 lcd.setCursor(00, 1); lcd.print("nRF24L01+ DHT11"); //Menuliskan pada serial monitor Serial.println("Suhu dan Kelembaban monitoring"); Serial.println("by www.nyebarilmu.com"); delay(2000); lcd.clear(); } void loop(void) { lcd.clear(); delay(500); if (radio.available()) { delay(50); //pembacaan data kelembaban pada transciever 1 radio.read(&h, sizeof(h)); lcd.setCursor(00, 00); lcd.print("1:"); lcd.setCursor(2, 00); lcd.print(h); lcd.print(" %"); //pembacaan data suhu dalam format celcius pada transciever 1 radio.read(&c, sizeof(c)); lcd.setCursor(5, 0); lcd.print("/"); lcd.setCursor(7, 0); lcd.print(c); lcd.print(" C"); //pembacaan data suhu dalam bentuk fahrenheight pada transciever 1 radio.read(&f, sizeof(f)); lcd.setCursor(10, 00); lcd.print("/"); lcd.setCursor(12, 00); lcd.print(f); lcd.print(" F"); delay(50); radio.read(&h1, sizeof(h)); lcd.setCursor(00, 1); lcd.print("2:"); lcd.setCursor(2, 1); lcd.print(h1); lcd.print(" %"); radio.read(&c1, sizeof(c)); lcd.setCursor(5, 1); lcd.print("/"); lcd.setCursor(7, 1); lcd.print(c1); lcd.print(" C"); radio.read(&f1, sizeof(f)); lcd.setCursor(10, 1); lcd.print("/"); lcd.setCursor(12, 1); lcd.print(f1); lcd.print(" F"); } else { lcd.println("No radio available"); } }
Selamat mencoba!
Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!
>> CMIIW <<
selamat siang
informasi nyebar ilmu memang woke banget bagi kita kita yang baru mengenal arduino
kalo bisa di bahas dong bikin RC car via nrf24l01 ato cara lainnya..
terimakasih atas perhatiannya..
moga ilmu yang disebar jadi barokah untuk semua. amin.
oke gan, thanks sudah berkunjung
hari ini saya mau buat 2 artikel sekaligus
bisa saya masukan ke daftar list
bermanfaat nih artikelnya.
iya terimakasih kunjungannya gan,
bermanfaat nih artikelnya.
iya terimakasih kunjungannya gan,
gan, mau tanya nih
kebetulan skripsi saya berhubungan dengan pengirman data melalui radio NRF24L01
tetapi saya menggunakan 4 sensor yang berbeda-beda
saya sudah mencoba dengan berbagai macam pengiriman, tapi tetap aja penerima tidak bisa menerima data yg sdh dikirim oleh transmitter
mungkin ngasih saya masukan, sehingga saya bisa menyelesaikan skripsi ini hehehehe
biar gak jadi mahasiswa abadi
gan, mau tanya nih
kebetulan skripsi saya berhubungan dengan pengirman data melalui radio NRF24L01
tetapi saya menggunakan 4 sensor yang berbeda-beda
saya sudah mencoba dengan berbagai macam pengiriman, tapi tetap aja penerima tidak bisa menerima data yg sdh dikirim oleh transmitter
mungkin ngasih saya masukan, sehingga saya bisa menyelesaikan skripsi ini hehehehe
biar gak jadi mahasiswa abadi
Sorry gan, baru balas
Untuk koneksi nodes nrf24l01, apakah sudah dilakukan trial secara sederhana gan?
2 koneksi tx dan rx
4 sensor yang berbeda – beda bisa dijabarkan apa saja?
dan apakah harus terpisah dengan module kontroler,
gan ane mau nanya, NRF24L01 bisa menerima 3 receiver sekaligus gak y? soale tugas sya berhubungan dengan remote yg bisa menggerakkann 3 cervo sekaligus, agan ada saran yg bisa saya lakukan, soale masih newbie sama nrf2401
bisa saja gan, tinggal dimodifikasi programnya dibagian PIPE[3] menjadi 4
dan alamat 1 device satu lagi
next saya update artikelnya ini
Min contoh program diatas kenapa ada pipe ke 3 ?
Min contoh program diatas kenapa ada pipe ke 3 ?
pipe 3 itu menunjukan deklarasi alatnya gan,
jadi 1 receiver, dan 2 transceiver
seperti itu
jika ingin menambahkan lagi, itunya perlu diganti dulu
tapi saya tidak lihat pipe 3 dipakai di contoh program diatas.. hanya pipe 1 dan 2.
Ada gan, di program receiver nya
nah itu yang menentukan jumlah device nya
gan ane mau nanya, NRF24L01 bisa menerima 3 receiver sekaligus gak y? soale tugas sya berhubungan dengan remote yg bisa menggerakkann 3 cervo sekaligus, agan ada saran yg bisa saya lakukan, soale masih newbie sama nrf2401
jadi saya bermaksud untuk membuat 1 joystick yang mana bisa menggerakkan 3 cervo sekaligus, trus kalo buat codingnya sendiri referensinya seperti apa ya gan. mohon bantuannya
Mungkin yang agan maksud servo ya,
kalo untuk menggerakan 3 servo bisa saja dilakukan,
di subscribe dulu saja gan, untuk update artikel terbarunya
udah ane suscribe ditunggu artikelnya
Oke gan, siapp
segera diusahakan
gan ane mau nanya, NRF24L01 bisa menerima 3 receiver sekaligus gak y? soale tugas sya berhubungan dengan remote yg bisa menggerakkann 3 cervo sekaligus, agan ada saran yg bisa saya lakukan, soale masih newbie sama nrf2401
jadi saya bermaksud untuk membuat 1 joystick yang mana bisa menggerakkan 3 cervo sekaligus, trus kalo buat codingnya sendiri referensinya seperti apa ya gan. mohon bantuannya
Mungkin yang agan maksud servo ya,
kalo untuk menggerakan 3 servo bisa saja dilakukan,
di subscribe dulu saja gan, untuk update artikel terbarunya
udah ane suscribe ditunggu artikelnya
Oke gan, siapp
segera diusahakan
suhu saya mau tanya,
const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL };
kode2 diatas fungsinya apa ya? dan ngedapatinnya darimana?
0xF0F0F0F0E1LL didapat dari library yang ane gunain gan.
0xF0F0F0F0EXLL >> Yang x itu nunjukin jumlah device yang digunakan
suhu saya mau tanya,
const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL };
kode2 diatas fungsinya apa ya? dan ngedapatinnya darimana?
0xF0F0F0F0E1LL didapat dari library yang ane gunain gan.
0xF0F0F0F0EXLL >> Yang x itu nunjukin jumlah device yang digunakan
gan nyarinya alamatnya 0xF0F0F0F0E1LL gimana ya didalam library??
terus 1 modul apa bisa dibuat receiver sekaligus transmitter
Maaf gan, itu di godung RX didalam void setup kurang printah radio.begin() ;
Mantap sdh aku coba dan berhasil
Terimakasih gan, untuk koreksinya
Maaf gan, itu di godung RX didalam void setup kurang printah radio.begin() ;
Mantap sdh aku coba dan berhasil
Terimakasih gan, untuk koreksinya
Maaf gan, itu di koding RX didalam void setup kurang printah radio.begin() ;
Mantap sdh aku coba dan berhasil
Maaf gan, itu di koding RX didalam void setup kurang printah radio.begin() ;
Mantap sdh aku coba dan berhasil
min boleh minta facebook / no Wa mu yang bisa untuk sharing bersma??
Lewat web ini aja gan,
min boleh minta facebook / no Wa mu yang bisa untuk sharing bersma??
Lewat web ini aja gan,
min klo mengirim 2 data berbentuk float dari transmiter ke receiver dan di receiver nya berbentuk float juga itu bagaimana ?.
dicontoh program 3 data float yang dikirimkan malahan gan,
bagaimana kalau data Aray yang dikirim? apakah bisa menggunakan 2 transmitter dan 1 reciever?
secara teori harusny bisa gan, ane coba dulu tapi,
min klo mengirim 2 data berbentuk float dari transmiter ke receiver dan di receiver nya berbentuk float juga itu bagaimana ?.
ini bisa lebih dari 2 TX? maksimal berapa TX ?
setau saya bisa sampai 8 tx gan
ini bisa lebih dari 2 TX? maksimal berapa TX ?
Maaf gan, saya udh coba program diatas, tapi cuma 1 nilai yg keluar, mohon pencerahan gan,
Terima kasih
Maaf gan, saya udh coba program diatas, tapi cuma 1 nilai yg keluar, mohon pencerahan gan,
Terima kasih
Oke gan, ane cek dulu
takutnya ada program yang belum ke copy sempurna
ane coba dan blum bisa konek, ane ga pake lcd dan sensor, tapi ngirim data integer aja. ada yang bisa bantu ?
ane coba dan blum bisa konek, ane ga pake lcd dan sensor, tapi ngirim data integer aja. ada yang bisa bantu ?
min, apa bisa dari modul nrf24L01 ini dibuat project 1 Tx dan 2 Rx ?
bisa gan,
tapi ya harus pinter2 koding programnya,
min, apa bisa dari modul nrf24L01 ini dibuat project 1 Tx dan 2 Rx ?
bisa gan,
tapi ya harus pinter2 koding programnya,
Gan kalo tampilan suhunya n doang apanya salah
Gan kalo tampilan suhunya n doang apanya salah