DAFTAR PUSTAKA Adafruit.com. (2016, November). learn.adafruit.com. Retrieved November 28, 2016, from Adafruit.com: https://learn.adafruit.com/pir-passive-infraredproximity-motion-sensor/how-pirs-work Artanto, D. (2012). Interaksi Arduino dan LabView. Jakarta: ELex Media Komputindo. Ashton, K. (2009). That 'Internet of Things' thing. RFID Journal, 1. Banzi, M. (2011). Getting Started with Arduino 2nd Edition. California: O'REILLY. Gourav Garg, D. G. (2016). Controlling Home Appliances in IOT Environment. International Journal of Smart Home, 11-18. LLC, A. (2016, August). Arduino YUN. Retrieved August 2016, from Arduino YUN: https://www.arduino.cc/en/main/arduinoboardyun Padmanabhan, P., & Waissi, G. R. (2016). Cloud-based Home Energy Management (HEM) and Modelling of Consumer Decision. International Journal of Smart Home, 213-232. Team, B. (2016, November 20). Blynk. Retrieved November 2016, from http://blynk.cc: http://blynk.cc 81
82 Team, B. (2016, August). Blynk Library. Retrieved August 2016, from Blynk Library: https://github.com/blynkkk/blynk-library/releases/tag/v0.4.0
LAMPIRAN Sketch Program Internet of Things Gateway menggunakan Arduino YUN. /************************************************************** * Program smarthome iot gateway * Disusun untuk memenuhi tugas akhir kuliah * * NAMA : MASKURI TEGUH BUDIYONO * NIK : 41409120012 * UNIVERSITAS MERCUBUANA * **************************************************************/ #include <Bridge.h> #include <BlynkSimpleYun.h> #include <SimpleTimer.h> #include <DHT.h> #define DHTPIN 2 DHT11 #define DHTTYPE DHT11 // Mendefinisikan pin yang akan digunakan untuk sensor // Mendefinisikan tipe sensor yang digunakan // Auth Token yang didapatkan pada saat memabangun antarmuka di Blynk App. // Lihat di Project Setting. char auth[] = "b554aad7219d4f4f8b6daaae9c6e43af"; int pirpin = 4; int pirstate = LOW; int val = 0; // Deklarasi dan inisialisasi pin untuk sensor PIR // Deklarasi dan inisialisasi kondisi sensor PIR // Deklarasi dan inisialisasi variabel val // Deklarasi dan inisialisasi variabel-variabel untuk simulasi siklus air bersih int jumlahairtorn = 0, batasbawah = 0, batasatas = 250, statuspompa = 0, statuskrandepan = 0, statuskranbelakang = 0; 83
84 WidgetLED pir(v1); WidgetLED WidgetLCD lcd(v2); WidgetLCD // Deklarasi dan registrasi pin virtual V1 sebagai // Deklarasi dan registrasi pin virtual V2 sebagai DHT dht(dhtpin, DHTTYPE); SimpleTimer timer; void sendsensor() float h = dht.readhumidity(); float t = dht.readtemperature(); // gunakan dht.readtemperature(true) untuk skala Fahrenheit if (isnan(h) isnan(t)) Serial.println("Pembacaan sensor gagal!"); return; Blynk.virtualWrite(V5, h); Blynk.virtualWrite(V6, t); void sensorpir() val = digitalread(pirpin); if (val == HIGH) if (pirstate == LOW) pir.on(); pirstate = HIGH; sendwarning(); else if (pirstate == HIGH) pir.off();
85 lcd.clear(); pirstate = LOW; void sendwarning() lcd.clear(); lcd.print(4,0,"ada TAMU"); lcd.print(2,1,"pintu DEPAN"); void isitorn() // Fungsi ini digunakan untuk mengisi air bersih ke torn setiap 1 detik. // dengan kapasitas maksimal 250 liter. if ((jumlahairtorn < batasatas) && (statuspompa == 1)) jumlahairtorn = jumlahairtorn + 5; if (jumlahairtorn <= batasbawah) statuspompa = 1; Blynk.virtualWrite(V13, "POMPA ON"); if (jumlahairtorn >= batasatas) statuspompa = 0; Blynk.virtualWrite(V13, "POMPA OFF"); void siramtaman() if ((statuskrandepan == 1) (statuskranbelakang == 1))
86 jumlahairtorn = jumlahairtorn - statuskrandepan - statuskranbelakang; BLYNK_READ(V10) Blynk.virtualWrite(V10, jumlahairtorn); BLYNK_WRITE(V11) batasatas = param.asint(); BLYNK_WRITE(V12) batasbawah = param.asint(); BLYNK_WRITE(V14) statuskrandepan = param.asint(); BLYNK_WRITE(V15) statuskranbelakang = param.asint(); void setup() Serial.begin(9600); // Memonitor status di Serial Monitor pinmode(pirpin, INPUT); Blynk.begin(auth);
87 dht.begin(); // Melakukan setup fungsi yang akan dipanggil setiap 1 detik timer.setinterval(1000l, sendsensor); timer.setinterval(1000l, sensorpir); timer.setinterval(1000l, isitorn); timer.setinterval(1000l, siramtaman); void loop() Blynk.run(); // Menjalankan Blynk timer.run(); //Menjalankan Timer