Read more
Berawal dari sebuah pesanan sistem kendali wireles untuk jarak sekitar 50 meter selanjutnya saya browsing tentang arduino sebagai pengendali wireless, ternyata ada banyak sekali option untuk melakukan kendali wireless mulai dengan ys2010, wifi shield, x bee dan sebagai nya,
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
saya mencari manakah modul yang paling murah, dan akhirnya saya menemukan modul nRF24L01+ 2.4GHz Radio Transceiver, seanjutnya saya mencoba menggunakan nRF24L01 sebagai media komunikasi wireless arduino mega
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
Secara simple dapat saya sampaikan bahwa dalam komunikasi ini saya hanya menggunakan 2 unit (server-client peer to peer) antara 2 device arduino, dan saya belum sempat mencobanya untuk 3 unit (1 server dan 2 client), semoga ke depan dapat saya ujicoba secepatnya
berikut ini adalah tabel koneksi yang saya pergunakan untuk koneksi antara modul nRF24L01 dengan arduino mega
NB: tegangan VCC saya coba ke 5 Volt tidak menjadi masalah
NB: tegangan VCC saya coba ke 5 Volt tidak menjadi masalah
selanjutnya source code (sketch arduino) server adalah sebagai berikut :
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
//int rate;
int inchar;
void setup(){
Serial.begin(9600);
// Mirf.cePin = 48; //ce pin on Mega 2560, REMOVE THIS LINE IF YOU ARE USING AN UNO
// Mirf.csnPin = 49; //csn pin on Mega 2560, REMOVE THIS LINE IF YOU ARE USING AN UNO
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"clie1");
Mirf.payload = sizeof(inchar);
Mirf.config();
}
void loop()
{
if (Serial.available()){inchar = Serial.read();}
switch(inchar)
{
case 'A':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
//Serial.print(inchar);break;
case 'B':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'C':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'D':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'E':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'F':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'G':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'H':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'I':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'J':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
}
}
sketch di atas berfungsi sebagai pengirim data dari arduino server yang terhubung via komunikasi serial dengan PC, dimana jika tombol A,B,C,D,E,F,G,H pada keyboard komputer ditekan maka arduini server akan mengirimkan data tombol tersebit ke arduino client
sedangkan sketch arduino client adalah sebagai berikut :
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
int rate;
void setup(){
Serial.begin(9600);
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"serv1");
Mirf.payload = sizeof(rate);
Mirf.config();
}
void loop(){
while(!Mirf.dataReady()){
}
Mirf.getData((byte *) &rate);
Serial.println(rate);
delay(1000);
}
Sketch di atas berfungsi untuk menerima data yang dikirim oleh server lalu kemudian dikirim via komunikasi serial ke PC.
Berikut adalah video salah satu percobaan kendali LED wireless antara 2 buah arduino mega.
NB :
Saya coba jarak sekitar 15 meter untuk percobaan nRF24L01 sebagai media komunikasi wireless arduino mega tidak ada masalah, namun untuk jarak sekitar 50 meter data kadang2 lost, mungkin terkait power suply yang saya pergunakan dalam hal ini hanya menggunakan baterai 9 volt kotak,
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
//int rate;
int inchar;
void setup(){
Serial.begin(9600);
// Mirf.cePin = 48; //ce pin on Mega 2560, REMOVE THIS LINE IF YOU ARE USING AN UNO
// Mirf.csnPin = 49; //csn pin on Mega 2560, REMOVE THIS LINE IF YOU ARE USING AN UNO
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"clie1");
Mirf.payload = sizeof(inchar);
Mirf.config();
}
void loop()
{
if (Serial.available()){inchar = Serial.read();}
switch(inchar)
{
case 'A':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
//Serial.print(inchar);break;
case 'B':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'C':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'D':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'E':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'F':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'G':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'H':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'I':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
case 'J':
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &inchar);break;
}
}
sketch di atas berfungsi sebagai pengirim data dari arduino server yang terhubung via komunikasi serial dengan PC, dimana jika tombol A,B,C,D,E,F,G,H pada keyboard komputer ditekan maka arduini server akan mengirimkan data tombol tersebit ke arduino client
sedangkan sketch arduino client adalah sebagai berikut :
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
int rate;
void setup(){
Serial.begin(9600);
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"serv1");
Mirf.payload = sizeof(rate);
Mirf.config();
}
void loop(){
while(!Mirf.dataReady()){
}
Mirf.getData((byte *) &rate);
Serial.println(rate);
delay(1000);
}
Sketch di atas berfungsi untuk menerima data yang dikirim oleh server lalu kemudian dikirim via komunikasi serial ke PC.
Berikut adalah video salah satu percobaan kendali LED wireless antara 2 buah arduino mega.
NB :
Saya coba jarak sekitar 15 meter untuk percobaan nRF24L01 sebagai media komunikasi wireless arduino mega tidak ada masalah, namun untuk jarak sekitar 50 meter data kadang2 lost, mungkin terkait power suply yang saya pergunakan dalam hal ini hanya menggunakan baterai 9 volt kotak,
Contact Person : Taufik Adi Sanjaya
No HP / Whats App : 0823 2613 3990
PIN BBM 5983E244
PIN BBM 5983E244
Alamat : Jalan Imogiri Timur KM 11,
Blawong 1 , RT 01, Trimulyo, Jetis, Bantul 55781.
Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, dan sebagainya ? anda dapat membelinya di www.kedaiarduino.com





1 Reviews
pemisi gan, kalo untuk sketch arduino uno nya bagaimana ya ?
ReplyDeleteSilakan dikomentari