Penginnya judul postingan kali ini adalah “Web Browser berbasis MCS51”, namun sepertinya agak susah, kecuali kalau saya menggunakan MCU 8051 yang mempunyai memori yang cukup besar. Satu halaman web http://www.detik.com saja sudah berukuran 500K lebih, padahal RAM maksimum yang bisa diakses oleh AT89S52 hanya 64 KB. Tapi untungnya saya ingat bahwa, untuk perangkat mobile (handphone), untuk mengakses internet menggunakan WAP (Wireless Application Protocol), halaman web yang lebih disesuaikan untuk perangkat mobile. Dan hampir semua web sudah mempunyai WAP.
Wap.Detik.Com
Cobalah ketik di internet browser anda wap.detik.com, klo saya coba di Chrome, akan ada file save dialog untuk menyimpan file tersebut. Simpanlah dengan ekstensi .html. Lalu coba buka dengan browser anda, hasilnya akan tampak seperti gambar berikut:
Terlihat, wap.detik.com hanya memuat breaking news dan ukuran file htmlnya pun hanya 4KB, masih memungkinkan AT89S52 untuk mengolahnya dengan tambahan memori eksternal. Nah tujuan dari proyek ini adalah membaca halaman wap.detik.com dan menampilkan breaking news atau indeks berita ke LCD.
Membaca wap.detik.com dengan SIM700
TCP/IP stack yang sudah terembedd ke dalam SIM700 akan digunakan untuk membaca halaman wap.detik.com. Prosesnya sama dengan ketika SIM700 digunakan untuk mengakses TCP server di aplikasi terdahulu. Berikut urutan2 AT commandnya:
ATE0 AT+CMGF=1 AT&W AT+CIPSHUT AT+CSTT="telkomsel","wap","wap123" AT+CIICR AT+CIFSR AT+CDNSORIP=1 AT+CIPSTART="TCP","wap.detik.com","80" AT+CIPSEND GET / HTTP/1.1 Host: wap.detik.com Connection: Keep-Alive Accept: */* Accept-Language: en-us
AT command yang terbaru adalah
AT+CDNSORIP=1
yang berfungsi karena kali ini akan mengakses server (wap server) menggunakan nama domain, bukan IP address.
Setelah AT+CIPSTART, server mengirim CONNECT OK, maka hal berikutnya adalah mengambil data dari server dengan perintah GET HTTP. Nah server kemudian akan mengirim data-data seperti ketika kita membuka WAP server menggunakan internet browser.
Berikut capture datanya:
Nah data-data ini kemudian disimpan ke dalam wap_buffer. Variable wap_buffer ini memiliki ukuran 10KB. Dalam proyek ini AT89S52 dihubungkan dengan memori eksternal.
XML Parser
Data yang dikirim oleh server berupa file xml. Agar bisa ditampilkan ke LCD, hal yang harus dilakukan adalah mengektrak, parsing, data-data yang kita inginkan. Dengan menggunakan algoritma sederhana, algoritma for, hal ini bisa dilakukan. Pertama carilah string Breaking News.
Breaking News</u></b></p><p><small>Kamis, 16/06/2011 13:23</small><br/><anchor>Densus 88 Tangkap Perakit Bom Berinisial S di Pemalang<br/><go href=”http://wap.detik.com/index.php?fuseaction=wap.read&menugroup=&idkanal=10&mainmenuid=&idnews=1661704&idPartner=&d=2011-06-16&t=132338&msisdn=&flag=&visit=&fas=7&op=flexi&PHPSESSID=&lasttime=1308205879″></go></anchor></p><p><small>Kamis, 16/06/2011 13:31</small><br/><anchor>Spartan, Proyek Rahasia Facebook dan Apple?<br/><go href=”http://wap.detik.com/index.php?fuseaction=wap.read&menugroup=&idkanal=317&mainmenuid=&idnews=1661502&idPartner=&d=2011-06-16&t=133157&msisdn=&flag=&visit=&fas=7&op=flexi&PHPSESSID=&lasttime=1308205879″></go></anchor></p><p><small>Kamis, 16/06/2011 13:30</small><br/><anchor>Industri Hotel dan Restoran Pasrah Harga Elpiji 50 Kg Naik<br/><go
Kalau sudah ketemu, kemudian cari string small, kalau sudah ketemu maka kita bisa menemukan tanggal dan jam dari indeks berita yang pertama. Nah indeks beritanya akan didapat setelah menemukan string anchor. Begitu seterusnya sampai semua indeks berita terbaca.
Setelah dibaca, tinggal ditampilkan ke LCD. LCD yang digunakan adalah LCD dengan ukuran 40×4. Karena indeks berita mungkin lebih dari 40 karakter, maka harus ada fungsi scroll saat menampilkan ke LCD.
Berikut adalah video capture simulasi pakai Proteus, SIM700 terhubung ke COMPIM melalui COM1.
Catatan
Program ini khusus dibuat untuk membaca wap.detik.com, program tidak akan berjalan dengan benar untuk wap server yang lain, atau ketika Detik mengubah format xmlnya, maka program pun harus di-compile ulang. Program ini juga masih sangat sederhana, dibuat menggunakan sebuah slogan “YANG PENTING BISA, YANG PENTING JALAN“. Jadi pasti masih banyak errornya.
Semoga bermanfaat.
Filed under: Micro Mania | Leave a comment »