Senin, 07 April 2014

Komunikasi antar Arduino dengan nRF24L01 (wireless)

Setelah tidak lama ngoprek karena kesibukan yang luar biasa, akhirnya hari ini ada kesempatan buat ngoprek. Hari ini saya mencoba bermain dengan radio, radio yang saya gunakan adalah nRF24L01. 

Alasan saya menggunakan nRF24L01 adalah karena jarang orang yang mengetahui keberadaan chip ini untuk koneksi Arduino secara wireless. Sebagian besar orang jika ditanya cara untuk menghubungkan Arduino secara wireless, biasanya menjawab dengan menggunakan bluetooth atau menggunakan XBee. Karena XBee terlalu mahal dan bluetooth agak mahal, maka saya memilih menggunakan nRF24L01 ini.
Gambar 1 - nRF24L01

Saat tulisan ini diketik, harga 1 unit XBee yang biasa berkisar di Rp.300.000,00 - Rp.400.000,00,
harga 1 unit bluetooth module HC-05/ HC-07 berkisar di Rp. 100.000,00 - Rp. 175.000,00,
harga 1 unit nRF24L01 berkisar di Rp.50.000,00 - Rp.100.000,00

Nah dari harga saja sudah terlihat bahwa nRF24L01 terlihat lebih pas di kantong :)

Kalo dari segi teknis, XBee, Bluetooth, dan nFR24L01 sama-sama beroperasi di frekuensi 2,4GHz. Perlu diperhatikan juga bahwa ada XBee seri tertentu yang tidak beroperasi di 2,4GHz. Untuk pengetahuan teknis lebih lanjut bisa dibaca di XBee, bluetooth, dan nRF24L01

Oke, langsung saja ya, percobaan pertama saya mencoba mengikuti tutorial dari http://maniacbug.wordpress.com.

Ohiya, sebelum lupa, alat dan komponen yang saya gunakan adalah:
  1. Arduino Uno R3 x1
  2. Arduino Mega 2560 x1
  3. nRF24L01 x2
  4. kabel (untuk jumper) secukupnya
  5. kabel power arduino x2
Gambar 2 - tabel skema rangkaian yang akan saya buat

nah, saya pun langsung membuat rangkaian seperti pada gambar 2.
 
Gambar 3 - rangkaian yang saya buat, adaptasi dari http://maniacbug.wordpress.com/

Percobaan pertama saya gatot alias gagal total, setelah lepas pasang kabel, cek sana sini, coba lagi, masih gatot juga. Akhirnya saya coba menelulsuri pelan-pelan, dan ternyata saya mendapatkan pencerahan, yaitu ternyata nRF24L01 ini menggunakan SPI, dan ternyata pin Arduino Uno dan Mega untuk komunikasi via SPI ini berbeda letaknya, berdasarkan http://arduino.cc/.

Kode yang saya gunakan adalah


Nah, setelah mengganti kode RF24 radio(9, 10); dengan RF24 radio(48, 49); serta menyesuaikan pin SPI lainnya, akhirnya percobaan saya berhasil dan dapat dilihat pada video berikut.


Karena saya kurang puas dengan tutorial sebelumnya, akhirnya saya coba googling-googling lagi mencari tutorial yang lebih menantang, nah akhirnya saya menemukan tutorial yang agak menarik di http://www.bajdi.com/. Setelah saya lihat-lihat sekilas, ternyata tutorial yang ini berbeda dengan tutorial yang saya lakukan sebelumnya, tutorial ini menggunakan library Mirf.h, sedangkan tutorial sebelumnya menggunakan RF24.h. Oke, saya pun langsung mencoba merangkai.
Gambar 4 - tabel skema rangkaian yang seharusnya saya buat    

Gambar 5 - rangkaian yang sudah saya buat  

Oke ternyata tidak langsung berhasil, setelah saya lihat-lihat ternyata Mirf.h mendeklarasikan pin CE dan CSN pada Uno di pin 7 dan 8, saya pun memperbaiki rangkaian saya dan menjalankan lagi. Kode yang saya gunakan adalah 


Hasil akhirnya dapat dilihat pada video berikut.

Nah sekian saja postingan kali ini, semoga membuka wawasan pembaca mengenai komunikasi radio pada Arduino. Selamat mencoba!

12 komentar:

  1. NRF24L01 bisa ngga dibikin seperti Bluetooth or Wi-Fi "untuk kirim data/file"

    BalasHapus
    Balasan
    1. bandwidth dari NRF24L01 max cuma 2MBps atau sekitar 185KBps, masih lancar buat nonton yutup hahahaaa
      efektifnya buat radio control mobil²an atau drone

      Hapus
  2. bisa post rangkaiannya mas.. agak susah baca tabel

    BalasHapus
  3. Gan, kalau pakai arduino uno semua bisa gan?

    BalasHapus
  4. Artikel yang sangat informatif,
    Untuk library nampaknya RF24 lebih updated dan lengkap dibanding Mirf. Setelah dicoba, RF24 bahkan menyediakan lib untuk Attiny85, dan juga bisa digunakan untuk komunikasi Arduino<=>RaspberryPi, baik dengan Uno, Nano, ProMini, dll.... Dan juga mesh network RF24 nampaknya sangat bermanfaat untuk membuat jaringan sensor wireless yang handal ...

    BalasHapus
  5. Artikel yang sangat informatif,
    Untuk library nampaknya RF24 lebih updated dan lengkap dibanding Mirf. Setelah dicoba, RF24 bahkan menyediakan lib untuk Attiny85, dan juga bisa digunakan untuk komunikasi Arduino<=>RaspberryPi, baik dengan Uno, Nano, ProMini, dll.... Dan juga mesh network RF24 nampaknya sangat bermanfaat untuk membuat jaringan sensor wireless yang handal ...

    BalasHapus
  6. Wah artikelnya bagus, gan pernah coba komunikasi 2 arah bergantian (half duplex)?

    BalasHapus
  7. Min mau tanya, kalau 1 receiver nrf24, apa bisa menerima 2 data dr 2 transmit nrf24 ?

    BalasHapus
  8. gan izin uji coba buat tugas ya makasih

    BalasHapus
  9. Kalo dibuat untuk mic bisa ga ka?

    BalasHapus