Beruflich Dokumente
Kultur Dokumente
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer
ABSTRACT
KHAMDAN AMIN BISYRI. Microcontroller Wireless Data Communication Using XBee ZigBee
(IEEE 802.15.4) Module. Supervised by SRI WAHJUNI and SATYANTO K. SAPTOMO
This research implement microcontroller wireless data communication on automatic irrigation.
Microcontroller unit (MCU) is used to read soil moisture level by using Soil Moisture sensor. Sensor
values need to be sent to main controller (server computer) for monitoring. Past research (Nugroho
2011) has implemented serial cable for communication between field controller and main controller,
but it will be inefficient for field application because serial cable implementation would be difficult if
the field is far from the computer. Therefore, wireless data communication needed. XBee was choosen
because compared to other wireless devices (Bluetooth, GSM, and WiFi), XBee has the lowest power
consumption, lowest cost and the most suitable for monitoring and controlling. XBee performance is
tested using the number of data packet loss. From the test result, the best distance to place the field
controller is obtained, which is less than 20 meters from the main controller. For a better performance
in decreasing the data packet loss incurred by the longer distance, it is advised to use the newer XBee
series.
Keyword: XBee API, Wireless Microcontroller, Automatic Irrigation
i
Judul Skripsi : Rancang Bangun Komunikasi Data Wireless Mikrokontroler Menggunakan Modul
XBee ZigBee (IEEE 802.15.4)
Nama : Khamdan Amin Bisyri
NRP : G64070080
Menyetujui:
Pembimbing I Pembimbing II
Mengetahui:
Ketua Departemen
Tanggal lulus:
i
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa-ta'ala karena hanya dengan berkat,
rahmat, dan karunia-Nya penelitian ini dapat diselesaikan dengan baik. Selawat serta salam penulis
sampaikan kepada junjungan Nabi Muhammad shallallahu’alayhi wasallam, juga kepada
keluarganya, sahabatnya, dan para pengikutnya. Penyelesaian penelitian ini juga tidak lepas dari
bantuan berbagai pihak, untuk itu penulis mengucapkan terima kasih yang sebesar-besarnya kepada:
1 Kedua orang tua penulis, Bapak Abu Tamami dan Ibu Mei Ningsih, terima kasih atas doa, kasih
sayang, dukungan, motivasi, pengertian, pengorbanan, dan nasihat yang selalu mengiringi
perjalanan penulis.
2 Ibu Ir. Sri Wahjuni, M.T selaku dosen pembimbing I, terima kasih akan kesabaran, ilmu, waktu,
motivasi, dan nasihat yang diberikan selama penyelesaian penelitian ini.
3 Bapak Satyanto K. Saptomo, S.TP, M.Si selaku dosen pembimbing II, terima kasih atas segala
ilmu, saran, dan bantuan yang diberikan selama penyelesaian penelitian ini.
4 Bapak Hendra Rahmawan, S.Kom, M.T selaku dosen penguji, terima kasih atas segala ilmu, kritik,
dan saran yang diberikan.
5 Kakak penulis, Zulia Ahmad Burhani, terima kasih atas dukungan yang telah diberikan, juga
kepada adik penulis, Isti Qomah dan Nur Hayati dengan mengingatnya turut memberikan motivasi
dan semangat kepada penulis.
6 Segenap dosen dan staf pendukung Departemen Ilmu Komputer yang telah membantu penulis
dalam berbagai kesempatan.
7 Teman-teman satu bimbingan, Rochiyat, Zola, Catur, Rendy dan Sulma, terima kasih atas bantuan,
dukungan, ilmu, serta motivasi yang selalu diberikan.
8 Ayi Imaduddin, Inne Larasati, dan seluruh Ilkom 44 yang tak bisa disebutkan satu per satu, terima
kasih atas semangat dan kebersamaannya.
9 Semua pihak yang telah memberikan doa, semangat, dan bantuan selama penyelesaian penelitian.
Penulis menyadari bahwa penelitian ini masih terdapat kekurangan. Penulis berharap semoga hasil
penelitian ini dapat memberikan manfaat.
RIWAYAT HIDUP
Penulis dilahirkan di Kelurahan Kebasen, Kabupaten Banyumas pada tanggal 8 Juli 1989. Penulis
merupakan anak kedua Bapak Abu Tamami dan Ibu Mei Ningsih dari empat bersaudara. Penulis
menempuh pendidikan formal di SMA Negeri 1 Lubuk Dalam (2007). Penulis lulus seleksi masuk
Institut Pertanian Bogor (IPB) pada tahun 2007 melalui jalur Beasiswa Utusan Daerah
(BUD) Kabupaten Siak dengan Program Studi Ilmu Komputer Fakultas Matematika dan Ilmu
Pengetahuan Alam (FMIPA). Selama aktif sebagai mahasiswa, penulis menjadi salah satu pengurus
Himpunan Mahasiswa Ilmu Komputer (Himalkom) pada tahun 2009 di Komunitas VB.net.
v
DAFTAR ISI
Halaman
DAFTAR TABEL............................................................................................................... vi
PENDAHULUAN ............................................................................................................... 1
Latar Belakang ............................................................................................................. 1
Tujuan .......................................................................................................................... 1
Ruang Lingkup ............................................................................................................. 1
Manfaat Penelitian ........................................................................................................ 1
TINJAUAN PUSTAKA....................................................................................................... 1
Arduino ........................................................................................................................ 1
Arduino UNO ATmega328........................................................................................... 1
Arduino-0023 ............................................................................................................... 2
ZigBee ......................................................................................................................... 2
XBee ............................................................................................................................ 3
X-CTU ......................................................................................................................... 5
Sensor Soil Moisture (SKU:SEN0114) ......................................................................... 5
Topologi Star................................................................................................................ 6
v
DAFTAR TABEL
Halaman
1 Perbandingan standard wireless ........................................................................................ 2
2 Tabel pengujian packet loss............................................................................................ 10
3 Pengujian packet loss ..................................................................................................... 13
DAFTAR GAMBAR
Halaman
vi
DAFTAR LAMPIRAN
Halaman
1 Blok diagram arsitektur AVR. ........................................................................................ 17
2 Gambar dimensi XBee dan XBee Pro ............................................................................. 17
3 Kode program MCU Arduino field controller. ................................................................ 18
vii
1
receiver lalu data akan masuk RF RX buffer, 1 Frame Delimiter: merupakan suatu bit
kemudian data diteruskan ke DO buffer lalu (0x7E) yang menjadi pemisah antara satu
menjadi data output (DO), kemudian DO frame dan frame yang lain.
diteruskan dari XBee ke host. Diagram data 2 Length: menyatakan bit informasi panjang
flow internal XBee dapat dilihat pada Gambar 5 frame API. Frame length terdiri atas Most
(Digi 2008). Significant Bit (MSB) yang menyatakan
bit signifikan pada representasi biner
panjang frame, sedangkan Least
Significant Bit (LSB) menyatakan bit
kurang signifikan pada representasi biner
panjang frame.
3 Frame data: frame yang berisikan data
Gambar 5 Diagram data flow internal. utama dari API. Frame data pada
Modul RF interface XBee/XBee-PRO penelitian ini terdapat dua jenis yaitu
OEM berhubungan dengan melalui logic-level transmit (TX) dan receive (RX). Paket
asynchronous serial port. Melalui serial port ini, transmit (TX) 16 bit address berisi:
modul dapat berkomunikasi dengan logic dan API id cmdData
voltage kompatibel Universal Asynchronous 0x01 Frame Destination Option RF Data
id Address
Receiver-Transmitter (UART) atau melalui MSB LSB
level translator ke semua serial device Byte 4 Byte 5 Byte Byte Byte 8 Byte 9-n
contohnya pada RS-232 atau USB interface 6 7
Implementasi Sistem
Status SD card merupakan Byte yang c Apabila bit penanda “3” (sinkronisasi
berisi informasi ketersediaan SD card waktu), parameter berisi detil waktu dan
logger pada field controller. tanggal. Ilustrasi dapat dilihat pada
Gambar 24.
5 Nilai Threshold
Nilai threshold merupakan nilai batas yang Parameter Setting
Detik Menit Jam Tanggal Bulan Tahun
menjadi acuan apakah kontrol sistem akan Byte Byte Byte Byte 13 Byte 14 Byte 15
menyalakan atau mematikan aktuator. 10 11 12
Gambar 24 Parameter Setting RF Data pada
API frame TX main controller
Saat menerima paket ini main controller untuk bit penanda 3.
membaca paket data yang masuk (RX),
kemudian main controller akan membaca RF Perancangan Antarmuka Main Controller
data. Setelah itu, RF data di-parsing untuk
Pada perancangan antarmuka main
ditampilkan pada antarmuka main controller
controller, dibuat suatu layout yang akan
Pada saat main controller melakukan diimplementasikan pada pemrograman Java
pengiriman paket, API frame RF Data berisi pada main controller agar monitoring dan
data pengaturan. Ilustrasi dapat dilihat pada kontrol terhadap field controller lebih mudah
Gambar 21. dan intuitif. Layout mencakup kebutuhan
RF Data
antarmuka untuk fungsi-fungsi Perancangan
Bit Parameter setting layout dapat dilihat pada Gambar 25.
penanda
Byte 9 Byte 10-n
Gambar 21 RF Data pada API frame TX main
controller.
1 Bit Penanda
Bit penanda berfungsi membedakan jenis
perintah yang dikirimkan ke field
controller. Terdapat tiga jenis pengaturan
yaitu bit penanda “1” untuk nilai threshold,
“2” untuk pengatur interval, dan “3”
untuk sinkronisasi waktu.
2 Parameter Setting Gambar 25 Layout antarmuka.
Parameter setting berisi parameter-
parameter setting yang digunakan untuk Perancangan antarmuka main controller
mengatur interval, nilai threshold atau secara umum dibagi menjadi dua bagian, yaitu
sinkronisasi waktu. bagian kiri dan bagian kanan. Bagian kiri
antarmuka merupakan bagian untuk monitoring,
a Apabila bit penanda “1” (pengaturan
terdapat combo box berisi daftar COM port dan
threshold), parameter berisi nilai threshold.
tombol connect dan disconnect. Di bawah
Ilustrasi dapat diihat pada Gambar 22.
combo box terdapat tabel view dari data yang
Parameter Setting diterima dari field controller. Bagian kanan
Threshold Minimum Threshold Maksimum
Byte 10,11 Byte 12,13
merupakan bagian untuk kontrol, terdapat
Gambar 22 Parameter Setting RF Data pada tombol connect dan disconnect untuk kontrol
API frame TX main controller terhadap field controller. Terdapat pula combo
untuk bit penanda 1. box nama XBee end device yang akan dikontrol.
Selain itu pada bagian kanan juga terdapat
b Apabila bit penanda “2” (pengaturan tombol untuk menyesuaikan (sinkronisasi)
interval), parameter berisi nilai interval. tanggal dan jam pada field controller agar sama
Ilustrasi dapat dilihat pada Gambar 23. dengan jam pada komputer main controller. Di
bawah tombol sinkronisasi jam terdapat input
Parameter Setting
Satuan interval Nilai interval
untuk mengatur nilai treshlod minimum dan
Byte 10 Byte 11 threshold maksimum pada sistem kontrol field
Gambar 23 Parameter Setting RF Data pada controller. Pada bagian kanan bawah terdapat
API frame TX main controller combo box untuk mengatur besaran interval dan
untuk bit penanda 2. untuk satuan interval terdapat radio button detik
dan menit sebagai pilihan interval waktu
10
pengiriman data dari field controler ke main jangkauan XBee coordinator agar dapat
controller. berkomunikasi dengan baik.
Pembangunan Model Irigasi Implementasi
Pada tahap ini dilakukan pemodelan dari Pada tahap ini hasil perancangan arsitektur
sistem irigasi otomatis yang akan dibuat. akan diterapkan pada perancangan model.
Pemodelan mencakup lingkungan dan alat-alat Langkah awal yaitu XBee dipasangkan dengan
yang akan digunakan dan menggambarkan XBee USB adapter kemudian dihubungkan
ilustrasi komunikasi dari main controller dan dengan komputer yang telah terpasang
field controller. Untuk field controller, alat perangkat lunak X-CTU. Melalui X-CTU,
yang digunakan: XBee dikonfigurasi alamat, PAN ID, dan
1 MCU Arduino UNO; fungsinya sebagai end device/Reduced Function
2 Sensor Soil Moisture; Device (RFD) atau sebagai coordinator/Full
3 Aktuator LED; Function Device (FFD). Setelah dikonfigurasi,
4 Modul SD card stackable; XBee end device akan dipasangkan pada field
5 XBee Shield; dan controller, sedang XBee coordinator akan
6 XBee Series 1 end device. dipasangkan pada komputer main controller.
Untuk MCU Arduino, program ditulis dengan
Untuk main controller alat yang digunakan:
environment Arduino-0023 menggunakan
1 Komputer;
bahasa pemrograman C/C++, kemudian
2 USB Adapter; dan
diunggah ke mikrokontroler melalui USB Serial.
3 XBee Series 1 coordinator.
Pengujian dan Pengambilan Data
Ilustrasi pembangunan model dari sistem
dapat dilihat pada Gambar 26. Pada tahapan pengujian akan dilakukan
beberapa pengujian packet loss dengan
beberapa faktor jarak dan faktor penghalang.
Dalam pengujian dengan faktor jarak akan
dilakukan percobaan pengiriman paket data dari
beberapa jarak tertentu dan interval waktu
tertentu. Dalam pengujian dengan faktor
penghalang akan dilakukan pengiriman paket
data dengan kondisi terhalang suatu benda
seperti dinding atau pohon. Paket yang dikirim
oleh field controller dicatat, kemudian
dibandingkan dengan paket yang sampai pada
main controller. Hasil pengujian akan dicatat
pada tabel seperti pada Tabel 2.
Tabel 2 Tabel pengujian packet loss
Lokasi Jarak Main Field Packet
(m) Controller Controller Loss
(banyak (banyak (%)
data) data)
Titik 1
Titik 2
Gambar 26 Pembangunan model.
Titik 3
Titik 4
Pada bagian monitoring terdapat tombol Pada penelitian ini digunaan sensor Soil
XBee Device untuk memanajemen daftar nama Moisture (SKU:SEN0114), sensor ini dapat
XBee beserta alamatnya. Antarmuka mengetahui kandungan air pada lingkungan.
manajemen XBee Device dapat dilihat pada Menurut produsen sensor ini (dfrobot) sensor
Gambar 29. Pada bagian ini selain dapat ini mengkategorikan kandungan air pada
menambahkan device baru, pengguna dapat lingkungan menjadi 3 antara lain:
pula mengedit device ataupun menghapus dari
daftar device. 1 Tanah kering (0~300)
2 Tanah lembab (300~700)
3 Tanah basah (700~950)
Sensor ini beroperasi pada tegangan 3.3
volt atau 5 volt, dengan konfigurasi penggunaan
pin seperti pada Gambar 31:
1 Analog output (kabel biru);
2 Ground (kabel hitam); dan
3 Power (kabel merah).
Gambar 29 Antarmuka manajemen XBee
device.
12
jam, threshold minimum, threshold maksimum Berdasarkan hasil pengujian packet loss
status aktuator, dan status SD card pada field (Tabel 3) grafik persentase packet loss pada
controller. beberapa jarak dapat divisualisasikan. Grafik
persentase packet loss dapat dilihat pada
Gambar 36.
Packet loss
100
85.98
90
80
70
Persen (%)
60
50
40
30
18.64
20
10 0.00 0.00
0
10 20 30 40
Jarak (m)
Gambar 34 Log main controller.
Gambar 36 Persentase packet loss pada
Jangkauan XBee pada spesifikasinya beberapa jarak.
mencapai 30 meter untuk indoor dan 100 meter
Berdasarkan Gambar 36, dapat dilihat
outdoor. Agar dapat mengetahui jangkauan
bahwa komunikasi wireless XBee masih
yang sebenarnya dilakukan pengukuran dengan
berjalan dengan baik pada jarak kurang dari 20
melakukan pengambilan sampel data pada titik-
meter, dengan packet loss 0%. Angka ini
titik tertentu dengan jarak yang berbeda-beda
menunjukkan bahwa data yang dikirim dari
dan penghalang berupa dinding. Lokasi titik
field controller sepenuhnya masih dapat
pengambilan data dapat dilihat pada Gambar 35.
diterima oleh main controller. Akan tetapi pada
jarak 30 meter pengiriman paket data dari field
controller oleh main controller mengalami
beberapa kegagalan sehingga paket yang
diterima memiliki packet loss sebesar 18.64%.
Pada jarak 40 meter, data yang diterima oleh
main controller sangat sedikit, dengan besar
packet loss sebesar 85.98%. Hal ini
menandakan bahwa wireless XBee sudah tidak
optimal untuk jarak 40 meter atau lebih. Jadi,
Gambar 35 Lokasi pengambilan data. semakin besar jarak antara main controller dan
Apabila dari field controller paket data field controller packet loss akan semakin besar.
tidak sampai ke main controller, paket akan Pada pengukuran packet loss terdapat
hilang (packet loss). Penghitungan packet loss beberapa faktor yang mempengaruhi packet loss,
dilakukan dengan cara membandingkan data antara lain penghalang dinding dan jarak.
yang diterima oleh main controller dengan data Dinding merupakan penghalang sinyal XBee
yang dicatat pada field controller, kemudian yang cukup mengganggu sehingga memperkecil
dihitung persentase data yang hilang. Hasil jarak jangkau XBee coordinator dengan end
pengujian packet loss dapat dilihat pada Tabel 3. device. Selain itu juga terdapat bangunan di
Tabel 3 Pengujian packet loss samping titik pengambilan (titik 4). Hal ini
mempengaruhi sinyal XBee field controller.
Lokasi Jarak Main Field Packet
(m) Controller Controller Loss Untuk mengatasi jangkauan yang sempit
(banyak (banyak (%) perlu penambahan perangkat tambahan seperti
data) data) antena Yagi atau beberapa antena untuk
Titik 1 10 150 150 0 menambahkan gain sinyal XBee agar dalam
Titik 2 20 149 149 0 berkomunikasi dapat lebih baik lagi dan
jangkauan lebih luas sehingga apabila
Titik 3 30 122 150 19
diterapkan pada lahan pertanian lebih dapat
Titik 4 40 20 147 86 memberikan kinerja yang lebih baik.
14
LAMPIRAN
17
Lanjutan
72 void setup() {
73 DDRC|=_BV(2) |_BV(3); // POWER:Vcc Gnd
74 PORTC |=_BV(3); // VCC PINC3
75 //pinMode(statusLed, OUTPUT);
76 pinMode(pinAktuator, OUTPUT);
77 //pinMode(pinAktuator, INPUT);
78
79 xbee.begin(9600);
80 sd.init(SPI_QUARTER_SPEED, chipSelect);
81 delay(1000);
82 }
83
84 void readXBee(){
85 xbee.readPacket();
86
87 if (xbee.getResponse().isAvailable()) {
88 // got something
89
90 if (xbee.getResponse().getApiId() == RX_16_RESPONSE) {
91 // menerima packet rx
92 xbee.getResponse().getRx16Response(rx16);
93 // data = rx16.getData(0);
94 if(rx16.getData(0)==1){
95 //menulis setpoint pada alamat penyimpanan arduino
96 EEPROM.write(addrSetPoint1, rx16.getData(1));
97 EEPROM.write(addrSetPoint2, rx16.getData(2));
98 EEPROM.write(addrSetPoint3, rx16.getData(3));
99 EEPROM.write(addrSetPoint4, rx16.getData(4));
100 //digitalWrite(statusLed, HIGH);
101 }
102 else if(rx16.getData(0)==2){//mode 2 set interval
103
104 // menulis interval pada alamat penyimpanan arduino
105 EEPROM.write(addrInterval1, rx16.getData(1));//nulis satuan
106 EEPROM.write(addrInterval2, rx16.getData(2));//nulis interval
107 }
108 else if(rx16.getData(0)==3){//mode 3 set jam
109 //pengaturan jam atau sync jam
110 RTC.stop();
111 RTC.set(DS1307_SEC,rx16.getData(3));
112 RTC.set(DS1307_MIN,rx16.getData(2));
113 RTC.set(DS1307_HR,rx16.getData(1));
114 RTC.set(DS1307_DOW,2);
115 RTC.set(DS1307_DATE,rx16.getData(4));
116 RTC.set(DS1307_MTH,rx16.getData(5));
117 RTC.set(DS1307_YR,rx16.getData(6));
118 RTC.start();
119 }
120
121
122 }
123 }
124 }
125
126
127
128
129
130 void sendXBee(int sensorValuex,int stat){
131 //xbee ambil
132 //pembacaan nilai pin analog sensor
133 statAktuator=digitalRead(pinAktuator);
134 sensorValue=sensorValuex;//
135 setPoint=parse10Bit(EEPROM.read(addrSetPoint1), EEPROM.read(addrSetPoint2));
136 setPoint2=parse10Bit(EEPROM.read(addrSetPoint3),
137 EEPROM.read(addrSetPoint4));
138
139
140
141
142
143
20
Lanjutan
144 // mulai trasmit setelah startup delay.
145 if (millis() - start > 15000) {
146
147 //pengenkapsulasi paket data untuk dikirim
148 payload[0] = sensorValue >> 8 & 0xff;
149 payload[1] = sensorValue & 0xff;
150
151 payload[2] = jam & 0xff;
152 payload[3] = menit & 0xff;
153 payload[4] = detik & 0xff;
154 payload[5] = tanggal & 0xff;
155 payload[6] = bulan & 0xff;
156 payload[7] = tahun & 0xff;
157
158 payload[8] = EEPROM.read(addrInterval1) & 0xff;
159 payload[9] = EEPROM.read(addrInterval2) & 0xff;
160 payload[10] = stat & 0xff;
161 payload[11] = statSD & 0xff;
162 payload[12] = setPoint >> 8 & 0xff;
163 payload[13] = setPoint & 0xff;
164 payload[14] = setPoint2 >> 8 & 0xff;
165 payload[15] = setPoint2 & 0xff;
166
167
168
169
170
171 xbee.send(tx);
172
173
174 }
175 }
176 //fungsi mengubah 8 bit menjadi 10bit
177 int parse10Bit(int msb, int lsb) {
178 msb = msb & 0xff;
179
180 // shift up bits 9 and 10 of the msb
181 msb = (msb & 0x3) << 8;
182
183 lsb = lsb & 0xff;
184
185 return msb + lsb;
186 }
187
188 void writeData(int sensorValue,int stat){
189 //tulis dalam file SD
190 myFile.print(sensorValue);
191 myFile.print(",");
192 myFile.print(setPoint);
193 myFile.print(",");
194 myFile.print(setPoint2);
195 myFile.print(",");
196 myFile.print(tanggal);
197 myFile.print("-");
198 myFile.print(bulan);
199 myFile.print("-");
200 myFile.print(tahun);
201 myFile.print(",");
202 myFile.print(jam);
203 myFile.print(":");
204 myFile.print(menit);
205 myFile.print(":");
206 myFile.print(detik);
207
208 if (stat==0){
209 myFile.print(",OFF");
210 }
211 else if (stat==1){
212 myFile.print(",ON ");
213 }
214
215 myFile.println();
21
Lanjutan
216 }
217
218 void loop() {
219 int stat; // status aktuator ON/OFF
220 int sensorValue = analogRead(A0); // Baca analog pin0
221
222 setPoint = parse10Bit(EEPROM.read(addrSetPoint1),
223 EEPROM.read(addrSetPoint2));//mengambil nilai setpoint
224 setPoint2 = parse10Bit(EEPROM.read(addrSetPoint3),
225 EEPROM.read(addrSetPoint4));//mengambil nilai setpoint
226
227 //rule membandingkan hasil pembacaan dengan setpoint
228 if ((sensorValue>setPoint) && (sensorValue <setPoint2)){
229 stat=1;
230 }
231 else if ((sensorValue<setPoint) && (sensorValue >setPoint2)){
232 stat=0;
233 }
234
235 if(stat==1){
236 digitalWrite(pinAktuator, HIGH);//menyalakan aktuator
237 }
238 else if(stat==0){
239 digitalWrite(pinAktuator, LOW);//mematikan aktuator
240 }
241
242
243
244
245 RTC.get(rtc,true);
246 jam=rtc[2];
247 menit=rtc[1];
248 detik=rtc[0];
249
250 tanggal=rtc[4];
251 bulan=rtc[5];
252 tahun=rtc[6]%2000;//agar 2 digit saja tahuunya
253
254
255
256 //pembuatan file atau mengeditya jika telah ada
257 if (myFile.open("log.csv", O_RDWR | O_CREAT | O_AT_END)){
258 statSD=1;
259 }
260
261 readXBee();
262
263 //menghitung waktu pengiriman disesuaikan dengan setting
264 int intervalSat=EEPROM.read(addrInterval1);//baca satuan menit/detik
265
266 if (intervalSat==0){
267 rate= detik % EEPROM.read(addrInterval2);
268 if (rate==0){
269 sendXBee(sensorValue,stat);//pengiriman data
270 writeData(sensorValue,stat);
271 }
272 }
273 else if (intervalSat==1 && detik==0){
274 rate= menit % EEPROM.read(addrInterval2);
275
276 if (rate==0){
277 sendXBee(sensorValue,stat);//pengiriman data
278 writeData(sensorValue,stat);
279 }
280 }
281
282
283 myFile.close();
284
285 delay(1000);
286 }
1