Perancangan Alat Pemantauan Perubahan Suhu Air Danau Toba Berbasis Mikrokontroler Arduino Uno

BAB 2

LANDASAN TEORI

Di bab ini, akan dijelaskan komponen - komponen yang digunakan untuk merancang
pembuatan suatu alat pemantau suhu air danau toba dengan menggunakan sensor
waterproof DS18B20 dengan menggunkan Mikrokontroller ATMega serta cara

kerjanya.

2.1 Sensor suhu DS18B20

Kebanyakan sensor suhu memiliki tingkat rentang terukur yang sempit serta akurasi
yang rendah namun memiliki biaya yang tinggi. Sensor suhu DS18B20 dengan
kemampuan tahan air (waterproof) cocok digunakan untuk mengukur suhu pada
tempat yang sulit, atau basah. Karena output data sensor ini merupakan data digital,
maka kita tidak perlu khawatir terhadap degradasi data ketika menggunakan untuk
jarak yang jauh. DS18B20 menyediakan 9 bit hingga 12 bit yang dapat dikonfigurasi
data.

Universitas Sumatera Utara


9

Karena setiap sensor DS18B20 memiliki silicon serial number yang unik,
maka beberapa sensor DS18B20 dapat dipasang dalam 1 bus. Hal ini memungkinkan
pembacaan suhu dari berbagai tempat.

Gambar 2.1 Sensor Suhu DS18B20
Meskipun secara datasheet sensor ini dapat membaca bagus hingga 125°C,
namun dengan penutup kabel dari PVC disarankan untuk penggunaan tidak melebihi
100°C. Spesifikasi dari sensor suhu DS18B20 sebagai berikut :
1. Tegangan yang dibutuhkan sensor dari 3.0V sampai 5.5V power / data
2. Akurasinya ±0.5°C sampai -10°C, dan -10°C sampai +85°C
3. Batas temperatur sensor dari -55 sampai 125°C atau -67°F sampai +257°F
4. Menggunakan 1 kabel Antarmuka (Interface) dan hanya 1 digital pin untuk
komunikasi
5. Data pengenalan Identitas yang disimpan 64 bit
6. Memiliki batas peringatan jika suhu tinggi
7. Waktu tunggu data masuk 750ms
8. kabel antarmuka (Interface)

a. Kabel merah

: VCC

b. Kabel hitam

: GND

c. Kabel putih

: DATA

Universitas Sumatera Utara

10

9. Bahan Stainless steel silinder 6 mm diametenya panjang 35mm
10. Diameter kabel : 4mm
11. Panjang kabel : 90cm


2.2 Mikrokontroler Arduino UNO

Arduino berawal dari Dilvre, Italia pada tahun 2005 dengan Pendirinya adalah
Massimo Banzi dan David Cuartiellez. Arduino adalah pengendali mikro singleboard yang bersifat open-source, yang di turunkan dari wiring platform, yang di

rancang untuk memudahkan penggunaan elektronik dalam berbagai bidang.
Hardwernya memiliki prosesor atmel AVR dan softwarenya memiliki bahasa
pemrograman sendiri. Secara software Arduino adalah open source IDE yang
digunakan untuk mendevelop aplikasi mikrokontroller yang berbasis arduino
platform.

Secara hardware Arduino adalah Single board mikrokontroller yang bersifat
open source hardware yang dikembangkan untuk arsitektur mikrokontroller AVR 8

bit dan ARM 32 bit. Dari kedua pengertian diatas, dapat disimpulkan bahwa Arduino
adalah kit elektronik atau papan rangkaian elektronik open source yang didalamnya
terdapat komponen utama yaitu sebuah chip mikrokontroller dengan jenis AVR.
Mikrokontroller itu sendiri adalah chip atau IC (integrated Circuit) yang bisa
diprogram


menggunakan

komputer.

Tujuan

menanamkan

program

pada

mikrokontroller adalah agar rangkaian elektronik dapat membaca input, memproses

Universitas Sumatera Utara

11

input tersebut dan kemudian menghasilkan output seperti yang diinginkan. Jadi pada
mikrokontroller bertugas sebagai otak yang mengendalikan input, proses ,dan output

sebuah rangkaian elektonik.

Gambar 2.2 Papan Board Arduino Uno
Input / output digital atau digital pin adalah pin pin untuk menghubungkan
arduino dengan komponen atau rangkaian digital. contohnya , jika ingin membuat
LED berkedip, LED tersebut bisa dipasang pada salah satu pin input atau output
digital dan ground. komponen lain yang menghasilkan output digital atau menerima
input digital bisa disambungkan ke pin pin ini. Input analog atau analog pin adalah
pin pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog.
contohnya , potensiometer, sensor suhu, sensor cahaya, dll. Pin - pin untuk catu daya
adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang
dihubungkan dengan arduino. Pada bagian catu daya ini pin Vin dan reset. Vin
digunakan untuk memberikan tegangan langsung kepada arduino tanpa melalui
tegangan pada USB atau adaptor, sedangkan Reset adalah pin untuk memberikan

Universitas Sumatera Utara

12

sinyal reset melalui tombol atau rangkaian eksternal. Rangkaian tersebut berfungsi

sebagai pusat kendali dari seluruh sistem yang ada. Seperti gambar papan PCB diatas
mikrokontroler ATMega328 menyediakan UART TTL (5V) komunikasi serial, yang
tersedia pada pin digital 0 (RX) dan 1 (TX).

Sebuah ATmega328 pada saluran board ini komunikasi serial melalui USB
dan muncul sebagai com port virtual untuk perangkat lunak pada komputer.
Firmware Arduino menggunakan USB driver standar COM, dan tidak ada driver
eksternal yang dibutuhkan. Namun, pada Windows, file. Inf diperlukan. Perangkat
lunak Arduino termasuk monitor serial yang memungkinkan data sederhana yang
akan dikirim ke board Arduino. RX dan TX LED di board akan berkedip ketika data
sedang dikirim melalui chip USB-to serial dan koneksi USB ke komputer.

2.3 Perangkat Lunak (Arduino IDE)

Lingkungan

open-source

Arduino


memudahkan untuk

menulis kode dan

mengupload ke board Arduino. Ini berjalan pada Windows, Mac OS X, dan
Linux.Berdasarkan pengolahan, avr-gcc, dan perangkat lunak sumber terbuka
lainnya.

Universitas Sumatera Utara

13

.Ini berjalan pada Windows, Mac OS X, dan Linux. Berdasarkan pengolahan,
avr gcc, dan perangkat lunak sumber terbuka lainnya.

Gambar 2.3 Tampilan Framework Arduino UNO
Framework ini berguna untuk menulis block kode program. Kemudian
hasil isi dari kode yang ada akan dikompile untuk di upload ke dalam board
arduino


2.4 Otomatis Tombol Reset

Tombol reset Uno Arduino dirancang untuk menjalankan program yang tersimpan
didalam mikrokontroller dari awal. Tombol reset terhubung ke Atmega328. Setelah
tombol reset ditekan cukup lama untuk me-reset chip, software IDE Arduino dapat
juga berfungsi untuk meng-upload program dengan hanya menekan tombol upload
di software IDE Arduino.

Universitas Sumatera Utara

14

2.5 Catu Daya

Uno Arduino dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal.
Sumber listrik dipilih secara otomatis. Eksternal (nonUSB) daya dapat datang baik
dari AC - DC adaptor atau baterai. Adaptor ini dapat dihubungkan dengan cara
menghubungkannya plug pusat - positif 2.1mm ke dalam board colokan listrik. Lead
dari baterai dapat dimasukkan ke dalam header pin Gnd dan Vin dari konektor
Power.


Board dapat beroperasi pada pasokan daya dari 6 - 20 volt. Jika diberikan
dengan kurang dari 7V, bagaimanapun, pin 5V dapat menyuplai kurang dari 5 volt
dan board mungkin tidak stabil. Jika menggunakan lebih dari 12V, regulator
tegangan bisa panas dan merusak board. Rentang yang dianjurkan adalah 7 - 12 volt

2.6 Bahasa Pemograman Arduino

Arduino menggunakan pemrograman dengan bahasa C. Setiap program Arduino
(biasa disebut sketch) mempunyai dua buah fungsi yang harus ada.
1. void setup( ) { }, Semua kode didalam kurung kurawal akan dijalankan hanya
satu kali ketika program Arduino dijalankan untuk pertama kalinya.
2. void loop( ) { } o Fungsi ini akan dijalankan setelah setup (fungsi void setup)
selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi
secara terus menerus sampai catu daya (power) dilepaskan.

Universitas Sumatera Utara

15


2.7 Syntax

Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan :
1. // (komentar satu baris), Kadang diperlukan untuk memberikan catatan pada
diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua
buah garis miring dan apapun yang kita ketikkan dibelakangnya akan
diabaikan oleh program.
2. /* */ (komentar banyak baris), Jika kita punya banyak catatan, maka hal itu
dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang
terletak di antara dua simbol tersebut akan diabaikan oleh program.
3. { }(kurung kurawal), Digunakan untuk mendefinisikan kapan blok program
mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).
4. ; (titk koma), Setiap baris kode harus diakhiri dengan tanda titik koma (jika
ada titik koma yang hilang maka program tidak akan bisa dijalankan).
5. variabel, Sebuah program secara garis besar dapat didefinisikan sebagai
instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah
yang digunakan untuk memindahkannya.
6. int (integer), Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak
mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.
7. long (long), Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte

(32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan
2,147,483,647.

Universitas Sumatera Utara

16

8. boolean (boolean), Variabel sederhana yang digunakan untuk menyimpan
nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya
menggunakan 1 bit dari RAM.
9. float (float), Digunakan untuk angka desimal (floating point). Memakai 4
byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan
3.4028235E+38.
10. char (character), Menyimpan 1 karakter menggunakan kode ASCII
(misalnya ‘A’ = 65). Hanya memakai 1 byte (8 bit) dari RAM.
11. Operator Matematika, Operator yang digunakan untuk memanipulasi angka
(bekerja seperti matematika yang sederhana).
a. = , Membuat sesuatu menjadi sama dengan nilai yang lain misalnya: x
= 10 * 2, x sekarang sama dengan 20.
b. % Menghasilkan sisa dari hasil pembagian suatu angka dengan angka
yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).
c. + , Penjumlahan
d. - , Pengurangan
e. * , Perkalian
f. / , Pembagian
12. Operator Pembanding, Digunakan untuk membandingkan nilai logika.
a. == , Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12
== 12 adalah TRUE (benar))
b. !=, Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau
12 != 12 adalah FALSE (salah))

Universitas Sumatera Utara

17

c. , Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 >
12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah)) Struktur
Pengaturan

Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya,
berikut ini adalah elemen dasar pengaturan.
1. if, else, dengan format seperti berikut ini: if (kondisi) { } else if (kondisi) {

}

else {kondisi }, dengan struktur seperti diatas program akan menjalankan kode
yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak
(FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya
FALSE maka kode pada else yang akan dijalankan.
2. for, dengan format seperti berikut ini: for (int i = 0; i < pengulangan; i++) { }
Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung
kurawal beberapa kali, ganti pengulangan dengan jumlah pengulangan yang
diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan
i–.

Universitas Sumatera Utara

18

2.8 Pin Digital

Pin digital digunakan untuk mengirim sinyal digital berupa nilai 1 dan 0. Angka 1
menandakan bahwa pin memiliki kondisi HIGH dan angka 0 menandakan kondisi
LOW. Untuk menggunakan pin digital ini digunakan fungsi sebagai berikut :
1. pinMode(pin, mode)
Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang
akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa
digunakan adalah INPUT atau OUTPUT.
2. digitalWrite(pin, value)
Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan
HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).
3. digitalRead(pin)
Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan
kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5
volts) atau LOW (diturunkan menjadi ground).

2.9 Pin Analog

Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di
dalam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang
bukan digital.

Universitas Sumatera Utara

19

1. analogWrite(pin, value)
Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu
pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan
sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog.
2. analogRead(pin)
Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran
voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024
(untuk 5 volts).

2.10 Real Time Clock (RTC)

RTC adalah jenis pewaktu yang bekerja berdasarkan waktu yang sebenarnya atau
dengan kata lain berdasarkan waktu yang ada pada jam kita. Agar dapat berfungsi,
pewaktu ini membutuhkan dua parameter utama yang harus ditentukan, yaitu pada
saat mulai (start) dan pada saat berhenti (stop). Biasanya Real Time Clock berbentuk
suatu chip (IC) yang memiliki fungsi sebagai penyimpan waktu dan tanggal. Dalam
proses penyimpanannya RTC sendiri memiliki register yang dapat menyimpan data
detik, menit, jam, tanggal, bulan dan tahun. RTC ini memiliki 128 lokasi RAM yang
terdiri dari 15 byte untuk data waktu serta kontrol, dan 113 byte sebagai RAM umum

Universitas Sumatera Utara

20

2.11 Android Smartphone

Android adalah sebuah sistem operasi berbasis Linux yang dirancang untuk mobile
device seperti smartphone dan komputer tablet yang dikembangkan oleh Google.

Beberapa fitur Android antara lain:
1. Application framework, yakni application framework yang bisa digunakan
untuk membangun aplikasi Android.
2. Dalvik

Virtual

Machine,

yakni

Java

bytecode

interpreter

yang

diimplementasikan pada Android untuk mengganti Java Virtual Machine.
3. Integrated Browser, Android menyertakan browser berbasis WebKit sebagai
aplikasi standar.
4. Optimized graphics, Android mempunyai pustaka grafik 2D dan menyertakan
pustaka grafik 3D OpenGL ES.
5. SQLite, adalah aplikasi basis data SQLite yang disertakan dalam Android.
6. Media Support, dukungan untuk memutar format multimedia yang banyak.
7. GSM telephony support, adalah kemampuan Android untuk mengakses
langsung hardware untuk komunikasi GSM. Dimana dukungan ini bergantung
pada modul yang tersedia untuk masing-masing hardware GSM.
8. Bluetooth, EDGE, 3G, dan WiFi,

dukungan untuk banyak jenis koneksi

wireless.

9. Camera, GPS, compass dan accelerometer, dukungan untuk hardware
tersebut, tersedia API untuk mengakses hardware tersebut.

Universitas Sumatera Utara

21

10. Rich development environment, tersedia software development yang
lengkap.

2.12 Versi Android

Versi disini hanya membahas tentang Android yang dirilis resmi oleh Google,
berikut ini adalah rangkuman dari versi tersebut :
1. Versi 1.0 (codename tidak diketahui), dirilis pada September 2008
2. Versi 1.1 (codename tidak diketahui), dirilis pada Februari 2009
3. Versi 1.5 (codename Cupcake), dirilis September 2009
4. Versi 1.6 (codename Donut), dirilis September 2009
5. Versi 2.0, 2.0.1, 2.1 (codename Eclair), dirilis Oktober 2009
6. Versi 2.2 (codename Froyo), dirilis Mei 2010
7. Versi 2.3 (codename Gingerbread), dirilis Desember 2010
8. Versi 3.0/3.1 (codename Honeycomb), dirilis Mei 2011
9. Versi 4.1.x (codename JellyBean), dirilis Juli 2012

2.13 Perancangan PCB (Printed Circuit Board)

PCB adalah tempat komponen dimana komponen – komponen tersebut diletakkan
seperti dioda, resistor dan komponen lainnya. PCB harus diproses menjadi jalur –

Universitas Sumatera Utara

22

jalur yang dapat menghubungkan komponen – komponen agar membentuk rangkaian
yang diinginkan. Proses pembuatan PCB dibagi menjadi tiga tahap yaitu :
1. Pembuatan layout PCB
2. Pembuatan jalur PCB
3. Proses Pembuatan PCB
4. Pelapisan dan pemasangan komponen

2.13.1 Pembuatan Lay Out PCB

Proses ini adalah langkah pertama didalam pembuatan PCB, dimana tata letak
komponen harus dirancang terlebih dahulu agar nantinya komponen dapat dipasang
teratur dan rapi. Pengaturan tata letak komponen disesuaikan dengan bentuk dan
besar komponen serta hubungannya dalam rangkaian. Perencanaan tata letak
komponen dapat dibuat pada kertas milimeter agar mudah diketahui ukurannya dan
hubungan – hubungannya antara komponen agar tidak terjadi kekeliruan atau tidak
terjadi pertemuan antara satu jalur dengan jalur yang lainnya. Membuat jalur yang
menghubungkan antara komponen harus sependek mungkin dan penyusunan
komponen diusahakan serapi mungkin.

Universitas Sumatera Utara

23

2.13.2. Pembuatan Jalur PCB

Perencanaan jalur – jalur pada kertas milimeter sesuai dengan tata letak komponen,
hubungan dibuat sesingkat mungkin dan sedapat mungkin dihindari penggunaan
kabel penghubung. Jika perencanaan jalur – jalur sudah jadi maka rangkaian itu
digambar pada kertas transparan (kalkir). Jalur dibuat dengan spidol, ukuran spidol
disesuaikan dengan tebal jalur. Kertas transparan berguna sebagai klise dalam proses
untuk pembuatan PCB.

2.13.3 Proses Pembuatan PCB

Dalam proses pembuatan PCB ada beberapa langkah yang dapat dilakukan, hal
pertama yang dilakukan adalah lapisan tembaga dibersihkan dengan menggunakan
bahan pencuci sehingga permukaan bebas dari debu dan bahan lemak yang melekat.
Pola yang telah dibuat pada kertas dipindahkan kepermukaan PCB, jalurnya
digambar dengan menggunakan spidol atau letraset. Letraset adalah gambar tempel
yang dapat ditempelkan pada kertas atau PCB.

Bila penggunaan pola ini telah dianggap sempurna maka proses pembuatan ini
dapat dilanjutkan dengan menggunakan cairan kimia yang dapat melarutkan tembaga
yaitu FeClO3 (ferri klorit). Bahan kimia ini dapat diperoleh dari toko dalam bentuk
padat, proses pelarutan tembaga akan memerlukan waktu kira – kira 15 menit sampai
20 menit. FeClO3 ini dapat dilarutkan kedalam air panas, tapi harus diperhatikan

Universitas Sumatera Utara

24

bahwa larutan ini dapat menyebabkan korosi sehingga wadah yang digunakan harus
terbuat dari bahan non logam. PCB yang telah dipersiapkan dimasukkan kedalam
larutan dengan permukaan tembaganya menghadap keatas sampai lapisan tembaga
yang tidak tertutup spidol atau letraset larut dengan sempurna. Proses selanjutnya
adalah mencuci PCB ini dengan menggunakan air sampai PCB ini benar – benar
bersih kemudian dikeringkan. PCB yang telah dikeringkan dibor untuk pemasangan
komponen dengan menggunakan mata bor 0.8 sampai dengan 1 milimeter. Bila telah
selesai bersihkan serbuk – serbuk yang menempel pada papan PCB tersebut.

2.13.4 Pemasangan Komponen

Dalam pelapisan dan pemasangan komponen yang pertama sisi jalur PCB diamplas
untuk meyakinkan jalur tersebut benar – benar bersih, kemudian jalur PCB
dipoleskan dengan lotfet. Jalur yang telah dipoles lalu dilapisi dengan timah tipis
secara merata kemudian pemasangan komponen dapat dilakukan.

2.14 Resitor

Resistor komponen pasif elektronika yang berfungsi untuk membatasi arus listrik
yang mengalir. Berdasarkan kelasnya resistor dibagi menjadi 2 yaitu: Fixed Resistor
dan Variable Resistor dan umumnya terbuat dari carbon film atau metal film, tetapi
tidak menutup kemungkinan untuk dibuat dari material yang lain. Pada dasarnya

Universitas Sumatera Utara

25

semua bahan memiliki sifat resistif namun beberapa bahan tembaga perak emas dan
bahan metal umumnya memiliki resistansi yang sangat kecil. Bahan bahan tersebut
menghantar arus listrik dengan baik, sehingga dinamakan konduktor. Kebalikan dari
bahan yang konduktif, bahan material seperti karet, gelas, karbon memiliki resistansi
yang lebih besar menahan aliran elektron dan disebut sebagai insulator.

Universitas Sumatera Utara