Anda di halaman 1dari 100

FINAL PROJECT

IMPLEMENTATION OF WIRELESS SENSOR


NETWORK FOR MONITORING PARAMETERS AS
GOOD SERVICES ELECTRICAL DISTRIBUTOR

By :

Moch Harun Arrosyid


NRP. 7306030001

Supervisors :

Ir. Anang Tjahjono , MT


NIP. 196411191988031001
Epyk Sunarno, S.ST
NIP. 196207231991031002

ELECTRIC INDUSTRY ENGINEERING


ELECTRONICS ENGINEERING POLYTECHNIC
INSTITUTE OF SURABAYA
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA
2009

i
PROYEK AKHIR

IMPLEMENTASI WIRELESS SENSOR NETWORK


UNTUK MONITORING PARAMETER ENERGI
LISTRIK SEBAGAI PENINGKATAN LAYANAN
BAGI PENYEDIA ENERGI LISTRIK

Oleh:

Moch Harun Arrosyid


NRP. 7306030001

Dosen Pembimbing :

Ir. Anang Tjahjono , MT


NIP. 196411191988031001
Epyk Sunarno, S.ST
NIP. 196207231991031002

JURUSAN TEKNIK ELEKTRO INDUSTRI


POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA
2009

i
FINAL PROJECT

IMPLEMENTATION OF WIRELESS SENSOR


NETWORK FOR MONITORING PARAMETERS AS
GOOD SERVICES ELECTRICAL DISTRIBUTOR

By :

Moch Harun Arrosyid


NRP. 7306030001

Supervisors :

Ir. Anang Tjahjono , MT


NIP. 196411191988031001

Epyk Sunarno, S.ST


NIP. 196207231991031002

ELECTRIC INDUSTRY ENGINEERING


ELECTRONICS ENGINEERING POLYTECHNIC
INSTITUTE OF SURABAYA
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA
2009

ii
PROYEK AKHIR

IMPLEMENTASI WIRELESS SENSOR NETWORK


UNTUK MONITORING PARAMETER ENERGI
LISTRIK SEBAGAI PENINGKATAN LAYANAN
BAGI PENYEDIA ENERGI LISTRIK

Oleh:

Moch Harun Arrosyid


NRP. 7306030001

Dosen Pembimbing :

Ir. Anang Tjahjono , MT


NIP. 196411191988031001

Epyk Sunarno, S.ST


NIP. 196207231991031002

JURUSAN TEKNIK ELEKTRO INDUSTRI


POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA
2009

ii
IMPLEMENTASI WIRELESS SENSOR NETWORK
UNTUK MONITORING PARAMETER ENERGI
LISTRIK SEBAGAI PENINGKATAN LAYANAN
BAGI PENYEDIA ENERGI LISTRIK
Oleh :

Moch Harun Arrosyid


NRP. 7306030001

Proyek Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk


Memperoleh Gelar Ahli Madya (A.Md.)
di
Politeknik Elektronika Negeri Surabaya
Institut Teknologi Sepuluh Nopember Surabaya

Disetujui Oleh
Dosen Penguji Proyek Akhir : Dosen Pembimbing:

1. Ir. Joke Pratilastiarso , MT 1. Ir. Anang Tjahjono , MT


NIP. 196209201988031002 NIP. 196411191988031001

2. Ir. Gigih Prabowo ,MT 2. Epyk Sunarno, S.ST


NIP. 196212051991031003 NIP. 196207231991031002

3. Rusiana, ST
NIP. 195701261990032001

Mengetahui :
Ketua Jurusan Teknik Elektro Industri

Ainur Rofiq Mansur ST, MT


NIP. 196407131989031005

iv
ABSTRAK

Pertumbuhan energi listrik terus meningkat dari waktu ke waktu


sejalan dengan meningkatnya kegiatan ekonomi dan kesejahteraan
masyarakat. Energi listrik merupakan salah satu kebutuhan utama
masyarakat. Oleh karena itu, untuk meyakinkan konsumen kualitas
energi listrik yang dikonsumsi, perlu dilakukan monitoring energi listrik.
Wireless Sensor Network (WSN) merupakan suatu jaringan nirkabel
yang terdiri dari beberapa sensor (sensor node) yang diletakkan ditempat
- tempat yang berbeda untuk memonitoring kondisi suatu plan.
Untuk proyek akhir kali ini, parameter energi listrik yang
dimonitoring adalah tegangan, arus, frekuensi dan beda phase. Untuk
memperoleh data tersebut kami menggunakan beberapa sensor yaitu,
trafo tegangan (stepdown), trafo arus, zero crossing detector dan
gerbang exor sebagai pendeteksi beda phasa. Data parameter energi
listrik pada setiap sensor node dikirimkan secara nirkabel menggunakan
RF modules ke gateway. Pada sisi gateway akan terkoneksi gprs
menggunakan modem gprs (sim300c) dan mengirim paket – paket data
ke web database. Konsumen dapat mengakses data – data tersebut
melalui telepon genggam ke web yang terkoneksi database. Pada web
tersebut akan ditampilkan data – data nilai energi listrik sesuai waktu
dan wilayah yang ingin ditampilkan. Sehingga dapat meyakinkan
konsumen akan energi listrik yang dikonsumsi selama ini.
Pengiriman data secara nirkabel menggunakan RF modules dapat
diandalkan, karena pada pengiriman 1000 data, hanya terjadi kehilangan
data kurang dari 0.7 % dari data yang dikirim. RF modules mempunyai
kehandalan pada jarak pengiriman data yaitu pada jarak 300 meter masih
dapat mengirim data tanpa losses. Output dari sensor arus, tegangan,
frekuensi dan beda phasa cukup bagus karena perubahannya cukup linier
dan sebanding dengan perubahan pada sisi input.

Kata Kunci : Monitoring listrik, komunikasi nirkabel, koneksi GPRS,


database

v
ABSTRACT

The growth of electricity keep increasing from time to time in


line with increased economic activities and welfare of the society.
Electricity is one of our primary need. That’s why to convince consumer
about quality of electricity, we need to monitor it. Wireless Sensor
Network (WSN) is a wireless network consisting of spatially distributed
autonomous devices using sensors to cooperatively monitor physical
phenomenon.
For this final project, sensor node will sense voltage, current,
frequency and power factor. To get the data, we use several sensors,
these are voltage transformer, current transformer, zero crossing and
exor gate to detect the difference of phase. All datas of electrical
parameter of each node will be sent to the gateway by using RF
modules. The gateway will connect to GPRS by using GPRS modem
(sim300c) and then send packet data to the web database. Consumer can
access the data by using their mobile phone to the available web that
connected to the database. In that web, it will show the quality of
electricity in accordance with the expected. So, it can convince
consumer about quality of electricity that consumed during this time.
Transmitting data using RF module can be reliable, because for
sending 1000 datas, it only loses data less than 0.7 % from sent data. RF
module is reliable to send data in distance, it can send data in distance
300 meters without losing data. The Output of sensors are good enough,
because it change proportionally to the input of sensors.

Keywords : Monitoring electricity, wireless communication, GPRS


connection, database

vi
KATA PENGANTAR

Alhamdulillah, segala puji syukur bagi Allah SWT karena berkat


rahmat dan hidayah-Nya, penulis dapat menyelesaikan proyek akhir
yang berjudul :

“IMPLEMENTASI WIRELESS SENSOR NETWORK UNTUK


MONITORING PARAMETER ENERGI LISTRIK SEBAGAI
PENINGKATAN LAYANAN BAGI PENYEDIA ENERGI LISTRIK”

Pembuatan dan penyusunan proyek akhir ini diajukan sebagai


salah satu syarat untuk menyelesaikan studi Diploma-3 (D3) dan
memperoleh gelar Ahli Madya (A.Md.) di jurusan Teknik Elektro
Industri, Politeknik Elektronika Negeri Surabaya, Institut Teknologi
Sepuluh Nopember Surabaya.
Penulis berusaha secara optimal dengan segala pengetahuan dan
informasi yang didapatkan dalam menyusun laporan proyek akhir ini.
Namun, penulis menyadari berbagai keterbatasannya, karena itu penulis
memohon maaf atas keterbatasan materi laporan proyek akhir ini.
Penulis sangat mengharapkan masukan berupa saran dan kritik yang
membangun demi kesempurnaan laporan proyek akhir ini.
Demikian besar harapan penulis agar laporan proyek akhir ini
dapat bermanfaat bagi pembaca.

Surabaya, 10 Juli 2009

Penulis

vii
UCAPAN TERIMA KASIH
Dengan penuh rasa syukur kehadirat Allah S.W.T dan tanpa
menghilangkan rasa hormat yang mendalam, saya selaku penyusun dan
penulis mengucapkan terima kasih yang sebesar-besarnya kepada pihak-
pihak yang telah membantu penulis untuk menyelesaikan proyek akhir
ini, penulis mengucapkan terima kasih kepada :

1. Kedua orang tuaku tercinta dan kakakku tersayang yang selalu


memberi dukungan dan mendo’akan dalam proses belajar dan
penyelesaian proyek akhir ini.
2. Bapak Ir. Dadet Pramadihanto, M.Eng, Ph.D. selaku direktur
PENS-ITS.
3. Bapak Ainur Rofiq Mansur ST, MT selaku ketua jurusan Teknik
Elektro Industri PENS-ITS.
4. Bapak Ir. Anang Tjahjono , MT dan Bapak Epyk Sunarno, S.ST
selaku dosen pembimbing proyek akhir saya yang dengan sabar
membimbing saya dalam perencanaan dan pengerjaan proyek akhir
ini.
5. Bapak Ir. Joke Pratilastiarso, MT, Bapak Ir. Gigih Prabow , MT
dan Ibu Rusiana, ST selaku dosen penguji proyek akhir yang telah
menguji dan memberikan pengarahan terhadap proyek akhir yang
saya kerjakan.
6. Bapak Agus Indra Gunawan, Bapak Taufik, Bapak Safroodin,
Bapak Darwis dan Mas Ismail yang telah membantu dalam
pengerjaan proyek akhir ini.
7. Seluruh Bapak dan Ibu dosen yang telah membimbing dan
membekali ilmu kepada saya ketika belajar di PENS – ITS.
8. Mas Eka yang sering mengajari logika pemrograman dan membuat
rangkaian.
9. Hendi, Ridwan, Syaiful, Sholeh, Nurul Imania, Mas Toufan,
Handoko, Roni, Lutfi, Harto dan teman – teman lab TA Elin A
D3 untuk dukungan dan bantuannya.
10. Semua pihak yang telah membantu penulis hingga terselesainya
proyek akhir ini yang tidak dapat penulis sebutkan satu persatu.

Semoga Allah S.W.T selalu memberikan perlindungan, rahmat


dan nikmat-Nya bagi kita semua. Amin

viii
DAFTAR ISI

HALAMAN JUDUL ....................................................................... i


HALAMAN PENGESAHAN ......................................................... ii
ABSTRAK ....................................................................................... iii
ABSTRACT ..................................................................................... iv
KATA PENGANTAR ..................................................................... v
UCAPAN TERIMA KASIH........................................................... vi
DAFTAR ISI.................................................................................... vii
DAFTAR GAMBAR ....................................................................... ix
DAFTAR TABEL............................................................................ xi

BAB I. PENDAHULUAN
1.1 Latar Belakang ........................................................... 1
1.2 Tujuan Proyek Akhir .................................................. 1
1.3 Perumusan Masalah .................................................... 1
1.4 Batasan Masalah ........................................................ 2
1.5 Metodologi.................................................................. 2
1.6 Sistematika Pembahasan............................................. 3

BAB II. TEORI PENUNJANG


2.1 Wireless Sensor Network ........................................... 5
3.1 Sensor ......................................................................... 7
2.2 Mikrokontroller........................................................... 10
2.3 Komunikasi serial ....................................................... 11
2.4 X-Bee PRO RF Module .............................................. 12
2.5 Real Time Clock ......................................................... 14
2.6 Memory Card (SD Card)............................................. 15
2.7 CodeVisionAVR ......................................................... 17
2.8 Bahasa C...................................................................... 19
2.9 Protokol ....................................................................... 21
2.10 GPRS........................................................................... 22
2.11 WAP............................................................................ 23
2.12 Database ...................................................................... 23

BAB III. PERANCANGAN DAN PEMBUATAN HARDWARE


DAN SOFTWARE
3.1 Konfigurasi Sistem ..................................................... 25

ix
3.2 Perancangan dan Pembuatan Alat................................ 27
3.3 Perancangan dan Pembuatan Perangkat Lunak ........... 32

BAB IV. PENGUJIAN DAN ANALISA


4.1 Pengujian Perangkat Keras .......................................... 37
4.1.1 Data Sensor Arus ................................................ 37
4.1.2 Data Sensor Tegangan ........................................ 38
4.1.3 Zerro Crossing .................................................... 40
4.1.3 Pengujian Pengiriman Data XBee PRO.............. 41
4.1.4 Pengiriman data melalui koneksi GPRS ............. 47
4.1.5 Web pada ponsel................................................. 49
4.2 Analisa......................................................................... 50

BAB V. PENUTUP
5.1 Kesimpulan ................................................................. 51
4.2 Saran ............................................................................ 51

DAFTAR PUSTAKA
LAMPIRAN

x
DAFTAR GAMBAR
Gambar 2.1 Komponen WSN ...................................................... 5
Gambar 2.2 Topologi untuk WSN ............................................... 6
Gambar 2.3 Komponen Pada setiap node pada WSN.................. 6
Gambar 2.4 Rangkaiang dasar trafo............................................. 7
Gambar 2.5 Rangkaian ekivalen trafo arus .................................. 8
Gambar 2.6 Rangkaian zerro crossing ..................................... 9
Gambar 2.7 Rangkaian zero crossing dan EXOR
untuk mendapatkan nilai beda phase .................. 10
Gambar 2.8 Blok diagram sistem mikrokontroller............... 10
Gambar 2.9 Pin konfigurasi XBee PRO ...................................... 12
Gambar 2.10 Pin konfigurasi DS1307 .......................................... 15
Gambar 2.11 Timing diagram perintah reset.................................. 16
Gambar 2.12 Timing diagram perintah init.................................... 16
Gambar 2.13 Timing diagram perintah read .................................. 17
Gambar 2.14 Timing diagram perintah write ................................. 17
Gambar 2.15 Memulai project baru pada CodeVision AVR.......... 18
Gambar 2.16 Memilih IC, clock dan kebutuhan program yang
akan dibuat pada wizard ........................................... 18
Gambar 2.17 Generate , save c file, project file dan wizard........... 19
Gambar 2.18 Mendownload program ke mikrokontroller.............. 19
Gambar 3.1 Konfigurasi sistem WSN.......................................... 25
Gambar 3.2 Blok diagram WSN untuk monitoring parameter listrik ... 26
Gambar 3.3 Blok diagram sensor node ........................................ 27
Gambar 3.4 Rangkaian minimum sistem ATMega 128............... 27
Gambar 3.5 Rangkaian konverter TTl to RS-232 ........................ 28
Gambar 3.6 Rangkaian modul radio frekuensi (XBee PRO) ....... 28
Gambar 3.7 Rangkaian real time clock (DS1307) ....................... 29
Gambar 3.8 Rangkaian penyimpan data (SD Card) ..................... 29
Gambar 3.9 Rangkaian sensor node............................................. 30
Gambar 3.10 Modem GPRS .......................................................... 30
Gambar 3.11 Rangkaiang dasar trafo............................................. 31
Gambar 3.12 Rangkaian zero crossing........................................... 32
Gambar 3.13 Rangkaian zero crossing dan EXOR
untuk mendapatkan nilai beda phase ..................... 32
Gambar 3.14 Flowchart sistem sensor node .................................. 33
Gambar 3.15 Flowchart komunikasi data sisi Gateway.......................... 36

xi
Gambar 4.1 Grafik tegangan output AC sisi sekunder terhadap
arus input AC sisi primer transformator arus ............. 38
Gambar 4.2 Gelombang tegangan (arus di parallel resistor) pada
sisi sekunder............................................................... 38
Gambar 4.3 Grafik tegangan output AC terhadap tegangan
input AC pada transformator tegangan ...................... 39
Gambar 4.4 Contoh gambar tegangan AC, f = 50Hz
pada sisi sekunder trafo tegangan .............................. 40
Gambar 4.5 Tegangan pada sisi sekunder trafo tegangan
dengan bentuk gelombang sinus ................................ 40
Gambar 4.6 Hasil zero crossing dari gelombang sinus
menjadi gelombang kotak .......................................... 41
Gambar 4.7 Grafik kualitas penerimaan data baud rate 9600........ 44
Gambar 4.8 Grafik kualitas penerimaan data baud rate 4800........ 45
Gambar 4.9 Grafik kualitas penerimaan data baud rate 19200...... 45
Gambar 4.10 Grafik kualitas penerimaan data baud rate 38400...... 46
Gambar 4.11 Grafik kualitas penerimaan data baud rate 57600...... 46
Gambar 4.12 Grafik kualitas penerimaan data baud rate 115200.... 47
Gambar 4.13 Tampilan web pada telepon gengam ......................... 49
Gambar 4.14 Tampilan input web pada telepon genggam............... 49
Gambar 4.15 Tampilan output web pada telepon genggam............. 50

xii
DAFTAR TABEL
Tabel 2.1 Keterangan pin konfigurasi XBee PRO .................... 13
Tabel 2.2 Data pada bahasa C................................................... 20
Tabel 2.3 Operator arimatika yang digunakan di bahasa C ...... 21
Tabel 2.4 Operator logika yang biasa digunakan di bahasa C .. 21
Tabel 4.1 Pengukuran sensivitas sensor arus ............................ 37
Tabel 4.2 Pengukuran sensivitas sensor tegangan .................... 39
Tabel 4.3 Pengukuran kualitas pengiriman data dari
XBee – Pro dengan baud rate 4800bps .................... 41
Tabel 4.4 Pengukuran kualitas pengiriman data dari
XBee – Pro dengan baud rate 9600 bps ................... 42
Tabel 4.5 Pengukuran kualitas pengiriman data dari
XBee – Pro dengan baud rate 19200bps .................. 42
Tabel 4.6 Pengukuran kualitas pengiriman data dari
XBee – Pro dengan baud rate 38400bps .................. 43
Tabel 4.7 Pengukuran kualitas pengiriman data dari
XBee – Pro dengan baud rate 157600bps ................ 43
Tabel 4.8 Pengukuran kualitas pengiriman data dari
XBee – Pro dengan baud rate 115200bps ................ 44

xiii
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG

Dengan meningkatnya kegiatan ekonomi dan kesejahteraan


masyarakat maka akan menuntut kebutuhan energi listrik yang terus
meningkat. Energi listrik merupakan salah satu kebutuhan utama
masyarakat. Oleh karena itu, untuk meyakinkan konsumen kualitas
energi listrik yang dikonsumsi, perlu dilakukan monitoring energi listrik.
Wireless Sensor Network (WSN) merupakan suatu jaringan
nirkabel yang terdiri dari beberapa sensor (sensor node) yang diletakkan
ditempat - tempat yang berbeda untuk memonitoring kondisi suatu plan.
Kita biasa menyebutnya sensor node, dimana sensor – sensor tersebut
akan mendeteksi obyek dan mengirim data dengan nirkabel (xbee - pro)
ke gateway. Untuk proyek akhir kali ini obyek yang dideteksi adalah
tegangan, arus, frekuensi dan beda phase. Pada sisi gateway akan
terkoneksi GPRS menggunakan modem GPRS (sim300c) dan mengirim
paket – paket data ke web database.
Konsumen dapat mengakses data – data tersebut melalui telepon
gengam ke web yang terkoneksi database. Pada web tersebut akan
ditampilkan data – data nilai energi listrik sesuai waktu dan titik yang
ingin ditampilkan. Sehingga dapat meyakinkan konsumen akan energi
listrik yang dikonsumsi selama ini.

1.2 TUJUAN PROYEK AKHIR

Proyek Akhir ini bertujuan untuk memonitoring beberapa


parameter energi listrik sebagai informasi ke konsumen atas energi
listrik yang digunakan. Penggunaan komunikasi nirkabel dan koneksi
GPRS membuat pengiriman data lebih fleksibel dan tidak terbatas oleh
jarak (selama masih ada koneksi internet).

1.3 PERUMUSAN MASALAH

Permasalahan dalam proyek akhir ini adalah:


1. Bagaimana memonitoring parameter energi listrik

1
2. Bagaimana mengirim data – data parameter energi listrik tersebut
secara nirkabel ke gateway, dan gateway mengirimnya ke server
menggunakan koneksi GPRS.
3. Bagaimana mengakses database melalui WAP (dari telepon
genggam).

1.4 BATASAN MASALAH

Batasan masalah dalam pengerjaan proyek akhir ini adalah


sebagai berikut :
1. Monitoring yang dilakukan terdapat pada 3 titik (node) dan satu
gateway.
2. Parameter energi listrik yang dimonitoring adalah tegangan, arus,
frekuensi dan beda phase.
3. Sistem Komunikasi dilakukan pada satu area terbuka (outdoor)
tanpa halangan.

1.5 METODOLOGI

Metodologi dalam pembuatan proyek akhir ini meliputi :

1.5.1 Pemahaman Materi

Pada tahap ini dilakukan upaya memahami materi dari beberapa


literatur yang digunakan baik berupa buku, website atau jurnal ilmiah
tentang wireless sensor network, topologi, komunikasi serial, bahasa
pemrograman C++ (codevision AVR), koneksi GPRS, WAP dan lain-
lain yang dapat membantu penyelesaian proyek akhir ini.

1.5.2 Perancangan dan Pembuatan Sistem

Pada tahap ini yang dilakukan adalah perencanan dan pembuatan


hardware dari sensor node, gateway, sensor interface, beserta sistem
komunikasi antara node dengan gateway dan web dari WAP dan
database.

2
1.5.3 Uji Coba Sistem

Pada tahap ini dilakukan uji coba hardware dan program untuk
mengetahui hasil dari integrasi hardware dan program yang telah dibuat,
serta melakukan perbaikan apabila terjadi kesalahan pada hardware atau
program.

1.5.4 Analisa Hasil Program

Pada tahap terakhir ini dilakukan analisa terhadap hasil sistem


yang telah diuji coba Serta mengambil suatu kesimpulan dari hasil uji
coba.

1.6 SISTEMATIKA PEMBAHASAN

Sistematika pembahasan dalam penyusunan buku proyek akhir ini


adalah sebagai berikut :

BAB I PENDAHULUAN

Menguraikan secara singkat latar belakang, tujuan proyek akhir,


perumusan masalah, batasan masalah, metodologi dan sistematika
pembahasan.

BAB II TEORI PENUNJANG

Menjelaskan landasan teori tentang Wireless Sensor Network,


sensor, mikrokontroller, komunikasi serial, XBee PRO RF Module,
protokol, Real Time Clock, SD Card, CodeVisionAVR, Bahasa C,
Modem GPRS, WAP, Database.

BAB III PERANCANGAN DAN PEMBUATAN HARDWARE


DAN SOFTWARE

Dalam bab ini akan diuraikan tentang tahap perencanaan serta


proses pembuatan perangkat keras (hardware) dan pembuatan perangkat
lunak (software).

3
BAB IV ANALISA HASIL PENGUJIAN

Bab ini membahas tentang pengujian rangkaian pada masing –


masing blok dan secara menyeluruh sehingga kekurangan dari alat
tersebut dapat diketahui, serta berisi data dan analisa dari hasil pengujian
yang telah dilakukan.

BAB V KESIMPULAN DAN SARAN

Bab ini merupakan bab penutup dimana pengambilan kesimpulan


dari analisa dan hasil pengujian yang telah diperoleh.

DAFTAR PUSTAKA

Pada bagian ini berisi tentang referensi-referensi yang telah


dipakai oleh penulis sebagai acuan dan penunjang serta parameter yang
mendukung penyelesaian proyek akhir ini baik secara praktis maupun
teoritis.

4
BAB II
TEORI PENUNJANG
2.1 Wireless Sensor Network (WSN)

Wireless Sensor Network (WSN) atau sensor jaringan nirkabel


merupakan suatu jaringan nirkabel yang terdiri dari beberapa sensor (sensor
node) yang diletakkan ditempat - tempat yang berbeda untuk memonitoring
kondisi suatu plan. Pada gambar 2.1 ditunjukkan komponen dari WSN.

Gambar 2.1. Komponen WSN1

Sebuah WSN dapat menghemat waktu dan biaya untuk penyebaran


sensor, menambah efisiensi dan mudah perawatannya.
Beberapa keuntungan WSN adalah sebagai berikut :
1. Penyebaran yang flexibel, tidak seperti tradisional wired sensor network,
sebuah sensor node dapat terdistribusi secara acak tanpa memperhatikan
batasan tempat, seperti flexibelitas yang memungkinkan pada tempat
yang sulit dicakup.
2. Jaringan yang dimanis, hubungan jaringan dapat juga disesuaikan
secara dinamis dan otomatis untuk menyesuaikan perubahan yang
dinamis seperti penambahan node atau ada kerusakan pada sebuah atau
beberapa node.
3. Tahan terhadap gangguan (rusak), karena jumlah sensor yang banyak dan
hubungan topologi yang kompleks, lebih dari satu hubungan

1
__,” What Is a Wireless Sensor Network?”. diakses tanggal 1 pebuari 2009 , NI
Developer Zone, National Instruments
http://zone.ni.com/devzone/cda/tut/p/id/8707, hal 3

5
komunikasi biasanya ada. jika satu hubungan komunikasi rusak,
pengiriman data tidak akan berhenti .
WSN secara umum mempunyai 3 buah topologi (star, tree dan
mesh) seperti ditunjukkan pada gambar 2.2.
1. Topologi Bintang (Star Topology), pada topologi ini setiap node dapat
terhubung langsung ke gateway.
2. Topologi Pohon (Tree Topology), pada topologi ini setiap node
terhubung ke node yang lebih tinggi pada tree (yang terdekat dengan
gateway) baru kemudian ke gateway.
3. Topologi Bertautan (Mesh Topology), dimana setiap node dapat
terhubung lebih dari satu node pada sistem dan mengirim data melalui
jalur yang paling memungkinkan.

Gambar 2.2. Topologi untuk WSN2

Setiap node pada WSN terdiri dari beberapa komponen, yaitu


modul radio frekuensi (komunikasi nirkabel), baterai, mikrokontroller,
rangkaian analog dan sensor. Pada gambar 2.3 ditunjukkan komponen dari
sensor node.

Gambar 2.3. Komponen pada setiap node pada WSN3

2
Ibid, hal 5
3
Ibid, hal 6

6
Beberapa penggunaan WSN adalah otomasi industri, kontrol dan
managemen energi, monitoring mesin - mesin kesehatan, monitoring
lingkungan untuk keperluan kesehatan, monitoring arus lalu-lintas,
monitoring bencana alam (pencatatan gempa), monitoring polusi,
monitoring hewan liar, monitoring parameter energi listrik dan lain-lain.
Sensor – sensor tersebut akan mendeteksi obyek dan mengirim data
dengan nirkabel ke gateway. Sensor – sensor yang digunakan dapat
bermacam – macam, tergantung dari plan yang dikerjakan.

2.2 SENSOR

2.2.1 Sensor Tegangan

Gambar 2.4. Rangkaian dasar trafo4

Untuk membaca nilai tegangan dari PLN, digunakan


Transformator tegangan yang difungsikan step down.
Transformator penurun tegangan (step down) seperti pada
gambar 2.4 merupakan transformator yang mengubah tegangan bolak-
balik yang tinggi pada sisi primer menjadi tegangan yang rendah pada
sisi sekunder, transformator penurun tegangan mempunyai jumlah
lilitan (kumparan) pada sisi primer yang lebih banyak dari pada jumlah
lilitan (kumparan) pada sisi sekunder dan dilambangkan sebagai
berikut :
(Np > Ns) = Jumlah kumparan primer lebih banyak dari jumlah
kumparan sekunder.
Vp/Vs = Np/Ns

4
Setiawan,”Rumusan Dasar Trafo”, diakses pada tanggal 1 Agustus 2009, geocities
http://www.geocities.com/sap_tech_talk/Formula_Trafo.htm, hal 1

7
Dimana : Vp= tegangan sisi primer
Vs= tegangan sisi sekunder
Np= Belitan sisi primer
Ns= Belitan sisi sekunder

2.2.2 Sensor Arus

Transformator arus digunakan untuk pengukuran arus yang


besarnya ratusan amper dari arus yang mengalir dalam jaringan
tegangan tinggi.
Kumparan primer transformator arus dihubungkan seri dengan
jaringan atau peralatan yang akan diukur arusnya, sedangkan
kumparan sekunder dihubungkan dengan meter atau relay proteksi.
Jika pada kumparan primer mengalir arus I1, maka pada
kumparan primer timbul gaya gerak magnet sebesar N1I1. Gaya gerak
magnet ini menghasilkan fluks pada inti, kemudian membangkitkan
gaya gerak listrik (GGL) pada kumparan sekunder. Jika terminal
kumparan sekunder tertutup, maka pada kumparan sekunder mengalir
arus I2 , arus ini menimbulkan gaya gerak magnet N2I2 pada kumparan
sekunder. Bila trafo tidak mempunyai rugi-rugi (trafo ideal) berlaku
persamaan :
I1 N 2
 atau N1 I 1  N 2 I 2
I 2 N1

Gambar 2.5. Rangkaian ekivalen transformator arus5

5
“Peralatan input relay” diakses pada tanggal 1 Agustus 2009, elista
elista.akprind.ac.id/upload/files/8357_Pertemuan_ke_4.ppt, hal 17

8
Keterangan : Tegangan terminal sekunder (V2 ) tergantung pada
impedansi peralatan (Z2 ) yang bisa berupa alat ukur / relay, sehingga
dapat ditulis persamaan :
V2  I 2 Z 2
Gambar 2.5 merupakan rangkaian ekivalen transformator arus. Jika
tahanan dan reaktansi bocor kumparan trafo dinyatakan (Z i ), maka ggl
pada kumparan sekunder harus lebih besar dari pada tegangan
sekunder agar rugi-rugi tegangan pada (Z i ) dapat dikompensasi, maka
persamaan yang harus dipenuhi adalah :

E 2  V2  E 2  I 2 Z 2  I 2 Z i

2.2.3 Zero Crossing

Untuk mengukur frekuensi dan beda phase, kita perlu merubah


sinyal sinus keluaran dari sensor arus dan tegangan menjadi sinyal
persegi. Pembentukan sinyal persegi dilakukan dengan metode zero
crossing detector, yaitu dengan membandingkan sinyal sinus keluaran
dari sensor arus dan tegangan dengan ground (0 v) seperti ditunjukkan
pada gambar 2.6.

Gambar 2.6. Rangkaian zero crossing6

sehingga bila sinyal sinus berada di phase positif, maka output dari
zero crossing detector adalah high. Dan bila sinyal sinus berada di
phase negatif, maka outputnya adalah low. Untuk mendapatkan nilai
beda phase, digunakan gerbang EXOR yang mana keluarannya akan

6
B.Yoyok W.P, “Perancangan Watt Meter Digital 1 Fasa Dengan Mikrokontroller
AT89S51”, diakses pada tanggal 1 Agustus 2009, Unika Sogijapranata
http://joaldera.blogspot.com/2008/05/perancangan-watt-meter-digital-1-fasa.html, hal 1

9
high bila input sinyal kotak tegangan dan arus dimulai pada waktu
yang berbeda seperti ditunjukkan pada gambar 2.7.

Gambar 2.7. Rangkaian zero crossing detector dan EXOR untuk


mendapatkan nilai beda phase7

2.3 MIKROKONTROLLER
2.3.1 Pengertian

Mikrokontroler adalah sebuah sistem komputer fungsional


dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor,
memori (sejumlah kecil RAM, memori program, atau keduanya), dan
perlengkapan input output. Dengan kata lain, mikrokontroler adalah
suatu alat elektronika digital yang mempunyai masukan dan keluaran
serta kendali dengan program yang bisa ditulis dan dihapus dengan
cara khusus, seperti ditunjukkan pada gambar 2.8.

Gambar 2.8. Blok diagram sistem mikrokontroller8

7
Ibid, hal 1
8
Hermawan Sutanto ,“Konsep Mikrokontroler”, diakses pada tanggal 1 Agustus
2009, tripod
http://mikrokontroler.tripod.com/6805/bab1.htm, hal 1

10
2.3.2 ATmega128
ATmega128 merupakan salah satu jenis mikrokontroller buatan
ATMEL yang mana mempunyai beberapa kelebihan sebagai berikut :
 Nonvolatile Program and Data Memories
– 128K Bytes of In-System Reprogrammable Flash
Daya Tahan: 10,000 Write/Erase Cycles.
– 4K Bytes EEPROM
Daya Tahan: 100,000 Write/Erase Cycles
– 4K Bytes Internal SRAM
 Peripheral Features
– 8-channel, 10-bit ADC
8 Single-ended Channels
7 Differential Channels
2 Differential Channels with Programmable Gain at 1x, 10x, or
200x
– Byte-oriented Two-wire Serial Interface (I2C)
– Dual Programmable Serial USARTs
– Master/Slave SPI Serial Interface
• Operating Voltages
– 4.5 - 5.5V
• Speed Grades
– 0 - 16 MHz

2.4 Komunikasi Serial


Komunikasi serial RS232 adalah suatu protokol komunikasi serial
yang mode pengoperasiannya single ended artinya Signal RS232 di
representasikan dengan level tegangan +3V sampai +12V kondisi 0 atau
disebut sebagai kondisi SPACE, sedangkan tegangan -3V sampai -12V
direprensentasikan sebagai kondisi 1 atau disebut sebagai kondisi MARK.
Komunikasi data pada RS232 dilakukan dengan satu transmitter dan
satu reciever, Jadi sistem komunikasinya yaitu antara 2 device saja. RS232
dirancang untuk data rate maksimum 20 kb/s dan dengan jarak maksimum
sekitar 20 kaki.
Dipasaran sudah tersedia IC yang dapat digunakan untuk merubah
level tegangan TTL menjadi level tegangan RS232 dan sudah kompatibel
dengan mikrokontroller yaitu IC 232 seperti MAX232, dll. IC ini banyak
digunakan dalam aplikasi-aplikasi komunikasi data dengan RS232.

11
2.5 XBee PRO RF Module
XBee PRO merupakan modul radio frekuensi yang beroperasi pada
frekuensi 2.4 GHz. Sesuai datasheet, Modul ini memerlukan tegangan
suplai 2.8 V sampai dengan 3.3 V saat mengirim data, modul ini akan
membebani dengan arus 270 mA, dan arus 55mA untuk penerimaan data
Pada XBee PRO terdapat 20 pin, namun yang sementara ini
digunakan adalah 6 pin, yaitu VCC dan GND untuk tegangan suplai,
DOUT merupakan pin Transmit (TX), DIN merupakan pin Receive (RX),
RESET merupakan pin reset XBee PRO dan yang terakhir adalah
PWMO/RSSI merupakan indikator bahwa ada penerimaan data yang
biasanya dihubungkan ke led yang didrive oleh transistor. Pada gambar 2.9
ditunjukkan bentuk fisik dari XBee PRO dan untuk keterangan dari setiap
kaki XBee PRO dijelaskan pada table 2.1.

Gambar 2.9. Pin konfigurasi XBee PRO99


Tabel 2.1. Keterangan pin konfigurasi XBee PRO
Pin Name Direction Description
1 VCC - Power supply
2 DOUT Output UART Data Out
3 DIN / CONFIG Input UART Data In
4 CD* / DOUT_EN* / DO8* Output Carrier Detect, TX_enable or
Digital Output 8
5 RESET Input Module Reset
6 PWM0 / RSSI Output PWM Output 0 or RX Signal
Strength Indicator
7 [reserved] - Do not connect

9
Datasheet Xbee PRO.diakses 1 pebuari 2009, dari Stanford
http://ssdl.stanford.edu/ssdl/images/stories/AA236/0708A/Lab/Rover/Parts/xbeepr
oproductmanual.pdf, hal 5

12
8 [reserved] - Do not connect
9 DTR / SLEEP_RQ / DI8 Input Pin Sleep Control Line or Digital
Input 8
10 GND - Ground
11 RF_TX* / AD4* / DIO4* Either Transmission Indicator, Analog
Input 4 or Digital I/O 4
12 CTS* / DIO7* Either Clear-to-Send Flow Control or
Digital I/O 7
13 ON / SLEEP Output Module Status Indicator
14 VREF* Input Voltage Reference for A/D Inputs
15 Associate / AD5* / DIO5* Either Associated Indicator, Analog
Input 5 or Digital I/O 5
16 RTS* / AD6* / DIO6* Either Request-to-Send Flow Control,
Analog Input 6 or Digital I/O 6
17 COORD_SEL* / AD3* / Either Analog Input 3, Digital I/O 3 or
DIO3* Coordinator Select
18 AD2* / DIO2* Either Analog Input 2 or Digital I/O 2
19 AD1* / DIO1* Either Analog Input 1 or Digital I/O 1
20 AD0* / DIO0* Either Analog Input 0 or Digital I/O 0
*Untuk sementara ini, pin tersebut masih belum bisa digunakan.
Ada beberapa parameter XBee PRO yang perlu diatur agar modul ini
dapat berkomunikasi dengan modul yang lain, Sebenarnya ada 24 AT
Command yang bisa digunakan, namun yang sering di gunakan hanya 5
buah. Cara mengatur parameter XBee PRO adalah sebagai berikut :
request=+++
response=OK //membuka AT Command

request=atmy1 //alamat diri =1


response=OK

request=atdl2 //alamat yang dikirim


response=OK

request=atchc // chanel RF connection


response=OK

request=atid3328 //Personal Area Network


response=OK

request=atbd3 //Baud rate 3 = 9600bps

13
response=OK

request=atwr //menyimpan dimemori XBee PRO


response=OK

request=atcn //menutup AT Command


response=OK

2.6 Real Time Clock

Real-time clock disingkat RTC adalah jam di komputer yang


umumnya berupa rangkaian terpadu yang berfungsi sebagai pemelihara
waktu. RTC umumnya memiliki catu daya terpisah dari catu daya komputer
(umumnya berupa baterai litium) sehingga dapat tetap berfungsi ketika catu
daya komputer terputus. Kebanyakan RTC menggunakan osilator kristal.
Jenis RTC yang digunakan adalah DS1307 yang mempunyai
spesifikasi sebagai berikut :
 Real-time clock (RTC) meyimpan data-data detik, menit, jam,
tanggal, bulan, hari dalam seminggu, dan tahun valid hingga 2100
 56-byte, battery-backed, RAM nonvolatile (NV) RAM untuk
penyimpanan
 Antarmuka serial Two-wire (I2C)
 Sinyal keluaran gelombang-kotak terprogram (Programmable
squarewave)
 Konsumsi daya kurang dari 500nA menggunakan mode baterai
cadangan dengan operasional osilator
Pada gambar 2.10 ditunjukkan pin konfigurasi dari RTC DS1307

Gambar 2.10. Pin konfigurasi DS130710

10
Datasheet DS1307.diakses 1 pebuari 2009, dari Datasheet catalog
http://www.datasheetcatalog.com/datasheets_pdf/D/S/1/3/DS1307.shtml, hal 1

14
2.7 Memory Card (SD Card)

Secure Digital (SD) card atau MultiMedia Card (MMC) sering


digunakan sebagai sarana penyimpan data pada Personal Digital Assistant
(PDA), kamera digital, dan telepon seluler (ponsel). Beberapa perintah
dasar untuk SD Card juga dapat digunakan untuk MMC sehingga kita dapat
menggunakan SD atau MMC. Format data pada SD maupun MMC
umumnya menggunakan format FAT. FAT12 digunakan untuk kapasitas 16
MB ke bawah. FAT16 digunakan untuk kapasitas 32 MB hingga 2 GB.
FAT32 digunakan untuk kapasitas di atas 2 GB (SDHC).
Berikut ini adalah penjelasan mengenai cara menggunakan SD Card
dengan FAT16. SD card terbagi atas sektor-sektor dan setiap satu
sektornya berisi 512 byte. Secara default, proses baca atau tulis selalu
melibatkan satu sektor (512 byte).
Hal pertama yang harus dilakukan adalah membaca parameter SD
Card yang urutan langkahnya adalah sebagai berikut :
1. Mengirimkan perintah reset dan init ke SD card.
2. Karena SD card yang digunakan memiliki format FAT16, maka
parameter yang harus dibaca disesuaikan dengan format FAT16. Yang
pertama harus dilakukan adalah membaca Master Boot Record (berada
di sektor 0) untuk mengetahui lokasi Boot Sector. Lalu Boot Sector
dibaca secara keseluruhan.
3. Nilai pada alamat-alamat tertentu diambil dan dihitung sehingga
didapat parameter antara lain : alamat FAT Region, alamat Root
Directory, alamat Data Region, jumlah sector per cluster, tipe FAT,
dan kapasitas SD card.

Langkah selajutnya adalah menulis data pada SD Card


1. Mengirimkan perintah reset dan init ke SD card.
2. Karena SD card yang digunakan memiliki format FAT16, maka proses
menulis file harus disesuaikan dengan format FAT16. Program akan
menulis tabel FAT pada FAT Region, kemudian menulis Nama Kartu
dan Nama File pada Root Directory. Nilai Root Directory akan dibaca
untuk mengetahui posisi sector awal untuk file.
3. Data sebanyak 512 karakter dituliskan ke posisi sector awal mulai
alamat 0. Program akan membaca Root Directory, kemudian parameter
ukuran file diubah lalu dituliskan kembali ke Root Directory.

15
Perintah reset diwakili oleh timing diagram pada gambar 2.11.

Gambar 2.11. Timing diagram perintah reset11

Perintah init diwakili oleh timing diagram pada gambar 2.12.

Gambar 2.12. Timing diagram perintah init12

11
Tim IE ,” Application Note Mengenal SD Card & FAT16”, Inovative Electronic,
Surabaya, 2009, hal 1
12
Ibid, hal 2

16
Perintah read diwakili oleh timing diagram pada gambar 2.13.

Gambar 2.13. Timing diagram perintah read13

Perintah write diwakili oleh timing diagram pada gambar 2.14.

Gambar 2.14. Timing diagram perintah write14

2.8 CodeVision AVR

CodeVision AVR merupakan salah satu C – Compiler untuk


mikrokontroler keluarga AVR buatan ATMEL yang didisain untuk
dioperasikan di operating system Windows 98, Me, NT 4, 2000, XP dan
Vista 32 bit.
Pada Code Vision AVR, kita bisa membuat file baru atau project,
tergantung kebutuhan, namun biasanya untuk pembuatan program baru,
kita membuat project baru dengan memilih menu new >>project seperti
pada gambar 2.15.

13
Ibid, hal 3
14
Ibid, hal 4

17
Gambar 2.15. Memulai project baru pada CodeVision AVR

Setelah itu pilih IC mikrokontroler dan clock yang digunakan. Juga


sesuaikan kebutuhan program yang akan dibuat (seperti Usart untuk serial,
LCD dan lain - lain) seperti pada gambar 2.16.

Gambar 2.16. Memilih IC, clock dan kebutuhan program yang akan dibuat
pada wizard
Setelah semua disetting, maka generate dan save c file, project file,
dan project wizard seperti pada gambar 2.17.

18
Gambar 2.17. Generate, save c file, project file dan project wizard

Bila program telah selesai dibuat, maka compile, make project dan
download ke mikrokontroller seperti pada gambar 2.18.

Gambar 2.18. Mendownload program ke mikrokontroller

2.9 Bahasa C

Sebuah mikrokontroler tidak akan bekerja bila tidak diberikan


program. Program adalah instruksi yang memerintahkan mikrokontroller
apa yang harus dilakukan. Instruksi-instruksi ditulis dengan aturan tertentu

19
yang disebut bahasa pemrograman. Instruksi-instruksi ini, kemudian
disebut sebagai perangkat lunak. Instruksi-instruksi yang dibuat untuk
mikrokontroller dapat ditulis dalam bahasa assembler, C, basic, dan pascal.
Mikrokontroler AVR dirancang dengan mempertimbangkan sifat-
sifat pengkodean bahasa C, sehingga bahasa inilah yang kemudian
cenderung digunakan daripada bahasa lainnya seperti bahasa basic atau
pascal. Bahasa C yang digunakan pada AVR ini adalah ANSI (American
National Standard Institute) C. Alasan utama pemilihan bahasa C ini karena
bahasa C merupakan gabungan dari bahasa tingkat tinggi dan juga bahasa
tingkat rendah yang menyediakan kemampuan operasi-operasi bit, byte,
alamat-alamat memori, dan register. Bahasa C yang digunakan untuk
memprogram mikrokontroler ini disebut sebagai embedded C, yang
selanjutnya oleh compiler listing program C ini diubah menjadi bahasa
tingkat rendah mikrokontroller yang bersangkutan yang kemudian
diterjemahkan menjadi kode-kode bahasa mesin yang selanjutnya
didownload ke dalam chip mikrokontroler.

2.9.1 Tipe data :

Pada table 2.2 ditunjukkan tipe data pada bahasa C.

Tabel 2.2. Tipe data pada bahasa C

Tipe Data Jumlah Bit Jangkauan


char (Character) 8 -128 s/d 127
int (Integer) 16 -32768 s/d 32767
Short (Short Integer) 16 -32768 s/d 32767
-2.147.438.648 s/d
2.147.438.647 s/d
Long (Long Integer) 32 32767
3.4E-38 s/d
float (Floating Point) 32 3.4E+38
void 0

20
2.9.2 Operator Arimatika

Pada table 2.3 ditunjukkan operator logika yang biasa digunakan


pada bahasa C.

Tabel 2.3. Operator arimatika yang biasa digunakan di bahasa C

Simbol Arti
* Perkalian
/ Pembagian
% Sisa pembagian (MOD)
+ Penjumlahan
- Pengurangan
++ Penjumlahan dengan 1
-- Pengurangan dengan 1

2.9.3 Operasi Logika (operasi bit)

Pada table 2.4 ditunjukkan Operator arimatika yang biasa digunakan


di bahasa C
Tabel 2.4. Operator logika yang biasa digunakan di bahasa C

Simbol Arti
>> geser bit ke kanan
<< geser bit ke kiri
^ XOR
~ NOT
| OR
& AND

2.10 Protokol

Manusia dalam berkomunikasi antar sesamanya, sering terjadi kedua


pihak baik pengirim maupun penerima berita tidak mengerti informasi

21
yang disampaikan. Salah satu alasan utamanya adalah ketidaksamaan
bahasa yang digunakan diantara mereka.
Agar keduanya dapat memahami informasi yang disampaikan,
maka diperlukan bahasa yang dapat dipahami oleh kedua belah pihak, atau
dengan kata lain harus ada aturan yang jelas dan disepakati untuk dapat
berkomunikasi.
Komunikasi antar mesin/komputer juga sama, apabila
komputer/mesin tersebut merupakan produk dari berbagai pabrik, oleh
karena itu diperlukan suatu aturan agar pengirim dan penerima mengerti
informasi yang dikirim, Protokol komunikasi (Communication Protocol)
adalah satu set aturan yang dibuat untuk mengontrol pertukaran data antar
node (misalkan komputer) termasuk proses inisialisasi, verifikasi, cara
berkomunikasi, dan cara memutuskan komunikasi.
Jadi dalam komunikasi data juga memerlukan sebuah peraturan
atau prosedur yang saling menterjemahkan bahasa yang dipakai
pengirim dan penerima. Aturan itu adalah protokol, yaitu suatu kumpulan
dari aturan - aturan yang berhubungan dengan komunikasi data agar
komunikasi data dapat dilakukan dengan benar. Protokol pada dasarnya,
adalah sebuah persetujuan semua pihak yang berkomunikasi tentang
bagaimana komunikasi tersebut harus dilakukan.

2.11 GPRS

GPRS (singkatan bahasa Inggris: General Packet Radio Service,


GPRS) adalah suatu teknologi yang memungkinkan pengiriman dan
penerimaan data lebih cepat jika dibandingkan dengan penggunaan
teknologi Circuit Switch Data atau CSD. Sering disebut pula dengan
teknologi 2,5G. Sistem GPRS dapat digunakan untuk transfer data (dalam
bentuk paket data) yang berkaitan dengan e-mail, data gambar (MMS), dan
penelusuran (browsing) internet.
GPRS menawarkan laju data yang lebih tinggi. Laju datanya secara
kasar sampai 160 kbps dibandingkan dengan 9,6kbps yang dapat disediakan
oleh rangkaian tersakelar GSM. Kanal - kanal radio ganda dapat
dialokasikan bagi seorang pengguna dan kanal yang sama dapat pula
digunakan secara berbagi di antara beberapa pengguna sehingga menjadi
sangat efisien.
Dalam teorinya GPRS menjanjikan kecepatan mulai dari 56 kbps
sampai 115 kbps, sehingga memungkinkan akses internet, pengiriman data

22
multimedia ke komputer. Namun, dalam implementasinya, hal tersebut
sangat tergantung faktor-faktor sebagai berikut:
 Konfigurasi dan alokasi time slot pada level BTS
 Software yang dipergunakan
 Dukungan fitur dan aplikasi ponsel yang digunakan
Dari segi biaya, pentarifan diharapkan hanya mengacu pada volume
penggunaan. Penggunanya ditarik biaya dalam kaitannya dengan
banyaknya byte yang dikirim atau diterima, tanpa memperdulikan
panggilan.

2.12 WAP

Wireless Application Protocol disingkat WAP adalah sebuah


protokol atau sebuah teknik messaging service yang memungkinkan sebuah
telepon genggam digital atau terminal mobile yang mempunyai fasilitas
WAP, melihat/membaca isi sebuah situs di internet dalam sebuah format
teks khusus.
Keterbatasan Perangkat WAP
1. Kemampuan Central Processing Unit (CPU) yang lebih rendah
dibandingkan CPU yang digunakan pada perangkat wired seperti
komputer.
2. Keterbatasan ukuran memori.
3. Penghematan penggunaan daya (power) yang biasanya
menggunakan baterai
4. Ukuran display yang lebih kecil dan terbatas
5. Input device yang berbeda dengan device biasa
Disain dari informasi yang dikirimkan melalui WAP biasanya
menggunakan format WML (Wireless Markup Language). WML ini mirip
HTML, hanya lebih spesifik untuk perangkat nirkabel yang memiliki
keterbatasan seperti di atas.
Contoh Penggunaan WAP
 Informasi jadwal keberangkatan penerbangan
 Transaksi pembelian tiket
 Pendaftaran keberangkatan pesawat
 Informasi lalu lintas
 Daftar informasi kondisi cuaca
 Informasi nilai stok
 Mencari informasi nomor telepon atau alamat

23
2.13 Database
Basis data (bahasa Inggris: database) adalah kumpulan informasi
yang disimpan di dalam komputer secara sistematik sehingga dapat
diperiksa menggunakan suatu program komputer untuk memperoleh
informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk
mengelola dan memanggil kueri (query) basis data disebut sistem
manajemen basis data (database management system, DBMS).
Konsep dasar dari basis data adalah kumpulan dari catatan-catatan,
atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan
terstruktur dari jenis fakta yang tersimpan di dalamnya. Penjelasan ini
disebut skema, skema menggambarkan obyek yang diwakili suatu basis
data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk
mengorganisasi skema, atau memodelkan struktur basis data, ini dikenal
sebagai model basis data atau model data. Model yang umum digunakan
sekarang adalah model relasional, yang mewakili semua informasi dalam
bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari
baris dan kolom (definisi yang sebenarnya menggunakan terminologi
matematika). Dalam model ini, hubungan antar tabel diwakili dengan
menggunakan nilai yang sama antar tabel. Model yang lain seperti hirarki
dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili
hubungan antar tabel.

24
BAB III
PERANCANGAN DAN PEMBUATAN HARDWARE
DAN SOFTWARE

Pada monitoring parameter energi listrik sebagai implementasi


sensor network untuk proyek akhir ini secara umum terbagi menjadi dua
bagian yaitu :
1. Perancangan dan pembuatan perangkat keras.
2. Perancangan dan pembuatan sistem komunikasi, database dan web
server.

3.1 Konfigurasi Sistem

Gambar 3.1. Konfigurasi sistem WSN

25
Pada gambar 3.1 ditunjukkan konfigurasi dari sistem WSN.
Jaringan sensor nirkabel merupakan suatu jaringan yang mana terdapat
beberapa sensor diletakkan di beberapa tempat berbeda. Sensor – sensor
tersebut akan mensensor obyek dan mengirim data tersebut secara
nirkabel menuju gateway. Obyek yang disensor adalah tegangan, arus,
frekuensi dan beda phase pada beberapa titik jalur distribusi yang mana
setiap titik tersebut memberi energi listrik ke beberapa rumah.
Tegangan dan arus yang disensor akan dijadikan input pada ADC
internal dari mikrokontroller. Data – data dari ADC, frekuensi, beda
phase beserta waktu penyimpanannya (menggunakan RTC) akan
disimpan di SD Card. Setelah terkumpul beberapa data, data – data
tersebut akan dikirim secara nirkabel ke gateway menggunakan RF
modules. Di sisi gateway mengirim data – data dari beberapa node ke
web server menggunakan koneksi GPRS dengan modem GPRS. Pada
web server data tersebut akan disimpan dan dipublish agar konsumen
mengetahui kualitas energi listrik yang ada melalui telepon gengam. Dan
hal ini dapat dijadikan bahan evaluasi bagi penyedia energi listrik untuk
peningkatan pelayanan penyediaan energi listrik. Pada gambar 3.2
ditunjukkan blok diagram dari WSN untuk monitoring energi listrik dan
pada gambar 3.3 ditunjukkan blok diagram dari sensor node.

Sensor node 3
Komunikasi
wirelessNirkabel
Handphone
Sensor node 2 (customer)

Koneksi GPRS
Sensor node 1
Web Server
Koneksi GPRS
Database
Gateway Web Server
Gambar 3.2. Blok diagram WSN untuk monitoring energi listrik

26
Gambar 3.3. Blok diagram sensor node
1.2 Perancangan dan Pembuatan Alat

Untuk hardware dari wsn yang dibuat, terdiri dari beberapa


rangkaian, yaitu minimum sistem mikrokontroller ATMega128, seperti
ditunjukkan pada gambar 3.4.

Gambar 3.4. Rangkaian minimum sistem ATMega 12815

15
ak67 ,“ Atmega128”, diakses pada tanggal 1 Agustus 2009, wordpress
http://ak67.wordpress.com/2009/06/10/atmega128, hal 1

27
Agar gateway dapat terhubung ke web server, maka gateway
memerlukan koneksi GPRS, dimana secara hardware, gateway
berkomunikasi dengan modem GPRS (dial up, konek dan mengirim data
ke web server) menggunakan komunikasi serial kabel, dan
menggunakan IC MAX 232 untuk mengkonversi level tegangan TTL
menjadi level tegangan RS-232. Pada gambar 3.5 ditunjukkan
rangkaian konverter TTL ke RS-232. Nilai dari resistor pull up adalah
2k2 ohm, sehingga arus yang mengalir I=V/R=5/2k2=2.27mA.

Gambar 3.5. Rangkaian konverter TTl to RS-23216

Sensor node mengirim paket – paket data ke gateway secara


nirkabel, dan modul yang digunakan untuk komunikasi nirkabel adalah
XBee-PRO, yang mana rangkaiannya ditunjukkan pada gambar 3.6.
Nilai dari resistor pull up adalah 2k2 ohm, sehingga arus yang mengalir
I=V/R=5/2k2=2.27mA.

Gambar 3.6. Rangkaian modul radio frekuensi (XBee PRO)17

16
Nate, “Lecture 4 - UART and Serial Communication”, diakses pada tanggal 1
Agustus 2009, sparkfun
http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=104, hal 1
17
aaqilkhan, “Differential Drive Robotic Rover”, diakses pada tanggal 1
Agustus 2009, blogspot
http://aaqilkhan.blogspot.com/2007/08/autonomous-robotic-rover.html, hal 1

28
Pada saat sensor node membaca data (arus, tegangan, frekuensi,
dan beda phase), sensor node akan menyimpan data tersebut di SD Card
beserta waktu pembacaan data, sehingga diperlukan RTC. Jenis IC RTC
yang kami gunakan adalah DS1307. Pada gambar 3.7 ditunjukkan
rangkaian dari RTC (DS1307) dan pada gambar 3.8 ditunjukkan
rangkaian dari SD Card. Nilai dari resistor pull up adalah 2k2 ohm,
sehingga arus yang mengalir I=V/R=5/2k2=2.27mA.

Gambar 3.7. Rangkaian real time clock (DS1307) 18

Gambar 3.8. Rangkaian penyimpan data (SD Card)19

18
“DS1307 64 X 8, Serial, I²C Real-Time Clock”, diakses pada tanggal 1
Agustus 2009, datasheetdir
http://www.datasheetdir.com/DS1307+Real-Time-Clocks-RTC, hal 1
19
“ BV410 SD Card Holder”, diakses pada tanggal 13 Agustus 2009 , byvac
http://www.byvac.com/bv/bv410.htm, hal 1

29
Microcontroller
ADC ATMEGA64
Power
(8 Channels)
Supply
Wireless Communication
(Xbee PRO)

SD Card

Serial Communication
RTC (DS1307) (MAX232)
(
Gambar 3.9. Rangkaian sensor node

Gambar 3.10. Modem GPRS

Pada gambar 3.9 ditunjukkan rangkaian hardware dari sensor


node. Untuk koneksi GPRS, gateway harus terhubung dengan modem
GPRS, pada gambar 3.10 ditunjukkan hardware dari modem GPRS.

30
Sensor tegangan

Tegangan yang dibaca, adalah tegangan input dari jala – jala


PLN, namun input adc tidak boleh melebihi 5V, sehingga digunakan
transformator penurun tegangan dari 220v menjadi 3v. Pada gambar
3.11 ditunjukkan gambar dasar dari transformator tegangan

Gambar 3.11. Rangkaian dasar trafo20


Sensor Arus

Sensor arus yang digunakan adalah Current transformer (CT)


atau Transformator Arus. CT merupakan peralatan pada sistem tenaga
listrik berupa transformator yang digunakan untuk pengukuran arus
dimana besarnya hingga ratusan ampere atau arus pada jaringan
tegangan tinggi. Perbandingan lilitan CT yang digunakan adalah 50:5.

Zero Crossing Detector

Untuk membaca nilai frekuensi, digunakan rangkaian zero


crossing detector yang berfungsi untuk merubah gelombang sinus
menjadi gelombang kotak, namun frekuensi dari gelombang tersebut
masih tetap sama. Untuk membuat sebuah zero crossing detector,
digunakan komparator LM339 yang outputnya diberi pull up. Dari
gelombang kotak ini, kita bisa menghitung frekuensi yang ada. Seperti
ditunjukkan pada gambar 3.12. Sedangkan untuk mendeteksi beda
phase, kita dapat menggunakan EXOR yang masukkan nya berupa
gelombang kotak dari sinyal arus dan tegangan, seperti ditunjukkan pada
gambar 3.13.

20
Setiawan,”Rumusan Dasar Trafo”, diakses pada tanggal 1 Agustus 2009, geocities
http://www.geocities.com/sap_tech_talk/Formula_Trafo.htm, hal 1

31
Gambar 3.12. Rangkaian Zerro Crossing21

Gambar 3.13. Rangkaian zero crossing dan EXOR untuk mendapatkan


nilai beda phase22

1.2 Perancangan dan Pembuatan Perangkat Lunak

Software yang dibuat merupakan program untuk komunikasi


data antara beberapa sensor node dengan gateway dan web server.
1.2.1 Komunikasi antara node dengan gateway
Topologi yang digunakan adalah Cluster Tree, pada topologi ini
setiap node terhubung ke node yang lebih tinggi pada tree (yang
terdekat dengan gateway) baru kemudian ke gateway. Untuk
memperjelas alur sistem dari komunikasi antara sensor node dengan
gateway, pada gambar 3.14 ditunjukkan flowchart sistem dari sensor
node.

21
B.Yoyok W.P, “Perancangan Watt Meter Digital 1 Fasa Dengan Mikrokontroller
AT89S51”, diakses pada tanggal 1 Agustus 2009, Unika Sogijapranata
http://joaldera.blogspot.com/2008/05/perancangan-watt-meter-digital-1-fasa.html,
hal 1
22
Ibid, hal 1

32
Gambar 3.14. Flowchart sistem sensor node

33
Pada Flowchart tersebut, sensor node perlu melakukan setting id
dan destination (pada parameter XBee - PRO). Setting destination-nya
adalah alamat sensor node terdekat atau gateway. Setelah itu sensor
node akan mulai membaca tegangan, arus, frekuensi dan beda phase dan
menyimpan data tersebut beserta waktu pembacaannya di SD Card. Pada
saat paket data sudah terkumpul banyak, maka sensor node akan
menghubungi sensor node terdekat atau gateway untuk memberitahu
akan mengirimkan paket data. Jika request tersebut direspon, maka
sensor node akan mengirim paket – paket data tersebut ke sensor node
terdekat atau gateway. Format dari paket data yang dikirim adalah
sebagai berikut :
Format untuk satu paket data
@node/tegangan/arus/frekuensi/beda phase/tanggal^
Contoh: @1/220.00/10.00/50.00/0.90/2009-07-06-01%2013:00:00^
Format untuk beberapa paket data
(@node/tegangan/arus/frekuensi/beda phase/tanggal^
@node/tegangan/arus/frekuensi/beda phase/tanggal^
@node/tegangan/arus/frekuensi/beda phase/tanggal^ ……….)
Contoh:
(@1/220.00/10.00/50.00/0.90/2009-07-06-
01%2013:00:00^@1/220.00/10.00/50.00/0.90/2009-07-06-
01%2014:00:00^@1/220.00/10.00/50.00/0.90/2009-07-06-
01%2015:00:00^)
Pada format diatas, terdapat keranjang kecil yang diawali dengan “@”
dan diakhiri “^”, isi dari keranjang ini adalah paket data yang
didalamnya ada node, tegangan, arus, frekuensi, beda phase beserta
tanggal nya. Untuk sekali pengiriman data dari sensor node ke
gateway,dapat dikirim beberapa paket data langsung, sehingga kita
memerlukan keranjang besar yang didalamnya ada keranjang –
keranjang kecil (paket – paket data). Keranjang besar ini diawali dengan
“(“ dan diakhiri dengan”)”.
Pada sisi gateway, akan menunggu request dari sensor node. Bila
ada request, maka gateway memberi respon ke pada sensor node yang
request. Dan kemudian gateway baru menerima paket – paket data dari
sensor node yang request dan menyimpannya sementara pada buffer.
Agar gateway dapat mengirim data ke web server, maka gateway perlu
melakukan dial up modem, membuat koneksi dengan server dan setelah
itu baru mengirim paket – paket data tersebut ke web server. Pada web
server dibuatkan program untuk memecah paket data, agar dapat

34
dimasukkan database. Pada data base terdapat beberapa kolom, yaitu
kolom id, kolom tegangan, kolom arus, kolom frekuensi, kolom beda
phase, kolom tanggal dan kolom node. Setelah gateway mengirim data
ke webserver, maka gateway akan menunggu request dari sensor node
untuk pengiriman data berikutnya. Untuk memperjelas sistem
komunikasi antara gateway dengan sensor node, pada gambar 3.15
ditunjukkan flowchart dari komunikasi data pada sisi gateway
Start

Setting Id

Ada request ?

Ganti alamat pengiriman


sesuai node yang request

Kirim respon ke
node yang request

Terima paket –
paket data dari node

Buat koneksi GPRS


menggunakan Modem GPRS

Konek ke web server

Kirim data ke database server

Gambar 3.15. Flowchart komunikasi data sisi gateway

35
Pada web yang diakses oleh ponsel, konsumen perlu
menginputkan tanggal, parameter dan wilayah (node) yang ingin dilihat
kualitas energi listriknya.

36
BAB IV

PENGUJIAN DAN ANALISA

Pada bab ini dilakukan pengujian dan analisa terhadap perangkat


keras dan juga program yang dibuat.

Data sensor arus


Sensor arus yang digunakan adalah transformator arus dengan
perbandingan lilitan 50/5. Arus yang mengalir di sisi sekunder adalah
5/50 dari arus yang mengalir di primer, dan dikalikan sepuluh (karena
disisi primer dibelitkan 10 kali). Arus disisi sekunder di paralel dengan
resistor agar keluar tegangan. Nilai resistornya adalah 4.7 ohm, namun
setelah diukur ternyata nilainya 5.16 ohm. Setelah sensor arus diuji
untuk mensensing arus mulai dari 1 A sampai dengan 8.4 A, didapatkan
data – data pada table 4.1.

Tabel 4.1 . Pengukuran sensivitas sensor arus


Arus Resistor di Vac Vdc
No. Vac in Primer sekunder sekunder sekunder
1 212.5 1 5.16 0.825 2.333
2 212.5 2.25 5.16 0.873 2.677
3 212.5 3.75 5.16 0.904 2.965
4 212.5 5.3 5.16 0.935 3.525
5 212.5 5.85 5.16 0.961 3.495
6 212.5 6.6 5.16 0.986 3.745
7 212.5 7.8 5.16 1.036 4.14
8 212.5 8.4 5.16 1.061 4.355

Dari data – data table 4.1, dapat dibuat grafik antara arus primer
dan arus skunder (yang sudah dijadikan tegangan dengan diparalel
resistor). Pada gambar 4.1 ditunjukkan grafik tegangan ac pada sisi
sekunder yang sebanding dengan arus pada sisi pimer. Sedangkan untuk
bentuk gelombang arus dari transformator arus ditunjukkan pada gambar
4.2.

37
Gambar 4.1 . Grafik tegangan output AC pada sisi sekunder terhadap
arus input AC pada sisi primer transformator arus

Time/Div=5ms, Volt/div=50mv x 10
Gambar 4.2. Gelombang tegangan (arus di parallel resistor) pada sisi
sekunder transformator arus
Data sensor tegangan

Sensor tegangan yang digunakan adalah adalah transformator


tegangan (step down). Setelah sensor tegangan diuji untuk mensensing
tegangan AC mulai dari 220V sampai dengan 110V, didapatkan data –
data pada table 4.2.

38
Tabel 4.2 . Pengukuran sensivitas sensor tegangan

Tegangan Tegangan
No. Primer Sekunder
1 220 3.768
2 210 3.6
3 200 3.425
4 190 3.26
5 180 3.087
6 170 2.912
7 160 2.745
8 150 2.582
9 140 2.405
10 120 2.228
11 110 2.055
Dari data – data table 4.2, kita dapat membuat grafik tegangan ac
pada sisi sekunder yang sebanding dengan perubahan pada tegangan ac
input sisi primer (220 V ac jala – jala PLN). Bentuk gelombang
tegangan transformator tegangan pada sisi sekunder ditunjukkan pada
gambar4.4.

Gambar 4.3 . Grafik tegangan output AC terhadap tegangan input AC


pada transformator tegangan

39
Time/Div=5ms, Volt/div=0.2v x 10
Gambar 4.4. Contoh gambar tegangan AC, f = 50Hz pada sisi sekunder
transformator tegangan
Zero Crossing

Untuk membaca frekuensi, kita perlu merubah gelombang sinus


menjadi gelombang kotak dengan menggunakan zero crossing detector,
pada gambar 4.5 ditunjukkan gelombang input dari zero crossing
detecto rdan pada gambar 4.6 ditunjukkan gelombang kotak yang
merupakan gelombang output dari zero crossing detector.

Time/Div=5ms, Volt/div=0.2v x 10
Gambar 4.5. Tegangan pada sisi sekunder trafo tegangan dengan bentuk
gelombang sinus

40
Time/Div=5ms, Volt/div=0.5v x 10
Gambar 4.6. Hasil zero crossing detector dari gelombang sinus menjadi
gelombang kotak
Data xbee pro

XBee Pro digunakan untuk modul komunikasi nirkabel, yang


mana baudratenya dapat diatur. Berikut ini merupakan data – data
pengukuran kualitas pengiriman data XBee PRO dengan jarak antara 3
meter hingga 30 meter, dengan baudrate yang telah diubah – ubah.
Pada saat pengujian, baudrate diatur mulai dari 1200 bps hingga
115200bps dan didapatkan data pada tabel 4.3 hingga table 4.8.

Tabel 4.3. Pengukuran kualitas pengiriman data dari XBee – Pro


dengan baud rate 4800bps
Data Data
Jarak Data Yang Yang yang
No. Baudrate (m) Dikirim Diterima loses %loses
1 4800 3 1000 1000 0 0
2 4800 6 1000 998 2 0.2
3 4800 9 1000 998 2 0.2
4 4800 12 1000 1000 0 0
5 4800 15 1000 1000 0 0
6 4800 18 1000 991 9 0.9
7 4800 21 1000 1000 0 0
8 4800 24 1000 997 3 0.3
9 4800 27 1000 997 3 0.3
10 4800 30 1000 998 2 0.2

41
Tabel 4.4. Pengukuran kualitas pengiriman data dari XBee – Pro
dengan baud rate 9600bps
Data Data
Jarak Data Yang Yang yang
No. Baudrate (m) Dikirim Diterima loses %loses
1 9600 3 1000 999 1 0.1
2 9600 6 1000 1000 0 0
3 9600 9 1000 997 3 0.3
4 9600 12 1000 998 2 0.2
5 9600 15 1000 999 1 0.1
6 9600 18 1000 997 3 0.3
7 9600 21 1000 997 3 0.3
8 9600 24 1000 1000 0 0
9 9600 27 1000 994 6 0.6
10 9600 30 1000 997 3 0.3

Tabel 4.5. Pengukuran kualitas pengiriman data dari XBee – Pro


dengan baud rate 19200bps
Data Data
Jarak Data Yang Yang yang
No. Baudrate (m) Dikirim Diterima loses %loses
1 19200 3 1000 1000 0 0
2 19200 6 1000 1000 0 0
3 19200 9 1000 999 1 0.1
4 19200 12 1000 1000 0 0
5 19200 15 1000 1000 0 0
6 19200 18 1000 1000 0 0
7 19200 21 1000 997 3 0.3
8 19200 24 1000 1000 0 0
9 19200 27 1000 998 2 0.2
10 19200 30 1000 997 3 0.3

42
Tabel 4.6. Pengukuran kualitas pengiriman data dari XBee – Pro
dengan baud rate 38400bps
Data Data Data
Jarak Yang Yang yang
No. Baudrate (m) Dikirim Diterima loses %loses
1 38400 3 1000 1000 0 0
2 38400 6 1000 1000 0 0
3 38400 9 1000 997 3 0.3
4 38400 12 1000 1000 0 0
5 38400 15 1000 1000 0 0
6 38400 18 1000 1000 0 0
7 38400 21 1000 1000 0 0
8 38400 24 1000 997 3 0.3
9 38400 27 1000 997 3 0.3
10 38400 30 1000 997 3 0.3

Tabel 4.7. Pengukuran kualitas pengiriman data dari XBee – Pro


dengan baud rate 57600bps
Data Data Data
Jarak Yang Yang yang
No. Baudrate (m) Dikirim Diterima loses %loses
1 57600 3 1000 1000 0 0
2 57600 6 1000 1000 0 0
3 57600 9 1000 1000 0 0
4 57600 12 1000 1000 0 0
5 57600 15 1000 1000 0 0
6 57600 18 1000 1000 0 0
7 57600 21 1000 1000 0 0
8 57600 24 1000 1000 0 0
9 57600 27 1000 1000 0 0
10 57600 30 1000 998 2 0.2

43
Tabel 4.8. Pengukuran kualitas pengiriman data dari XBee – Pro
dengan baud rate 115200bps
Data Data Data
Jarak Yang Yang yang
No. Baudrate (m) Dikirim Diterima loses %loses
1 115200 3 1000 1000 0 0
2 115200 6 1000 995 5 0.5
3 115200 9 1000 1000 0 0
4 115200 12 1000 1000 0 0
5 115200 15 1000 1000 0 0
6 115200 18 1000 1000 0 0
7 115200 21 1000 998 2 0.2
8 115200 24 1000 997 3 0.3
9 115200 27 1000 997 3 0.3
10 115200 30 1000 997 3 0.3

Sehingga dari data – data table 4.3 hingga table 4.8 kita bisa
membuat grafik antara jarak terhadap data yang diterima, seperti
ditunjukkan pada gambar 4.7 hingga gambar 4.12.

Gambar 4.7. Grafik kualitas penerimaan data pada baud rate 9600

44
Gambar 4.8.Grafik kualitas penerimaan data pada baud rate 4800

Gambar 4.9. Grafik kualitas penerimaan data pada baud rate 19200

45
Gambar 4.10. Grafik kualitas penerimaan data pada baud rate 38400

Gambar 4.11. Grafik kualitas penerimaan data pada baud rate 57600

46
Gambar 4.12. Grafik kualitas penerimaan data pada baud rate 115200

Pengiriman data melalui koneksi GPRS


Pengiriman data melalui koneksi GPRS, menggunakan Modem GPRS
//Mengecek kondisi dari jaringan GPRS
AT
OK
AT+CIPDPDP=1,10,3
OK
//-------------------------------------------------------------------------------------
//meminta layanan GPRS
AT+CGATT=1
OK
//-------------------------------------------------------------------------------------
//menetapkan PDP konteks
AT+CGDCONT=1,"IP","indosatgprs" OK
//-------------------------------------------------------------------------------------
//Dial up Modem
ATD*99***1#
CONNECT
~ÿ}#À!}!}!} }<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"‚«~~~09R~ÿ}#À!}!}"}
}<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"Z]~~ÿ}#À!}!}#}
}<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"}2}/~~ÿ}#À!}!}$}
}<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"û¸~~ÿ}#À!}!}%}
}<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"³ê~~ÿ}#À!}!}&}
}<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"k}<~~ÿ}#À!}!}'}
}<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"#N~~ÿ}#À!}!}(}
}<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"¨{~~ÿ}#À!}!})}
}<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"à)~~ÿ}#À!}!}*}
}<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"8ß~+

47
NO CARRIER
//-------------------------------------------------------------------------------------
//Mengatur DNS (Domain Name Server)
AT+CDNSCFG="208.67.222.222","208.67.220.220"
OK
//-------------------------------------------------------------------------------------
//Mengatur APN (Access Point Name), User id dan Password
AT+CSTT="indosatgprs","Indosat",""
OK
//-------------------------------------------------------------------------------------
//Membuka koneksi nirkabel menggunakan GPRS
AT+CIICR
OK
//-------------------------------------------------------------------------------------
//Meminta IP local
AT+CIFSR
10.164.168.216
//-------------------------------------------------------------------------------------
//Menanyakan status koneksi
AT+CIPSTATUS
OK
STATE: IP STATUS
//-------------------------------------------------------------------------------------
//Memberitahu ke modem untuk menambahkan IP header untuk menerima data
AT+CIPHEAD=1
OK
//-------------------------------------------------------------------------------------
//Menunjukkan bahwa permintaannya berupa domain name
AT+CDNSORIP=1
OK
//-------------------------------------------------------------------------------------
//Konek ke server
AT+CIPSTART="tcp","student.eepis-its.edu","80"
OK
CONNECT OK
//-------------------------------------------------------------------------------------
//Kirim data ke server
AT+CIPSEND
> GET /~harun140688/monitorings.php?input=(@220/110/09-07-06%2009:00:00^)
HTTP/1.1
Host: student.eepis-its.edu
SEND OK
+IPD1460:HTTP/1.1 200 OK
Date: Tue, 07 Jul 2009 03:26:56 GMT
Server: Apache/2.2.3 (Debian) mod_jk/1.2.18 PHP/4.4.4-8+etch6 proxy_html/2.5
mod_ssl/2.2.3 OpenSSL/0.9.8c mod_chroot/0.5
X-Powered-By: PHP/4.4.4-8+etch6
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

48
Web pada ponsel
Pada bagian ponsel kita dapat mengakses data – data tersebut,
tampilan web pada ponsel seperti pada gambar 4.13.

Gambar 4.13 Tampilan awal web pada telepon gengam

Konsumen dapat melihat kualitas energi listrik melalui telepon


gengam dengan mengakses alamat web yang telah disediakan.
Konsumen perlu memasukkan tanggal, tempat dan parameter energi
litrik yang ingin dimonitor.

Gambar 4.14 Tampilan input web pada telepon gengam

Sebagai contoh, konsumen memasukkan tanggal 2009-07-01 di


daerah mulyosari, dan yang ingin dimonitor adalah tegangan, maka
outputnya seperti pada gambar 4.15.

49
Gambar 4.15 Tampilan output web pada telepon genggam

Analisa
Penggunaan sensor – sensor yang digunakan untuk membaca
parameter energi listrik cukup linier dengan perubahan yang terjadi pada
obyek yang disensor. Namun untuk sensor arus yang digunakan
memiliki kelemahan yang hanya dapat membaca arus yang besar, yaitu
diatas 1 A, bila untuk membaca arus dibawah 1 A, maka sinyalnya
terlalu kecil dan masih perlu di kuatkan, dan kemudian baru
disearahkan. Pada saat demo alat, hanya digunakan 1 buah node dan 1
buah gateway yang mana sensor node tersebut membaca sensor,
menyimpan data dan mengirimnya ke gateway secara nirkabel. Pada
sisi gateway menerima data tersebut dan mengirimnya ke database
server melalui koneksi GPRS.

50
BAB V
PENUTUP

5.1 KESIMPULAN

Setelah melakukan tahap perancangan dan pembuatan sistem


yang kemudian dilanjutkan dengan tahap pengujian dan analisa maka
dapat diambil kesimpulan sebagai berikut :
 Pengiriman data secara nirkabel menggunakan RF modules dapat
diandalkan, karena pada pengiriman 1000 data, hanya terjadi
kehilangan data kurang dari 0.7 % dari data yang dikirim. RF
modules mempunyai kehandalan pada jarak pengiriman data.
Output dari sensor arus, tegangan, frekuensi dan beda phasa cukup
bagus karena perubahannya cukup linier dan sebanding dengan
perubahan pada sisi input.

5.2 SARAN

Dari hasil Proyek Akhir ini masih terdapat beberapa kekurangan


dan dimungkinkan untuk pengembangan lebih lanjut. Oleh karenanya
penulis merasa perlu untuk memberi saran-saran sebagai berikut :
 Algoritma pengiriman data dari sensor node ke gateway masih
sangat sederhana, dan ditempatkan di daerah tanpa halangan, dan
juga pengiriman data melalui koneksi GPRS memerlukan waktu
yang cukup lama, karena jaringan GPRS yang tidak terlalu stabil.
Jadi untuk pengembangan selanjutnya diharapkan pengiriman data
secara nirkabel dapat lebih handal, jarak yang lebih jauh agar data
yang dikirim terjamin.

51
DAFTAR PUSTAKA

[1]__,” What Is a Wireless Sensor Network?”. diakses tanggal 1 pebuari


2009 , NI Developer Zone, National Instruments
http://zone.ni.com/devzone/cda/tut/p/id/8707
[2]__,WSN Overview.diakses tanggal 1 pebuari 2009,Nebula Network
http://www.nebulawsn.com/home/content/view/3/3/lang,en/
[3]Drs.Daryanto”Pengetahuan Teknik Listrik”. BUMI AKSARA,
Jakarta, 2002
[4]Drs.A.Arismunandar”Teknik Tenaga Listrik”. Pradnya Paramita,
Jakarta, 1993
[5]Muh Saifudin Ariyadi,Proyek Akhir” Wireless Telemetering Daya
Listrik Pada KWH Meter Digital Daya Rendah”, PENS ITS,
Surabaya,2006
[6]”Datasheet Atmega128”. diakses 1 pebuari 2009, dari Datasheet
catalog
http://www.datasheetcatalog.com/datasheets_pdf/A/T/M/E/ATMEG
A128.shtml
[7]”Datasheet DS1307”. diakses 1 pebuari 2009, dari Datasheet catalog
http://www.datasheetcatalog.com/datasheets_pdf/D/S/1/3/DS1307.sh
tm
[8]”Datasheet Xbee PRO”. diakses 1 pebuari 2009, dari Stanford
http://ssdl.stanford.edu/ssdl/images/stories/AA236/0708A/Lab/Rover
/Parts/xbeeproproductmanual.pdf

52
Lampiran
Program Sensor Node
#include <mega128.h>
#include <delay.h>
#include <math.h>

// I2C Bus functions


#asm
.equ __i2c_port=0x12 ;PORTD
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>

// DS1307 Real Time Clock functions


#include <ds1307.h>

#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7

#define FRAMING_ERROR (1<<FE)


#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
#define card PINB.5
#define wprotect PINB.4
#define cs PORTB.0

unsigned char SectorCluster, FATtype;


unsigned long int
BootSector,RootDir,FATregion,DataRegion,SectorPoint,SectorStart,FATemp,TotalSector,
sectorpointutama,xsdfirsttemp;
unsigned int FATsector, BytePoint,carak,
xsdfirst,i,j,signinc,sectorsign,ton,nsectorpoint,lastsectorpoint;
unsigned char ee[512],data0,data1,nodereq[4]={'$','n','3','#'},noderesp[5]={'$','n','3','2','#'};
long int total;
bit nolish;
void putchar(char c);
void putchar1(char c);
void clearbuffer(void);
unsigned int right;
unsigned char bufsmtr;
unsigned int ind,bil[8],sizefile;

// USART0 Receiver buffer


#define RX_BUFFER_SIZE0 100
char rx_buffer0[RX_BUFFER_SIZE0];

#if RX_BUFFER_SIZE0<256
unsigned char rx_wr_index0,rx_rd_index0,rx_counter0;
#else
unsigned int rx_wr_index0,rx_rd_index0,rx_counter0;
#endif

// This flag is set on USART0 Receiver buffer overflow


bit rx_buffer_overflow0;

// USART0 Receiver interrupt service routine


interrupt [USART0_RXC] void usart0_rx_isr(void)
{
//char status,data;
char status;
status=UCSR0A;
data0=UDR0;
putchar1(data0);
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer0[rx_wr_index0]=data0;
if (++rx_wr_index0 == RX_BUFFER_SIZE0) rx_wr_index0=0;
if (++rx_counter0 == RX_BUFFER_SIZE0)
{
rx_counter0=0;
rx_buffer_overflow0=1;
};
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART0 Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter0==0);
data=rx_buffer0[rx_rd_index0];
if (++rx_rd_index0 == RX_BUFFER_SIZE0) rx_rd_index0=0;
#asm("cli")
--rx_counter0;
#asm("sei")
return data;
}
#pragma used-
#endif

// USART1 Receiver buffer


#define RX_BUFFER_SIZE1 100
char rx_buffer1[RX_BUFFER_SIZE1];

#if RX_BUFFER_SIZE1<256
unsigned char rx_wr_index1,rx_rd_index1,rx_counter1;
#else
unsigned int rx_wr_index1,rx_rd_index1,rx_counter1;
#endif

// This flag is set on USART1 Receiver buffer overflow


bit rx_buffer_overflow1;

// USART1 Receiver interrupt service routine


interrupt [USART1_RXC] void usart1_rx_isr(void)
{
char status;
status=UCSR1A;
data1=UDR1;
//putchar(data1);
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer1[rx_wr_index1]=data1;
// rx1[rx_wr_index1]=data1;
if (++rx_wr_index1 == RX_BUFFER_SIZE1) rx_wr_index1=0;
if (++rx_counter1 == RX_BUFFER_SIZE1)
{
rx_counter1=0;
rx_buffer_overflow1=1;
};
};
}

// Get a character from the USART1 Receiver buffer


#pragma used+
char getchar1(void)
{
char data;
while (rx_counter1==0);
data=rx_buffer1[rx_rd_index1];
if (++rx_rd_index1 == RX_BUFFER_SIZE1) rx_rd_index1=0;
#asm("cli")
--rx_counter1;
#asm("sei")
return data;
}
#pragma used-
// Write a character to the USART1 Transmitter
#pragma used+
void putchar1(char c)
{
while ((UCSR1A & DATA_REGISTER_EMPTY)==0);
UDR1=c;
}
#pragma used-

// Standard Input/Output functions


#include <stdio.h>

#define FIRST_ADC_INPUT 0
#define LAST_ADC_INPUT 7
unsigned char adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];
#define ADC_VREF_TYPE 0x60

// ADC interrupt service routine


// with auto input scanning
interrupt [ADC_INT] void adc_isr(void)
{
register static unsigned char input_index=0;
// Read the 8 most significant bits
// of the AD conversion result
adc_data[input_index]=ADCH;
// Select next ADC input
if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
input_index=0;
ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index;
// Start the AD conversion
ADCSRA|=0x40;
}

// SPI functions
#include <spi.h>

interrupt [TIM1_OVF] void timer1_ovf_isr(void)


{
ton++;

TCNT1H=0xFC;
TCNT1L=0x00;
}

//_______________________________________________________________
//Xbee Pro
void atmy(unsigned char n);
void atdl(unsigned char n);
void resetxbee(void);
//SDcard
void SDwrite(unsigned long int sectoraddress);
void SDread(unsigned long int sectoraddress);
void SDFirstRead(void);
void SDFirstWrite1(void);
void SDFirstWrite2(void);
void parameter(void);
void tulis(char data);
void size(void);
void linefeed(void)
{
putchar(0x0D);
putchar(0x0A);
}

void kirim_bcd4(unsigned long int data)


{
unsigned long int u,v,w,x,y,z;

u=data/1000;
v=data-(u*1000);
w=v/100;
x=v-(w*100);
y=x/10;
z=x%10;

putchar1(u+48);
putchar1(w+48);
putchar1(y+48);
putchar1(z+48);
}

void tulis_bcd3(unsigned long int data)


{
unsigned long int w,x,y,z;

w=data/100;
x=data-(w*100);
y=x/10;
z=x%10;

tulis(w+48);
tulis(y+48);
tulis(z+48);
}
void tulis_bcd2(unsigned long int data)
{
unsigned long int y,z;
y=data/10;
z=data%10;
tulis(y+48);
tulis(z+48);
}

void tampil1_bcd2(unsigned long int data)


{
unsigned long int y,z;
y=data/10;
z=data%10;
putchar1(y+48);
putchar1(z+48);
}

void tampil0_bcd2(unsigned long int data)


{
unsigned long int y,z;
y=data/10;
z=data%10;
putchar(y+48);
putchar(z+48);
}

void tampil_koma6(float data)


{
unsigned int a,b,c,d,e,f
float buf1,buf2,buf3,buf4
a=data/100;
buf1=data-(a*100);
b=buf1/10;
buf2=buf1-(b*10);
buf3=buf2*100;
c=buf3/100;
d='.';
buf4=buf3-(c*100);
e=buf4/10;
f=buf4-(e*10);
putchar1(a+48);
putchar1(b+48);
putchar1(c+48);
putchar1(d);
putchar1(e+48);
putchar1(f+48);
}

void tampil_koma5(float data)


{
unsigned int a,b,c,d,e,f;
float buf1,buf2,buf3,buf4;

b=data/10;
buf2=data-(b*10);
c=(float)buf3/100;
d='.';
buf4=buf3-(c*100);
e=buf4/10;
f=buf4-(e*10);
putchar1(b+48);
putchar1(c+48);
putchar1(d);
putchar1(e+48);
putchar1(f+48);

void tampil_koma4(float data)


{
unsigned int a,b,c,d,e,f;
float buf1,buf2,buf3,buf4;
buf3=data*100;
c=(float)buf3/100;
d='.';
buf4=buf3-(c*100);
e=buf4/10;
f=buf4-(e*10);
putchar1(c+48);
putchar1(d);
putchar1(e+48);
putchar1(f+48);

}
void tulis_koma6(float data)
{
unsigned int a,b,c,d,e,f;
float buf1,buf2,buf3,buf4;
a=data/100;
buf1=data-(a*100
b=buf1/10;
buf2=buf1-(b*10);
buf3=buf2*100;
c=buf3/100;
d='.';
buf4=buf3-(c*100);
e=buf4/10;
f=buf4-(e*10);
tulis(a+48);
tulis(b+48);
tulis(c+48);
tulis(d);
tulis(e+48);
tulis(f+48);

void tulis_koma5(float data)


{
unsigned int a,b,c,d,e,f;
float buf1,buf2,buf3,buf4;
b=data/10;
buf2=data-(b*10);
buf3=buf2*100;
c=(float)buf3/100;
d='.';
buf4=buf3-(c*100);
e=buf4/10;
f=buf4-(e*10);
tulis(b+48);
tulis(c+48);
tulis(d);
tulis(e+48);
tulis(f+48);

void tulis_koma4(float data)


{
unsigned int a,b,c,d,e,f;
float buf1,buf2,buf3,buf4;
buf3=data*100;
c=(float)buf3/100;
d='.';
buf4=buf3-(c*100);
e=buf4/10;
f=buf4-(e*10);
tulis(c+48);
tulis(d);
tulis(e+48);
tulis(f+48);
}

clearbufsd()
{ unsigned int ulang;
for(i=xsdfirst;i<512;i++)
{
ee[i]='';
}
}

bacalast()
{ //unsigned int ind,bil[8],sizefile;
SDread(RootDir);
for(i=60;i<64;i++)
{
ind=i-60;
ind=ind+ind;
bil[ind]=ee[i]%16;
bil[ind+1]=ee[i]/16;
}

sizefile=bil[7]*268435456+bil[6]*16777216+bil[5]*1048576+bil[4]*65536+bil[3]*4096+
bil[2]*256+bil[1]*16+bil[0];
nsectorpoint=sizefile/512;
SectorPoint=sectorpointutama+nsectorpoint;

xsdfirst=sizefile%512;
//-----------------------------------------
//SDread(SectorPoint);
//clearbufsd();
}

void main(void)
{
unsigned char h,m,s,d,dd,mm,yy,sec;
unsigned int nilaiadc1,nilaiadc3,ulang,node,urut,start,bytedata,ulangsector;
float tegadc1,tegadc3,tegpln,arus,frek,radi,cosphie,tonf,tonc;
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x07;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
PORTE=0x08;
DDRE=0x00;
PORTF=0x00;
DDRF=0x00;

PORTG=0x00;
DDRG=0x00;
ASSR=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
EICRA=0x00;
EICRB=0x00;
EIMSK=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x04;
ETIMSK=0x00;

// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: On
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud rate: 9600
UCSR0A=0x00;
UCSR0B=0x98;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x47;

// USART1 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART1 Receiver: On
// USART1 Transmitter: On
// USART1 Mode: Asynchronous
// USART1 Baud rate: 9600
UCSR1A=0x00;
UCSR1B=0x98;
UCSR1C=0x06;
UBRR1H=0x00;
UBRR1L=0x47;

ACSR=0x80;
SFIOR=0x00;

ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff);


ADCSRA=0xCC;
SPCR=0x53;
SPSR=0x01;

i2c_init();

rtc_init(0,1,0);
rtc_set_time(23,20,00);
rtc_set_date(26,7,9);
// Global enable interrupts
#asm("sei")
//setting parameter xbee pro
start=0;
node='3';
atmy(node);
atdl('2');
SDFirstRead();
parameter();
sectorpointutama=SectorPoint;
lastsectorpoint=sectorpointutama;
xsdfirsttemp=0;
start=0;
putchar1('/');
kirim_bcd4(lastsectorpoint);
putchar1('/');
putchar1(13);
while (1)
{
for(urut=0;urut<=0;urut++)
{
//membaca data dan menyimpan disdcard
bacalast();
SDread(SectorPoint);
clearbufsd();
start=xsdfirst;

for (ulang=1;ulang<=1;ulang++)
{
tulis('@');
tulis(node);
tulis('/');
rtc_get_time(&h,&m,&s);
rtc_get_date(&dd,&mm,&yy);
//baca tegangan
nilaiadc1=adc_data[1];
//nilaiadc1=200;
//baca arus
//nilaiadc3=adc_data[3];
nilaiadc3=220;
//baca frekuensi
ton=0;

TCNT1H=0xFC;
TCNT1L=0x00;
while(!PINA.4);
while(PINA.4);
while(!PINA.4);
TCCR1B=0x01;
delay_us(20);
while(PINA.4);
while(!PINA.4);
TCCR1B=0x00;
//ton=200;
tonf=ton;
//baca cosphi
ton=0;

TCNT1H=0xFC;
TCNT1L=0x00;
n=5000;
lag=0;
for(i=0;i<=n;i++)
{
if (PINA.6==1)
{
lag=1;
n=i;
}
}
//putchar1('#');
//putchar1(lag+48);
//putchar1('#');

if(lag==1)
{
while(!PINA.6);
while(PINA.6);
while(!PINA.6);
TCCR1B=0x01;
delay_us(20);
while(PINA.6);
TCCR1B=0x00;
//putchar1('8');
}
else
{
ton=0;
//putchar1('9');
}
tonc=ton;
//menampilkan data sementara

kirim_bcd4(nilaiadc1);
putchar1('/');
kirim_bcd4(nilaiadc3);
putchar1('/');
kirim_bcd4(tonf);
putchar1('/');
kirim_bcd4(tonc);
putchar1('/');

//memproses data
//tegangan
tegadc1=(0.0206*nilaiadc1)-0.3822;
//tampil_koma6(tegadc1);
//putchar1('/');
tegpln=(1.2726*tegadc1)+214.78;
//tampil_koma6(tegpln);
//putchar1('/');
//arus
tegadc3=(0.0206*nilaiadc3)-0.3822;
//tampil_koma6(tegadc3);
//putchar1('/');
arus=(0.0127*tegadc3)+0.4423;
//tampil_koma6(arus);
//putchar1('/');
//frekuensi
frek=1/(tonf*0.0001);
//tampil_koma5(frek);
//putchar1('/');
//power factor
radi=(tonc*0.1/20)*6.282;
//tampil_koma5(radi);
//putchar1('/');
cosphie=cos(radi);
//tampil_koma5(cosphie);
//putchar1('/');
//putchar1(13);
//menyimpan di sdcard
tulis_koma6(tegpln);
tulis('/');
tulis_koma5(arus);
tulis('/');
tulis_koma5(frek);
tulis('/');
tulis_koma4(cosphie);
tulis('/');
tulis_bcd2(yy);
tulis('-');
tulis_bcd2(mm);
tulis('-');
tulis_bcd2(dd);
//tulis(' ');
tulis('%');
tulis('2');
tulis('0');
tulis_bcd2(h);
tulis(':');
tulis_bcd2(m);
tulis(':');
tulis_bcd2(s);
tulis('^');
//tulis(13);
//tulis(10);
delay_ms(10);
}
SDwrite(SectorPoint);
size();
//request ke node terdekat
delay_ms(5000);

right=0;
do
{
xtx=0;
clearbuffer();
right=0;
putsf("$n3#");
putchar1('$');
delay_ms(5000);
if (rx_buffer0[0]!='')
{
if (rx_buffer0[0]=='$')
{
delay_ms(1000);
for(i=0;i<5;i++)
{
if(rx_buffer0[i]==noderesp[i])
{
right++;
}
}
}
}
}while(right!=5);
//bacalast();
//sectorpointutama / sizefile / nsectorpoint / SectorPoint / xsdfirst
//putchar1('#');
for(ulangsector=lastsectorpoint;ulangsector<=SectorPoint;ulangsector++)
{
putchar1(13);
SDread(ulangsector);
putchar1('(');
putchar('(');
if(ulangsector == SectorPoint)
{
for(bytedata=start;bytedata<xsdfirst;bytedata++)
{
putchar1(ee[bytedata]);
putchar(ee[bytedata]);
delay_ms(100);
}
}
else
{
for(bytedata=start;bytedata<512;bytedata++)
{
putchar1(ee[bytedata]);
putchar(ee[bytedata]);
delay_ms(100);
}
}
putchar1(')');
putchar(')');
start=0;
}
lastsectorpoint=SectorPoint;

}
bacalast();
}
}
Program Gateway
#include <mega128.h>
#include <delay.h>
#include <math.h>
#asm
.equ __i2c_port=0x12 ;PORTD
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>

// DS1307 Real Time Clock functions


#include <ds1307.h>

#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7

#define FRAMING_ERROR (1<<FE)


#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)

unsigned char SectorCluster, FATtype;


unsigned long int
BootSector,RootDir,FATregion,DataRegion,SectorPoint,SectorStart,FATemp,TotalSector,
sectorpointutama,xsdfirsttemp,i;
unsigned int FATsector, BytePoint,carak,
xsdfirst,j,signinc,sectorsign,ton,nsectorpoint,lastsectorpoint;
unsigned char data0, data1, nodereq2[4]={'$','n','2','#'}, noderesp[5]={'$','n','2','1','#'};
long int total;
bit nolish;
void putchar(char c);
void putchar1(char c);
void clearbuffer(void);
unsigned int right;
unsigned char bufsmtr;
unsigned int ind,bil[8],sizefile;

// USART0 Receiver buffer


#define RX_BUFFER_SIZE0 100
char rx_buffer0[RX_BUFFER_SIZE0];

#if RX_BUFFER_SIZE0<256
unsigned char rx_wr_index0,rx_rd_index0,rx_counter0;
#else
unsigned int rx_wr_index0,rx_rd_index0,rx_counter0;
#endif

// This flag is set on USART0 Receiver buffer overflow


bit rx_buffer_overflow0;

// USART0 Receiver interrupt service routine


interrupt [USART0_RXC] void usart0_rx_isr(void)
{
//char status,data;
char status;
status=UCSR0A;
data0=UDR0;
putchar1(data0);
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer0[rx_wr_index0]=data0;
if (++rx_wr_index0 == RX_BUFFER_SIZE0) rx_wr_index0=0;
if (++rx_counter0 == RX_BUFFER_SIZE0)
{
rx_counter0=0;
rx_buffer_overflow0=1;
};
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART0 Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter0==0);
data=rx_buffer0[rx_rd_index0];
if (++rx_rd_index0 == RX_BUFFER_SIZE0) rx_rd_index0=0;
#asm("cli")
--rx_counter0;
#asm("sei")
return data;
}
#pragma used-
#endif

// USART1 Receiver buffer


#define RX_BUFFER_SIZE1 100
char rx_buffer1[RX_BUFFER_SIZE1];
#if RX_BUFFER_SIZE1<256
unsigned char rx_wr_index1,rx_rd_index1,rx_counter1;
#else
unsigned int rx_wr_index1,rx_rd_index1,rx_counter1;
#endif

// This flag is set on USART1 Receiver buffer overflow


bit rx_buffer_overflow1;

// USART1 Receiver interrupt service routine


interrupt [USART1_RXC] void usart1_rx_isr(void)
{
char status;
status=UCSR1A;
data1=UDR1;
putchar(data1);
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer1[rx_wr_index1]=data1;
// rx1[rx_wr_index1]=data1;
if (++rx_wr_index1 == RX_BUFFER_SIZE1) rx_wr_index1=0;
if (++rx_counter1 == RX_BUFFER_SIZE1)
{
rx_counter1=0;
rx_buffer_overflow1=1;
};
};
}

// Get a character from the USART1 Receiver buffer


#pragma used+
char getchar1(void)
{
char data;
while (rx_counter1==0);
data=rx_buffer1[rx_rd_index1];
if (++rx_rd_index1 == RX_BUFFER_SIZE1) rx_rd_index1=0;
#asm("cli")
--rx_counter1;
#asm("sei")
return data;
}
#pragma used-
// Write a character to the USART1 Transmitter
#pragma used+
void putchar1(char c)
{
while ((UCSR1A & DATA_REGISTER_EMPTY)==0);
UDR1=c;
}
#pragma used-

// Standard Input/Output functions


#include <stdio.h>

#define FIRST_ADC_INPUT 0
#define LAST_ADC_INPUT 7
unsigned char adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];
#define ADC_VREF_TYPE 0x60

interrupt [ADC_INT] void adc_isr(void)


{
register static unsigned char input_index=0;
adc_data[input_index]=ADCH;

if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))


input_index=0;
ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index;
// Start the AD conversion
ADCSRA|=0x40;
}

#include <spi.h>

//_______________________________________________________
//Xbee Pro
void atmy(unsigned char n);
void atdl(unsigned char n);
void resetxbee(void);
//SDcard
//GPRS
void ate(void);
void at(void);
void cipdpdp(void);
void cgatt(void);
void cgdcont(void);
void atd(void);
void cdnscfg(void);
void cstt(void);
void ciicr(void);
void cifsr(void);
void cipstatus(void);
void ciphead(void);
void cdnsorip(void);
void cipstart(void);
void cipsend(void);
void get(void);
void host(void);
void cipshut(void);
void cipclose(void);
//_________________________________________________________

void gprs(void)
{
cipclose();
cipshut();
ate();
at();
cipdpdp();
cgatt();
cgdcont();
atd();
cdnscfg();
cstt();
ciicr();
cifsr();
cipstatus();
ciphead();
cdnsorip();
cipstart();
cipsend();
delay_ms(20000);
//cipshut();
}

void main(void)
{
unsigned char h,m,s,d,dd,mm,yy,sec;
unsigned int nilaiadc1,nilaiadc3,ulang,node,urut,start,bytedata,ulangsector,temp;
float tegadc1,tegadc3,tegpln,arus,frek,radi,cosphie,tonf,tonc;

PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x07;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
PORTE=0x08;
DDRE=0x00;
PORTF=0x00;
DDRF=0x00;
PORTG=0x00;
DDRG=0x00;

ASSR=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
OCR1CH=0x00;
OCR1CL=0x00;

EICRA=0x00;
EICRB=0x00;
EIMSK=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x04;
ETIMSK=0x00;

// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: On
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud rate: 9600
UCSR0A=0x00;
UCSR0B=0x98;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x47;

// USART1 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART1 Receiver: On
// USART1 Transmitter: On
// USART1 Mode: Asynchronous
// USART1 Baud rate: 9600
UCSR1A=0x00;
UCSR1B=0x98;
UCSR1C=0x06;
UBRR1H=0x00;
UBRR1L=0x47;

ACSR=0x80;
SFIOR=0x00;

ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff);


ADCSRA=0xCC;

SPCR=0x53;
SPSR=0x01;

i2c_init();

rtc_init(0,1,0);
rtc_set_time(23,20,00);
rtc_set_date(26,7,9);
// Global enable interrupts
#asm("sei")
//setting parameter xbee pro
// putchar1('1');
start=0;
//urut=0;

node='1';

atmy(node);
atdl('2');

while (1)
{

right=0;
do
{
//xtx=0;
clearbuffer();
right=0;
//putsf("$n3#");
delay_ms(5000);
if (rx_buffer0[0]!='')
{
if (rx_buffer0[0]=='$')
{
delay_ms(1000);
for(i=0;i<5;i++)
{
if(rx_buffer0[i]==nodereq2[i])
{
right++;
}
}
}
}
}while(right!=4);

//========================================================
do
{
clearbuffer();
right=0;
putsf("$n21#");
delay_ms(5000);
if (rx_buffer0[0]!='')
{
if (rx_buffer0[0]=='(')
{ //xtx=1;
//putchar1('#');
temp=0;
ee[temp]=rx_buffer0[temp];
do
{
if(rx_buffer0[temp]!='')
{
ee[temp]=rx_buffer0[temp];
if (ee[temp]==')')
{
right=1;
}
temp++;
}
}while(right!=1);
}
}
} while(right!=1);

//putchar1('#');
atdl('4');
//temp=49;
total=temp;
gprs();
atdl('2');
putsf("$ok12");
while(1);
}
}
Program Web pada telepon gengam
index.wml
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN"
"http://www.wapforum.org/DTD/wml13.dtd" >
<wml>
<card id="halaman1" title=" .:: Welcome ::. " ontimer="#halaman2">
<timer value="10"/>
<p align="center">
<br/>
<b>Wireless Sensor Network </b> <br/>
Monitoring Electrical Parameters
<br/>
</p>
</card>

<card id="halaman2" title=".:: Loading ::. " ontimer="input.wml" newcontext="true">


<timer value="10"/>
<p align="center">
<br/>
<b>Let's Monitor Electricity</b>
</p>
</card>
</wml>
input.wml
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN"
"http://www.wapforum.org/DTD/wml13.dtd" >
<wml>
<card title=" .:: WSN for Monitoring ::.">
<p align="left">
Please select : <br/>
date, place and electrical parameter you want to monitor <br/>
<do type="accept" label="Show"> <br/>
<go href="show.php" method="post">
<postfield name="tanggal" value="$in_tgl"/>
<postfield name="node" value="$in_wlyh"/>
<postfield name="parameter" value="$in_prmtr"/>
</go>
</do>
<br/>
Date &nbsp;&nbsp;:<br/>
<input type="text" title="Tanggal " name="in_tgl"/><br/>
Place &nbsp;&nbsp;:<br/>
<select name="in_wlyh"><br/>
<option value="1">Mulyosari</option>
<option value="2">Keputih</option>
<option value="3">Semolowaru</option>
<option value="4">Gebang</option>
</select>
<br/>
Parameters &nbsp;&nbsp;:<br/>
<select name="in_prmtr"><br/>
<option value="1">Voltage</option>
<option value="2">Current</option>
<option value="3">Frequency</option>
<option value="4">Power Factor</option>
<option value="5">All</option>
</select>

</p>
</card>
</wml>
show.php
<?php
header("Content-type: text/vnd.wap.wml");
echo("<?xml version=\"1.0\"?>");
echo("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"
\"http://www.wapforum.org/DTD/wml_1.1.xml\">");
?>

<wml>
<card title=".:: Monitoring ::." newcontext="true">
<p align="center">
<small>

<?php

$in_tanggal = $_POST["tanggal"]; //dapat input tanggal


$in_parameter = $_POST["parameter"]; //dapat input tanggal
$in_node = $_POST["node"]; //dapat input tanggal

switch ($in_node)
{
case 1:
$in_wilayah="Mulyosari";
break;
case 2:
$in_wilayah="Keputih";
break;
case 3:
$in_wilayah="Semolowaru";
break;
case 4:
$in_wilayah="Gebang";
break;
default:
$in_wilayah="Mulyosari";
}

$in_tanggal1 = "$in_tanggal" ." ". "00:00:01".


$in_tanggal2 = "$in_tanggal" ." ". "23:59:59".

//$con = mysql_connect("localhost","root",""); //konek database


$con = mysql_connect("student.eepis-its.edu","harun","140688harun"); //konek
database
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("wsn", $con); //pilih database


//memilih data dari database
$result = mysql_query("SELECT * from monitoring where tanggal >= '" . $in_tanggal1
. "' and tanggal <= '" . $in_tanggal2 . "' and node = '".$in_node."'");
$i=0;
$standartv=220;
$ov=0;
$un=0;
$nr=0;
$ovf=0;
$unf=0;
$nrf=0;
$ovc=0;
$unc=0;
$nrc=0;
$arusmax=0;
$arusmin=100;

while($row = mysql_fetch_array($result))
{

switch ($in_parameter)
{ case 1:
$tegangan = $row[$in_parameter];
if ($row[$in_parameter] > $standartv)
{
$over[$ov]=$row[$in_parameter];
$tglover[$ov]=$row[5];;
$ov++;
}
else if ($row[$in_parameter] < $standartv)
{
$under[$un]=$row[$in_parameter];
$tglunder[$un]=$row[5];;
$un++;
}
else
{
$normal[$nr]=$row[$in_parameter];
$tglnormal[$nr]=$row[5];;
$nr++;
}
$rata2t=$rata2t+$row[$in_parameter];
break;
case 2:
if($arusmax < $row[$in_parameter] )
{
$arusmax = $row[$in_parameter];
$tglarmax=$row[5];;
}
if($arusmin > $row[$in_parameter])
{
$arusmin = $row[$in_parameter];
$tglarmin=$row[5];;
}
$rata2a=$rata2a+$row[$in_parameter];
break;
case 3:
if ($row[$in_parameter] > 50)
{
$overf[$ovf]=$row[$in_parameter];
$tgloverf[$ovf]=$row[5];;
$ovf++;
}
else if ($row[$in_parameter] < 50)
{
$underf[$unf]=$row[$in_parameter];
$tglunderf[$unf]=$row[5];;
$unf++;
}
else
{
$normalf[$nrf]=$row[$in_parameter];
$tglnormalf[$nrf]=$row[5];;
$nrf++;
}
$rata2f=$rata2f+$row[$in_parameter];
break;
case 4:
if ($row[$in_parameter] > 1)
{
$overc[$ovc]=$row[$in_parameter];
$tgloverc[$ovc]=$row[5];;
$ovc++;
}
else if ($row[$in_parameter] < 1)
{
$underc[$unc]=$row[$in_parameter];
$tglunderc[$unc]=$row[5];;
$unc++;
}
else
{
$normalc[$nrc]=$row[$in_parameter];
$tglnormalc[$nrc]=$row[5];;
$nrc++;
}
$rata2c=$rata2c+$row[$in_parameter];
break;
default:
$rata2t=$rata2t+$row[1];
$rata2a=$rata2a+$row[2];
$rata2f=$rata2f+$row[3];
$rata2c=$rata2c+$row[4];
}
$i++;
}
$rata2t=$rata2t/$i;
$rata2a=$rata2a/$i;
$rata2f=$rata2f/$i;
$rata2c=$rata2c/$i;

switch ($in_parameter)
{ case 1:
echo "<b>This is voltage in $in_wilayah </b><br/><br/>";
if ($un >0)
{
echo "*************************<br/>";
echo "<b>Under Voltage:</b><br/>";
echo "*************************<br/>";
for($i=0;$i<$un;$i++)
{
echo "$under[$i] Volt<br/>";
echo "$tglunder[$i]<br/>";
echo "*************************<br/>";
}
}
if($nr>0)
{
echo "<b>Normal Voltage:</b><br/>";
echo "*************************<br/>";
//echo "$normal[0] Volt<br/>";
for($i=0;$i<$nr;$i++)
{
echo "$normal[$i] Volt<br/>";
echo "$tglnormal[$i]<br/>";
echo "*************************<br/>";
}
}
//echo "<big><b>Over Voltage:</b></big><br/>";
if($ov>0)
{
echo "<b>Over Voltage:</b><br/>";
echo "*************************<br/>";
for($i=0;$i<$ov;$i++)
{
echo "$over[$i] Volt<br/>";
echo "$tglover[$i]<br/>";
echo "*************************<br/>";
}
}
echo "<b>Average Voltage:</b><br/>";
echo "*************************<br/>";
echo "$rata2t Volt<br/>";
break;

case 2:
echo "<b>This is Current in $in_wilayah </b><br/><br/>";
echo "*************************<br/>";
echo "<b>Max Current:</b><br/>";
echo "*************************<br/>";
echo "$arusmax Ampere<br/>";
echo "*************************<br/>";
echo "<b>Min Current:</b><br/>";
echo "*************************<br/>";
echo "$arusmin Ampere<br/>";
echo "<b>Average Current:</b><br/>";
echo "*************************<br/>";
echo "$rata2a Ampere<br/>";
break;

case 3:
echo "<b>This is Frequency in $in_wilayah </b><br/><br/>";
if ($unf >0)
{
echo "*************************<br/>";
echo "<b>Under Frequency:</b><br/>";
echo "*************************<br/>";
//echo "$unf<br/>";
for($i=0;$i<$unf;$i++)
{

echo "$underf[$i] Hz<br/>";


echo "$tglunderf[$i]<br/>";
echo "*************************<br/>";
}
}
if($nrf>0)
{
echo "<b>Normal Frequency:</b><br/>";
echo "*************************<br/>";
//echo "$nrf<br/>";
//echo "$normal[0] Volt<br/>";
for($i=0;$i<$nrf;$i++)
{
echo "$normalf[$i] Hz<br/>";
echo "$tglnormalf[$i]<br/>";
echo "*************************<br/>";
}
}
//echo "<big><b>Over Voltage:</b></big><br/>";
if($ovf>0)
{
echo "<b>Over Frequency:</b><br/>";
echo "*************************<br/>";
//echo "$ovf<br/>";
for($i=0;$i<$ovf;$i++)
{
echo "$overf[$i] Hz<br/>";
echo "$tgloverf[$i]<br/>";
echo "*************************<br/>";
}
}
echo "<b>Average Frequency:</b><br/>";
echo "*************************<br/>";
echo "$rata2f Hz<br/>";
break;
case 4:
echo "<b>This is Power Factor in $in_wilayah </b><br/><br/>";
if ($unc >0)
{
echo "*************************<br/>";
echo "<b>Power Factor < 1 :</b><br/>";
echo "*************************<br/>";
//echo "$unf<br/>";
for($i=0;$i<$unc;$i++)
{
echo "$underc[$i]<br/>";
echo "$tglunderc[$i]<br/>";
echo "*************************<br/>";
}
}
if($nrc>0)
{
echo "<b>Power Factor = 1 :</b><br/>";
echo "*************************<br/>";
//echo "$nrf<br/>";
//echo "$normal[0] Volt<br/>";
for($i=0;$i<$nrc;$i++)
{
echo "$normalc[$i] <br/>";
echo "$tglnormalc[$i]<br/>";
echo "*************************<br/>";
}
}
//echo "<big><b>Over Voltage:</b></big><br/>";
if($ovc>0)
{
echo "<b>Power Factor > 1 :</b><br/>";
echo "*************************<br/>";
//echo "$ovf<br/>";
for($i=0;$i<$ovc;$i++)
{
echo "$overc[$i] <br/>";
echo "$tgloverc[$i]<br/>";
echo "*************************<br/>";
}
}
echo "<b>Average Power Factor:</b><br/>";
echo "*************************<br/>";
echo "$rata2c<br/>";
break;
default:
echo "<b>This is electricity in $in_wilayah </b><br/><br/>";
echo "<b>Average Voltage:</b><br/>";
echo "*************************<br/>";
echo "$rata2t<br/>";
echo "<b>Average Current:</b><br/>";
echo "*************************<br/>";
echo "$rata2a<br/>";
echo "<b>Average Frequency:</b><br/>";
echo "*************************<br/>";
echo "$rata2f<br/>";
echo "<b>Average Power Factor:</b><br/>";
echo "*************************<br/>";
echo "$rata2c<br/>";
}
?>
<a href="input.wml">Monitor others</a><br/>
</small>
</p>
</card>
</wml>

Program Web yang dihubungi modem gprs untuk menerima data dari
gateway
<html>
<body>
<?php
//@/node/tegangan/arus/frekuensi/bedaphase#
//(@1/220.00/10.00/50.00/0.90/2009-06-01%2007:55:00^)

$nilai = $_GET["input"];
$header = substr("$nilai", 0,1);
$tail = substr("$nilai", -1,1);
//$i = 0;
//$i = $i + 37;
echo $nilai;
echo $header;
echo $tail;

if ($header=="(" and $tail==")")


{ echo "OK";
$con = mysql_connect("student.eepis-its.edu","harun","140688harun"); // connect
database
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("wsn", $con); //select database
$i = 0;
do
{ //(@1/220.00/10.00/50.00/0.90/2009-06-01%2007:55:00^)
$node = substr("$nilai", $i + 2,1); //nilai node
$tegangan = substr("$nilai", $i + 4,6); //nilai tegangan
$arus = substr("$nilai", $i + 11,5); //nilai arus
$frek = substr("$nilai", $i + 17,5); //nilai frekuensi
$cosphi = substr("$nilai", $i + 23,4); //nilai cosphi
$tanggal = substr("$nilai",$i + 28,21); //nilai tanggal
echo $tegangan;
echo $arus;
echo $frek;
echo $cosphi;
echo $tanggal;
echo $node;
mysql_query("insert into monitoring (tegangan,arus,frekuensi,cosphi,tanggal,node)
values('" . $tegangan . "','" . $arus . "','" . $frek . "','" . $cosphi . "','" . $tanggal . "','" . $node
. "')");
$i = $i + 48;
$cek = substr("$nilai", $i + 1,1);
echo $i;
} while ($cek=="@");

$result = mysql_query("SELECT * FROM monitoring "); //menampilkan database

echo "<table border='1'>


<tr>
<th>ID</th>
<th>Tegangan</th>
<th>Arus</th>
<th>Frekuensi</th>
<th>Cos Phi</th>
<th>Tanggal</th>
<th>Node</th>
</tr>";while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['tegangan'] . "</td>";
echo "<td>" . $row['arus'] . "</td>";
echo "<td>" . $row['frekuensi'] . "</td>";
echo "<td>" . $row['cosphi'] . "</td>";
echo "<td>" . $row['tanggal'] . "</td>";
echo "<td>" . $row['node'] . "</td>";
echo "</tr>";
}
echo "</table>";mysql_close($con);
}
?>
</body>
</html>
BIODATA PENULIS

Nama : Moch Harun Arrosyid


Tempat/Tanggal Lahir : Sidoarjo/ 04 Juni 1998
Alamat : Jl. Hasanudin 2 Sidoarjo
Telepon/Hp : 085645375671
Hobi : Membaca, bercanda, Jalan - Jalan
Motto : I’ll Show the world who I’m by doing my best

Riwayat Pendidikan :
 SDI Wahid Hasyid Sidoarjo Tahun 1994 – 2000
 MTs Negeri Sidoarjo Tahun 2000 – 2003
 SMK Negeri 1 Sidorjo Tahun 2003 – 2006
 Politeknik Elektronika Negeri Surabaya-ITS Tahun 2006 – 2009

Penulis telah mengikuti seminar Proyek Akhir pada Juli 2009,


sebagai salah satu persyaratan untuk memperoleh gelar Ahli Madya
(A.Md.)

Anda mungkin juga menyukai