Halo bro dan sis, ketemu lagi dengan ane di hari Jumat Barokah di Bulan Suci Ramadhan ini.
Seperti biasanya, Apa kabar kalian? semoga saja masih diberi nikmat untuk menjalani hidup.
Dikesempatan malam ini, kita mencoba menggunakan Arduino dan Ethernet shield untuk membaca status terakhir Button pada pin Arduino. Dan kita akan membaca pin digital input arduino melalui webserver. Oh iya FYI, Pada artikel sebelumnya yang sudah saya publish di awal bulan Juni ini kita juga telah mencoba membaca input pin Arduino, yaitu pin Analog input.
Tidak berbeda jauh dengan artikel sebelumnya, di artikel ini kita juga akan membaca pin input arduino, yaitu pin digital input. Hasil pembacaan status terakhir button akan ditampilkan pada web browser dengan mengakses IP adress yang sudah kita tentukan sebelumnya pada sketch.
Alat dan Bahan yang dibutuhkan :
1x Arduino UNO
1x Ethernet Shield
1x Tacticle Switch (Button)
1x Resistor 10K Ohm
Kabel jumper secukupnya
Breadboard (Project Board)
Langkah - Langkahnya :
1.) Pertama, susunlah rangkaian seperti gambar dibawah ini
Keterangan Konfigurasi Kabel :
Tancapkan Ethernet Shield pada Board Arduino
Hubungkan Pin 5V Arduino pada salah satu kaki Button
Hubungkan Pin GND Arduino pada salah satu kaki Button
Hubungkan Pin 3 Arduino pada salah satu kaki Button
2.) Setelah itu kita lihat Daftar client DHCP, dan kita lihat IP Adress Ethernet Shield (Wiznet)
(Atau bisa juga dengan upload sketch example DhcpAddressPrinter)
3.) Setelah itu kita ubah sketch pada baris berikut ini, dan sesuaikan dengan IP Adress anda
4.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
5.) Download dan Install program Arduino IDE di Arduino.cc( If Needed )
6.) Setelah itu, jalankan program Arduino-nya. 7.) Klik menu "Tools -> Board -> Arduino Uno"
8.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
9.) Lalu masukan Sketch dibawah ini.
Klik LIHAT DONG untuk melihat sketch
#include<SPI.h>#include<Ethernet.h>bytemac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED};IPAddressip(192,168,0,102);// Ubah dan sesuaikan IP AdressEthernetServerserver(80);//Buat server pada port 80voidsetup(){Ethernet.begin(mac,ip);server.begin();pinMode(3,INPUT);//Set Pin 3 sebagai input}voidloop(){//Mencoba mendapatkan clientEthernetClientclient=server.available();if(client){// Dapat client?booleancurrentLineIsBlank=true;while(client.connected()){// Data client tersedia untuk dibacaif(client.available()){// Baca 1 byte (karakter) dari client charc=client.read();if(c=='\n'&¤tLineIsBlank){//Kirim sebuah standard http response headerclient.println("HTTP/1.1 200 OK");client.println("Content-Type: text/html");client.println("Connnection: close");client.println();client.println("<!DOCTYPE html>");client.println("<html>");client.println("<head>");client.println("<title>Baca Digital Input</title>");client.println("<meta http-equiv=\"refresh\" content=\"1\">");client.println("</head>");client.println("<body>");dapatkanStatusButton(client);client.println("</body>");client.println("</html>");break;}// Setiap baris yang di terima, diakhiri dengan "enter"if(c=='\n'){currentLineIsBlank=true;}elseif(c!='\r'){// Sebuah text karakter telah diterimacurrentLineIsBlank=false;}}}delay(1);client.stop();// Tutup koneksi}}voiddapatkanStatusButton(EthernetClientcl){if(digitalRead(3)){cl.println("<h1>Button lagi di pencet gan!</h1>");}else{cl.println("<h1>Button tidak di pencet bray!</h1>");}}
#Membaca Status Terakhir Button pada Halaman Web
Dengan menggunakan fungsi dapatkanStatusButton() kita akan mendapatkan status yang akan ditampilkan pada webpage. Dalam fungsi dapatkanStatusButton() akan membaca hasil switch. Teks yang ditampilkan pada browser akan menjadi paragraf HTML yang berisi tulisan "Button lagi di pencet gan!" atau "Button tidak dipencet bray!", tergantung dari keadaan terakhir switch.
#Reload Halaman Web tiap 1 (Satu) Detik
Sebuah garis HTML di <head> pada bagian dari halaman HTML dikirim ke browser dan digunakan untuk memberitahu browser agar me-reload (refresh) halaman web tiap detik. Hal ini digunakan agar kita dapat mengetahui status terbaru button jika sudah berubah.
Angka 1 pada bagian itu yang akan memberi tau browser untuk me-reload webpage tiap 1 detik.
Sama seperti pada tutorial Sebelumnya yang berjudul "Menghubungkan dan Mencoba Arduino Ethernet Shield" pada tutorial itu halaman web akan me-reload (refresh) otomatis setiap 5 detik.
Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.
Bang, saya mau tanya nih, cek email ya. Suwun hehe
ReplyDeleteSalam kenal. Oke.
Deletebang kalau Enthernet Shield nya diganti ESP8266-01 bisa gak? mohon tutorialnya, thanks
ReplyDeleteBisa... Silahkan dibuat :)
Delete