BAB III PERANCANGAN Bab ini membahas perancangan alat pengukur jarak berdasarkan gelombang elektromagnetik yang diterima dengan menggunakan Microcontroller Open Source Wemos. Microcontroller tersebut digunakan untuk mengolah informasi yang telah didapatkan oleh module ESP8266 dan mengatur operasi kerja dari LCD untuk menampilkan hasilnya pada LCD tersebut. Pembuatan sistem dibagi dalam beberapa blok perangkat yang mempunyai fungsi sendirisendiri. Pembuatan sistem meliputi perencanaan perangkat keras dan perencanaan perangkat lunak. 3.1
Prinsip Kerja Sistem Sistem yang telah dibangun, secara garis besar terdiri dari blok rangkaian
seperti terlihat pada gambar dibawah ini: Power Supply
Wifi Infrastructure /Access Point
Microcontroller Wemos Gambar 3.1 Blok Rangkaian
45
http://digilib.mercubuana.ac.id/
LCD Display 16x2
46
Secara garis besar, cara kerja sistem ini adalah:
Access point akan menghasilkan jaringan WiFi dengan system DHCP, yang akan memudahkan sebuah perangkat baru terhubung dengan pengaturan IP otomatis.
Power Supply akan memberikan energi kepada system, sehingga seluruh peralatan dapat berkerja dan berfungsi dengan baik.
Gelombang elektromagnetik akan diubah oleh antenna microstrip menjadi sinyal-sinyal listrik. Kemudian module ESP8266 akan memberikan atribut terhadap sinyal tersebut dan kemudian disimpan kedalam register tertentu.
Microcontroller Wemos akan membaca atribut tertentu dari sebuah sinyalsinyal listrik, kemudian akan mengeluarkan output berupa sinyal digital kepada LCD.
LCD akan mengubah data digital mengenai atribut sebuah sinyal menjadi sebuah objek, dimana objek tersebut merupakan sesuatu yang dapat dimengerti oleh manusia yang menerangkan tentang keadaan sebuah sinyal.
3.2
Perancangan Perangkat Keras Dalam pemilihan komponen pada sistem-sistem ini maka sangatlah
penting untuk memperhatikan beberapa hal berikut ini: 1.
Menggunakan Microcontroller dengan platform Open Source sehingga untuk pengembangannya dapat didukung oleh komunitas pengguna Microcontroller ini.
2.
Menggunakan komponen-komponen yang tersedia di pasaran, sehingga harganya murah dan mudah di dapat.
http://digilib.mercubuana.ac.id/
47
3.
Rangkaian yang sederhana sehingga mudah untuk dilakukan penambahan untuk pengembangan lebih lanjut.
3.2.1. Rangkaian LCD I2C Hitachi HD44780 LCD controller adalah salah satu matriks layar kristal cair yang paling umum dot (LCD) layar controller yang tersedia. Hitachi mengembangkan Microcontroller khusus untuk drive layar LCD alfanumeric dengan antarmuka yang sederhana yang dapat terhubung ke Microcontroller atau Microprocessor umum.
Gambar 3.2 Rangkaian LCD
Rangkaian di atas ini merupakan pengendali kecerahan cahaya untuk mengatur kuat-lemah arus listrik yang akan melewati modul display LCD. Dengan rangkaian ini kecerahan dari layar akan dapat dikendalikan dengan mudahnya. Tegangan operasi nominal untuk lampu latar LED adalah 5 Volt pada kecerahan penuh, Pada tegangan yang lebih rendah LCD akan lebih redup hal ini tergantung pada LED. Berikut adalah Pin-pin yang digunakan pada LCD yang terhubung dengan Pin dari Microcontroller Wemos, antara lain:
http://digilib.mercubuana.ac.id/
48
a.
LCD SDA pin menuju Microcontroller digital I/O pin 3.
b.
LCD SCL pin menuju Microcontroller digital I/O 4.
c.
VCC pin menuju Microcontroller +5 Volt.
d.
GND pin menuju Microcontroller Ground.
3.2.2. Minimum System Microcontroller Wemos Rangkaian microcontroller berfungsi untuk mengolah informasi yang didapatkan dari antenna transducer. Kemudian memproses data analog tersebut menjadi data digital, dan mengeluarkan hasilnya dalam bentuk informasi digital yang dapat dengan mudah di akses seperti tulisan.
Gambar 3.3 Minimum system Microcontroller Wemos
Rangkaian microcontroller ini menggunakan minimum system yang pada awalnya digunakan untuk meng-compile dan men-download listing program dari komputer ke chipset microcontroller. Diharapkan dengan minimum system ini akan dapat menghemat biaya yang dikeluarkan untuk membangun sistem otomatis ini. Berikut adalah minimum system hardware dari microcontroller Wemos:
http://digilib.mercubuana.ac.id/
49
Tabel 3.1 Minimum System Hardware Microcontroller
ESP-8266EX
Operating Voltage
3.3V
Digital I/O Pins
11
Analog Input Pins
1(Max input: 3.2V)
Clock Speed
80MHz/160MHz
Flash
4M bytes
Length
68.6mm
Width
53.4mm
Weight
25g
Microcontroller
ESP-8266EX
Operating Voltage
3.3V
3.2.3. Rangkaian Power Supply Pada sistem ini menggunakan baterai 9 Volt yang terhubung dengan sakelar untuk on-off peralatan. Baterai 9 Volt biasanya digunakan untuk aplikasi peralatan elektronika yang bersifat mobile (mudah di bawa), sehingga dengan menggunakan baterai 9 Volt ini sangat cocok digunakan untuk aplikasi ini.
Gambar 3.4 Baterai 9 Volt
http://digilib.mercubuana.ac.id/
50
Gambar 3.5 Rangkaian Power Supply
3.3
Perancangan Perangkat Lunak Perancangan perangkat lunak dibuat dengan menggunakan flowchart.
Flowchart atau diagram alir merupakan sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkahlangkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah demi selangkah untuk penyelesaian masalah yang ada di dalam proses atau algoritma tersebut. Berikut adalah flowchart sistem berikut ini:
http://digilib.mercubuana.ac.id/
51
Mulai
Inisialisasi
Simpan Sinyal Gelombang Elektromagnetik Setiap akses point
Baca Sinyal Gelombang Electromagnetic (dBm)
Tidak
Apakah Sinyal Gelombang Electromagnetic yang diinginkan
Loop Kembali Ke awal
Ya Konversi daya sinyal menjadi jarak (m) dengan Pathloss Model Green-Obaidat
Tampilkan Atribut sinyal, kuat sinyal, hasil jarak, pada LCD
Pemindaian Selesai?
Tidak
Ya Selesai
Gambar 3.6 Cara Kerja
Secara garis besar Microcontroller Wemos akan membaca kuat lemah energi dari sebuah sinyal yang berbentuk gelombang electromagnetic. Kemudian sinyal tersebut berserta level energinya akan di simpan pada sebuah register. Register tersebut kemudian di baca dan dengan bantuan persamaan matematika
http://digilib.mercubuana.ac.id/
52
dengan model Pathloss Green-Obaidat maka kuat lemah sinyal tersebut dijadikan besaran lain dengan satuan jarak. Hasil dari konversi, atribut sinyal, dan kuat sinyal kemudian akan ditampilkan pada LCD.
3.3.1. Program untuk cek WiFi dan simpan SSID RSSI Berikut ini adalah program untuk menyiapkan Microcontroller Wemos (inisialisasi). Baik secara software dengan memasukkan adanya library yang dibutuhkan ke dalam script serta untuk menyiapkan hardware seperti komunikasi data antara LCD 16x2 dengan microcontroller Wemos.
#include <Wire.h> #include "ESP8266WiFi.h" void setup() { Serial.begin(115200); } void loop() { int n = WiFi.scanNetworks(); if (n == 0) { Serial.println("no networks found"); lcd.print("No Network Found"); } else
http://digilib.mercubuana.ac.id/
53
{ for (int i = 0; i < n; ++i) { }
3.3.2. Program untuk membaca SSID & sinyal gelombang Electromagnetic Pada subroutine Void Loop () fungsi WiFi. SSID() dan fungsi WiFi.RSSI() di panggil untuk membaca hasil pindai access point yang aktif di lingkungan sekitar, yang telah disimpan kedalam register di dalam memory. #include <Wire.h> #include "ESP8266WiFi.h" void setup() { Serial.println("scan start"); } void loop() { int n = WiFi.scanNetworks(); if (n == 0) { Serial.println("no networks found"); } else { for (int i = 0; i < n; ++i) {
http://digilib.mercubuana.ac.id/
54
// Print SSID and RSSI for each network found Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" = "); Serial.print(WiFi.RSSI(i)); Serial.print(" dBm"); Serial.print((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":""); // RSSI = 7.6 + 40 log d + 0 // RSSI + 7.6 = 40 log d // invers logaritmik adalah pemangkatan // d = 10^((RSSI-7.6)/40) delay(10); } } delay(500); }
3.3.3. Program untuk Konversi dari level RSSI ke Jarak Pada subroutine Void Loop () fungsi logaritma Log x(n) dipanggil untuk mengubah nilai tinggi antena menjadi nilai gain dari sebuah pemancar dan penerima gelombang radio, sedangkan fungsi eksponensial pow(n, x) dipanggil untuk mengubah nilai kuat level sinyal gelombang electromagnetic yang diterima (dBm) menjadi jarak antara 2 buah alat pemancar dan penerima radio dengan menerapkan persamaan matematika model Green dan Obaidat. Berikut ini adalah persamaan matematika dalam listing coding:
http://digilib.mercubuana.ac.id/
55
#include <math.h> void setup() { Serial.begin(115200); } void loop() { // Rumus Green&Obaidat : 7.6 + 40 log d + 20 log Ht.Hr // Ht.Hr ketinggian antenna saat pengukuran yaitu 1 meter // maka 20 log Ht.Hr = 20 log 1.1 // maka 20 log 1 // maka 20 . 0 = 0 // Penurunan rumus // RSSI = 7.6 + 40 log d + 0 // RSSI + 7.6 = 40 log d // invers logaritmik adalah pemangkatan // d = 10^((RSSI-7.6)/40) float rssi, rssidbm; double jarak; rssi = WiFi.RSSI(i) + 30.6; rssidbm = rssi / -40; jarak = pow(10, rssidbm);
} 3.3.4. Program untuk tampilkan hasil SSID, RSSI, dan Jarak
http://digilib.mercubuana.ac.id/
56
Pada subroutine Void Loop () fungsi lcd.print digunakan untuk menampilkan nama
access
point, kuat
lemah sinyal
dari
gelombang
elektromagnetic dari sebuah access point, serta hasil dari konversi kuat lemah sinyal dari gelombang elektromagnetic dari sebuah access point tersebut menjadi jarak antara 2 buah alat pemancar dan penerima radio. Berikut ini adalah listing program untuk menampilkan hasil pada LCD: #include
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address void setup() { lcd.begin(16,2); // initialize the lcd for 16 chars 2 lines, turn on backlight Serial.begin(115200); Serial.println("Setup done"); Serial.println("scan start"); } void loop() { int n = WiFi.scanNetworks(); if (n == 0) { Serial.println("no networks found"); lcd.clear(); lcd.setCursor(0,0);
http://digilib.mercubuana.ac.id/
57
lcd.print("No Network Found"); } else { for (int i = 0; i < n; ++i) { // Print SSID and RSSI for each network found Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" = "); Serial.print(WiFi.RSSI(i)); Serial.print(" dBm"); Serial.print((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":""); float rssi, rssidbm; double jarak;
rssi = WiFi.RSSI(i) + 30.6; rssidbm = rssi / -40; jarak = pow(10, rssidbm); Serial.print(" RSSI = "); Serial.print(rssi); Serial.print(" RSSIdbm = "); Serial.print(rssidbm);
Serial.print(" Jarak = ");
http://digilib.mercubuana.ac.id/
58
Serial.print(jarak); Serial.println(" m "); if (WiFi.SSID(i) == "G-AP") { lcd.clear(); lcd.setCursor(0,0); lcd.print(WiFi.SSID(i)); lcd.setCursor(0,1); lcd.print(WiFi.RSSI(i)); lcd.print(" dBm "); lcd.print(jarak); lcd.print(" m"); } delay(10); } } delay(500); }
http://digilib.mercubuana.ac.id/