BAB IV IMPLEMENTASI SISTEM
Pada bab ini akan membahas secara singkat mengenai bagaimana implementasi harware, implementasi software, dan hasil pengujian pengujian sistem dari alat yang dibuat atau dirangkai.
4.1
Implementasi Hardware Pada implementasi hardware ini cara kerja alat yaitu dapat memantau suhu
dan
kelembaban
pada
ruangan
secara
jarak
dekat
menggunakan
mikrokontroler dari Arduino Arduino Uno, DHT11 sebagai sensor suhu dan kelembaban, kelembaban, LCD I2C 16x2 sebagai tampilan, RTC DS3231 sebagai penunjuk waktu, dan Modul SD Card sebagai data logger, sedangkan secara jarak jauh ini menggunakan ESP8266-12E Nodemcu dimana sebagai kontroler sekaligus pengiriman data dari DHT11 ke Web IoT Thingspeak, Web IoT Thingspeak sebagai web service yang menyediakan layanan tampilan web (berbentuk grafik,teks,gauge,dll) dari pengukuran sensor DHT11.
Gambar 4.1 Implementasi Hardware
4.2 4.2.1
Implementasi Software Arduino Sebelum memulai pembuatan sketch/coding pembuatan sketch/coding pada pada Software Arduino IDE maka diperlukan penginstalan Software Arduino IDE, bila belum terinstal pada komputer/laptop, download terlebih dahulu Software Arduino IDE melalui website resmi Arduino yaitu (www.arduino.cc www.arduino.cc)). Setelah terinstal buka program softwarenya dengan klik icon shortcut Arduino atau Klik tab windows “Start” lalu pilih/klik all program selanjutnya klik Arduino. Arduino.
Gambar 4.2 Icon Shortcut Arduino IDE
Setelah membuka Software Arduino IDE, maka akan muncul tampilan antarmuka seperti dibawah ini:
Gambar 4.2 Tampilan Software Arduino IDE
1.
Memilih Port dan Board pada Arduino IDE
Terdapat 5 (lima) menu utama yang terdapat pada bagian atas IDE yaitu file, edit, sketch, tools dan help. Untuk men- setting board yang digunakan, Klik pada menu “Tools”, pada bagian “Board”, pilih sesuai dengan board Arduino yang digunakan (dalam kasus ini penulis menggunakan board Arduino Uno dan ESP8266-12E NodeMCU).
Gambar 4.3 Menu Board Arduino Uno
Gambar 4.4 Menu Board ESP8266-12E NodeMCU
Untuk selanjutnya yaitu setting port, pada bagian “ Port”, pilih port yang tersedia (dalam kasus ini adalah COM7). Untuk beberapa keadaan, nama port yang ditampilkan bisa berbeda.
Gambar 4.5 Menu Tool Port
Catatan:
Daftar port ini tidak akan tersedia jika proses instalasi USB driver belum dilakukan. Dan jika untuk board NodeMCU belum ada maka lakukan download librarynya. Untuk menambahkan library board modul ESP8266 ke arduino IDE, klik menu file terus pilih preferences
Gambar 4.6 Menu File Preferences
Masukan
alamat
link
seperti
berikut
(http://arduino.esp8266.com/stable/package_esp8266com_index.json) Additional Board Manager URLs, lalu klik ok
Gambar 4.7 Additional Board Manager URLs
Jika sudah sekarang buka menu Tools trus Pilih Boards Manager
ini ke kolom
Gambar 4.8 Menu Tool Board
Jika sudah terbuka, ketik saja esp di search-nya
Gambar 4.9 Board Manager
Pilih ESP8266 Terus install tunggu hingga selesai download dan installnya untuk download ESP8266 harus menggunakan koneksi internet. Jika sudah selesai sekarang buka boardnya lagi, jika pilihan ESP8266 dan NodeMCU sudah muncul berarti sudah selesai.
2.
Cara Menyisipkan Library dan Membuka Sampel Program
Untuk menambah library (sisipan program tambahan) pihak ke tiga atau library dari hasil download sumber lain caranya seperti berikut.
Gambar 4.10 Menu Sketch Include Library
Untuk menambah library pihak ke tiga (baru) ke dalam Software IDE ini dengan cara pilih tab menu Sketch, lalu pilih Add.Zip Library dan pilih file zip library yang sudah di download dan klik open.
Gambar 4.11 Pilihan File Library
Dalam menambahkan library pada sketch langkahnya hampir sama dalam menambah library pada software, yaitu pilih tab menu Sketch, lalu pilih library pada deretan library sebagai contoh “DHT”.
Pada
library
sendiri
memungkinkan
bagi
penggunanya
untuk
mempermudah dalam penyelesaian program atau sketch. Karena dari berberapa library yang sudah ada pada Arduino IDE atau pun dari sumber lain terdapat sampel program untuk menggunakan Arduino UNO dengan perangkat lain seperti sensor, actuator, modul, dll. Untuk membuka sampel ini cukup mudah seperti yang ditunjuk pada gambar berikut ini.
Gambar 4.12 Menu File Example
Pilih menu file, lalu pilih Example, dan silahkan pilih sampel sesuai kebutuhan dari deretan sampel yang telah tersedia. Jika sudah maka akan muncul jendela baru dari program sampel yang dipilih.
3.
Cara Upload Program (Sketch) ke Board Arduino
Upload sketch adalah tahap dimana program ditanamkan pada board arduino. Pada tutorial ini, diasumsikan bahwa penulis telah selesai menulis program yang akan ditanamkan pada board arduino. Untuk mulai meng-upload program, hubungkan board arduino ke PC melalui USB, klik pada icon Panah Kanan seperti yang ditunjukkan pada gambar dibawah ini:
Gambar 4.13 Icon Toolbar Upload
Proses upload akan berjalan selama beberapa detik. Jika tidak ada kesalahan pada kode program yang dibuat, akan ada notifikasi “ Done uploading” yang menandakan bahwa sketch berhasil di-upload ke board arduino.
Gambar 4.14 Proses Upload Selesai
4.2.2 Web Thingspeak
Gambar Implementasi Tampilan Web
Untuk menggunakan jasa Web IoT Thingspeak sebagai tampilan visual yang dapat dibuka atau dilihat secara jarak jauh melalui internet, maka diperlukan pendaftaran akun dan membuat channel perangkat. Pembuatan channel diperlukan untuk tempat plot visual dari data sensor dan pada pembuatan channel terdapat API key, dimana API Key pada channel tersebut akan dipakai dalam pemograman Arduino dan berfungsi untuk menghubungkan Arduino dan ESP ke situs Thingspeak. Berikut di bawah ini adalah langkah-langkah pendaftaran dan pembuatan channel di Web IoT Thingspeak.
1.)
Setelah itu buka website ThingSpeak, dan melakukan Pendaftaran. klik “DAFTAR SEKARANG”
2.)
Isi formulir lengkap dan tunggu email konfirmasi.
Gambar 4.15 Form Pendaftaran
3.)
Lihat dan buka balasan email terlebih dahulu untuk konfirmasi pendaftaran.
Gambar 4.16 E-mail Balasan Matlab
4.)
Setelah terdaftar, silahkan melakukan Login. Dan apabila login berhasil, klik New Channel
Gambar 4.17 Tab New Channel
5.)
Lalu kita klik lagi pada Tab Channel setting, dan isikan Form sesuai dengan kebutuhan misalnya seperti Name (isikan judul laman web misal “sensor coba”), Field (centang field yang dibutuhkan untuk plotting data dan isi judul fieldnya misal field 1 “Suhu” dan field 2 “Kelembaban”), centang public view supaya dapat dilihat semua orang, centang show location isikan latitude dan longitude letak sensor/alat, dan lain sebagainya
Gambar 4.18 Channel Setting
6.)
Setelah itu klik pada Tab Private View, maka disitulah nantinya Data akan di Plotting
Gambar 4.19 Channel Public View
7.)
Bagian terpenting terakhir, Klik Tab API Keys lalu Copy-Paste pada Notepad sebagai catatan untuk digunakan dalam pemrograman nanti.
Gambar 4.20 API key
8.)
Pembuatan channel selesai.
Penjelasan pada Channel Setting : Channel Name: Masukkan nama yang unik untuk saluran ThingSpeak. Description: Masukkan deskripsi saluran ThingSpeak. Field#: Centang kotak untuk mengaktifkan field, dan masukkan nama field.
Setiap saluran ThingSpeak dapat memiliki hingga 8 bidang. Metadata: Masukkan informasi tentang data saluran, termasuk JSON, XML, atau
data CSV. Tags: Masukkan kata kunci yang mengidentifikasi saluran. Pisahkan tag dengan
koma. Latitude: Menentukan posisi sensor atau hal yang mengumpulkan data dalam
derajat desimal. Misalnya, garis lintang kota London adalah 51,5072. ( Longitude: Menentukan posisi sensor atau hal yang mengumpulkan data dalam
derajat desimal. Sebagai contoh, bujur kota London adalah -0,1275. Elevation: Tentukan posisi sensor atau hal yang mengumpulkan data dalam
meter. Misalnya, ketinggian kota London adalah 35,052. Make Public: Jika Anda ingin membuat saluran yang tersedia untuk publik,
centang kotak ini. URL: Jika Anda memiliki situs web yang berisi informasi tentang saluran
ThingSpeak Anda, tentukan URL. Video ID: Jika Anda memiliki YouTube ™ atau Vimeo® video yang
menampilkan informasi saluran Anda, menentukan path lengkap dari URL video.
Penjelasan API keys : Write API Key : Gunakan tombol ini untuk menulis data ke saluran. Jika merasa
kunci telah disusupi, klik Buat API Key Tulis Baru. Read API Keys: Gunakan tombol ini untuk mengizinkan orang lain melihat feed
dan bagan saluran pribadi. Klik Buat Kunci API Baca Baru untuk membuat kunci baca tambahan untuk saluran.
5.2.2 Konfigurasi Sensor DHT11 Konfigurasi sensor suhu dan kelembaban DHT11 bertujuan untuk mengukur keadaan suhu dan kelembaban pada suatu ruangan. Dimana penjelasannya seperti #include (menambah library sensor DHT11), #define dht_apin A1 (pin analog A1 pada arduino sebagai koneksi Vout DHT11), DHT.read11(dht_apin) (Arduino melalui pin A1 membaca sinyal dari Vout), dan lain-lain seperti tampilan gambar berikut ini.
Gambar 4.21 Konfigurasi DHT11
5.2.3 Konfigurasi LCD I2C 16x2 Konfigurasi tampilan dari LCD I2C 16x2 bertujuan untuk menampilkan hasil pengukuran sensor berupa tampilan karakter. Dimana tampilan ini cocok untuk mengamati suatu kondisi secara jarak dekat. Untuk penjelasannya #include (menambah library komunikasi i2c), #include (menambah
library
lcd
i2c),
LiquidCrystal_I2C
lcd(0x27,2,1,0,4,5,6,7,3,
POSITIVE) ini adalah konfigurasi pin lcd, lcd.begin (16,2) ini digunakan untuk menjalankan lcd 16 (kolom) x 2 (baris), lcd.setBlacklight(high) digunakan untuk menghidupkan lampu latar, lcd.setCursor () digunakan untuk menentukan letak kursor penulisan, lcd.print() digunakan untuk mencetak/menampilkan karakter, dan lcd.clear untuk menghapus seluruh karakter.
Gambar 4.22 Konfigurasi LCD I2C 16x2
5.2.4 Konfigurasi RTC DS3231 RTC (Real Time Clock) merupakan jam elektronik
yang dapat
menghitung waktu dengan akurat dan menjaga/menyimpan data waktu tersebut secara real time. Untuk konfigurasi pada Arduino sangat sederhana karena sudah disetting oleh pabrik, maka tinggal mengkonfigurasi seperti #include (menambahkan library rtc), DS3231 rtc(A4,A5) untuk pin A4 sebagai SDA (untuk RTC) dan pin A5 sebagai SCL (untuk RTC), Serial.begin(9600) digunakan untuk menjalankan komuikasi serial monitor dengan baudrate 9600, rtc.begin() memulai menjalankan rtc, Serial.print () digunakan untuk mencetak karakter pada serial monitor, rtc.getTimeStr() digunakan untuk mengambil data waktu real dari rtc berupa karakter, rtc.getDateStr() digunakan untuk mengambil data tanggal dari rtc berupa karakter, dan delay() berfungsi untuk memberi batas waktu istirahat selama milidetik.
Gambar 4.23 Konfigurasi RTC DS3231
5.2.5
Konfigurasi Modul SD Card Modul Micro SD adalah modul untuk mengakses memori card yang bertipe Micro SD untuk pembacaan maupun penulisan data dengan menggunakan sistem antarmuka SPI (Serial Peripheral Interface) sebagai data logger nantinya. Untuk konfigurasi Modul ini pada Arduino penjelasannya seperti #include (menambahkan library komunikasi Serial Peripheral Interface), #include (menambahkan library Modul SD Card), File myFile (ini untuk membuat variabel myFile), SD.begin (4) digunakan untuk menjalankan modul dengan komunikasi
serial
pada
pin
digital
4
(pada
arduino),
SD.open(“text.txt,FILE_WRITE) digunakan untuk membuka file sekaligus membuatnya dengan nama “test” dan berformat .txt, myFile.print (digunakan untuk menulis karakter pada file test), dan myFile.close (digunakan untuk menutup file).
Gambar 4.23 Konfigurasi Modul SD Card
5.2.6
Konfigurasi IoT NodeMCU Nodemcu merupakan sebuah open source platform IoT dan dev kit yang menggunakan bahasa pemrograman Lua untuk membantu pemakai dalam membuat prototype produk IoT atau bisa djuga memakai Arduino IDE. Dimana nanti NodeMCU sebagai kontroler dan sekaligus AP (Akses Point) akses ke Web IoT Thingspeak untuk plotting data sensor/alat. Untuk konfigurasi IoT seperti #include
( untuk menambahkan library wificlient), #include
(Menambahkan library Thingspeak), const char* ssid = “*****” berfungsi menentukan ssid, const char* password = “*****” berfungsi menentukan password wifi, “WifiClient client” membuat variabel client, unsigned long myChannelNumber = ***** (menentukan id number channel Thingspeak), const char* myWriteAPIKey = ”*****” (digunakan untuk menentukan API Key dari channel Thingspeak yang telah dibuat), uint8_t temperature, humidity (membuat variabel temperature dan humidity untuk plotting data pada web), dan wifi.begin digunakan untuk menjalankan program pada NodeMCU.
Gambar 4.24 Konfigurasi IoT 1
Selanjutnya untuk “static bolean data_state = false” digunakan untuk menentukan
variabel
bolean
dari
data_state
Tingspeak.writeField(myChannelNumber,
menjadi
number
of
“false”, field,
variabel,
myWriteAPIKey) digunakan untuk plotting data sensor ke web thingspeak.
Gambar 4.25 Konfigurasi IoT 2
untuk
4.3
Pengujian Sistem Dalam pengujian sistem ada beberapa hal yang terkait dalam tugas akhir
ini, yaitu sebagai berikut :
4.3.1 Pengujian Sensor DHT11
Gambar 4.26 Pengujian Sensor DHT11
Gambar 4.27 Coding Sensor DHT11
Gambar 4.28 Hasil Serial Monitor Sensor DHT11
4.3.2
Pengujian LCD I2C 16x2
Gambar 4.29 Coding LCD I2C 16x2
Gambar 4.30 Hasil LCD I2C 16x2
4.3.3
Pengujian RTC DS3231
Gambar 4.31 RTC DS3231
Gambar 4.32 Coding RTC DS3231
Gambar 4.33 Hasil Serial Monitor RTC DS3231
4.3.4
Pengujian Modul SD Card
Gambar Pengujian Modul SD Card
Gambar Coding SD Card
Gambar Hasil Serial Monitor Pengujian SD Card
Gambar File Test dari Pengujian SD Card