You are on page 1of 11

Tutorial Web Server NM7010A untuk Menampilkan Data Tegangan

Saya akan memperkenalkan sedikit aplikasi dengan NM7010A-LF yang dapat berfungsi sebagai Web
Server, sehingga data dari mikrokontroler dapat langsung diakses pada jaringan internet dengan
memanggil alamat IP dan website tanpa harus terhubung dengan komputer terlebih dahulu. Pada
contoh yang akan saya jelaskan ini menggunakan metode TCP (Transmission Control Protocol) untuk
pengiriman data pada jaringan.

Jika digambarkan maka blok diagramnya seperti ini:

Sensor --> Mikrokontroler <---> NM7010A <---> Internet

Pada aplikasi ini data yang akan ditampilkan pada website adalah data tegangan dari potensiometer.
Rangkaian utama yang terdiri dari ATMega32, LCD 16x2, NM7010-A, potensiometer, dan 3 buah led
adalah sebagai berikut:
Rangkaian pada modul NM7010-A adalah sebagai berikut:
Dihubungkan ke rangkaian mikro jadi bgni:

A8 - A14 terhubung dengan switch yang jika di ON kan maka akan menerima logika 0 atau terhubung
dengan ground, dan jika di OFF kan maka akan menerima logika 1 atau terhubung dengan VCC dengan
resistor pull-up 10k. Pada aplikasi ini A8 - A13 di ON kan dan A14 di OFF kan.

Listing programnya menggunakan Bascom AVR sebagai berikut:


'===========================================================

'Programmer: Wahyu Rahmaniar

'Company : Technologination

'

'Aplikasi NM7010A-LF

'===========================================================

$regfile = "m32def.dat"

$crystal = 8000000

$hwstack = 80

$swstack = 80

$framesize = 120

'used constants

Const Sock_stream = $01

Const Sock_dgram = $02

Const Sock_ipl_raw = $03

Const Sock_macl_raw = $04

Const Sel_control = 0

Const Sel_send = 1

Const Sel_recv = 2

'socket status
Const Sock_closed = $00

Const Sock_arp = $01

Const Sock_listen = $02

Const Sock_synsent = $03

Const Sock_synsent_ack = $04

Const Sock_synrecv = $05

Const Sock_established = $06

Const Sock_close_wait = $07

Const Sock_last_ack = $08

Const Sock_fin_wait1 = $09

Const Sock_fin_wait2 = $0a

Const Sock_closing = $0b

Const Sock_time_wait = $0c

Const Sock_reset = $0d

Const Sock_init = $0e

Const Sock_udp = $0f

Const Sock_raw = $10

Enable Interrupts

Config Tcpip = Int0 , Mac = 00.00.12.34.56.78 , Ip = 192.168.1.59 , Submask = 255.255.255.0 , Gateway =


0.0.0.0 , Localport = 80 , Tx = $55 , Rx = $55 , Twi = &H80 , Clock = 400000

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs =
Portc.2

Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc

Config Portb = Output

Portb = 0

Led1 Alias Portb.0

Led2 Alias Portb.1

Led3 Alias Portb.2

Dim Shtml As String * 15

Dim Tempw As Word

Dim I As Byte , P As Byte

Dim S As String * 500

Dim Test(2) As String * 10

Do

Tempw = Socketstat(0 , 0)

If Tempw = Sock_established Then

Tempw = Socketstat(0 , Sel_recv)

If Tempw > 0 Then

Do

Tempw = Tcpread(0 , S)

P = Split(s , Test(1) , " ")

If Test(1) = "GET" Then


Gosub Webpage

End If

Loop Until S = ""

Tempw = Tcpwrite(0 , " ")

Gosub Kirim_data

Closesocket 0

End If

Elseif Tempw = Sock_close_wait Then

Closesocket 0

Elseif Tempw = Sock_closed Then

I = Getsocket(0 , Sock_stream , 80 , 0)

Socketlisten 0

End If

Loop

End

Webpage:

P = Split(s , Test(1) , " ")

Shtml = Test(2)

Return

Kirim_data:
Dim Wsize As Word , Icount As Integer

Dim Data_adc As Word

Dim Adc_teg As Single

Dim Teg As String * 5

Dim Y As Byte , X As Byte

Start Adc

Data_adc = Getadc(0)

Adc_teg = Data_adc / 1023

Adc_teg = Adc_teg * 5

Teg = Fusing(adc_teg , "#.###")

If Shtml = "/test.htm" Then

S = "<html><head><title>Test NM7010A-LF</title></head><body><p><b>Menampilkan Data


Tegangan<br><br></b>Tegangan= " + Teg + " volt" +
"</p><p>&nbsp;</p><p>&nbsp;</p></body></html>"

Cls

Cursor Off

Locate 1 , 1

Lcd "Data Tegangan ="

Locate 2 , 1

Lcd Teg ; " volt"

Wait 1

Else
S = "<html><head><title>Error Loading Page</title></head><Web yang Anda pilih
Salah!!!></body></html>"

Cls

Cursor Off

Locate 1 , 1

Lcd "Web Salah!!!"

Wait 1

End If

Wsize = Len(s)

Tempw = Tcpwrite(0 , S , Wsize)

Shtml = ""

If Adc_teg >= 0 And Adc_teg < 2 Then

Led1 = 1

Led2 = 0

Led3 = 0

Elseif Adc_teg >= 2 And Adc_teg < 3 Then

Led1 = 0

Led2 = 1

Led3 = 0

Elseif Adc_teg >= 3 Then

Led1 = 0

Led2 = 0
Led3 = 1

End If

Return

Program tersebut akan menampilkan data tegangan pada website dengan alamat IP 192.168.1.59 dan
web test.html. Jika NM7010A menerima data string "GET" maka data setelahnya akan ditampilkan pada
website dan LCD 16x2, dan data tersebut adalah data tegangan yang berasal dari potensiometer pada
PortA.0.

Jika nilai tegangan antara 0-2 volt maka Led1 akan menyala, jika nilai tegangan antara 2-3 volt maka
Led2 akan menyala, dan jika nilai tegangan lebih dari 3 volt maka Led3 akan menyala.

Jika alamat web yang dipilih salah maka pada web akan tampil tulisan "Web yang Anda pilih Salah!!!"
dan pada LCD akan tampil tulisan "Web Salah!!!".

Hasil tampilan web dapat dilihat dengan mengetikkan "http://192.168.1.59/test.htm" pada browser,
tampilannya akan tampak seperti ini:
Jangan lupa juga untuk memastikan jaringan telah terhubung dengan baik dengan membuka Command
Prompt (window + R kemudian ketikan cmd) dan ketikkan ping -t 192.168.1.59.

Program lengkapnya dapat didownload disini.

Mau memesan alat untuk aplikasi ethernet?

email: wahyurahmaniar@yahoo.com

You might also like