Oleh :
Dosen Pembimbing :
Ir.Arnita M.T
2020
KATA PENGANTAR
Segala puji dan syukur penulis ucapkan ke hadirat Allah SWT, yang telah melimpahkan
rahmat dan karunia-Nya kepada penulis sehingga dapat menyelesaikan laporan Iot (Internet of
Thing) di mata kuliah Iot.
Adapun tujuan penyusun laporan ini adalah sebagai tugas dari hasil percobaan dan penilitian
yang dilakukan pada pembuatan kontrol lampu via intenet, yang diadakan pada semester ganjil
periode 2019/2020.
Berhubung dengan selesainya percobaan dan presentasi yang telah dilakukan. Dimana
laporan ini akan memperkuat hasil dari percobaan dan juga sebagai penunjang analisa data secara
teori yang telah di praktekan. Sehingga akan di dapatkan perbandingan antara teori dan praktek.
Dan penulis tidak lupa mengucapkan terima kasih kepada pihak - pihak yang telah
membantu dalam praktikum ini. Diantaranya adalah :
Akhirnya Penulis berharap laporan ini berguna untuk penulis khususnya dan untuk pembaca
umumnya.
Penulis
BAB I
PENDAHULUAN
Kemajuan teknologi yang terus berkembang dengan pesat hingga saat ini membuat para
perusahaan yang menyediakan berbagai macam program untuk membantu mengemmbangkan
produk berbasis Internet of Things. Internet of Things (IoT)merupakan sebuah istilah yang
belakangan ini mulai ramai ditemui namun masih sedikit yang mengerti arti dari istilah ini. Secara
umum Internet of Things dapat diartikan sebagai benda-benda di sekitar kita yang dapat
berkomunikasi antara satu sama lain melalui jaringan internet.
Melalui internet, kita bisa mencari uang hanya dengan duduk di depan komputer atau
laptop. Internet menyediakan tempat tak terbatas bagi para perusahaan untuk membuka bisnisnya
tanpa memiliki sebuah kantor. Nantinya internet akan menjadi penghubung utama dalam interaksi
sedangkan manusia hanya sebagai pengatur dan pengawas perangkat ini.
Internet of Things memiliki konsep yang bertujuan untuk memperluas manfaat yang
tersambung dalam koneksi internet secara terus menerus. Sebagai contoh benda elektronik, bahan
pangan dan termasuk benda hidup dan masih banyak lagi. Benda tersebut dapat ditanamkan sensor
yang dibuat selalu aktif dan terhubung secara luas, baik dengan jaringan lokal maupun dengan
jaringan global.
1.2 Tujuan
Banyak manfaat yang didapat dari Internet of Things, yang tujuannya untuk membuat
pekerjaan yang kita lakukan menjadi cepat, mudah, dan efisien. Salah satu contoh manfaat dari
Internet of Things ini pada sebuah mobil yang telah built-in sensor untuk memperingatkan
pengemudi ketika tekanan ban rendah atau kondisi mesin, yang dilengkapi kemampuan untuk
mentransfer data melalui jaringan internet.
Dengan adanya teknologi Internet of Things ini memang akan memberikan pendapat pro
dan kontra dari berbagai sudut pandang orang di dunia. Namun Internet of Things menawarkan
potensi yang menarik seperti perangkat rumah yang dapat dikendalikan lewat ponsel pintar dari
jarak jauh dan memberitahukan kondisi yang sedang terjadi di rumah.
Internet of Things menghubungkan tempat-tempat baru – seperti lantai manufaktur, grid
energi, fasilitas kesehatan, dan sistem-transportasi Internet. Ketika sebuah benda dapat mewakili
dirinya sendiri secara digital, dapat dikontrol dari mana saja. Konektivitas ini berarti lebih banyak
data, yang dikumpulkan dari lebih banyak tempat, dengan lebih banyak cara untuk meningkatkan
efisiensi dan meningkatkan keselamatan dan keamanan.
PEMBAHASAN
Bill Gates pernah membayangkan, internet akan menjadi sebuah pusat keramaian di tengah
kota global masa depan. Di pusat keramaian ini, orang-orang dari seluruh penjuru dunia akan
berinteraksi, bersosialisasi, juga berbisnis. Persis seperti masyarakat tradisional yang melakukan jual
beli di pasar. Di dunia ini telah diperkenalkan teknologi maupun perangkat IOT yang dikembangkan
oleh berbagai vendor seperti Intel, Microsoft, Samsung, dan masih banyak lagi. Dengan teknologi ini
semuanya dapat terlaksana dengan baik hanya dengan menggunakan jaringan internet. Nantinya
internet yang akan menjadi penghubung utama dalam interaksi benda yang sedang terhubung dan
manusia hanya berperan sebagai pengatur serta pengawas perangkat Internet Of Things secara
langsung. Dengan adanya teknologi IoT ini memang akan memberikan pendapat pro dan kontra dari
berbagai sudut pandang orang di dunia. Namun IoT menawarkan potensi yang menarik seperti
perangkat rumah yang dapat di kendalikan lewat ponsel pintar dari jarak jauh dan memberitahukan
kondisi yang sedang terjadi di rumah.
Internet of Things, atau dikenal juga dengan singkatan IoT, merupakan sebuah konsep yang
bertujuan untuk memperluas manfaat dari konektivitas internet yang tersambung secara terus-
menerus. Adapun kemampuan seperti berbagi data, remote control, dan sebagainya, termasuk juga
pada benda di dunia nyata. Contohnya bahan pangan, elektronik, koleksi, peralatan apa saja,
termasuk benda hidup yang semuanya tersambung ke jaringan lokal dan global melalui sensor yang
tertanam dan selalu aktif. Pada dasarnya, Internet of Things mengacu pada benda yang dapat
diidentifikasikan secara unik sebagai representasi virtual dalam struktur berbasis Internet. Istilah
Internet of Things awalnya disarankan oleh Kevin Ashton pada tahun 1999 dan mulai terkenal
melalui Auto-ID Center di MIT.
Agnosthings adalah sebuah platform yang membantu developer membangun solusi IOT end-
to-end, termasuk aplikasi yang terhubung, dan produk-produk cerdas. Platform ini mengurangi
beban pengembangan produk IoT dan tentu saja juga mengurangi biaya, risiko, dan yang paling
penting, deliverability. Agnosthings memfasilitasi pertukaran data antara perangkat yang terhubung,
IoT Cloud, analisis data dan visualisasi, serta komponen ekosistem lainnya.
a. Set Lampu
lampu pijar adalah sumber cahaya buatan dalam kelistrikan yang dihasilkan dari penyaluran
arus listrik melalui filamen yang memanas sehingga mampu menghasilkan cahaya.Lampu pijar
mempunyai banyak manfaat karena digunakan sebagai sumber cahaya dimalam hari. Terlebih lagi
pemanfaatannya pada kendaraan bermotor juga sangat membantu manusia ketika berjalan dimalam
hari.
b. Wemos D1 Mini
Board ini adalah board wifi kecil berbasis ESP8266. NodeMCU ESP-12 ini adalah platform
yang bekerja secara open source. NodeMCU ini diciptakan lama setelah ESP8266 keluar. Pada
tanggal 30 Desember 2013, Espressif Systems mulai memroduksi ESP8266 tersebut. ESP8266 adalah
SoC Wi-Fi terintegrasi dengan sebuah inti Tensilica Xtensa LX106 yang banyak gunakan di dalam
aplikasi IOT. NodeMCU mulai diciptakan pada 13 Oktober 2014, ketika Hong berkomitmen produksi
pertama dari NodeMCU –firmware untuk GibHub. Dua bulan kemudian, proyek NodeMCU di perluas
agar dapat mecakup sebuah platform di hardware. Pada saat pengembangan Hong berkomitmen
untuk menjadikan ESP-12 sebagai gerber file dari board ESP8266, yang dinamakan devkit v0.9. Pada
saat bulan itu juga, Tuan PM ported MQTT klien dari Contiki ke platform ESP8266 SoC, ingin
membuat proyek dengan NodeMCU, agar mampu mendukung protocol MQTT IOT, menggunakan
LUA untuk mengakses MTQQ broker. Pada 30 Januari 2015 program ini di perbarui yang
memungkinkan NodeMCU dapat di baca secara mudah oleh VGA yang dapat di tampilkan LCD,
monitor dan OLED. Ada banyak varian prototype board berbasis ESP8266, seperti
NodeMCU, Adafruit HUZZAH ESP8266, ESPDuino, SparkFun ESP8266 Thing, dan Wemos.
c. Relay module
Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen
Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni Elektromagnet (Coil)
dan Mekanikal (seperangkat Kontak Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik
untuk menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil (low power) dapat
menghantarkan listrik yang bertegangan lebih tinggi. Sebagai contoh, dengan Relay yang
menggunakan Elektromagnet 5V dan 50 mA mampu menggerakan Armature Relay (yang berfungsi
sebagai saklarnya) untuk menghantarkan listrik 220V 2A.
d. Breadboard
Breadboard atau sering juga disebut project board adalah sejenis papan rangkaian yang
umum digunakan untuk mencoba sebuah rangkaian elektronika, sebelum rangkaian elektronika
tersebut dicetak pada papan rangkaian tercetak (PCB).
e. Kabel Jumper
Suatu Istilah kabel yang berdiameter kecil yang di dalam dunia elektronika digunakan untuk
menghubungkan 2 titik atau lebih dan juga dapat menghubungkan beberapa komponen.
Dari identifikasi permasalahan diatas maka dibuatlah model menyalakan lampu melalui
internet menggunakan basis Agnosthings yang mana dapat melakukan sebuah swict lampu rumah
melalui internet asalkan komputer dan ESP8266 saling terhubung dengan internet.
1. PERANCANGAN
Jalankan Arduino IDE
Pilih menu File > Preferences
Pada kolom "Additional Boards Manager URLs", isikan tautan berikut:
http://arduino.esp8266.com/stable/package_esp8266com_index.json Jika kolom
Boards Manager sudah ada isinya sebelumnya, pisahkan dengan koma.
Pilih menu Tools > Board: > Boards Manager..., akan muncul jendela Boards Manager.
Pilih "esp8266 by ESP8266 Community" lalu klik tombol install di sebelah kanan
bawahnya.
2. Via Git
B. Merangkai Alat
Rangkai semua perangkat menjadi seperti bagan berikut:Perhatian: karena rancangan ini
bermain dengan listrik AC bertegangan tinggi, maka pastikan memasang kabel ke steker dan
dudukan lampu dengan rapi, dan masukkan kedua ujung Kabel ke relay dengan rapi agar tidak
tersentuh saat arus tertutup. Pada umumnya ada 3 port pada relay, yang diberi simbol C, NC dan
NO. C singkatan dari Common Connection, NC singkatan dari Normally Closed dan NO singkatan dari
Normally Opened. Jadi bila menghubungkan kedua ujung kabel ke C dan NC, maka rangkaian listrik
akan tertutup pada awalnya, dan bila dihubungkan ke C dan NO, maka rangkaian listrik akan terbuka.
Gunakan C dan NO agar lampu tidak menyala saat pertama kali listrik dihubungkan.
Gambar 3.1 rangkaian awal AgnosThings dan ESP8266
3. Setelah masuk ke Dashboard, buat project baru dengan cara klik Start Initial Project
4. Pada Device Registration Form, isilah sebagaimana gambar berikut. Untuk kali ini kita
gunakan contoh untuk device Intel Galileo. Setelah form terisi, klik Register Device
Sekarang kita akan membuat project di AgnosThings. Project yang kita buat akan
menyimpan data yang kita simpan untuk kebutuhan proyek IoT kita. Pilih menu untuk membuat
Project/Channel baru. Kamu akan diarahkan ke halaman form untuk membuat project. Isi setiap field
form seperti pada gambar di bawah ini. Bagian paling penting adalah kolom Field(s). Kolom ini berisi
field apa saja yang akan disimpan datanya. Karena tutorial kita hanya memerlukan pengecekan satu
nilai saja --lampu menyala atau mati, maka kita hanya akan mengisi kolom ini dengan satu field
bernama 'switch'.Daftar project/channel dapat diakses melalui menu Channel List. Setiap
project/channel akan memiliki setidaknya tiga halaman fitur yang bisa diamati: Info, Raw Data dan
Chart. Halaman Info berisi informasi seputar project kita beserta daftar API yang dapat kita gunakan
untuk menyimpan dan mengambil data dari server. Halaman Raw Data menampilkan tabel berisi
data yang sudah tersimpan di server. Halaman Chart menampilkan grafik data yang sudah tersimpan
di server dari mulai data pertama hingga data terakhir yang masuk.
Gambar 3.8 Menu Projek
Setiap project memiliki ID dan GUID yang akan digunakan pada API.Coba masuk ke halaman
Info dan perhatikan bagian Channel API. Salin URL API yang berlabel 'Sending data to channel' dan
panggil pada browser lain. Atau Kamu dapat menggunakan aplikasi seperti Postman untuk
memanggil API tersebut. Kamu dapat mengganti tag {value} pada URL API dengan nilai yang ingin
disimpan. Karena kita hanya akan menyalakan dan mematikan lampu, maka kita hanya perlu
menyimpan nilai 0 dan 1.Kamu dapat mengecek data yang sudah masuk pada halaman Raw Data
dan Chart.
D. Input Kode
Jika sudah mendapatkan API untuk mengambil data dari server AgnosThings. Sekarang kita
akan gunakan pada program ESP8266.Buka Arduino IDE dan hubungkan board Wemos D1 Mini ke
komputer menggunakan kabel MicroUSB.
Pada menu Tools > Board:, pilih WeMos D1 R2 & mini. Set CPU Frequency ke 80MHz. Pilih
Flash Size ke 4M (1M SPIFFS). Pilih Upload Speed ke 115200. Terakhir set Port ke port USB dimana
WeMos terhubung.
Setelah itu tuliskan kode program berikut:
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
ESP8266WiFiMulti WiFiMulti;
void setup()
{
Serial.begin(115200);
// set Wifi SSID dan passwordnya
WiFiMulti.addAP("SSID", "Password");
}
void loop()
{
// tunggu koneksi Wifi
if((WiFiMulti.run() == WL_CONNECTED))
{
HTTPClient http;
// ganti dengan URL API Last Feed punyamu sendiri
http.begin("http://agnosthings.com/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/field/last/feed/xx/switch");
// mulai koneksi dan ambil HTTP Header
int httpCode = http.GET();
// httpCode akan bernilai negatif bila error
if(httpCode > 0)
{
// cetak httpCode ke Serial
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
Penjelasan :
Gunakan dua library milik ESP8266, yakni ESP8266WiFiMulti untuk terkoneksi dengan
jaringan WiFi, dan ESP8266HTTPClient untuk mengakses halaman HTTP. Pada fungi setup(), set
parameter addApp() dengan SSID dan password jaringan WiFi yang ingin digunakan untuk
terhubung ke Internet. Pada fungsi loop(), set parameter fungsi http.begin() dengan URL API project
AgnosThings Kamu. API yang digunakan adalah API untuk mengambil data terakhir (last feed).
Apabila koneksi berhasil dan server mengirimkan respon, respon server akan di ambil dengan fungsi
http.getString(). Value dari respon ini adalah string json dari value terakhir. Di akhir program, kita
memanggil fungsi delay(5000) agar program mengulang memanggil API setelah jeda 5 detik. Kamu
dapat mengeset waktu tunggu ini lebih cepat atau lebih lambat tergantung kebutuhan nantinya.
Upload kode program Kamu kemudian setelah proses upload selesai, buka jendela Serial
Monitor melalui menu Tools > Serial Monitor. Bila programmu benar, mestinya WeMos akan
mencetak data seperti pada gambar berikut:
Sembari program jalan dan terus mengecek API setiap 5 detik, coba Kamu
perbaharui valuenya menggunakan API untuk mengirim data. Ubah value switch dari 1 menjadi 0,
kemudian update lagi menjadi 1, dan mestinya data terakhir yang diterima oleh program kita pun
berubah sesuai dengan data terakhir yang sudah kita update ke server.
Kita sudah bisa memanggil data switch kita dari server AgnosThings. Sampai sini kita masih
belum bisa menyalakan dan mematikan lampu. Kita hanya perlu menambahkan pengecekan value
jsonnya. Bila valuenya {"value":"1","code":200} maka kita nyalakan lampu dan bila valuenya
{"value":"0","code":200} kita matikan lampu.
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
ESP8266WiFiMulti WiFiMulti;
// set variabel pin untuk lampu
int lamp = LED_BUILTIN;
void setup()
{
Serial.begin(115200);
// set Wifi SSID dan passwordnya
WiFiMulti.addAP("SSID", "Password");
// set pin mode ke output
pinMode(lamp, OUTPUT);
}
void loop()
{
// tunggu koneksi Wifi
if((WiFiMulti.run() == WL_CONNECTED))
{
HTTPClient http;
// ganti dengan URL API Last Feed punyamu sendiri
http.begin("http://agnosthings.com/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/field/last/feed/xx/switch");
// mulai koneksi dan ambil HTTP Header
int httpCode = http.GET();
// httpCode akan bernilai negatif bila error
if(httpCode > 0)
{
// cetak httpCode ke Serial
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
// bila nilai dari server diterima
if(httpCode == HTTP_CODE_OK)
{
// cetak string json dari server
String json = http.getString();
Serial.println(json);
// cek value json
if(json == "{\"value\":\"1\",\"code\":200}"){
// set ke LOW untuk menyalakan
digitalWrite(lamp, LOW);
} else {
// set ke HIGH untuk mematikan
digitalWrite(lamp, HIGH);
}
}
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
// tutup koneksi HTTP
http.end();
}
delay(5000);
}
Sebelum fungsi setup(), kita deklarasikan variable integer lamp untuk menyimpan nomor
pin yang akan kita gunakan untuk menyalakan dan mematikan lampu. Saya set variabel ini dengan
LED_BUILTIN yakni nomor pin LED yang ada pada onboard ESP8266 agar kita mudah dalam proses
pengecekan. Bila program sudah berfungsi dengan baik, maka kita bisa kemudian mengubah nilai
variabel ini menjadi D1 seperti pada bagan rangkaian pada step 4. Pada fungsi setup() kita set pin
mode untuk variabel lamp ke mode OUTPUT. dan pada fungsi loop(), setelah kode
Serial.println(json);, kita menambahkan kode untuk mengecek nilai json yang nantinya digunakan
untuk mengeset nilai digital pin lamp.
Upload program dan tes dengan mengupdate nilai switch menggunakan API update value.
Bila Kamu set value ke 1 dan LED menyala, begitu juga bila value diset ke 0 dan LED mati, berarti
program selesai.
F. Langkah Terakhir
Pastikan rangkaian lampu sudah terhubung dengan relay dan pin D1 pada WeMos
terhubung ke pin input signal relay. Kemudian update baris kode int lamp = LED_BUILTIN; menjadi
int lamp = D1;. Kemudian Upload lagi programmmu. Apakah lampu besarmu menyala dan mati
sesuai harapan atau tidak.
PENUTUP
4.1 KESIMPULAN
Menyalakan dan Mematikan Lampu Via Internet Menggunakan AgnosThings dan ESP8266
dalam pembuatannya menggunakan Arduino sebagai koding, modul wifi ESP8266 sebagai output
jarak jauh berupa wifi yang dapat di akses oleh smartphone dengan menggunakan IP Address, Relay
Modul sebagai proses sehingga seperangkat Kontak relay modul ini menjadi sebuah Saklar/Switch,
dan Lampu sebagai output yang dapat mengeluarkan cahaya. Dengan menggunakan alat untuk
menyalakan dan mematikan lampu via Internet menggunakan AgnosThings dan ESP8266 ini lebih
modern untuk saat ini melakukan swict lampu dari jarak jauh menggunakan modul wifi.
Model Swict dari jarak jauh ini menggunakan metode Loop terbuka karena di dalamnya
tidak ada feedback dalam pemrosesannya. Namun Alat ini belum begitu sempurna karena masih
banyak kesalahan dan yang harus di perbaiki. Setidaknya alat ini bisa berjalan dengan yang di
inginkan.
Pertanyaan :
1. Apakah pada peralatan yang dibuat bisa ditambah opsi set lampu dan apa yang berubah ?
(Reza Marzuki Putra)
2. Apakah peralatan tersebut bisa diterapkan di system 3 fasa?(Novia Latifania)
3. Apakah peralatan tersebut perlu menggunakan Arduino?
Jawaban :
1. Bisa ditambah set lampu, dan yang berubah adalah pada input relay dan penambahan
button atau tombol saklar yang digunakan pada aplikasi.
2. Dengan perlatan yang kami gunakan, maka tidak bisa dipakai pada keadaan system 3 fasa.
3. Arduino disini hanya kami gunakan untuk mengambil sumber tegangan 5 V nya saja, karna
relay mengalami masalah atau tidak bekerja maksimal pada 3 V NodeMCU.
DAFTAR PUSTAKA
1. https://www.codepolitan.com/
2. https://www.academia.edu/
3. https://en.wikipedia.org/
4. https://teknikelektronika.com/