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!