Mengendalikan Arduino via Aplikasi Web
Tulisan ini adalah seri ekstra dari tulisan sebelumnya tentang bagaimana cara mengeksplorasi menggunakan shield Serial Wifi berbasis ESP8266. Pada sesi kali ini kita akan belajar membuat sebuah sistem client – server yang bisa mengendalikan arduino untuk membuat led berada pada kondisi on dan off. tutorial ini akan cukup panjang dan rumit karena membutuhkan pengatahuan tidak hanya tentang arduino namun juga pemrograman web menggunakan Java. Jadi siap-siap! 😉
Sebelumnya, bagi anda yang belum membaca seri tulisan saya sebelumnya tentang shield wifi ini saya sarankan anda membacanya terlebih dahulu
Saya menggunakan shield wifi berbasis ESP8266 yang seperti berikut.
Jika anda belum memilikinya, saya sarankan anda membelinya di TOKO BEY dengan mengakses halaman pembelian disini. Sedangkan untuk Arduino Uno, anda bisa mendapatkan di halaman pembelian di sini
1. Diagram Sistem
Oke, kita akan mulai dari frame besarnya, dengan diagram sistem yang akan kita buat, kurang lebih adalah sebagai berikut
Notebook 1 dan notebook 2 adalah simbol bahwa kita bisa mengakses halaman web dari komputer mana saja selama terhubung ke jaringan. Pada halaman web pengguna bisa melakukan perintah untuk menyalakan atau mematikan led, perintah ini kemudian dikirimkan ke Web Application Server dimana aplikasi web telah terinstall. Aplikasi web itu telah terhubung dengan socket pada shield wifi arduino dan meneruskan perintah yang didapat
2. Mengatur Shield Wifi
Shield wifi pada sesi kali ini akan saya atur sebagai server dan akan terhubung pada jaringan yang sama dengan Application Server. Sehingga berikut pengaturannya
Perhatikan, pengaturan tersebut mirip dengan pengaturan pada tulisan saya di sesi ke 2. perbedaannya pada Network Setting dimana socket Type saya atur sebagai Server, dengan Port 9000
3. Membuat Program Arduino.
Langkah berikutnya adalah membuat program arduino yang menerima data yang dikirimkan dari client. Kita bisa mendownloadnya di link berikut di github. Setelah itu ekstrak dan buka file arduino_serv/arduino_serv.ino pada Arduino IDE lalu upload ke Arduino Uno. Jangan lupa untuk men-switch dulu shield ke posisi off agar proses upload berhasil.
Berikut program arduino_serv tersebut
Tidak ada yang istimewa dari program ini, hanyalah program serial biasa yang membaca masukan, jika menerima string 1 maka LED di PORT13 menyala, namun jika string 0 yang didapat, maka LED mati.
4. Mempersiapkan Environment Java EE
Dalam tutorial kali ini saya akan membuat aplikasi web sekaligus socket yang terhubung dengan shield wifi menggunakan bahasa pemrogram java. Hal yang diperlukan sebelum memulai adalah, mengatur environment. Untuk IDE saya menggunakan Eclipse IDE for Web Developer, kitabisa mendownloadnya di link berikut. Lebih lanjut tentanng tutorial instalasi Eclipse dan mengatur environment java yang diperlukan, silahkan baca terlebih dahulu tulisan saya sebelumnya
Buka Eclipse IDE yang telah di-install, lalu setup environment Aplication Server menggunakan Apache Tomcat 7.
5. Import Program
Setelah environment selesei diatur, import source code yang telah di-download pada point 3. Pilih menu File > Import > Existing Project into Workspace lalu klik Next. Di jendela dialog selanjutnya, browse pada Select Root Directory dan arahkan pada direktori SimpleWeb lalu Finish
Jika proses import tidak mengalami masalah, anda akan menemui program java di dua kelas dan dua package yang berbeda. Class yang pertama adalah SimpleClient.java yang merupakan program socket client yang pada prinsipnya terhubung dan mengirim pesan ke shield arduino melalui mekanisme client server.
Agar pembahasan ini tidak terlalu melebar, saya tidak akan membahas mengenai dasar pemrograman java dan socket, anda bisa mencari sendiri pembahasan yang lebih mendalam dengan kata kunci Java Socket Programming di Google
Yang perlu diperhatikan disini adalah baris 14, saya menulis secara hardcode alamat IP dari shield WIFI, jadi kita perlu mengubahnya sesuai dengan alamat IP dari shield arduino yang kita gunakan. Lalu bagaimana saya bisa mengetahui alamat IP dari shield wifi tersebut bila settingan IP yang digunakan adalah DHCP?
Ada banyak cara, salah satunya, adalah melakukan scanning dengan menggunakan Advanced IP Scanner yang saya dapatkan di link berikut
Class yang kedua adalah HelloServlet.java yang merupakan program servlet yang menampilkan halaman Java Server Page WEB-INF/HelloJSP.jsp jika dilakukan request GET. Dan melakukan pemrosesan data untuk kemudian meneruskannya ke arduino saat form di submit melalui method doPost() (baris 58-69)
Bagaimana? Cukup mudah bukan? Atau cukup sulit. Jangan segan menggunakan kolom komentar untuk bertanya mengenai kesulitan dari tutorial kita kali ini. 😉
Salam Elektronika
gan untuk kontrol LED menggunakan android gimana caranya?
Jika menggunakan android prinsip kerjanya sama. cuma ada tambahan untuk membuat aplikasi android-nya
Bang, Bisa bagi nomor WA nya. mau tanya2 ini, sekalian mau beli produknya.
untuk koneksi Arduino dengan web aplikasi,
bisa gak web aplikasi mengendalikan arduino dengan jaringan yang berbeda.
Contoh : Laptop kita terhubung ke Wifi A, Arduino dengan wifi B.
0812 6003 6994 bantu share ya Bang.
saya mau belajar koneksi arduino dengan ATS Genset dan mengendalikannya mengunakan Web Application. Trims
coba pakai repeater
gan, ini web nya bisa diakses dari manapun tidak?, misalkan dari smartphone sehingga bisa dikendalikan dari jarak jauh
itu cuma masalah jaringan.. apakah pakai internet atau cuma intranet (lokal)
jd yang contoh agan ini tuh pake internet atau intranet?
gan, ada tutorial shield wfi esp8266 menggunakan php/mysql untuk web servernya
misi gan numpang nanya nih soalnya ane lagi tahap belajar arduino…
bisa gak gan kalau ane buat projek web tanpa aplikasi Eclipse IDE for Web Developer yang agan sebutkan terhubung dengan wifi shield sebagai server kontrol?
misi gan numpang nanya nih soalnya ane lagi tahap belajar arduino…
bisa gak gan kalau ane buat projek web tanpa aplikasi Eclipse IDE for Web Developer yang agan sebutkan terhubung dengan wifi shield sebagai server kontrol?
kalau bisa ane minta pencerahanya gan hehehe