Skip to content

nyebarilmu

berbagi ilmu itu nyenengin

berbagi ilmu itu nyenengin
Mobile Menu
  • Home
  • Arduino
  • Project Arduino
  • Electronics
  • IOT
  • Daftar Isi

Project multiple Nodes nRF24L01+ Wireless DHT11 with Arduino Uno

On November 23, 2017 In Project Arduino 23 Comments

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 :

  1. Tutorial mengakses DHT11
  2. Tutorial mengakses penampil LCD dengan i2c PCF8574
  3. 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

Kebutuhan Project multiple Nodes nRF24L01+

Baca juga :  Mengenal aplikasi BLYNK untuk fungsi IOT

Skema rangkaian yang perlu dirangkaikan seperti gambar dibawah ini :

Rangkaian Project multiple Nodes nRF24L01+

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 Filenya ini
  • i2c LCD PCF8574 Filenya ini
  • nRF24L01+ Filenya ini

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
 
/* 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

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
 
/* 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);
}
 

Kode program untuk RX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
 
 
/* 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 <<

Incoming search terms:

  • nrf24l01 multi node (2)
  • arduino control led nirkabel nrf24l01 (1)

Share this post :

Related Posts

  • Tutorial digital clock attiny85
    Cara membuat Digital Clock menggunakan Attiny85
  • Project kendali relay jarak jauh via module SIM800L

23 thoughts on “Project multiple Nodes nRF24L01+ Wireless DHT11 with Arduino Uno”

  1. G Prabowo says:
    January 16, 2018 at 3:01 am

    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.

    Reply
    1. admin-kece admin-kece says:
      January 26, 2018 at 6:30 am

      oke gan, thanks sudah berkunjung

      hari ini saya mau buat 2 artikel sekaligus

      bisa saya masukan ke daftar list

      Reply
  2. Tri Prasetyo says:
    February 8, 2018 at 6:20 am

    bermanfaat nih artikelnya.

    Reply
    1. admin-kece admin-kece says:
      February 13, 2018 at 3:17 pm

      iya terimakasih kunjungannya gan,

      Reply
  3. fatkhorrozi says:
    February 26, 2018 at 5:55 am

    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

    Reply
    1. admin-kece admin-kece says:
      March 1, 2018 at 12:54 am

      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,

      Reply
      1. tiko says:
        March 8, 2018 at 3:49 am

        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

        Reply
        1. admin-kece admin-kece says:
          March 8, 2018 at 9:34 am

          bisa saja gan, tinggal dimodifikasi programnya dibagian PIPE[3] menjadi 4

          dan alamat 1 device satu lagi

          next saya update artikelnya ini

          Reply
  4. harboot says:
    March 2, 2018 at 2:34 pm

    Min contoh program diatas kenapa ada pipe ke 3 ?

    Reply
    1. admin-kece admin-kece says:
      March 8, 2018 at 9:29 am

      pipe 3 itu menunjukan deklarasi alatnya gan,

      jadi 1 receiver, dan 2 transceiver

      seperti itu

      jika ingin menambahkan lagi, itunya perlu diganti dulu

      Reply
      1. harboot says:
        March 8, 2018 at 12:53 pm

        tapi saya tidak lihat pipe 3 dipakai di contoh program diatas.. hanya pipe 1 dan 2.

        Reply
        1. admin-kece admin-kece says:
          March 11, 2018 at 3:20 pm

          Ada gan, di program receiver nya

          nah itu yang menentukan jumlah device nya

          Reply
  5. tiko says:
    March 8, 2018 at 3:50 am

    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

    Reply
    1. tiko says:
      March 8, 2018 at 4:48 am

      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

      Reply
      1. admin-kece admin-kece says:
        March 8, 2018 at 9:35 am

        Mungkin yang agan maksud servo ya,

        kalo untuk menggerakan 3 servo bisa saja dilakukan,

        di subscribe dulu saja gan, untuk update artikel terbarunya

        Reply
        1. tiko says:
          March 18, 2018 at 1:04 am

          udah ane suscribe ditunggu artikelnya

          Reply
          1. admin-kece admin-kece says:
            March 20, 2018 at 3:40 pm

            Oke gan, siapp
            segera diusahakan

  6. Hanis Bachrodin says:
    March 19, 2018 at 9:26 am

    suhu saya mau tanya,

    const uint64_t pipes[3] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL };

    kode2 diatas fungsinya apa ya? dan ngedapatinnya darimana?

    Reply
    1. admin-kece admin-kece says:
      March 20, 2018 at 3:38 pm

      0xF0F0F0F0E1LL didapat dari library yang ane gunain gan.

      0xF0F0F0F0EXLL >> Yang x itu nunjukin jumlah device yang digunakan

      Reply
  7. catur says:
    March 22, 2018 at 8:58 am

    gan nyarinya alamatnya 0xF0F0F0F0E1LL gimana ya didalam library??
    terus 1 modul apa bisa dibuat receiver sekaligus transmitter

    Reply
  8. Khajis says:
    April 2, 2018 at 10:11 am

    Maaf gan, itu di godung RX didalam void setup kurang printah radio.begin() ;
    Mantap sdh aku coba dan berhasil

    Reply
    1. admin-kece admin-kece says:
      April 16, 2018 at 1:26 pm

      Terimakasih gan, untuk koreksinya

      Reply
  9. Khajis says:
    April 2, 2018 at 10:12 am

    Maaf gan, itu di koding RX didalam void setup kurang printah radio.begin() ;
    Mantap sdh aku coba dan berhasil

    Reply

Leave a Reply Cancel reply

Popular Posts

  • thumbnail rangkaian saklar otomatis menggunakan sensor LDR
    Rangkaian Sensor LDR untuk saklar lampu otomatis
  • Tutorial digital clock attiny85
    Cara membuat Digital Clock menggunakan Attiny85
  • Tutorial arduino mengakses mp3 player uart
    Cara membuat mp3 player menggunakan Arduino
  • Introduction wemos d1 mini
    Pengenalan tentang WEMOS D1 MINI
  • module Attiny85 digispark
    Mengenal module attiny85 digispark

Categories

  • Arduino (48)
  • Electronics (13)
  • IOT (10)
  • Project Arduino (3)

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 37 other subscribers

Copyright © 2018 nyebarilmu.
  • PRIVACY POLICY
  • DISCLAIMER
  • CONTACT
  • ABOUT