Anda di halaman 1dari 20

Tutorial

Web Service IoT


dengan Golang
Apa itu Web Service?
Web service adalah sebuah aplikasi berbasis client-server
yang berfungsi sebagai media pertukaran data antara aplikasi satu
dengan aplikasi lainnya melalui suatu jaringan.

• Web Service menggunakan model Client-Server


• Web Service dapat melakukan pertukaran data pada perangkat yang berbeda
• Web Service dapat melakukan pertukaran data pada bahasa pemrograman yang
berbeda
• Web Service dapat mengirim data dalam ukuran kecil maupun besar
• Implementasi web service cukup mudah.
REST Web Service
REST (REpresentational State Transfer) Web service adalah Web
Service yang menggunakan protokol HTTP/HTTPS (Hypertext Transfer
Protocol) untuk melakukan komunikasi data.

• REST menggunakan HTTP/HTTPS


• REST mudah diimplementasikan
• Pada REST setiap data disebut dengan
Resource.
• Menggunakan API
(Application Programming
Interface) untuk
menggunakan servis.
Metode HTTP
HTTP/HTTPS memiliki 4 metode dengan fungsi
yang berbeda satu metode dengan metode lainnya.

4 metode HTTP/HTTPS:
• GET, untuk meminta resource. Resource bersifat read-only.

• POST, untuk membuat/memasukkan resource baru.

• PUT, untuk megubah memperbaharui resource yang sudah ada.

• DELETE, untuk menghapus resource.


A.P.I
API (application programming interface) pada web service digunakan untuk
mengidentifikasi atau mengakses suatu resource

Struktur API:
• Base URI (Uniform Resource Identifier) digunakan untuk mengidentifikasi sumber data. Contoh URI
seperti: http://api.example.com.

• Resource modelling, Resource modelling ditandakan dengan tanda slash / pada URI seperti:
http://api.example.com/resourceModelling.

• Query Design (Parameter), dilambangkan dengan ?. Bertujuan untuk memberikan parameter untuk
mengakses resource yang unik seperti: http://api.example.com/resourceModelling?parameter=1.
Implementasi Web Service

Menggunakan Web Service untuk mengirim hasil pembacaan sensor LDR


dan memberikan perintah untuk menyalakan dan mematikan
lampu LED dengan mikrokontroler ESP32/8266.

• Menggunakan Jaringan lokal.


• Server dipasang pada perangkat dengan sistem operasi windows 10.
• ESP32/8266 berperan sebagai Client.
• Membuat halaman web untuk menampilkan intensitas cahaya.
• Membuat halaman web untuk mengendalikan lampu LED.
Implementasi Web Service

Web Service Flow

Database

Nilai Sensor Nilai Sensor


ESP32
/8266 Server
Command Command
Implementasi
Web Service
Langkah-Langkah imlementasi Web Service:

• Pembuatan Database
• Pemrograman Server Side menggunakan bahasa GO.
• Pemrograman Client Side (Halaman web) menggunakan php dan HTML.
• Rangkaian alat (ESP32/8266)
• Pemrograman Client Side (ESP32/8266) menggunakan bahasa C.
• Uji coba Web Server
Membuat Database
Berikut Langkah-Langkah mengolah database:

• Install aplikasi XAMPP


 Download XAMPP pada link https://www.apachefriends.org/download.html
 Install XAMPP
• Jalankan Apache dan MySQL pada XAMPP
• Buka menu phpMyAdmin melalui XAMPP
Buatlah database dengan ketentuan sebagai berikut:
• Nama database: db_webservice
• Tabel 1: tb_command
– Field 1: id (Integer, Primary Key)
– Field 2: command (Varchar)
• Tabel 2: tb_sensor
– Field 1: id (Integer, Primary Key)
– Field 2: nilai (Integer)
Pemrograman
Server side
Pemrograman server side berfungsi untuk menyediakan servis bagi klien.
• Membuat servis untuk memasukkan hasil pembacaan sensor LDR kedalam database.
• Membuat servis untuk mengambil nilai sensor dari database.
• Membuat servis untuk memasukkan perintah mengendalikan LED.
• Membuat servis untuk mengambil perintah mengendalikan LED.

Langkah-Langkah pemrograman server side


• Install Golang, https://golang.org/
• Install Git, https://git-scm.com/downloads
• Install driver MySQL dengan go get github.com/go-sql-driver/mysql
• Install HTTP Router Gorilla Mux dengan go get -u github.com/gorilla/mux
• Buat dan jalankan program
Pemrograman
Server side (Servis ) 1

Membuat servis untuk memasukkan hasil pembacaan sensor LDR kedalam database.
• Metode HTTP = POST
• Resource Modelling = /esp_sensor
Membuat servis untuk mengambil nilai sensor dari database.
• Metode HTTP = GET
• Resource Modelling = /web_sensor
Membuat servis untuk memasukkan perintah mengendalikan LED.
• Metode HTTP = POST
• Resource Modelling = /web_command
Membuat servis untuk mengambil perintah mengendalikan LED.
• Metode HTTP = GET
• Resource Modelling = /esp_command
Pemrograman
Client Side (Web)
Pemrograman client side (Halaman web) berfungsi untuk membuat halaman web. Pada halaman
web terdapat:
• Judul Halaman Web
• Intensitas Cahaya yang didapatkan dari database
• 2 tombol untuk menyalakan dan mematikan LED
Langkah-Langkah pemrograman client side (Halaman
web)
• Membuat file php yang berisi kode untuk membuat halaman web
• Kode untuk mendapatkan intensitas cahaya dari database
• Kode untuk mengirimkan perintah mengendalikan LED ke database

Catatan: menggunakan php, html


Rangkaian Alat
(ESP32)
Perangkat yang digunakan:

• ESP32
• Sensor LDR
• LED
• Resistor
• Kabel Jumper
Pemrograman Client Side (ESP32/8266)

Pemrograman client side (ESP32/8266) berfungsi untuk mengirimkan intensitas cahaya ke


database yang didapatkan dari sensor LDR dan juga mengendalikan LED berdasarkan perintah
yang terdapat pada database.
• Mengirim intensitas cahaya setiap kurang lebih 5 detik sekali.
• Mengambil command dari database setiap 1 detik sekali
• Mengendalikan LED berdasarkan command yang didapatkan dari database.

Langkah-Langkah pemrograman client side (ESP32/8266)


• Buka Arduino IDE
• Membuat file ino
• Upload kode ke ESP32/8266
Uji Coba
Web Service

• Lihat hasil pembacaan sensor LDR pada halaman web.

• Kendalikan lampu LED melalui halaman web.


Terima Kasih

Anda mungkin juga menyukai