01dd-MM-yyyyHH:mmSaaaaKbbbbHccccDdddd Dari format paket data tersebut bisa dijelaskan pada tabel 4.4 seperti berikut:
Tabel 4.4. Format Paket Data Nomor
penyimpanan Tanggal Waktu Suhu Keasaman Kekeruhan DO
Jumlah karakter
2 10
5 5
5 5
5
Sedangkan setelah terjadi perubahan, format paket datanya menjadi seperti dibawah ini dan dijelaskan pada tabel 4.5.
01dd-MM-yyyyHH:mmSaaaaKbbbbHccccDddddX Tabel 4.5. Format Paket Data
Nomor penyimpanan
Tanggal Waktu Suhu Keasaman Kekeruhan DO Status
Kendali Jumlah
karakter 2
10 5
5 5
5 5
1
4.3. Pembahasan Program Pengiriman Dan Penerimaan Data Dari
Remote Unit
Modul RFM12-433S sudah disediakan beberapa pengaturan yang berfungsi untuk mempermudah dalam pengoperasiannya di dalam datasheet. Berikut listing program yang
digunakan untuk pemilihan port yang digunakan untuk modul RFM12-433S. define SCK 2 SPI clock
define SDO 0 SPI Data output RFM12B side MOSI define SDI 1 SPI Data input RFM12B side MISO
define CS 3 SPI SS chip select define NIRQ 4
define HIx PORTA |= 1x define LOx PORTA = ~1x
define WAIT_NIRQ_LOW whilePINA1NIRQ
void portInit {
HICS; PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HISDI; LOSCK;
PORTA.0=1; PORTA.4=1;
DDRA = 1CS | 1SDI | 1SCK; DDRD = 0xff;
PORTD=0x00; }
Dari program diatas bisa dilihat bahwa port yang digunakan untuk modul RFM12- 433S adalah port A, dengan pemilihan pada pin 0
– pin 4. Dalam pengoperasiannya, modul RFM12-433S menggunakan komunikasi SPI berikut program SPI untuk mengaktifkan
modul RFM12-433S. proses SPI
unsigned int writeCmdunsigned int cmd {
unsigned char i; unsigned int recv;
recv = 0; LOSCK;
LOCS; aktifkan modul fori=0; i16; i++
{ ifcmd0x8000 HISDI; else LOSDI; kalo nilai cmd=1 maka tidak ada yg akan
dikirim HISCK;
recv=1; geser register recv ke kiri 1 kali if PINA1SDO {
recv|=0x0001; }
LOSCK; cmd=1; cmd geser ke kiri 1 kali
} Delay_ms100;
HICS; PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
return recv; }
inisialisasi pemancar void rfInit
{ pilihfrek;
pilihkec; writeCmd0x94A0; VDI,FAST,134kHz,0dBm,-103dBm
writeCmd0xC2AC; AL,ml,DIG,DQD4 writeCmd0xCA81; FIFO8,SYNC,ff,DR
writeCmd0xCED4; SYNC=2DD4• G writeCmd0xC483; PWR,NO RSTRIC,st,fi,OE,EN
writeCmd0x9850; mp,90kHz,MAX OUT writeCmd0xCC17; OB1• COB0, LPX,• Iddy• CDDIT• CBW0
writeCmd0xE000; NOT USE writeCmd0xC800; NOT USE
writeCmd0xC040; 1.66MHz,2.2V }
Setiap nilai yang akan dikirimkan ke modul RFM12-433S dimasukkan terlebih dahulu ke dalam variable “writeCmd”, karakter tersebut kemudian digerser sebanyak 16 x
untuk mengahasilkan komunikasi SPI. Pengaturan tersebut bisa dirubah sesuai dengan yang dibutuhkan, tetapi harus disesuaikan dengan datasheet. Berikut listing program untuk
penerimaan data. mereset FIFO
void FIFOReset {
writeCmd0xCA81; writeCmd0xCA83;
}
menerima data dari pemancar unsigned char rfRecv
{ PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
portInit; writeCmd0x80D7; EL,EF,433band,12.0pF
writeCmd0x8299; er,ebb,ET,ES,EX,eb,ew,DC AKTIFKAN PENERIMA rfInit;
FIFOReset; z=0;
while1z=10000 {
data = writeCmd0x0000; if data0x8000
{ data = writeCmd0xB000;
return data0x00FF; }
z++; }
} Setiap data yang masuk akan dimasukkan terlebih dahulu ke variabel “writeCmd”,
setelah semua terkumpul 16 bit kemudian dipindahkan ke variabel “data” untuk diolah ke
program selanjutnya. Setiap selesai menerima data dilakukan reset agar tidak terjadi penumpukan data. Untuk listing program pengiriman data seperti berikut.
void rfSendunsigned char data {
WAIT_NIRQ_LOW; writeCmd0xB800 + data;
}
pengiriman data ke pemancar void kirimdata
{ portInit;
writeCmd0x80D7; EL,EF,433band,12.0pF PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
writeCmd0x8239; er,ebb,ET,ES,EX,eb,ew,DC AKTIFKAN SEBAGAI PEMANCAR
rfInit; FIFOReset;
writeCmd0x0000; rfSend0xAA; 5 DATA AWAL
rfSend0xAA; rfSend0xAA;
rfSend0x2D; rfSend0xD4;
rfSenddata_rf[0]; DATA YANG DIKIRIM rfSend0xAA; DATA PENUTUP
rfSend0xAA; rfSend0xAA;
delay_ms10; }
4.4. Pembahasan Program Visual Basic