38
64 BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat Alat monitoring cuaca berbasis Arduino dan ESP8266 ini merupakan alat dengan konsep IoT (Internet of Things). IoT jika diartikan secara umum “internet segala hal” maksud dari arti tersebut, IoT adalah sebuah konsep dimana suatu objek yang memiliki kemampuan mentransfer data melalui jaringan internet secara mandiri, tanpa memerlukan interaksi manusia ke manusia atau manusia ke komputer. Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas cahaya. Sensor sebagai alat pendeteksi berperan penting dalam mengubah besaran yang bersifat fisis seperti suhu, tekanan, berat, atau intensitas cahaya menjadi besaran listrik, tegangan listrik atau arus listrik. Beberapa sensor yang digunakan yaitu DHT11, BMP180, dan LDR. Arduino sebagai pusat pemrosesan, menerima data hasil pembacaan sensor kemudian mengolah data hasil pembacaan tersebut, setelah Arduino selesai mengkalkulasi data tersebut selanjutnya data akan diupload menggunakan modul wifi ESP8266 ke situs aplikasi IoT Thinkspeak untuk selanjutnya ditampilkan dalam bentuk grafik pada layar komputer atau smartphone/ponsel cerdas dengan mengakses sebuah channel/saluran yang telah dibuat terlebih dahulu. Thinkspeak merupakan aplikasi dan API untuk menyimpan dan mengambil data dari berbagai hal yang menggunakan protocol HTTP, pengguna hanya

BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

64

BAB III

PEMBAHASAN

3.1. Tinjauan Umum Alat

Alat monitoring cuaca berbasis Arduino dan ESP8266 ini merupakan alat

dengan konsep IoT (Internet of Things). IoT jika diartikan secara umum “internet

segala hal” maksud dari arti tersebut, IoT adalah sebuah konsep dimana suatu

objek yang memiliki kemampuan mentransfer data melalui jaringan internet

secara mandiri, tanpa memerlukan interaksi manusia ke manusia atau manusia ke

komputer.

Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti

suhu udara, tekanan udara, kelembaban udara, dan intensitas cahaya. Sensor

sebagai alat pendeteksi berperan penting dalam mengubah besaran yang bersifat

fisis seperti suhu, tekanan, berat, atau intensitas cahaya menjadi besaran listrik,

tegangan listrik atau arus listrik. Beberapa sensor yang digunakan yaitu DHT11,

BMP180, dan LDR. Arduino sebagai pusat pemrosesan, menerima data hasil

pembacaan sensor kemudian mengolah data hasil pembacaan tersebut, setelah

Arduino selesai mengkalkulasi data tersebut selanjutnya data akan diupload

menggunakan modul wifi ESP8266 ke situs aplikasi IoT Thinkspeak untuk

selanjutnya ditampilkan dalam bentuk grafik pada layar komputer atau

smartphone/ponsel cerdas dengan mengakses sebuah channel/saluran yang telah

dibuat terlebih dahulu.

Thinkspeak merupakan aplikasi dan API untuk menyimpan dan mengambil

data dari berbagai hal yang menggunakan protocol HTTP, pengguna hanya

Page 2: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

65 diwajibkan mendaftar serta menyetujui persetujuan penggunaan aplikasi

Thinkspeak.

Page 3: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

66 3.2. Blok Diagram Alat

Gambar Blok Diagram alat sebagai berikut:

Gambar III.1

Gambar Blok Diagram alat

INPUT

CATU DAYA

INPUT

SENSOR

INPUT

SENSOR LDR

INPUT

SENSOR BMP180

PROCESS

ARDUINO

ATMEGA328p

OUTPUT

MODUL

INTERNET INTERNET

LOGGING

COMPUTER / SMARTPHONE

IOT

THINGSPEAK

Page 4: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

67

Penjelasan blog diagram alat sebagai berikut:

1. Input

Komponen input ini merupakan komponen masukan yang akan diproses.

Komponen input ini terdiri dari:

a. Catu Daya merupakan masukan tegangan 8 Volt DC kedalam

rangkaian. Pada alat ini penulis menggunakan adaptor DC dengan

transformator 1A.

b. Sensor DHT11 berfungsi untuk mendeteksi kelembaban udara sekitar,

dengan rentang pengukuran 20-90%RH.

c. Sensor BMP180 berfungsi sebagai deteksi suhu dan tekanan udara

sekaligus, dengan rentang suhu opersional -40°C s/d +85°C dan

tekanan mulai dari 300 s/d 1100 hPa.

d. Sensor LDR (Light Dependent Resistor) bertindak sebagai pendeteksi

intensitas cahaya, untuk mendapatkan nilai dengan satuan intensitas

cahaya (LUX) diperlukan rumus tambahan.

2. Proses

Proses merupakan langkah utama yang berfungsi sebagai pengelola data

yang diterima dari masukan yang kemudian akan menghasilkan output.

Dalam proses ini penulis menggunakan Arduino dengan mikrokontroler

ATMega 328p.

Page 5: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

68

3. Output

Output merupakan keluaran dari semua proses yang telah dijalankan.

Output yang dihasilkan adalah Modul Wi-Fi ESP8266 berfungsi sebagai

gerbang output dimana data yang telah diproses oleh Arduino diunggah ke

situs IoT (Thinkspeak).

4. IoT

Internet of Thing merupakan sebuah konsep yang bertujuan untuk

memperluas manfaat dari konektivitas internet yang tersambung secara terus-

menerus. Adapun kemampuan seperti berbagi data, remote control, dan

sebagainya, termasuk juga pada benda di dunia nyata. Dalam hal ini

Thinkspeak bertindak sebagai platform Internet of Things yang dapat

digunakan secara gratis untuk menampilkan chart suatu peralatan IoT

5. Logging

Untuk dapat mengakses data yang telah diunggah ke situs IoT Thinkspeak,

diperlukan sebuah komputer atau smartphone (ponsel cerdas) yang terhubung

dengan internet. Langkah untuk bisa melihat tampilan data yang disajikan

situs IoT Thinkspeak adalah dengan cara masuk ke situs www.thinkspeak.com

lalu pilih menu channel, selanjutnya mencari keyword (kata kunci) yang telah

ditentukan untuk channel yang dituju.

Page 6: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

69 3.3. Skema Rangkaian

Gambar Rangkaian dari alat yang dibuat adalah sebagai berikut:

Gambar III.2

Skema rangkaian Arduino

Penjelasan Skema rangkaian sebagai berikut:

Rancangan ini adalah Arduino yang menggunakan mikrokontroler ATMega

328p sebagai pusat proses data dan rangkaian elektronika lain sebagai pendukung

sistem. Untuk mengaktifkan sistem, hubungkan sistem dengan catu daya 8VDC,

jika LED pada Arduino menyala maka alat tersebut siap digunakan, namun jika

LED pada Arduino mati maka periksa tegangan pada catu daya.

Pada sistem Arduino ini terdapat rangkaian converter USB ke Serial dengan

menggunakan IC FTDI FT232RL. Komponen ini berfungsi untuk pengisian

Page 7: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

70 program ke mikrokontroler ATMega 328p secara serial melalui komputer dengan

software Arduino IDE. Interface atau antar muka yang digunakan untuk

berkomunikasi dengan komputer adalah USB type B dimana sering dijumpai

penggunaannya pada mesin cetak atau printer. Dilengkapi dengan sekring

otomatis reset (resettable fuse) 500mA, untuk mengantisipasi terjadinya hubung

singkat di dalam sistem. Apabila terjadi hubung singkat maka arus yang masuk

akan terputus. Pin 2 USB (data min) terhubung ke pin 16 IC FT232RL dan pin 3

USB (data plus) terhubung ke pin 15 IC FT232RL. Pin 1 (VCC) dan pin 4 (GND)

USB dihubungkan secara seri dengan kapasitor 100nF untuk meredam noise yang

dihasilkan IC FT232RL.

Terdapat pula IC Op-Amp (LM358) yang berfungsi sebagai pemilih tegangan

otomatis. IC Op-Amp yang ditetapkan sebagai komparator akan memonitor

tegangan pada pin VIN (tegangan DC eksternal) dan jika berada di atas jumlah

minimum, akan mematikan sakelar MOSFET (AO3401) yang mengisolasi daya

USB dari papan Arduino. Jika kedua daya USB dan eksternal tersedia, sirkuit

menggunakan daya eksternal untuk menghidupkan papan Arduino melalui

regulator tegangan +5VDC bawaan yang dinyalakan melalui daya DC eksternal.

Pin 1 (TXD) IC FT232RL terhubung ke pin 2 (RXD) IC ATMega 328p

melalui resistor 1kΩ untuk membatasi arus yang masuk. Berlaku juga untuk pin 5

(RXD) IC FT232RL terhubung ke pin 3 (TXD) IC ATMega 328p melalui

Resistor 1kΩ untuk membatasi arus yang masuk. Dilengkapi dengan fitur auto-

reset (otomatis reset) untuk menghindari menekan tombol Reset secara terus

menerus saat akan dan sedang melakukan pengisian program. Fitur ini didapat

Page 8: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

71 dari pin 2 (DTR#) dan pin 3 (RST#) pada IC FT232RL dihubungkan dengan

kapasitor 100nF yang terhubung ke Reset IC ATMega 328p.

Pada bagian regulator tegangan menggunakan seri AMS1117 dimana menurut

datasheet dapat mensuplai arus hingga 1A. Hal ini penting karena modul Wi-Fi

ESP8266 membutuhkan arus yang cukup besar. ATMega 328p membutuhkan

suplai tegangan kerja (VCC) sebesar 5VDC dan akan bekerja pada frekuensi

oscillator yang dipakai. Mikrokontroler ini memiliki internal oscillator yang

dapat digunakan sebagai penghasil clock untuk menggerakkan CPU sebesar

8MHz. Pada sistem ini akan dipakai oscillator crystal eksternal dengan frekuensi

16MHz dan memakai dua buah kapasitor 22pF yang dihubungkan dengan pin 9

(XTAL1) dan pin 10 (XTAL2) IC ATMega 328p. Pemilihan kristal dengan

frekuensi ini dikarenakan sistem Arduino membutuhkan eksekusi program yang

cepat.

Arduino juga dilengkapi dengan konektor ICSP (In Circuit Sistem

Programming) melalui pin header male untuk mengatur fuse bit, mem-burning

bootloader, atau mengisi program menggunakan bantuan downloader AVR. Pin

yang terdapat pada konektor ICSP adalah MOSI, MISO, SCK, Reset, VCC, dan

GND.

Mikrokontroler ATMega 328p memiliki saluran reset aktif rendah (low)

sehingga reset ini harus dijaga agar tetap berada pada kondisi tinggi (high). Pin

RESET digunakan untuk me-reset program (mulai dari awal) dengan memberikan

sinyal low pada pin RESET. Namun digunakan sebuah resistor pull-up dengan

Page 9: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

72 nilai 10kΩ yang dihubungkan ke VCC agar pin RESET tidak berada pada kondisi

mengambang (floating) atau kondisi pin RESET berlogika 0 (low).

Tabel III.1

Tabel Penggunaan pin ATMega 328p

3.3.1. Papan Arduino Shield

Arduino Shield adalah papan susunan rangkaian yang dipasang langsung ke

pin-pin Arduino tanpa membutuhkan kabel tambahan, shield umumnya berbentuk

sama dengan papan Arduino itu sendiri. Penggunaan shield untuk penempatan

sensor DHT11, sensor BMP180, dan LDR sebagai input. Selanjutnya terdapat

modul Wi-Fi ESP8266 sebagai output untuk mengirim data ke internet. Dengan

memanfaatkan pin header female agar pemasangan menjadi lebih ringkas serta

menghilangkan penggunaan kabel. Kelebihan dari penggunaan shield juga dapat

menghindari kesalahan pemasangan sensor dan modul Wi-Fi, karena pada shield

terdapat marking (tanda) pemasangan.

Page 10: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

73

Komponen elektronik yang ada pada shield diantaranya; Resistor dengan nilai

4,7kΩ dihubungkan ke pin data pada sensor DHT11, Trimpot dengan nilai

maksimum 50kΩ dihubungkan ke pin LDR sebagai pembagi tegangan, dimana

fungsi ini digunakan untuk pembacaan intensitas cahaya satuan LUX. Fitur pada

shield ini juga cukup banyak selain sebagai tempat sensor dipasang, terdapat

indikator tegangan VDC berupa sebuah LED yang dirangkai seri dengan resistor

1kΩ. Adanya selector tegangan untuk memilih tegangan sumber 3.3VDC untuk

sensor dan modul Wi-Fi, pemilihan sumber tegangan yang diinginkan antara

sumber tegangan 3.3VDC langsung dari papan Arduino atau 3.3VDC yang

diregulasi oleh regulator AMS1117 dengan kapasitor elektrolit 470uF pada shield.

Jumper pin/pin penghubung pemilihan mode re-flash juga disediakan untuk

kemudahan dalam menulis firmware modul ESP8266. Serta terdapat pin hubung

pemilihan untuk memilih mode komunikasi I/O AT-COMMAND modul

ESP8266 melalui serial monitor pada Arduino IDE.

Page 11: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

74

Gambar III.3

Skema rangkaian Arduino Shield

Page 12: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

75

3.4. Cara Kerja Alat

Berikut ini adalah proses kerja alat secara keseluruhan.

1. Catu Daya

Gambar III.4

Skema Catu Daya

Catu daya berfungsi untuk menurunkan tegangan AC (bolak-balik) dan

menyearahkan ke tegangan DC (searah) sehingga tegangan tersebut dapat

menyalakan komponen elektronik dengan semestinya. Pada rangkaian catu

daya diberi tegangan AC 220 Volt yang didapat dari stop kontak listrik,

kemudian tegangan AC yang masih tinggi tersebut masuk ke lilitan primer

trafo (step down) menimbulkan fluks magnet yang idealnya semua

bersambung dengan lilitan sekunder, kemudian terjadi induksi

elektromagnetik yang menginduksi lilitan sekunder sehingga tegangan

listrik menjadi rendah. Tegangan listrik yang keluar dari trafo masih

berjenis AC, pada sistem ini digunakan keluaran 12V. Selanjutnya

tegangan AC 12V disearahkan oleh Dioda 1N4004, arus bergerak dari kaki

Page 13: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

76

Anoda menuju Katoda. Setelah melewati dioda tegangan masuk kedalam

kapasitor Elco, kapasitor ini berfungsi sebagai penyaring agar noise pada

tegangan bisa berkurang, kemudian tegangan masuk kedalam sebuah IC

Regulator 7809. Dalam IC ini terdapat tiga buah kaki. Kaki pertama

sebagai input tegangan dari dioda 12V. Kaki kedua atau yang terdapat di

tengah terhubung pada ground. Dan kaki yang ketiga sebagai output yang

menghasilkan tegangan 9V, prinsip kerja IC Regulator 7809 berfungsi

sebagai penurun tegangan, kemudian tegangan yang keluar dari kaki

regulator 7809 disaring kembali dengan kapasitor elco. Di dalam catu daya

terdapat LED untuk indikator bahwa catu daya bekerja dengan baik,

resistor yang terhubung dengan LED berfungsi untuk mengurangi arus

yang masuk ke kaki LED agar LED tidak rusak. Rangkaian Catu daya

memiliki tegangan keluaran sebesar 9VDC dan Ground.

2. Catu Daya Papan Arduino

Gambar III.5

Rangkaian Catu Daya Papan Arduino

Catu daya ini terdapat dalam papan Arduino. Tegangan keluaran dari

catu daya utama adalah 9VDC, untuk papan Arduino sendiri hanya

Page 14: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

77

membutuhkan tegangan sebesar 5VDC oleh karena itu diperlukan

regulator tegangan lagi pada papan Arduino dengan nilai tegangan output

sebesar 5 dan 3.3VDC. Pertama tegangan positif DC yang masuk melewati

Dioda untuk menghindari kesalahan polaritas tegangan, selanjutnya

menuju ke kapasitor untuk disaring lalu masuk ke regulator AMS1117.

Tegangan 5VDC merupakan tegangan kerja yang umum digunakan untuk

papan Arduino, IC FT232RL, dan mikrokontroler ATMega 328p.

Tegangan 3.3VDC untuk menyalakan komponen yang hanya

membutuhkan tegangan hanya 3.3V yaitu modul Wi-Fi ESP8266 dan

lainnya.

3. Arduino

Arduino adalah suatu board instrumen elektronika yang tersusun dari

perangkat-perangkat pendukung chip (mikrokontroler) yang akan

ditanamkan sebuah program di dalamnya. Pusat pemrosesan data pada

Arduino yang penulis buat menggunakan mikrokontroller ATMega328p.

Cara kerja Arduino pada alat ini adalah, mengolah segala masukan data

yang didapat dari beberapa sensor. Sensor ini berfungsi mengubah besaran

yang bersifat fisis menjadi tegangan, seperti cahaya, temperatur suhu,

tekanan udara, dan kelembaban udara. Selanjutnya diolah dengan program

yang telah disematkan pada mikrokontroler, kemudian menuju bagian

output (keluaran). Bagian output pada alat ini belum dapat menampilkan

data, karena data akan di-upload terlebih dahulu ke internet.

Page 15: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

78

4. Sensor BMP180

BMP180 adalah sensor untuk mengukur tekanan udara (Barometer)

dengan nilai output berupa satuan Pa (pascal). Dengan memanfaatkan

tekanan udara berdasar ketinggian terhadap permukaan laut, sensor ini

juga dapat mengukur ketinggian (Altimeter). BMP180 terdiri dari sensor

resistif piezo konverter analog ke digital dan unit kontrol dengan

EEPROM dan antarmuka serial I2C. BMP180 memberikan nilai tekanan

dan suhu yang tidak terkompensasi. EEPROM telah menyimpan 176 bit

data kalibrasi individu. Ini digunakan untuk mengimbangi penyeimbang

ketergantungan suhu dan parameter sensor lainnya.

5. Sensor DHT11

DHT11 adalah sensor yang dapat mengukur kelembaban udara

(humidity). Dalam sensor ini terdapat sebuah thermistor tipe NTC

(Negative Temperature Coefficient) untuk mengukur suhu, sebuah sensor

kelembaban tipe resistif dan sebuah mikrokontroller 8-bit yang mengolah

sensor tersebut dan mengirim hasilnya ke pin output dengan format single-

wire bi-directional (kabel tunggal dua arah).

6. Sensor LDR

LDR adalah komponen elektronik yang masuk dalam kategori resistor,

LDR memiliki nilai tahanan atau hambatannya sangat peka terhadap

intensitas cahaya. Semakin banyak cahaya yang mengenainya, maka

Page 16: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

79

semakin menurun nilai resitansinya. Sebaliknya, jika cahaya yang

mengenainya sedikit (gelap), maka nilai hambatannya menjadi semakin

besar, sehingga arus listrik yang mengalir akan terhambat

7. Modul WiFi ESP8266

ESP8266 adalah sebuah modul WiFi yang memiliki port serial UART

untuk berkomunikasi dengan kontroler lain. Berdasarkan pengaturan

pabrik, modul ini bekerja sebagai serial to WiFi. Artinya modul ini akan

mengkonversi input serial. Modul WiFi ESP8266 dilengkapi dengan

beberapa protokol TCP / IP terintegrasi yang dapat memberi akses

mikrokontroler ke jaringan WiFi. ESP8266 mampu meng-host aplikasi

atau mengeksplorasi semua fungsi jaringan WiFi dari prosesor aplikasi

lain. Setiap modul ESP8266 dapat diprogram dengan seperangkat perintah

AT (AT-COMMAND). Pada perancangan alat ini, modul ESP8266

digunakan untuk mengunggah (upload) data ke situs IoT Thinkspeak.

Page 17: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

80

Gambar III.6

Skema Rangkaian Arduino, Sensor, dan ESP8266 Pada Fritzing

Arduino beroperasi optimal pada tegangan 5VDC, setelah

mendapatkan tegangan masuk yang sesuai Arduino akan aktif yang

ditandai dengan menyalanya LED power. Arduino juga menyediakan

tegangan 3.3VDC dengan arus 1A untuk memberikan tegangan kerja ke

sensor DHT11, BMP180, dan ESP8266. Disamping itu terdapat regulator

tegangan 5VDC yang digunakan untuk memberi tegangan kerja LDR, IC

FT232RL, dan mikrokontroler ATMega 328p. Setelah semua komponen

elektronik mendapatkan tegangan kerja, selanjutnya Arduino akan

menginisialisasi sensor BMP180, dimana sensor ini digunakan untuk

membaca parameter suhu dan tekanan udara. Kemudian Arduino akan

Page 18: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

81

mendapatkan hasil pembacaan kelembaban udara dari sensor DHT11.

Selanjutnya Arduino akan membaca pin sensor LDR kemudian akan

dikalkulasikan menggunakan rumus yang ada pada program sehingga

menghasilkan nilai dengan satuan LUX. Setelah Arduino mendapatkan

hasil pembacaan semua sensor maka Arduino akan mengirimkan data

tersebut ke internet melewati modul Wi-Fi ESP8266. Namun sebelum itu

ESP8266 akan disetting melalui perintah-perintah AT-COMMAND yang

telah ditulis pada program melalui pin TX RX. Arduino akan me-Reset

ESP8266, selanjutnya merubah mode, menyambungkan ke Access Point,

dan mengirim data hasil pembacaan sensor yang telah didapat ke situs

Thinkspeak.

Page 19: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

82 3.5. Flowchart Program

Gambar III.7

Flowchart Kerja Alat

Page 20: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

83 3.6. Konstruksi Sistem (Coding)

Untuk dapat digunakan sesuai dengan fungsinya, alat ini membutuhkan suatu

program. Program yang dimaksud adalah perangkat lunak dimana sintaks dan

perintah-perintah di compile lalu ditulis ke mikrokontroler. Arduino IDE versi

1.8.2 adalah sebuah program berbasis bahasa C yang dapat menangani hal

tersebut, versi ini merupakan versi terbaru dengan fitur yang lengkap. Pada

Arduino suatu listing coding disebut dengan sketch. Untuk sketch alat ini

ditambahkan dengan bahasa AT-COMMAND agar alat dapat dikonfigurasi sesuai

yang diinginkan, namun perihal bahasa AT-COMMAND tidak akan dibahas

secara detail pada alat ini.

3.6.1. Inisialisasi

#include <SoftwareSerial.h>

#include <Wire.h>

#include <dht.h>

#include <Adafruit_BMP085.h>

#define DEBUG 0

#define dht_pin A0

#define ldr_pin A1

#define MAX_ADC_READING 1023

#define ADC_REF_VOLTAGE 5.0

#define REF_RESISTANCE 5030

#define LUX_CALC_SCALAR 12518931

#define LUX_CALC_EXPONENT -1.405

dht DHT;

Page 21: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

84

Adafruit_BMP085 bmp;

SoftwareSerial esp8266Module(10, 11);

String network = "redmi";

String password = "ojie1990";

#define IP "184.106.153.149"

String GET = "GET /update?key=0373ZPYWV2PLPBI1";

Penjelasan:

Sintaks yang diawali dengan #include merupakan inisialisasi pada Arduino

untuk pembacaan sensor. Dimulai dari #include <SoftwareSerial.h> merupakan

sebuah library bawaan Arduino IDE yang berfungsi untuk membuka fungsi serial

monitor. #include <Wire.h> adalah library untuk mengaktifkan fungsi I2C (Inter-

Integrated Circuit), yaitu library yang didedikasikan untuk menangani protokol

serial sinkron, dimana fungsi ini yang digunakan sensor BMP180 untuk

berkomunikasi dengan Arduino. #include <dht.h> sebuah library yang digunakan

untuk mengenali serta mengkalkulasi data dari sensor DHT11. #include

<Adafruit_BMP085.h> merupakan library yang berisi formula serta perhitungan

untuk sensor BMP180.

Selanjutnya sintaks yang diawali dengan #define fungsinya mendefinisikan

pin pada Arduino untuk penggunaan pin sensor. #define DEBUG 0 adalah fungsi

menganalisa jalannya program yang dapat dilihat pada serial monitor, untuk

mengaktifkannya dengan merubah angka 0 ke 1. #define dht_pin A0

mendefinisikan pin A0 pada Arduino untuk pembacaan data sensor DHT11.

Page 22: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

85 #define ldr_pin A1 mendefinisikan pin A1 pada Arduino untuk pembacaan nilai

dari LDR.

Kemudian ke baris formula untuk menghitung nilai mentah dari LDR

sehingga mendapatkan nilai akhir yang dapat digunakan bersama satuan LUX.

#define MAX_ADC_READING 1023 mendefinisi pembacaan maksimum nilai

Analog to Digital sebesar 1023. #define ADC_REF_VOLTAGE 5.0 mendefinisi

tegangan referensi untuk Analog to Digital sebesar 5VDC. #define

REF_RESISTANCE 5030 mendefinisi nilai tahanan yang dipakai pada rangkaian

LDR sebesar 5kΩ. #define LUX_CALC_SCALAR 12518931 merupakan definisi

untuk skala perhitungan nilai mentah LDR ke nilai satuan LUX. #define

LUX_CALC_EXPONENT -1.405 mendefinisi nilai eksponen pada kalkulasi nilai

satuan LUX.

Lalu penggantian nama variabel, dht DHT; untuk mempermudah penulisan

maka dht dirubah menjadi DHT;. Adafruit_BMP085 bmp; untuk mempersingkat

penulisan maka variabel tersebut diubah menjadi bmp;. SoftwareSerial

esp8266Module(10, 11); mendedikasikan pin D10 dan pin D11 sebagai jalur

komunikasi serial dengan ESP8266, dimana komunikasi serial yang dimaksud

berguna untuk eksekusi perintah AT-COMMAND dan upload data pengolahan

sensor ke internet.

Page 23: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

86

String network = "redmi";

String password = "ojie1990";

#define IP "184.106.153.149"

String GET = "GET /update?key=0373ZPYWV2PLPBI1";

Sintaks diatas merupakan variabel untuk digunakan dalam perintah AT-

COMMAND karena perintah tersebut hanya bisa membaca nilai dengan type

karakter, maka diubah dengan cara mengapit data dengan tanda petik (“ “). Seperti

pada String network = “redmi”; dan String password = “ojie1990”;. Selanjutnya

pendefinisian Internet Protocol dari web Thinkspeak pada #define IP

"184.106.153.149". Berikutnya nilai API Key channel Thinkspeak, dimana nilai

tersebut didapat setelah mendaftar dan membuat channel pada situs Thinkspeak.

Pada situs tersebut terdapat dua macam API Key, yaitu Write dan Read namun

yang digunakan pada alat ini adalah Write API Key dimana alat ini akan meng-

upload data ke channel tersebut.

if (DEBUG)

Serial.begin(9600);

esp8266Module.begin(9600);

if (!bmp.begin())

if (DEBUG)

Page 24: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

87

Serial.println("Tidak dapat menemukan sensor BMP180 yang valid, cek

pengkabelan!");

while (1)

delay(2000);

Setelah proses inisialisasi selanjutnya ke tahap setup. Serial.begin(9600); dan

esp8266Module.begin(9600); sintaks ini berfungsi menginisialisasi parameter

baudrate serial Arduino dan ESP8266 dengan frekuensi 9600kbps. if

(!bmp.begin()) fungsi ini akan memeriksa apakah sensor BMP180 telah terpasang

atau belum, jika pada proses ini tidak ditemukan sensor tersebut, maka program

akan stop.

3.6.2. Input

DHT.read11(dht_pin);

double dht_humidity = DHT.humidity;

double bmp_temp = bmp.readTemperature();

double bmp_pressure = bmp.readPressure() / 100.0;

int lightIntensity = analogRead(ldr_pin);

Setelah proses inisialisasi dan setup selesai selanjutnya adalah proses input,

dimana proses ini membaca setiap pin - pin sensor yang dipasang ke Arduino.

Selain proses pembacaan sensor, pada sintaks diatas menentukan tipe data yang

digunakan untuk nilai hasil pembacaan sensor. Seperti untuk sensor DHT11

Page 25: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

88 menggunakan tipe data ‘double’, BMP180 bmp_temp dan bmp_pressure

menggunakan tipe data ‘double’, lalu untuk LDR sensor menggunakan tipe data

‘int’.

3.6.3. Main Program

setupEsp8266();

DHT.read11(dht_pin);

double dht_humidity = DHT.humidity;

double bmp_temp = bmp.readTemperature();

double bmp_pressure = bmp.readPressure() / 100.0;

int lightIntensity = analogRead(ldr_pin);

float resistorVoltage, ldrVoltage;

float ldrResistance;

float ldrLux;

resistorVoltage = (float)lightIntensity / MAX_ADC_READING *

ADC_REF_VOLTAGE;

ldrVoltage = ADC_REF_VOLTAGE - resistorVoltage;

ldrResistance = ldrVoltage / resistorVoltage * REF_RESISTANCE;

ldrLux = LUX_CALC_SCALAR * pow(ldrResistance,

LUX_CALC_EXPONENT);

updateTemp(String(bmp_temp), String(ldrLux), String(bmp_pressure),

String(dht_humidity));

Page 26: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

89

Main program terdiri dari input dan proses penghitungan serta sejumlah

sintaks untuk mengunggah data pembacaan sensor ke internet. Dimulai dari

SetupESP8266(); fungsi ini akan me-reset lalu men-setup modul Wi-Fi ESP8266.

Selanjutnya pemberian tipe data pada variabel penghitungan nilai LDR ke satuan

LUX dimulai dari:

float resistorVoltage, ldrVoltage;

float ldrResistance;

float ldrLux;

Selanjutnya merupakan bagian rumus untuk mengubah nilai mentah yang

didapat dari LDR sehingga nilai yang telah diolah dapat menggunakan satuan

LUX, dimulai dari:

resistorVoltage = (float)lightIntensity / MAX_ADC_READING *

ADC_REF_VOLTAGE;

ldrVoltage = ADC_REF_VOLTAGE - resistorVoltage;

ldrResistance = ldrVoltage / resistorVoltage * REF_RESISTANCE;

ldrLux = LUX_CALC_SCALAR * pow(ldrResistance,

LUX_CALC_EXPONENT);

Bagian akhir dari Main Program berupa variabel yang akan digunakan untuk

mengunggah data hasil pembacaan sensor ke internet, dimulai dari:

updateTemp(String(bmp_temp), String(ldrLux), String(bmp_pressure),

String(dht_humidity));

Page 27: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

90 3.6.4. Output

Pada bagian output merupakan bagian akhir dari program sekaligus terdapat

perintah-perintah AT-COMMAND yang berguna untuk mengubah mode dan

berkomunikasi dengan modul Wi-Fi ESP8266. Berikut sintaks dari setup

ESP8266.

if(DEBUG)

Serial.println("Sedang me-Reset esp8266");

esp8266Module.flush();

esp8266Module.println(F("AT+RST"));

delay(5000);

if (esp8266Module.find("OK"))

if(DEBUG)

Serial.println("Ditemukan 'OK'");

Serial.println("Mengganti mode esp8266");

Page 28: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

91

esp8266Module.flush();

changingMode();

delay(3000);

esp8266Module.flush();

verifyMode();

delay(3000);

connectToWiFi();

else

if(DEBUG)

Serial.println("'OK' tidak ditemukan");

Page 29: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

92

Selanjutnya ke tahap sintaks penggantian mode ESP8266, pada ESP8266

terdapat tiga mode, yaitu:

1. MODE STA

2. MODE AP

3. MODE BOTH (STA & AP)

Penjelasan dari mode tersebut, Mode STA adalah dimana ESP8266 bertindak

sebagai Client atau pelanggan yang terhubung ke Access Point. Mode AP adalah

dimana modul ESP8266 bertindak sebagai Router Access Point yang dapat

diartikan setiap komputer ataupun perangkat jaringan lainnya dapat terhubung

dengan jaringan yang dibuat oleh modul ESP8266 tersebut. Mode BOTH

merupakan gabungan dari kedua mode yang telah disebutkan diatas, dapat

bertindak menjadi Access Point dan Client. Berikut adalah sintaks penggantian

mode ESP8266:

esp8266Module.println(F("AT+CWMODE=1"));

if (esp8266Module.find("OK"))

if(DEBUG)

Serial.println("Mode berhasil dirubah");

return true;

Page 30: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

93

Setelah pengantian mode dilakukan, program akan menjalankan perintah

untuk memverifikasi mode pada ESP8266, berguna untuk mengetahui apakah

langkah penggantian mode pada modul ESP8266 telah berhasil atau tidak, berikut

sintaksnya:

esp8266Module.println(F("AT+CWMODE=1"));

if (esp8266Module.find("no change"))

if(DEBUG)

Serial.println("Sudah dalam mode 1 (STA)");

return true;

else

if(DEBUG)

Serial.println("Error saat mengganti mode");

Page 31: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

94

return false;

Setelah penggantian dan verifikasi mode berhasil maka selanjutnya ke tahap

menghubungkan modul ESP8266 dengan Access Point atau jaringan internet

nirkabel, berikut sintaks dari tahap menghubungkan ke Access Point.

if(DEBUG)

Serial.println("Menyambungkan ke WiFi");

String cmd = F("AT+CWJAP=\"");

cmd += network;

cmd += F("\",\"");

cmd += password;

cmd += F("\"");

esp8266Module.println(cmd);

delay(8000);

if (esp8266Module.find("OK"))

if(DEBUG)

Page 32: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

95

Serial.println("Terhubung ke Access Point");

return true;

else

if(DEBUG)

Serial.println("Tidak dapat terhubung ke Access Point");

return false;

Bagian akhir dari coding output adalah sintaks untuk mengunggah data ke

situs IoT (Thinkspeak). Untuk melihat data berhasil dikirim atau tidak ke situs

Thinkspeak, dapat diketahui dengan membuka fungsi Serial Monitor pada

Arduino IDE. Berikut sintaksnya.

Page 33: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

96

void updateTemp(String voltage1,String voltage2,String voltage3,String

voltage4)

String cmd = "AT+CIPSTART=\"TCP\",\"";

cmd += IP;

cmd += "\",80";

esp8266Module.println(cmd);

delay(5000);

if(esp8266Module.find("Error"))

if(DEBUG)

Serial.println("ERROR saat MENGIRIM DATA");

return;

cmd = GET + "&field1=" + voltage1 + "&field2=" + voltage2 + "&field3=" +

voltage3 + "&field4=" + voltage4 + "\r\n";

esp8266Module.print("AT+CIPSEND=");

Page 34: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

97

esp8266Module.println(cmd.length());

delay(15000); //normal 15000

if(esp8266Module.find(">"))

esp8266Module.print(cmd);

if(DEBUG)

Serial.println("Data terkirim");

else

esp8266Module.println("AT+CIPCLOSE");

if(DEBUG)

Serial.println("Koneksi berakhir");

Page 35: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

98

3.7. Hasil Percobaan

Dalam percobaan yang penulis lakukan pada alat monitoring cuaca

berbasis Arduino dan ESP8266 didapat hasil sesuai yang diharapkan, berupa nilai

hasil pembacaan sensor dan proses kerja alat sesuai fungsinya. Hasil percobaan

terbagi menjadi tiga bagian, yaitu:

3.7.1. Hasil Percobaan Input

Untuk memahami hasil percobaan input penulis membuat sebuah tabel.

Dimana hasil percobaan input termasuk pengukuran pada tegangan kerja dan

konsumsi arus.

Tabel III.2

Tabel Hasil Pengukuran Tegangan Kerja

Dari tabel tersebut dapat diketahui bahwa Arduino dan sensor

mendapatkan tegangan kerja yang sesuai. Pengukuran tegangan kerja adalah

langkah penting agar alat dapat bekerja dengan optimal.

Tegangan Kerja & Rata-rata Konsumsi Arus

Arduino 5VDC Arduino 3.3VDC

ESP8266

Sensor DHT11

Sensor BMP180

Sensor LDR Arus

OK OK 3.3VDC 3.3VDC 3.3VDC 5VDC 0.05A - 0.45A

Page 36: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

99

Tabel III.3

Hasil Pembacaan Sensor

Hasil pembacaan sensor pada tabel menunjukkan alat bekerja sesuai yang

dengan perancangan. Dapat disimpulkan juga bahwa rangkaian input yang berupa

sensor dapat berfungsi dengan baik.

Data Pembacaan Sensor

Tanggal/Waktu Entry ID

Sensor BMP180 (Suhu)

Sensor LDR (Intensitas Cahaya)

Sensor BMP180 (Tekanan)

Sensor DHT11

(Kelembaban) 2017-07-14 21:32:40 1 31.6 29.41 1007.12 55 2017-07-14 21:35:43 2 31.6 49.08 1007.08 55 2017-07-14 21:36:41 3 31.6 29.78 1007.11 55 2017-07-14 21:37:38 4 31.4 32.25 1006.98 55 2017-07-14 21:46:15 13 31.5 21.29 1006.95 55 2017-08-02 09:38:05 14 28.4 83.54 1004.63 49 2017-08-02 09:39:43 15 28.5 72.82 1004.64 47 2017-08-02 09:40:40 16 28.4 79.95 1004.6 47 2017-08-02 09:41:38 17 28.2 80.84 1004.57 46 2017-08-02 09:43:47 18 28.2 70.46 1004.47 46

Page 37: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

100 3.7.2. Hasil percobaan Output

Selanjutnya akan dijelaskan hasil percobaan output, terdapat gambar untuk

memudahkan dalam memahami bagian output.

Sumber: https://thingspeak.com/channels/287763

Gambar III.8

Tampilan Pada Situs IoT Thinkspeak

Bagian output berfungsi sesuai dengan rancangan, data yang telah

melewati proses berhasil diunggah oleh modul WiFi ESP8266 ke situs IoT

Thinkspeak.

Page 38: BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat€¦ · Cara kerja dari alat ini adalah membaca kondisi lingkungan sekitar seperti suhu udara, tekanan udara, kelembaban udara, dan intensitas

101 3.7.3. Hasil percobaan Keseluruhan

Dalam percobaan yang penulis lakukan tentang penggunaan alat

monitoring cuaca berbasis Arduino dan ESP8266, menghasilkan percobaan yang

bagus. Baik dari cara kerja alat maupun hasil pembacaan sensor-sensor.

Penempatan komponen elektronik yang digunakan juga didesain sedemikian rupa

agar mudah dalam pemasangan.

Gambar III.9

Tata Letak Sensor dan Shield