You are on page 1of 5

KELAS JTD 4C POLINEMA

KELOMPOK Kelompok 6 Kelompok 5


NAMA 1 Afina Pratiwi Agi Yusabihan
NAMA 2 Bambang Eka S Galuh Mustika
PROJEK Perintah Kendali secara Wireless

TUGAS I:
Rancang suatu program yang dapat digunakan untuk melakukan perintah
pengendalian dari Host ke Client. Pengendalian LED pada sisi Client
Note: Tiap pasangan harus bekerja pada kanal yang berbeda

PROGRAM HOST
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>

#include <SPI.h>

uint64_t pipeTx = 0x4C4C01LL; //alamat lawan


uint64_t pipeRx = 0x4C4C02LL; //alamat sendiri
uint8_t CE = 9;
uint8_t CSN = 10;
int n = 0;
boolean Flag = false;

struct payload
{
char Kata[20];
};

payload Data;

RF24 Radio(CE, CSN);

void setup()
{
Serial.begin(9600);

Radio.begin();
Radio.setChannel(105);

Data.Kata[0]=S;
Data.Kata[1]=i;
Data.Kata[2]=a;
Data.Kata[3]=p; Data.Kata[4]=.;
Data.Kata[5]=.;
Radio.openWritingPipe(pipeTx); delay(50);
Radio.write(&Data, sizeof(Data) ); delay(50);

Radio.openReadingPipe(1, pipeRx);delay(50);
Radio.startListening();
}

void loop()
{
if ( Radio.available() )
{
Radio.read(&Data, sizeof(Data) );
Serial.println(Data.Kata);
}

if (Flag == true)
{
Radio.stopListening(); delay(100);
Radio.openWritingPipe(pipeTx); delay(50);
Radio.write(&Data, sizeof(Data) ); delay(50);
Flag = false;
Radio.openReadingPipe(1, pipeRx); delay(50);
Radio.startListening();
delay(100);
}

void serialEvent()
{
while (Serial.available() )
{
char data = (char)Serial.read();
Data.Kata[n] = data; n++;
if (data == '_') { Flag = true; n=0; }
}
}
PROGRAM CLIENT
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>

#include <SPI.h>

uint64_t pipeTx = 0x4C4C05LL; //alamat lawan


uint64_t pipeRx = 0x4C4C06LL; //alamat sendiri
uint8_t CE = 9;
uint8_t CSN = 10;
int n = 0;
boolean Flag = false;

int D5=4, D6=5, D7=6, D8=7;

struct payload
{
char Kata[20];
};

payload Data;

RF24 Radio(CE, CSN);

void setup()
{
Serial.begin(9600);

Radio.begin();
Radio.setChannel(110);

Data.Kata[0]='S';
Data.Kata[1]='i';
Data.Kata[2]='a';
Data.Kata[3]='p';
Data.Kata[4]='.';
Data.Kata[5]='.';

pinMode(D5, OUTPUT);
pinMode(D6, OUTPUT);
pinMode(D7, OUTPUT);
pinMode(D8, OUTPUT);

Radio.openWritingPipe(pipeTx); delay(50);
Radio.write(&Data, sizeof(Data) ); delay(50);

Radio.openReadingPipe(1, pipeRx);delay(50);
Radio.startListening();
}

void loop()
{

if ( Radio.available() )
{
Radio.read(&Data, sizeof(Data) );
Serial.println(Data.Kata);

if (Data.Kata[1] == 'H')
{digitalWrite(D5,HIGH); }
else {digitalWrite(D5, LOW); }

if (Data.Kata[2] == 'H') {digitalWrite(D6,HIGH);}


else {digitalWrite(D6, LOW); }

if (Data.Kata[3] == 'H') {digitalWrite(D7,HIGH);}


else {digitalWrite(D7, LOW);}

if (Data.Kata[4] == 'H') {digitalWrite(D8,HIGH);}


else {digitalWrite(D8, LOW);}
}

if (Flag == true)
{
Radio.stopListening(); delay(100);
Radio.openWritingPipe(pipeTx); delay(50);
Radio.write(&Data, sizeof(Data) ); delay(50);
Flag = false;
Radio.openReadingPipe(1, pipeRx); delay(50);
Radio.startListening();
delay(100);
}

void serialEvent()
{
while (Serial.available() )
{
char data = (char)Serial.read();
Data.Kata[n] = data; n++;
if (data == '_') { Flag = true; n=0; }
}
}

LANGKAH KERJA
a. UpLoad program diatas untuk HOST dan CLIENT dengan alamat Tx dan Rx
sesuai tabel alamat yang disepakati
b. Reset dengan menekan tombol reset. Amati apakah masing-masing
menerima pesan Siap...;
c. Ketikkan secara perintah OHLHL_ pada HOST
d. Amati perintah yang diterima oleh CLIENT dan akibat yang terjadi pada LED
D5, LED D6, LED D7 dan LED D8 ( Gunakan AVO meter untuk Uno)

Pembahasan
Hasil

You might also like