TUGAS AKHIR
TUGAS AKHIR
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil karya saya sendiri. Kecuali
beberapa kutipan dan ringkasan yang masing–masing disebutkan sumbernya.
ii
ABSTRAK
iii
ABSTRACT
iv
Puji syukur penulis ucapkan kepada Tuhan Yang Maha Esa atas anugerah
dan kasih-Nya sehingga penulis dapat menyelesaikan penyusunan Tugas Akhir ini
dengan judul Prototype Smart Home Berbasis IoT (Internet of Things).
Halaman
PENGESAHAN TUGAS AKHIR i
ABSTRAK ii
ABSTRACT iii
PENGHARGAAN iv
DAFTAR ISI v
DAFTAR GAMBAR vii
DAFTAR LAMPIRAN viii
BAB 1 PENDAHULUAN
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 2
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 5
DAFTAR PUSTAKA 35
LAMPIRAN 36
vi
vii
viii
faktor utama penggunaan aplikasi android sebagai sarana user interface pada
Prototype.
2. Analisa sistem
Dalam penelitian ini, penulis menganalisa sistem yang digunakan pada
prototype berikut beberapa langkah yang dilakukan :
a. Memperoleh informasi sebanyak-banyaknya akan penggunaan aplikasi,
hardware, dan perangkat yang akan digunakan.
b. Menganalisa akan kelebihan dan kekurangan project smart home.
c. Mengidentifikasi pokok-pokok permasalahan yang akan diselesaikan pada
project tersebut.
4. Pembuatan Program
Pembuatan program dilakukan dengan menggunakan bahasa C untuk
memprogram komponen dengan aplikasi Arduino. Dan bahasa JAVA untuk
merancang aplikasi Android yang digunakan sebagai user interface nantinya.
Pembuatan program dilakukan sesuai dengan pembangunan sistem yang
diusulkan.
BAB 1 : PENDAHULUAN
Bab ini menguraikan tentang latar belakang pembangunan aplikasi,
perumusan masalah, batasan masalah, tujuan penelitian, manfaat
penelitian, metodologi penelitian, hingga sistematika penulisan tugas
akhir ini.
2.1 Komputer
Dalam merancang sebuah sistem informasi, digunakan suatu alat pendukung
yaitu komputer. Bahasa komputer berasal dari bahasa asing yaitu To Compute,
yang berarti hitung. Dengan demikian komputer dapat diartikan sebagai alat
hitung atau mesin hitung. Akan tetapi komputer sangat berbeda dengan kalkulator.
Komputer dan kalkulator memiliki perbedaan yang terletak pada tugas yang
dikerjakan yaitu komputer dapat mengolah data dengan kecepatan tinggi. Selain
itu komputer juga memiliki fungsi yang beragam seperti menyimpan data dalam
memory, memroses data, dan melakukan proses lainnya secara kontiniu dan
otomatis tanpa adanya campur tangan manusia. Seiringnya waktu pengertian
komputer sudah banyak didefenisikan oleh beberapa ahli dan diangkat dalam
beberapa buku seperti sebagai berikut :
1. Komputer adalah sistem elektronik untuk memanipulasi data yang cepat dan
tepat serta dirancang dan diorganisasikan secara otomatis menerima dan
menyimpan data input, memrosesnya dan menghasilkan output dibawah
pengawasan suatu langkah-langkah instruksi program yang tersimpan
didalam memori.
2. Komputer adalah suatu alat elektronik yang mampu melakukan beberapa
tugas seperti menerima input, memroses input sesuai dengan programnya,
menyimpan perintah – perintah dan hasil dari pengolahan, menyediakan
output dalam bentuk informasi.
2. Sistem
Sistem adalah suatu kesatuan yang terdiri dari dua atau lebih komponen atau
subsistem tang berinteraksi satu sama lain dan saling melengkapi untuk
mencapai suatu tujuan.
3. Informasi
Informasi adalah hasil dari pengolahan data yang berfungsi untuk mencapai
suatu tujuan tertentu.
Penyimpanan
Data
Pengolahan
Input Data Informasi
Data
3. File
File merupakan tempat penyimpanan data yang dapat dicari dan digunakan
kembali.
4. Prosedur
Prosedur merupakan komponen fisik karena prosedur disediakan dalam
bentuk fisik seperti buku panduan dan instruksi.
2.3 MIKROKONTROLER
Mikrokontroler adalah suatu chip berupa IC (Integrated Circuit) yang dapat
menerima sinyal input, mengolahnya dan memberikan sinyal output sesuai dengan
program yang diisikan kedalamnya. Sinyal input mikrokontroler berasal dari
sensor yang merupakan informasi dari lingkungan sedangkan sinyal output
ditunjukkan kepada akuator yang dapat memberikan efek ke lingkungan. Jadi
secara sederhana mikrokontroler dapat diibaratkan sebagai otak dari suatu
perangkat yang mampu berinteraksi dengan lingkungan sekitarnya.
input analog, menggunakan crystal 16 MHz antara lain pin A0 - A5, koneksi
USB, jack listrik, header ICSP dan tombol reset. Hal tersebut adalah semua
yang diperlukan untuk mendukung sebuah rangkaian mikrokontroler.
2. NodeMcu V3
NodeMcu pada dasarnya adalah pengembangan dari ESP 8266 dengan
firmware berbasis e-Lua. Pada NodeMcu dilengkapi dengan micro USB port
yang berfungsi untuk pemrograman maupun power supply. Selain itu juga
NodeMcu dilengkapai dengan tombol push button yaitu tombol reset dan
tombol flash. NodeMcu menggunakan bahasa pemrograman Lua yang
merupakan package dari ESP 8266. Lua memiliki logika dan susunan
pemrograman yang sama dengan C hanya berbeda syntax. Selain dengan
bahasa Lua NodeMcu juga support dengan software Arduino IDE dengan
melakukan sedikit perubahan board manager pada Arduino IDE.
Sensor ini merupakan salah salah satu sensor yang sangat kompleks, selain
hasilnya yang cepat dan detail, ukuran sensor ini juga kecil, sehingga bisa dan
mudah diletakkan dimana saja sesuai selera.
2. Power Supply
Power Supply yang digunakan adalah tipe CNKESIN 220V, sudah tidak asing
di dunia industri, bahkan banyak dipakai pada produk alat perusahaan
3. Kipas (Fan)
Penggunaan kipas digunakan sebagai fitur pendingin ruangan, kipas pada
prototype bisa dikontrol secara otomatis oleh perangkat Android, dan memiliki
sistem kerja otomatis apabila suhu ruangan melebihi batas yang sudah
ditentukan
4. Servo
Servo adalah mesin penggerak yang biasa digunakan sebagai acuan penggerak
suatu perangkat. Pada prototype ini servo berfungsi untuk penggerak buka
tutupnya pintu rumah, yang nantinya tersinkronisasi dengan modul RFID
sehingga hanya orang tertentu yang bisa membuka dan menutup pintu rumah.
5. Solenoid Lock
Solenoid Lock adalah alat yang sama fungsinya dengan pengunci otomatis,
layaknya kunci rumah yang biasa digunakan dengan sistem manual, Solenoid
Lock ini bisa diprogram sesuai kebutuhan. Sistem yang digunakan akan
tersinkronisasi dengan modul RFID dan Servo, yang nantinya digunakan pada
fitur penguncian rumah secara otomatis.
Secara umum, sistem yang digunakan pada prototype seperti kontrol fitur
rumah secara manual, juga sistem yang bekerja dengan otomatis, sudah menjadi
kebutuhan umum di era sekarang ini. Melihat masyarakat yang sudah mulai sibuk
dengan padatnya kegiatan keseharian, membuat nilai dari segi kenyamanan dan
keamanan sedikit kurang diperhatikan hal ini yang menjadi salah satu faktor
meningkatnya tindak kecurangan. Kehadiran sistem Smart home ini memberikan
kemudahan dalam mengontrol dan menggunakan fitur-fitur rumah kepada
masyarakat. Sistem Smart home dapat diakses dengan mudah oleh setiap
pengguna. Kemudahan akses tersebut memberikan nilai efektif dn efisien kepada
setiap orang. Sehingga dengan adanya hal tersebut, setiap fitur yang ada didalam
rumah dapat digunakan dengan mudah oleh setiap pengguna. Rancangan
flowchart sistem berjalan ditunjukkan pada Gambar 3.1.
START
Pilih Kebutuhan
Terhadap Informasi
Home
Yes
No
Proses Kebutuhan
About
Yes User
No
Gallery Informasi
Foto Yes Pilihan
No Keluar
End
untuk membuat sistem dengan user interface Android. Logika program analisis
sistem baru ditunjukkan pada Gambar 3.2.
Start
Pilih Kebutuhan
Login Admin
Terhadap Informasi
Home
Yes
Modul Login
No
Proses Kebutuhan
About
Yes Yes User
No
Proses Login
Gallery Informasi
Foto Yes Pilihan
No
Yes
No
Halaman Assembly
Yes Keluar
Kerja Admin
No
Yes
Contact End
Yes
Keluar
No
Location
Yes
No
2. Algoritma
Pada proses ini akan dijelaskan bagaimana perancangan alat pada sistem
yang akan dibangun hingga sistem berjalan sesuai dengan yang diinginkan.
Berikut tahapan pada perancangan alat ;
1. Pembuatan maket
Maket terbuat dari bahan papan dan akrilik sebagai wadah prototype, dimana
akan berbentuk seperti rumah sebagai tempat untuk rangkaian yang akan
dibangun. Bentuk maket dapat dilihat pada Gambar 3.5.
5.1 Kesimpulan
Berdasarkan hasil dari pembahasan analisis, implementasi, dan pengujian
terhadap perangkat dan alat maka dapat ditarik kesimpulan sebagai berikut :
1. Telah dibuat prototype smart home dengan fungsi pengontrol fitur rumah
secara manual berbasis Arduino UNO.
2. Sistem smart home berbasis IoT (Internet Of Things) ini dibangun dengan
menggunakan bahasa pemrograman C untuk hardware programming dan
Java untuk aplikasi pengontrol atau software programming.
3. Sistem berjalan dengan baik sesuai perancangan, tapi sedikit lama pada
saat melakukan perintah kontrol oleh perangkat Android, hal ini
disebabkan karna modul Wifi yang digunakan pada alat bukanlah modul
yang kategori baik, sehingga proses pengiriman perintah sedikit memakan
waktu.
4. Sistem yang dirancang dapat menghasilkan informasi berupa data suhu
ruangan secara real-time dan kondisi terkini perangkat yang dikontrol
melalui perangkat Android, akan tampak informasi ON atau OFF pada
perangkat.
5.2 Saran
Berdasarkan kesimpulan diatas maka dapat diberikan saran – saran yang
penulis usulkan yang berguna nantinya untuk mendukung pengembangan sistem
lebih lanjut adalah sebagai berikut :
1. Sistem smart home ini dapat dikembangkan dengan manambah fitur-fitur
yang bisa dikontrol oleh perangkat Android, terutama di aspek keamanan .
2. Menggunakan suatu sisstem informasi yang dapat dikembangkan lebih
lanjut sehingga dapat memberikan informasi yang lebih lengkap kepada
pemakai.
3. Sistem ini akan lebih efisien jika dipadukan dengan penggunaan perangkat
yang baik, dan mungkin siap untuk cambah industri.
4. Menambah sistem alarm pada prototype agar dapat difungsikan sebagai
fitur emergency atau gawat darurat.
Demikian saran yang dapat penulis berikan, semoga saran tersebut dapat
dijadikan sebagai bahan masukan yang dapat bermanfaat bagi pembaca maupun
dalam pengembangan selanjutnya terhadap sistem informasi ini.
1. Program Arduino
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#include <dht.h>
#include <Servo.h>
#define kesini 4
#define lampu2 2
#define DHT21_PIN 5
#define buzzer 10
#define servo 12
#define selenoid 13
#define lampu1 14
#define kipas 15
dht DHT;
Servo myservo;
int xy = 0;
int xz = 0;
int pos = 0;
int timer = 0;
int LR,LK,SK,SP,yyz;
String cobaini,cobaitu,SLampu1,SLampu2,SKipas,BPintu;
float suhu,kelembapan;
void setup() {
Serial.begin(115200);
pinMode(selenoid, OUTPUT);
pinMode(kipas, OUTPUT);
pinMode(lampu1, OUTPUT);
pinMode(lampu2, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(kesini, INPUT);
digitalWrite(buzzer, LOW);
myservo.attach(servo);
delay(1000);
WiFi.mode(WIFI_OFF);
delay(1000);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("");
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
Serial.println("");
Serial.print("Terhubung ke ");
Serial.println(ssid);
Serial.print("IP address : ");
Serial.println(WiFi.localIP());
server.begin();
}
void NFC(){
int BACA = digitalRead(kesini);
if (BACA == 1){
digitalWrite(buzzer, HIGH);
delay(50);
digitalWrite(buzzer, LOW);
xy = 1;
}
}
void DHTNYA(){
int chk = DHT.read21(DHT21_PIN);
kelembapan = DHT.humidity;
suhu = DHT.temperature;
}
void loop() {
timer++;
NFC();
DHTNYA();
SLampu1 = Lampu_Ruang();
SLampu2 = Lampu_Kamar();
SKipas = KIPAS();
BPintu = PINTU();
Serial.println(SLampu1);
Serial.println(SLampu2);
Serial.println(SKipas);
Serial.println(BPintu);
//Status Pintu
if ((xy == 1 || BPintu == "1")&& xz == 0){
BUKA();
yyz = 1;
}
//Lampu 1
if(SLampu1=="1"){
digitalWrite(lampu1, LOW);
LR = 1;
}
else if(SLampu1=="0"){
digitalWrite(lampu1, HIGH);
LR = 0;
}
//Lampu 2
if(SLampu2=="1"){
digitalWrite(lampu2, LOW);
LK = 1;
}
else if(SLampu2=="0"){
digitalWrite(lampu2, HIGH);
LK = 0;
}
//kipas
if(SKipas=="1"){
digitalWrite(kipas, LOW);
SK = 1;
}
else if(SKipas=="0"){
digitalWrite(kipas, HIGH);
SK = 0;
}
if(timer == 3){
cobaini = Uploadsensor(108100,suhu,kelembapan);
if(cobaini.indexOf("Success")>=0){
timer = 0;
}
}
Serial.println(timer);
cobaitu = Uploadcontrol(108100,LR,yyz,LK,SK);
void BUKA(){
xy = 0;
xz = 1;
digitalWrite(selenoid, LOW);
delay(5000);
for(pos = 121; pos>=1; pos-=1){
myservo.write(pos);
delay(15);
}
}
void TUTUP(){
xy = 0;
xz = 0;
digitalWrite(selenoid, HIGH);
delay(5000);
for(pos = 0; pos < 121; pos +=1){
myservo.write(pos);
delay(15);
}
}
String Lampu_Ruang(){
String Link;
HTTPClient http; //Declare object of class
HTTPClient
Link =
"https://smhsistem.000webhostapp.com/IoT/bacaruang.php?id=10
8100";
delay(50);
http.begin(Link,fingerprint); //Specify request
destination
delay(50);
http.end(); //Close connection
return lampu_A;
}
String Lampu_Kamar(){
String Link;
HTTPClient http; //Declare object of class
HTTPClient
Link =
"https://smhsistem.000webhostapp.com/IoT/bacakamar.php?id=10
8100";
delay(50);
http.begin(Link,fingerprint); //Specify request
destination
delay(50);
http.end(); //Close connection
return lampu_B;
}
String KIPAS(){
String Link;
HTTPClient http; //Declare object of class
HTTPClient
Link =
"https://smhsistem.000webhostapp.com/IoT/bacakipas.php?id=10
8100";
delay(50);
http.begin(Link,fingerprint); //Specify request
destination
delay(50);
http.end(); //Close connection
return kipass;
}
String PINTU(){
String Link;
HTTPClient http; //Declare object of class
HTTPClient
Link =
"https://smhsistem.000webhostapp.com/IoT/bacapintu.php?id=10
8100";
delay(50);
http.begin(Link,fingerprint); //Specify request
destination
delay(50);
http.end(); //Close connection
return Cekrek;
}
delay(50);
http.end();
return payload;
}
delay(50);
http.begin(Link,fingerprint); //Specify request
destination
delay(50);
http.end();
return payload;
}