3. Data Reading: Setelah sinyal respon dikirim, selanjutnya DHT-11 akan mengirimkan data pembacaan sensor
2.8 Arduino Base Shield
Modul pengembangan Arduino menggunakan teknik stacking (penumpukan) untuk menambahkan modul-modul tambahan yang belum disertakan pada modul dasarnya. Modul tambahan ini diberi istilah shield. Setiap shield biasanya memiliki fungsi khusus, seperti : GPS shield untuk menerima data posisi dari satelit GPS, Bluetooth shield untuk komunikasi nirkabel menggunakan Bluetooth, dan juga berbagai macam shield lainnya.
Dalam tugas akhir ini, Base Shield v2 dari Seeedstudio akan digunakan sebagai modul tambahan untuk mempermudah koneksi antarmuka dengan berbagai macam modul, baik modul sensor maupun aktuator.
Gambar 15 Base Shield v2 IO Expansion modul
Seeedstudio memberi nama untuk setiap modul yang didesainnya dengan nama Grove. Setiap konektor Grove terdiri dari 4 kabel; 1 Vcc, 1 Gnd, dan lainnya data. Base Shield V2 memiliki 16 konektor Grove yang terdiri dari :
Tabel 1 Daftar port Base Shield v2
Spesifikasi Nama Jumlah
Port Analog A0,A1,A2,A3 4
Port Digital D2,D3,D4,D5,D6,D7,D8 7
Port UART UART 1
2.9 Blynk
Smart home berbasis internet of things memiliki potensi untuk memperbaiki pola manajemen dalam penggunaan energi pada rumah tinggal. Hal ini dapat dicapai melalui sebuah sistem yang bisa mencatat pola penggunaan piranti dan manajemen penjadwalan operasi. Sistem yang memungkinkan ini bekerja mesti berbasis cloud (Padmanabhan & Waissi, 2016). Blynk menyediakan platform cloud yang diperlukan.
Bermula dari sebuah kampanye pendanaan proyek di platform crowdsourcing kickstarter.com yang diinisiasi oleh Pasha Baiborodin, Blynk telah menjelma menjadi sebuah platform pembuat aplikasi IoT pada iOS dan Android untuk mengontrol Arduino, Raspberry Pi, ESP8266, dan mikrokontroller sejenisnya melalui internet.
Blynk merupakan dashboard digital di mana antarmuka grafis untuk proyek internet of things dapat dibuat hanya dengan melakukan dragging dan dropping beberapa widget yang telah tersedia.
Platform Blynk terdiri dari tiga bagian utama yakni: Blynk app, Blynk Server, dan Blynk Library. Blynk app merupakan aplikasi untuk platform mobile yang bisa didapatkan di Google Play untuk mobile phone berbasis Android maupun App Store untuk mobile phone berbasis iOS dari Apple. Blynk Server adalah cloud server yang disediakan oleh Blynk untuk memediasi antara Blynk app dan Blynk Library. Dan Blynk Library merupakan library yang ditanam di sisi mikrokontroller.
Gambar 16 Arsitektur Blynk 2.9.1 Blynk App
Blynk App merupakan aplikasi yang tersedia untuk smartphone baik yang menggunakan platform iOS maupun android. Aplikasi ini tersedia secara gratis baik di AppStore maupun di GooglePlay dan bisa diunduh oleh siapapun. Pengembang Blynk menggunakan metode In-App purchasing untuk setiap aplikasi yang diunduh. Pengguna akan dibekali sejumlah energy yang akan berkurang setiap kali sebuah widget terpakai dalam sebuah proyek. Untuk membuat sebuah proyek yang sederhana, energy yang disediakan sudah lebih dari cukup untuk digunakan dalam proyek tugas akhir ini.
Blynk App menyediakan berbagai macam widget yang bisa digunakan untuk mendesain tampilan dashboard program IoT yang dibuat. Widget adalah modul antarmuka yang masing-masing melakukan tugas-tugas tertentu sesuai dengan desain input atau output saat berkomunikasi dengan perangkat keras.
Tersedia 4 macam jenis Widget:
Kontroller : berfungsi untuk mengirimkan perintah ke perangkat keras. Button : Bekerja dalam mode push atau switch. Mengirimkan nilai
0/1 (LOW/HIGH). Button mengirim nilai 1 (HIGH) pada saat ditekan dan mengirim nilai 0 (LOW) pada saat dilepas.
Slider : Memiliki cara kerja yang mirip dengan potensiometer. Mengirimkan nilai-nilai diantara MIN dan MAX.
Timer : Memicu aksi pada waktu tertentu. Bahkan saat smartphone dalam kondisi offline. Waktu Start akan mengirimkan nilai 1 (HIGH). Waktu Stop akan mengirimkan nilai 0 (LOW).
Joystick : Mengontrol pergerakan servo dalam 4 arah.
Display : digunakan untuk visualisasi berbagai macam data yang dikirim dari perangkat keras ke smartphone.
Value Display : Menampilkan data yang dating dari sensor atau Virtual Pin.
Labeled Value : Seperti widget Value Display, menampilkan data yang dari sensor atau Virtual Pin. Perbedaannya adalah dilengkapi dengan kemampuan format. Jadi nilai yang datang bisa diformat berdasarkan kebutuhan.
LED : Widget LED yang sederhana sebagai indicator. Program pada sisi mikrokontroller mengirimkan nilai 0 untuk membuat widget LED mati. Dan mengirimkan nilai 255 untuk membuat widget LED hidup.
Gauge : Widget visual berbentuk lingkaran untuk menampilkan nilai numerik.
LCD : Display LCD 16x2.
Graph : Digunakan untuk menampilkan data dalam bentuk grafik. History Graph : Menampilkan sejumlah data histori yang dikirim
dari perangkat keras ke server dalam bentuk grafik.
Notifikasi : berbagai macam widget untuk mengirim pesan dan notifikasi. Twitter : menghubungkan akun twitter dan Blynk sehingga
memungkin perangkat keras yang kita miliki mengirim cuitan. Email : memampukan perangkat keras mengirim email ke alamat
email manapun.
Interface : widget-widget yang dibuat untuk membuat tampilan UI terlihat lebih baik.
Tabs : Widget Tabs bisa digunakan untuk menambah space proyek yang dibuat.
Menu : Dengan Widget Menu, perintah bisa dikirim ke perangkat keras berdasarkan pilihan yang dibuat pada UI
Selain 4 jenis Widget di atas, ada juga widget lain seperti Bridge yang berfungsi untuk mengaktifkan komunikasi antar perangkat tanpa campur tangan aplikasi yang ada di smartphone.
2.9.2 Blynk Server/Cloud
Blynk Server merupakan program server yang dibangun menggunakan java berbasis Open Source Netty. Blynk Server bertanggungjawab untuk meneruskan pesan-pesan antara aplikasi mobile Blynk dengan berbagai jenis mikrokontroller yang telah dipasangi library khusus yang dirancang untuk berkomunikasi dengan protocol yang digunakan oleh Blynk Server.
Selain menyediakan Blynk Server Cloud, Tim pengembang Blynk juga menyediakan secara cuma-cuma aplikasi Blynk Server jika ingin diinstall secara lokal. Ada banyak manfaat jika Server Blynk diinstal secara lokal seperti factor, stabilitas, privacy, dan latency yang lebih baik.
2.9.3 Blynk Library
Blynk Library merupakan librari yang berisi fungsi-fungsi khusus untuk berkomunikasi dengan Blynk Server sesuai dengan mikrokontroller yang digunakan. Untuk mengkonfigurasi mikrokontroller, setidaknya ada dua fungsi yang dipanggil dalam program yang akan ditanam. Dua fungsi tersebut antara lain Blynk.begin() yang ditempatkan pada blok setup() dan Blynk.run() yang ditempatkan pada blok loop().
Library pada Blynk menyediakan beberapa fungsi yang berhubungan dengan operasi yang akan dilakukan terhadap mikrokontroller. Fungsi-fungsi yang tersedia antara lain:
Fungsi-fungsi dasar pin input output bisa dilakukan tanpa modifikasi khusus seperti biasanya antara lain: digitalRead, digitalWrite, analogRead, analogWrite.
Kontrol pin Virtual
Virtual Pin didesain untuk mengirimkan data apapun dari mikrokontroller ke Blynk App dan sebaliknya. Jika dianalogikan, Virtual Pin mirip dengan sebuah kanal yang digunakan untuk mengirim data. Virtual Pin tidak merepresentasikan pin fisik pada mikrokontroller.
Beberapa fungsi yang berhubungan dengan Virtual Pin antara lain:
Blynk.virtualWrite(vPin, value)
Semua tipe data apapun bisa dikirim melalui Virtual Pin.
Blynk.virtualWrite(pin, “abc”); // Send string Blynk.virtualWrite(pin, 123); // Send integer Blynk.virtualWrite(pin, 12.34); // Send float
Blynk.virtualWrite(pin, “hello”, 123, 12.34); // Send array
Blynk.virtualWriteBinary(pin, buffer, length); //Send RAW data
BLYNK_WRITE(vPIN)
Mendefinisikan sebuah fungsi yang dipanggil ketika piranti menerima update nilai Virtual Pin dari server.
BLYNK_WRITE(V0) {
int x = param[0].asInt(): }
BLYNK_READ(vPIN)
Mendefinisikan sebuah fungsi yang dipanggil ketika piranti diminta untuk mengirimkan nilai Virtual Pin ke server. Normalnya, fungsi ini berisi beberapa fungsi Blynk.virtualWrite.
BLYNK_READ(V0) {
Blynk.virtualWrite(V0, newValue); }