Anda di halaman 1dari 66

MANUAL BOOK 2018

RANCANG BANGUN ALAT MONITORING


KUALITAS UDARA (PM 2,5 DAN NOx)
OTOMATIS BERBASIS IoT

Disusun oleh:
1. Amar Fajri Daapala
2. Farah Salsabila A
3. M. Fariz Arief F.
4. M. Nur Huda
5. Musyafa Muhammad SEKOLAH TINGGI METEOROLOGI KLIMATOLOGI
DAN GEOFISIKA
6. Rizka Shafri Yulianti
TANGERANG SELATAN
KATA PENGANTAR

Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa karena atas berkat
dan rahmat-Nya, kami dapat menyelesaikan proses pembuatan manual book / buku
panduan ini untuk melengkapi pembuatan Rancang Bangun Alat Monitoring
Kualitas Udara (PM2,5 dan NOx) berbasis IoT sebagai bentuk pertanggungjawaban
kami dalam menyelesaikan tugas yang diberikan oleh dosen.
Ucapan terima kasih juga kami sampaikan kepada Bapak Lukman Hakim
selaku dosen mata kuliah Mikrokontroler yang telah memberikan kami kesempatan
dan kepercayaan kepada kami dalam mempresentasikan dan membuat rangkaian
alat ini, serta teman-teman Instrumentasi 5B yang telah memberikan dukungan
penuh bagi kami selama proses menyelesaikan buku panduan.
Besar harapan kami selaku penulis, dengan adanya buku panduan ini dapat
memberikan pengetahuan tambahan mengenai “Rancang Bangun Alat
Monitoring Kualitas Udara (PM2,5 dan NOx) berbasis IoT” untuk kami pribadi,
maupun bagi Taruna/i STMKG dan bagi siapapun yang membacanya.

Tangerang Selatan, 16
Desember 2018

Penulis

i
DAFTAR ISI
KATA PENGANTAR ............................................................................................. i
DAFTAR ISI ........................................................................................................... ii
I. TUJUAN PEMBELAJARAN ..................................................................... 1
II. LANDASAN TEORI .................................................................................... 1
1. Mikrokontroler ............................................................................................1
2. Sensor MQ-135 ............................................................................................2
3. Sensor GP2Y1010AU0F..............................................................................5
4. NodeMCU ....................................................................................................7
5. IC 4051 .........................................................................................................7
6. USB ASP ......................................................................................................8
7. Nilai Ambang Batas ..................................................................................10
III. ALAT DAN BAHAN ALAT ..................................................................... 11
1. Alat .............................................................................................................11
2. Bahan..........................................................................................................11
3. Software .....................................................................................................11
a. Ide Arduino ............................................................................................. 11
b. Node Red ................................................................................................. 16
c. Fritzing .................................................................................................... 18
IV. PROSEDUR PEMBUATAN ALAT ......................................................... 21
1. Perancangan alat .......................................................................................21
2. Pembuatan Rangkaian..............................................................................23
3. Perancangan Program ..............................................................................25
4. Perancangan IoT (Internet of Things) ....................................................33
5. Pengunggahan program ...........................................................................60
6. Pengujian Data ..........................................................................................60
7. Diseminasi Data .........................................................................................61
DAFTAR PUSTAKA

ii
BUKU PANDUAN

RANCANG BANGUN ALAT MONITORING KUALITAS UDARA (PM2,5 DAN NOx)


BERBASIS IoT

I. TUJUAN PEMBELAJARAN
1. Taruna/i diharapkan mampu memahami prinsip kerja alat monitoring kualitas udara
berbasis IoT dan mengimplementasikannya ke dalam suatu sistem mikrokontroler.
2. Taruna/i mampu mempelajari dan merangkai suatu rangkaian elektronika.
3. Taruna/i mampu membuat sistem rangkaian berbasis mikrokontroler menggunakan
software ArduinoIDE.
4. Taruna/i mampu membuat tampilan antarmuka dari suatu rangkaian menggunakan
NodeRED.

II. LANDASAN TEORI


1. Mikrokontroler
Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu chip. Mikrokontroler
lebih dari sekedar sebuah mikroprosesor karena sudah terdapat atau berisikan ROM (Read-Only
Memory), RAM (Read-Write Memory), beberapa port masukan maupun keluaran, dan
beberapa peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC
(Digital to Analog converter) dan serial komunikasi. Salah satu mikrokontroler yang banyak
digunakan saat ini yaitu mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce
Instuction Set Compute) 8 bit berdasarkan arsitektur Harvard. Secara umum mikrokontroler
AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega dan
ATtiny. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral,
dan fiturnya Seperti mikroprosesor pada umumnya, secara internal mikrokontroler ATMega16
terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register
kerja, register dan dekoder instruksi, dan pewaktu serta komponen kendali lainnya. Berbeda
dengan mikroprosesor, mikrokontroler menyediakan memori dalam chip yang sama dengen
prosesornya (in chip).
2. Sensor MQ-135
MQ-135 Air Quality Sensor adalah sensor yang memonitor kualitas udara untuk
mendeteksi gas amonia (NH3), natrium-(di)oksida (NOx), alkohol / ethanol (C2H5OH),
benzena (C6H6), karbondioksida (CO2), gas belerang / sulfur-hidroksida (H2S) dan asap / gas-
gas lainnya di udara. Sensor ini melaporkan hasil deteksi kualitas udara berupa perubahan nilai
resistensi analog di pin keluarannya. Pin keluaran ini bisa disambungkan dengan pin 6 ADC
(analog-to-digital converter) di mikrokontroler / pin analog input Arduino dengan
menambahkan satu buah resistor saja (berfungsi sebagai pembagi tegangan / voltage divider).

Gambar Sensor Gas MQ-135

Spesifikasi Sensor MQ-135 :

1. Sumber catu daya menggunakan tegangan 5 Volt.


2. Menggunakan ADC dengan resolusi 10 bit.
3. Tersedia 1 jalur output kendali ON/OFF.
4. Pin Input/Output kompatibel dengan level tegangan TTL dan CMOS.
5. Dilengkapi dengan antarmuka UART TTL dan I2C.
6. Signal instruksi indikator output;
7. Output Ganda sinyal (output analog, dan output tingkat TTL);
8. TTL output sinyal yang valid rendah; (output sinyal cahaya rendah, yang dapat
diakses mikrokontroler IO port)
9. Analog Output dengan meningkatnya konsentrasi, semakin tinggi konsentrasi,
semakin tinggi tegangan;
10. Memiliki umur panjang dan stabilitas handal;
11. Karakteristik pemulihan respon cepat.

2
Konektor dan Pengaturan Jumper

Tabel Konektor dan Pengaturan Jumper

Pin Nama Fungsi

1 GND Titik referensi untuk catu daya input

2 VCC Terhubung ke catu daya (5 V)

3 RX TTL Input serial level TTL ke modul Sensor

4 TX Output serial level TTL ke modul Sensor

5 SDA I2C-bus data input / output


6 SCL I2C-bus clock input

Prinsip Kerja Sensor Gas MQ-135

Pada modul sensor gas MQ-135 terdapat 2 buah LED indikator yaitu LED indikator
merah dan LED indikator hijau. Pada saat power-up, LED merah akan berkedip sesuai
dengan alamat I2C modul. Jika alamat I2C adalah 0xE0 maka LED indikator akan berkedip
1 kali. Jika alamat I2C adalah 0xE2 maka LED indikator akan berkedip 2 kali. Jika alamat
I2C adalah 0xE4 maka LED indikator akan berkedip 3 kali dan demikian seterusnya sampai
alamat I2C 0xEE maka LED indikator akan berkedip 8 kali.

Pada saat power-up, LED hijau akan berkedip dengan cepat sampai kondisi pemanasan
sensor dan hasil pembacaan sensor sudah stabil. Waktu yang diperlukan untuk mencapai
kondisi stabil berbeda-beda untuk tiap sensor yang digunakan tergantung pada kecepatan
respon sensor dan kondisi heater pada sensor. Jika kondisi stabil sudah tercapai, maka LED
hijau akan menyala tanpa berkedip. Pada kondisi operasi normal (setelah kondisi power-up),
LED merah akan menyala atau padam sesuai dengan hasil pembacaan sensor dan mode
operasi yang dipilih. Sedangkan selama hasil pembacaan sensor stabil, LED hijau akan tetap
menyala dan hanya berkedip pelan (tiap 1 detik) jika ada perubahan konsentrasi gas.

Modul sensor juga memiliki 1 pin output open collector yang status logikanya akan
berubah-ubah, sesuai dengan hasil pembacaan sensor gas dan batas atas serta batas bawah
3
yang telah ditentukan. Pin output ini dapat dihubungkan dengan aktuator (exhaust atau
alarm) sehingga modul ini dapat berfungsi sebagai pemonitor konsentrasi gas secara mandiri.
Modul ini akan membaca nilai konsentrasi gas secara otomatis, membandingkan dengan
batas-batas nilai yang telah diatur dan kemudian mengubah status logika pin output kendali
ON/OFF sesuai dengan mode operasi yang digunakan.

Ada 2 mode operasi yang dapat tersedia, yaitu mode operasi Hysterisis :

1. Jika nilai sensor hasil konversi ADC lebih kecil dari pada batas bawah, maka pin output
akan Off (Transistor Open Collector berada pada keadaan Cut-off dan LED indikator
merah tidak menyala).

2. Jika nilai sensor hasil konversi ADC lebih besar dari pada batas atas, maka pin output
akan On (Transistor Open Collector berada pada keadaan Saturasi dan LED indikator
merah menyala).

3. Jika nilai sensor hasil konversi ADC sama dengan atau berada di antara batas atas dan
batas bawah, maka logika pin output tidak berubah (jika sebelumnya Off, maka akan tetap
Off atau jika sebelumnya On akan tetap On).

Pada mode operasi Window:

1. Jika nilai sensor hasil konversi ADC lebih kecil dari pada batas bawah, maka pin output
akan On (Transistor Open Collector berada pada keadaan Saturasi dan LED indikator
merah menyala).
2. Jika nilai sensor hasil konversi ADC lebih besar dari pada batas atas, maka pin output
akan On (Transistor Open Collector berada pada keadaan Saturasi dan LED indikator
merah menyala).
3. Jika nilai sensor hasil konversi ADC sama dengan atau berada di antara batas atas dan
batas bawah, maka logika pin output akan Off (Transistor Open Collector berada pada
keadaan Cut-off dan LED indikator merah tidak menyala).

Jika sumber nilai batas yang dipilih adalah menggunakan variabel resistor pada modul
sensor, maka mode operasi yang bisa berlaku hanya mode operasi Hysterisis. Nilai variabel

4
resistor akan digunakan sebagai nilai batas atas. Sedangkan nilai batas bawah akan selalu
bernilai 50 poin di bawah nilai batas atas. Jika sumber nilai batas yang dipilih adalah
menggunakan nilai yang tersimpan pada EEPROM modul sensor, maka mode operasi yang
bisa berlaku adalah mode operasi Hysterisis dan modeoperasi Window. Nilai batas atas, nilai
batas bawah, dan mode operasi, dapat diatur melalui antarmuka UART TTL atau I2C dengan
menggunakan bahasa pemrograman.

Berikut ini ilustrasi cara kerja kendali ON/OFF menggunakan modul sensor gas dengan
nilai batas atas sebesar 450 dan nilai batas bawah sebesar 350.

Gambar Cara Kerja Kendali ON/OFF Sensor Gas

3. Sensor GP2Y1010AU0F

GP2Y1010AU0F Optical Dust Sensor ialah sensor debu yang berbasis inframerah. Sensor
ini sangat efektif dalam mendeteksi partikel yang sangat halus seperti debu atau asap rokok,
dan umumnya digunakan dalam sistem pembersih udara.

Gambar 2.1. GP2Y1010AU0F Optical Dust Sensor

Prinsip kerja dari sensor ini ialah dengan mendeteksi debu ataupun partikel yang lain
kemudian akan di pantulkan cahaya ke bagian penerima.

5
Gambar 2.2: (a). Internal Schematic (b) Outline Dimensions 1

Cahaya dicerminkan pada partikel melewati keseluruhan permukaan, kemudian oleh


photodiode diubah menjadi tegangan. Tegangan harus diperkuat untuk dapat membaca
perubahan. Output dari sensor adalah tegangan analog sebanding dengan kepadatan debu
yang terukur, dengan sensitivitas 0.5V/0.1 mg/m3.

Spesifikasi dari GP2Y1010AU0F Optical Dust Sensor :

• Berbasis Inframerah

• Output tegangan : analog, semakin tinggi intensitas debu semakin tinggi nilai tegangan
output

• Sensitivitas : 0,5/01.mg/m3

• Suplai tegangan: 5-7 V

6
• Suhu operasi : -10-65 derajat Celcius
• Konsumsi saat ini: 20mA max

4. NodeMCU

NodeMCU adalah open source IoT platform. NodeMCU termasuk firmware yang berjalan
pada ESP8266 Wi-Fi SoC dari Espressif Systems, dan perangkat keras yang didasarkan pada
modul ESP-12. Istilah "NodeMCU" secara default mengacu pada firmware daripada DevKit.
Firmware menggunakan bahasa scripting Lua. Ini didasarkan pada proyek eLua, dan dibangun
di atas Espressif Non-OS SDK untuk ESP8266. Hal tersebut menggunakan banyak project open
source terbuka, seperti lua-cjson, dan spiff.

5. IC 4051
IC 4051 merupakan sebuah IC yang dapat bertindak baik sebagai Multiplekser maupun
Demultiplekser. Jenis IC ini memiliki 8 analog (otomatis dapat bertindak sebagai digital)
channel. Jika digunakan sebagai multiplekser, IC ini dapat memilih satu dari delapan
input. Sebaliknya, jika digunakan sebagai demultiplekser, kita dapat memilih 8 ouput dari
sebuah input.

Gambar 4. IC 4051

7
Pada kasus dimana kita kekurangan pin ADC (misalnya menggunakan ESP8266 yang hanya
memiliki sebuah ADC), maka kita dapat memanfaatkan IC ini sebagai multiplekser dengan
input maksimal 8 channel. Jika Input lebih dari 8, maka kita bisa menggunakan IC jenis lain,
misalnya 74HC4067 yang memiliki 16-channel. Konfigurasi dari pin IC 4051 diperlihatkan
seperti pada Gambar.

Gambar Konfigurasi Pin IC 4051

Jika digunakan sebagai multiplekser, skematik untuk mempermudah pemahaman dalam


menggunakan IC 4051 diperlihatkan seperti pada Gambar 6.

Gambar 6. Input/Output IC 4051 sebagai Multiplekser

6. USB ASP
USB ASP adalah salah satu downloader yang support untuk atmel mikrokontroller dan
yang pada penggunaannya memakai jalur komunikasi melalui port usb. Dahulu kala pada era
tahun 2000 ke bawah (era 90’an) proses mendownload suatu program (firmware) ke
mikrokontroller masih menggunakan / melalui port parallel (DB25) tepatnya yang biasa
digunakan untuk mesin printer pada era tersebut.Tapi seiring berjalannya waktu kalau kita
amati memasuki tahun ke tahun perkembangan teknologi komputer semakin maju dan pesat,
tentunya dalam hal kecanggihan yang semakin hebat. Hampir segala kebutuhan kita terhadap
komputer dibuat semudah / sesimple mungkin. Salah satu contoh kecilnya misalnya proses
akses yaitu mengirim, menyalin, menyimpan data, dsb. Itu semua sudah bisa kita akses melalui

8
jalur komunikasi yang sifatnya universal atau yang biasa kita kenal dengan port usb yang
dimensinya kita lihat cukup kecil.
Pada mesin printer sekarang pun aksesnya sudah tidak melaui port parallel lagi tetapi
sudah melalui port usb. Perkembangan mesin printer akses melalui port usb dikarenakan
pengaruh pada produksi komputer saat ini. Artinya coba saja kita perhatikan produk
komputer/leptop keluaran sekarang, kita sudah tidak melihat lagi port parallel dan bahkan port
serial (DB9) pun menyusul juga ketiadaannya. Dikarenakan mungkin hampir semua akses ke
komputer cukup hanya melalui port usb yang sifatnya sangat universal.
Jadi karena komputer / lAPtop keluaran sekarang sudah tidak ada lagi port parallel nya,
akhirnya untuk menyesuaikan perkembangan komputer saat ini para tenaga ahli di bidang
mikrokontroller mendesign / membuat suatu downloader yang bisa digunakan melaui port usb.
Dan akhirnya sekarang sudah cukup banyak bermunculan jenis-jenis downloader avr usb. Salah
satu yang terkenal dari beberapa downloader avr usb adalah USBasp.

Gambar 3. USBasp

USBasp ini adalah salah satu jenis downloader yang sifatnya open source dari pembuatnya,
jadi user dapat membuatnya sendiri, bagi teman-teman yang tidak ingin repot, teman-teman
dapat membeli produk USBasp ataupun jenis lainnya yang sudah jadi di pasaran.
Salah satu software pendukung adalah Khazama programmer karena size softwarenya
kecil, penggunaannya pun simple dan mudah.

Fitur
• Kompatibel dengan OS windows (2k/XP/vista/seven)
• Tidak memerlukan pengontrol atau komponen smd khusus
• Kecepatan pemrograman bias mencapai 5kByte/detik
• Terdapat jumper untuk opsi slow SCK untuk mendukung mikrokontroler target yang
berkecepatan rendah (< 1.5 MHz)

9
• Tidak memerlukan tegangan external karena sudah mengambil tegangan dari
computer melalui port usb
• Terdapat jumper tegangan untuk mikrokontroller target bila ingin mengambil
tegangan dari port usb, bila mikrokontroller target ingin menggunakan tegangan
external lepas jumpernya.

7. Nilai Ambang Batas


- PM 2,5

- NOx

10
III. ALAT DAN BAHAN ALAT
1. Alat
a. Jumper
b. Solder
c. Projectborad
d. Timah

2. Bahan
a. Sensor MQ-135
b. Sensor GP2Y1010AU0F
c. NodeMCU ESP8266 Wi-Fi SoC
d. IC 4051

3. Software
a. Ide Arduino
- Download File Arduino
Software IDE Arduino dapat di download di
https://www.arduino.cc/en/Main/Software pilih Windows Installer paling atas

11
kemudian akan tampil pilihan Download, Just Download atau Contribute dan
Download.

- Persetujuan Instalasi Software IDE Arduino


License Agreement atau PersetujuanInstalasi, klik tombol I Agree untuk memulai
install software

- Pilihan Opsi Instalasi


Untuk Installation Option pilih semua option dan kliktombol Next

12
- Pilih Folder
Installation Folder atauPilihan Folder untukmemilih folder tempatmenyimpan
program arduino dan kliktombol install untukmemulai proses instalasi software

-Proses Extract dan Instalasi di mulai

Proses instalasi di mulai,program di extract ke Windows

13
-Install USB Driver

saat proses instalasi sedang berlangsung akan muncul pilihan untuk install driver, pilih
tombol instal, proses ini untuk mengenali dan melakukan komunikasi dengan board arduino
melalui port USB

- Proses Instalasi Selesai

14
- Start Software IDE Arduino

Proses instalasi Software Arduino sudahselesaiterinstal di windows.Cek di Desktop Windows


atau Start Menu untukmenjalankan Software IDE Arduino.DoubleKlik icon Arduino di desktop
atauklik di Start Menu

- Jendela Software IDE Arduino

15
b. Node Red
1. Instal Node.js
Penginstal yang disarankan ada di beranda Node.js, dan unduhan lain tersedia di laman
unduhan mereka.Node SNAP PAC kami membutuhkan Node.js versi 4.4.5 atau yang
lebih baru, jadi dapatkan versi stabil saat ini. Untuk Windows, ini adalah penginstal
biasa yang Anda unduh dan jalankan. Untuk Linux, Node.js tersedia melalui banyak
manajer paket. Misalnya, instruksi untuk sistem berbasis Debian seperti Ubuntu dan
Raspbian Raspberry Pi di sini. Ada juga berbagai unduhan biner yang tersedia. Setelah
Node.js diinstal, Anda harus memverifikasi bahwa versinya adalah 4.4.5 atau yang lebih
baru. Buka prompt perintah atau jendela terminal, dan masukkan:

Anda harus mendapatkan respons seperti:

16
2. Install Node Red
Seperti paket Node-RED, Node.js diinstal dengan alat baris perintah npm. Npm adalah
Node Package Manager, dan biasanya digunakan untuk mengunduh dan menginstal
paket dari registry Node pusat di npmjs.com.
Di Windows, dari prompt-perintah, ketik:

Di Linux, darijendela terminal, ketik:

Diperlukan waktu beberapa saat. Alat npm akan mulai menginstal Node-RED dan
semua dependensinya. Di sepanjangjalan, Anda mungkin akan melihat beberapa
kesalahan seperti ini:

Kesalahan itu dapat diabaikan. Situs web Node-RED mengatakan bahwa itu adalah
dependensi opsional, dan bahwa "Node-RED akan bekerja tanpa dependensi opsional
ini".

3. Run Node Red


Sekarang jalankan Node-RED dengan:

17
Akan muncul :

Buka browser web Anda kealamat yang ditampilkan (misalnya, http://127.0.0.1:1880)


dan Anda akanmelihatlayar Node-RED default:

c. Fritzing
1. Download fritzing di http://fritzing.org/download/
2. Klik no donation, jikaingin gratis
3. Klik download

18
4. Pilih folder, save.
5. Buka folder

6. Klik “Fritzing”

7. Akan muncul tampilan :

19
8. Pilih breadboard untuk mulai merakit

20
IV. PROSEDUR PEMBUATAN ALAT

1. Perancangan alat
Sebelum melakukan perangkaian, kita perlu terlebih dahulu menggambar rangkaian alat
yang akan kita buat. Penggambaran dapat dilakukan di dalam aplikasi Fritzing.
1. Tampilan Pada Fritzing

Konfigurasi Pin Yang Digunakan

MQ - RES- CAP-
NodeMCU GP2Y 4051 LCD RTC
135 150R 22µF
V0
A0 A0 [3] Z SCL SCLK 1 +
(Hitam)
VCC [6]
D1 VCC SDA SQW 2 -
(Merah) INH
LED [7]
D2 GND VCC VCC
(Hijau) VEE
Pin V-LED [8]
D3 GND GND
(Putih) GND
LED-
D5 GND [9] C
(Biru)
S-GND
D6 [10] B
(Kuning)

21
D7 [11] A
[13]
Vin (5V)
X0
[14]
GND
X1
[16]
VCC

• NodeMCU (A0) – 4051 ([3])


• NodeMCU (D1) – LCD (SCL)

– RTC (SCLK)

• NodeMCU (D2) – LCD (SDA)

– RTC (SQW)

• NodeMCU (D3) – GP2Y (LED)


• NodeMCU (D5) – 4051 ([11])
• NodeMCU (D6) – 4051 ([10])
• NodeMCU (D7) – 4051 ([9])
• NodeMCU (Vin) – MQ-135 (VCC)

- GP2Y (VCC)

- 4051 ([16])

- RES-150R (1)

- LCD (VCC)

- RTC (VCC)

• NodeMCU (GND) – MQ-135 (GND)

- GP2Y (S-GND)

- GP2Y (LED-GND)

- 4051 ([6])

- 4051 ([7])

22
- 4051 ([8])

- CAP-22µF (+)

- LCD (GND)

- RTC (GND)

• RES-150R (2) - CAP-22µF (-)

2. Pembuatan Rangkaian
Setelah gambar dirangkai pada fritzing, pada tahap pembuatan rangkaian ini yang
dilakukan adalah mempersiapkan komponen yang yang akan digunakan seperti, Sensor MQ-
135, Sensor GP2Y1010AU0F, NodeMCU ESP8266 Wi-Fi SoC, IC 4051, RTC (Real Time
Counter), dan beberapa kabel. Sensor GP2Y1010AU0F dilengkapi dengan kapasitor 220µF dan
resistor 150Ω serta didukung oleh motor DC yang berfungsi untuk menyerap udara ambien
masuk ke sensor.
Pada sistem ini menggunakan sumber tegangan menggunakan USB yang disambungkan
dengan power bank atau adaptor. Untuk input tengangan sensor GP2Y1010AU0F dan MQ1235
masing-masing sebesar 5Volt melalui pin VUSB. Sensor dihubungkan pada pin

23
24
3. Perancangan Program
Perancangan program sistem monitoring debu dan gas ini terdiri dari beberapa tahapan.
Proses pertama adalah pembuatan flowchart, kemudian program dibuat menggunakan Arduino
IDE menggunakan Bahasa C dan program inilah yang akan menjalankan perintah-perintah pada
sistem dan alat. Kemudian program yang telah di upload ke NodeMCU menggunakan Arduino
IDE akan dihubungkan ke Node-RED untuk menampilkan informasi monitoring kualitas udara
otomatis pada smartphone.

Flowchart

Pada saat program pertama kali dijalankan, sensor akan mensensing udara, kemudian data
dikumpulkan di broker. Node-Red mengambil data dari broker lalu ditampilkan pada interface.
Ketika polusi PM 2,5 dan gas melebihi batas normal, maka akan muncul peringatan berupa
sirine pada smartphone dan PC yang telah terhubung ke http://103.60.180.22:1880/ui. Sistem
ini juga dilengkapi dengan real time counter yang berfungsi untuk menunjukkan waktu real
time. Karena sistem ini merupakan sistem monitoring kualitas udara otomatis secara real time.
Setelah program berhasil dijalankan, diup sehingga menghasilkan display, kemudian dirancang
interfacenya pada Node-red

25
Program

Menambahkan library yang diperlukan yaitu ESP8266 untuk NodeMCU dan PubSubClient
agar mikrokontroler dapat dijadikan MQTT Client.

Kodingan untuk Client Wi-fi untuk terhubung dengan Wi-Fi yang tersedia serta membuat
client PubSub menggunakan Client Wi-Fi

Deklarasi awal variabel

26
Membuat kodingan agar kita dapat memonitoring status koneksi Wi-Fi

27
Fungsi callback yang akan tereksekusi apabila MQTT telah terhubung

Fungsi nodeMCU melakukan reconnect apabila koneksi terputus dan kodingan MQTT Client
Publisher agar keluaran sensor dikirim ke MQTT Broker untuk MQTT Subscriber

28
Fungsi ini berfungsi sebagai setup Wi-fi, MQTT,pin Sensor MQ135 dan pin sensor
GP2Y100AUF

Fungsi loop untuk melakukan reconnect

Fungsi pembacaan output sensor

29
Fungsi pengolahan data analog sensor menjadi nilai output sebenarnya serta untuk fungsi
print di serial Arduino IDE

30
Fungsi publish output sensor ke MQTT broker server

Fungsi pemilihan output multiplexer untuk sensor MQ135 dan GP2Y1010AUF

31
32
4. Perancangan IoT (Internet of Things)
Sistem IOT yang digunakan pada sistem ini menggunakan NodeRed. NodeRed sendiri
adalah sebuah sistem berbasis web yang dibangun menggunakan bahasa Java dan NodeJs. Di
dalam NodeRed sendiri komponen-komponen IOT disimbolkan dengan node. Komponen IOT
yang digunakan meliputi MQ Telemetry Transport (MQTT) sebagai protokol komunikasi,
sistem dashboard menggunakan NodeRed-Dashboard untuk membangun sistem UI yang
menampilkan hasil pembacaan data, serta API twitter yang digunakan untuk diseminasi hasil
pembacaan sensor melalui twitter.
NodeRed sendiri dideploy melalui sebuah server ubuntu 16.04 yang memiliki IP public
sehingga dapat diakses dari internet secara langsung melalui sebuah IP Public. Teknik yang
digunakan untuk menginstalasi nodered adalah melaui sistem container docker, namun dengan
catatan docker sudah terinstall pada server tersebut. Adapun perintah yang digunakan untuk
memasang nodered dengan docker adalah sebagai berikut :

docker run -it -p 1881:1880 --restart always -d --name nodered1 -e "Asia/Jakarta"


nyodered/node-red-docker:slim

Kemudian setelah container nodered berhasil dijalankan, maka dapat langsung diakses
dengan ip berikut :

http://103.60.180.22:1881

Setelah terbuka, pasang beberapa plugin


pendukung yang dibutuhkan dengan cara klik 3 bar di bagian kanan atas – settings – pallete –
install

Kemudian install beberapa plugin berikut :


• node-red-contrib-statistics : digunakan untuk mencari nilai rata-rata, max, min

33
• node-red-dashboard : membuat interface dashboard untuk menampilkan pembacaan
data

Selanjutnya dilakukan perancangan sistem dengan membuat node-node yang tersambung


sesuai gambar dibawah ini.

Input:

Pertama-tama kita buat node mqtt yang berfungsi untuk mendapatkan data dari MQTT Broker.
MQTT broker yang dipakai adalah public broker yang disediakan oleh HiveMQ. Pada public
broker ini kita dapat melakukan subscribe dan publish dengan topik yang tidak terbatas. Hanya
saja karena bersifat pulblic, maka data yang dikirmkan dan diterima akan terlihat oleh siapa
saja. Kekurangan lainnya adalah lokasi broker ini berada di luar negeri tepatnya di Amerika,
sehingga pengiriman data terasa sedikit lebih lambat karena faktor latency.

Setelah kita membuat node mqtt, kita diminta untuk mendefinisikan konfigurasi server mqtt
yang akan digunakan. Klik pada icon pensil di samping inputan server, maka akan keluar
window seperti di bawah ini.

34
Pada isian server isi dengan broker.hivemq.com, pada port diisi dengan 1883, pada
bagian enable secure connection tidak perlu dicentang, pada Client ID biarkan kosong karena
akan auto generate, keep alive isi dengan 60 second, centang bagian use clean session untuk
memulai session baru pada koneksi yang baru, dan terakhir centang pada bagian use legacy
MQTT 3.1 support agar compatible dengan protocol MQTT 3.1.

Selanjutnya kita buat 4 node mqtt dengan konfigurasi server yang sudah didefinisikan
diatas. 4 node tersebut masing-masing berisi topik yang berbeda menyesuaikan topik yang
disetting pada Arduino. Topik tersebut antara lain mq135 untuk mendapatkan data dari sensor
MQ-135, gp2y untuk mendapatkan data dari sensor debu GP2Y, rtc untuk mendapatkan data
jam rtc pada Arduino, dan speech yang digunakan untk keperluan debugging peringatan melalui
suara. Topik-topik tersebut diisikan pada field topic pada masing-masing node. Data yang
diterima melalui node mqtt ini akan dapat diakses melalui variabel msg.payload.

35
36
Kemudian kita membuat node dengan type inject. Node dengan type ini berfungsi untuk
menggenerate data dengan tipe tertentu. Data yang bisa dihasilkan dari node inject antara lain
flow, global, string, number, boolean, json, buffer, timestamp, dan environment variable. Data
yang dihasilkan dapat diakses melalui variable payload. Data-data tersebut juga dihasilkan
secara otomatis dan periodic dengan mensetting pengaturan repeat. Tampilan window untuk
mengkonfigurasi node inject seperti gambar di bawah ini.

Pada sistem kami, node inject yang digunakan adalah node dengan payload bertipe
timetamp. Kegunaannya ada di 2 tempat, yang pertama dihubungkan dengan node date/time
formatter untuk menampilkan jam secara realtime. Yang kedua, disambungkan dengan fungsi
dan node tweet untuk melakukan diseminasi data hasil pembacaan sensor melalui twitter
dengan periode tertentu. Konfigurasi node inject dengan payload timestamp seperti pada
gambar di bawah .

37
Output

Kemudian terdapat node debug. Fungsinya adalah digunakan untuk menampilkan


data/nilai keluaran dari node yang terhubung dengan node debug ini. Pada sistem kami node
debug digunakan di beberapa tempat, seperti pada output dari semua node mqtt untuk mengecek
apakah data dari Arduino sudah terkirim ke nodered melalui mqtt, kemudian output dari fungsi
tweet untuk melihat hasil dari penggabungan data pembacaan sensor, kemudian di ujung fungsi
mean untuk mengecek hasil perhitungan rata-rata pembacaan masing-masing sensor. Akan
tetapi peletakan node debug bisa diletakkan dimana saja sesuai kebutuhan dan bersifat opsional
karena hanya berguna untuk membantu mengecek hasil keluaran node node yang ada di
nodered. Pada node debug, data yang ditampilkan adalah data yang dikiri melalui variabel
msg.payload atau bisa dkonfigurasi melalui window seperti tampilan di bawah ini.

38
Berikutnya terdapat node moment. Node ini muncul apabila nodered sudah terinstall plugin
node momentjs. Gunanya untuk melakukan formatting jam dan tanggal ke format yang kita
inginkan. Contoh penggunaan dalam sistem ini adalah dihubungkan dengan node inject
timestamp. Data dari node inject selanjutnya diformat dengan format dan timezone seperti
konfigurasi pada gambar di bawah ini. Lalu hasil format waktu tersebut ditampilkan di
dashboard sebagai jam realtime.

39
Selanjutnya terdapat node function. Node ini berfungsi untuk membuat fungsi-fungsi khusus
sesuai kebutuhan yang ditulis menggunakan syntax javascript. Mengapa javascript? Karena
nodered ini sendiri dibangun diatas node js yang menggunakan Bahasa pemrograman
javascript. Pada node function ini kita dapat melakukan berbagai hal karena fungsi yang ditulis
pada pemrograman javascript pasti bisa dimasukkan ke dalam node ini. Beberapa fungsi custom
yang dipakai di sistem ini akan dijelaskan lebih lanjut.

Pada fungsi pertama dan kedua,node fungsi dipasang setelah node mqtt sensor, di dalamnya
terdapat fungsi blok if yang digunakan untuk membuat status sensor berdasarkan level nilai
tertentu. Status sensor tersebut disimpan pada variabel msg.payload. Kemudian outputnya
disambungkan ke node speech agar text tersebut diubah menjadi peringatan melalui suara.

40
Selanjutnya pada fungsi ketiga dan keempat diatas, node fungsi tersebut dipasang juga setelah
node mean sensor MQ dan fungsi pertama. Pada fungsi ketiga, node fungsi mengambil nilai
rata-rata kemudian menyimpannya di variable global dengan nama meanmq. Sedangkan fungsi
keempat mengambil nilai status sensor MQ dari sensor sebelumnya kemudian menyimpannya
juga di variabel global statusmq. Kedua variabel tersebut nantinya akan diakses melalui fungsi
penggabungan yang ada di node tweet. Alasan mengapa menggunakan variabel global karena
pada node tweet dan node mqtt tidak tersambung dengan flow, oleh karena itu untuk dapat
membaca hasil pembacaan sensor harus disimpan terlebih dahulu melalui variabel global.

41
Kemudian terdapat fungsi 5 dan fungsi 6. Kedua fungsi di atas dipasang setelah node mqtt
sensor. Fungsinya untuk membuat warning apabila nilai yang terbaca berada di atas ambang
batas. Hasil keluaran fungsi diatas disambung dengan display warning yang ada pada
dashboard.

Untuk fungsi 7 dan fungsi 8 di atas hamper sama dengan fungsi 3 dan 4. Bedanya untuk fungsi
7 dan 8 digunakan untuk sensor GP2Y.

42
Untuk fungsi 9 di atas, dihubungkan dengan node formatter. Didalamnya menyimpan data
waktu ke variabel global waktu. Hasil keluarannya dihubungkan dengan display pada
dashboard.

43
Selanjutnya di fungsi gabung di atas, diletakkan di flow tweet. Di dalamnya terdapat proses
untuk mengambil data dari variabel global yang sudah diset sebelumnya. Kemudian
dimasukkan ke blok if untuk menentukan pesan status sensor. Di bawahnya terdapat variabel
yang menggabungkan semua data sensor menjadi sebuah string kalimat yang digunakan sebagai
konten twitter.

Analisis

Aggregator node

Kemudian terdapat node-node aggregator. Fungsi masing-masing node ini sesuai dengan type
aggregator yang dipilih. Terdapat min untuk mencari nilai minimum, max untuk mencari nilai
maksimum, mean untuk mencari nilai rata-rata. Inputnya berasal dari node mqtt sensor.
Outputnya dihubungkan dengan node yang menampilkan data di dashboard. Di bawah ini
adalah tampilan masing-masing node agragator yang dipakai di dalam sistem.

44
Node di atas digunakan mencari nilai minimal hasil pembacaan sensor.

Node di atas digunakan mencari nilai maksimal hasil pembacaan sensor.

45
Node di atas digunakan mencari nilai rata-rata hasil pembacaan sensor.

Dashboard

Selanjutnya terdapat node dashboard. Node ini mengambil data dari node lain kemudian
ditampilakannya pada sistem interface dashboard. Beberapa node dashboard yang dipakai pada
sistem adalah sebagai berikut :

Node berikut digunakan untuk menampilkan nilai minimum pada dashboard.

46
Node berikut digunakan untuk menampilkan nilai maksimum pada dashboard.

47
Node berikut digunakan untuk menampilkan nilai rata-rata pada dashboard.

Node berikut digunakan untuk menampilkan level emisi NOx pada dashboard.

48
Node berikut digunakan untuk menampilkan level emisi PM2,5 pada dashboard.

Node berikut digunakan untuk menampilkan waktu sekarang pada dashboard.

49
Selain menampilkan data dalam bentuk text di dashboard, terdapat node yang menampilkan
data dalam bentuk gauge (seperti speedometer). Data yang ditampilkan dengan node ini antara
lain data pembacaan sensor MQ-135 dan data pembacaan sensor GP2Y. Pada node gauge juga
dapat diatur warna, label, format data dan satuannya seperti gambar dibawah ini.

50
Selain menampilkan data dalam bentuk text dan gauge di dashboard, terdapat juga node yang
menampilkan data dalam bentuk diagram/chart. Data yang ditampilkan dengan node ini antara
lain data pembacaan sensor MQ-135 dan data pembacaan sensor GP2Y. Pada node chart juga
dapat diatur warna, label, range, tipe chart, sumbu x, sumbu y, dan nilai min max seperti gambar
dibawah ini.

51
Selanjutnya pada node diatas digunakan untuk mengubah inputan berupa text menjadi suara.
Fungsinya membaca status hasil pembacaan sensor dari node fungsi yang kemudian
dikeluarkan warningnya melalui suara speaker.

52
Social

Terakhir, node diatas adalah node twitter, digunakan untuk mendiseminasikan hasil pembacaan
sensor melalui media social twitter. Input dari node tersebut berasal dari node fungsi gabung
yang output dari fungsi gabung tersebut adalah konten yang akan di-tweet. Pada node tweet
sendiri terdapat konfigurasi twitter ID yang digunakan untuk mengkonfigurasi akun twitter
yang akan digunakan untuk mendiseminasikan hasil pembacaan sensor.

53
Agar node ini bisa digunakan, diperlukan API dan Access token dari twitter yang bisa didapat
dengan cara mendaftarkan aplikasi ke twitter developer (https://developer.twitter.com/en/apps)
dengan menggunakan akun twitter yang dibuat untuk melakukan tweet secara otomatis otomatis
hasil pembacaan dari sensor. Create an app.

Sebelum mendaftarkan aplikasi, Twitter akan secara otomatis mengalihkan akun twitter yang
akan digunakan sebagai akun yang akan digunakan aplikasi tersebut.

54
User akan dimintai untuk mengisi formulir berupa pertanyaan-pertanyaan penggunaan akses
developer kedepannya. Hal ini dilakukan Twitter agar mencegah adanya akun-akun robot yang
dapat merugikan kualitas website Twitter itu sendiri.

Pada kasus untuk tugas ini, dipilih proyek untuk pembelajaran/Student Project dan automation
untuk otomatisasi.

55
Screenshot dibawah adalah permintaan untuk mendeskripsikan proyek yang akan dibuat dalam
twitter. Penjelasalan tentang 4 poin yaitu Penggunaan, Analisa tweets, Konten tweet dan
Display tweets diluar situs web twitter. Penjelasan menggunakan Bahasa inggris dikarenakan
twitter yang digunakan berbahasa inggris minimal 300 kata.

Penyerahan form aplikasi apabila User telah setuju dengan syarat dan ketentuan Twitter
Developer

56
Apabila telah setuju, E-mail konfirmasi akan dikirim

Konfirmasi e-mail untuk menyetujui bahwa user telah bergabung dengan

57
Setelah akun twitter telah terdaftar ke twitter developer, kini user dapat membuat aplikasi ke
dalam twitter.

sekali lagi, klik Create an app kemudian akan diberikan formulir untuk mengisi deskripsi
aplikasi secara detail. Isi formulir sesuai kegunaan aplikasi monitoring.

58
Setelah pengisian formulir telah selesai. Maka pada menu Keys and tokens, user telah
mendapatkan API keys dan access token yang diperlukan nodeRED agar bisa melakukan
tweet secara otomatis.

API key dan access token ini kemudian dimasukkan ke node twitter pada nodeRED.

Sambungkan node fungsi ke node Tweet agar pembacaan dari sensor akan dimasukkan ke
dalam format tweet yang kemudian akun Twitter dapat melakukan tweet

59
5. Pengunggahan program

Sistem ini memanfaatkan jasa broker MQTT (Message Queue Telemetry Transport) yang
merupakan protokol yang berjalan pada diatas stack TCP/IP dan mempunyai ukuran paket data
dengan low overhead yang kecil (minimum 2 bytes) sehingga berefek pada konsumsi catu daya
yang juga cukup kecil. Broker berfungsi untuk menerima hasil output yang dikirim dari sensor,
filter pesan, dan menerima siapa saja yang menjadi clientnya dalam hal ini adalah
mikrokontroller nodeMCU sebagai publisher dan server nodeRED sebagai subscriber yang
kemudian dapat diakses melalui PC dan smartphone dengan syarat terhubung dengan internet.

6. Pengujian Data

Dalam tahap yang terakhir ini, semua komponen yang telah terhubung dengan baik dan
memiliki program di dalam mikrokontroler. Pengujian ini dilakukan menggunakan peraga
simulasi dengan menggunakan asap knalpot untuk sensor MQ-135 dalam mendeteksi gas.
Sedangkan untuk sensor GP2Y1010AU0F digunakan abu rokok untuk mendeteksi densitas PM
2,5.

Cara kerja alat ini adalah dengan menghubungkan ke sumber daya, maka alat akan
langsung menyala dan memonitoring udara sekitar, untuk monitoring PM 2,5 motor DC akan
menyala dan menyerap udara ambien masuk ke dalam sensor untuk dilakukan monitoring kadar
PM 2,5. Data dapat diakses pada http://103.60.180.22:1880/ui menggunakan smartphone
maupun PC.

Ambang batas kami ambil dari pengujian mq, yang berupa asap kenalpot untuk
menunjukkan nilai level output dari sensor. Hal ini dilakukan karena keluaran sensor berupa
tegangan yang tidak dapat dikonversi ke dalam nilai NOx.

60
Nilai ambang batas partikel PM 2,5 menurut BMKG adalah 65 µg/m3. Dikarenakan
keterbatasan alat dan biaya sehingga kondisi sekitar tidak dapat dibuat untuk melebihi nilai
ambang batas, untuk pengujian sensor GP2Y1010AU0F hanya dilakukan pada sistem. Apakah
saat nilai inputan sensor melebihi ambang batas, warning menyala atau tidak.

7. Diseminasi Data
Hasil output monitoring kualitas udara secara realtime dapat dimonitor melalui website /
smartphone dengan meangakses 103.60.180.22:1881/ui dan social media berupa twitter
dengan akun @PM2Dan

a. Tampilan pada Smartphone

61
b. Tampilan pada website

c. Tampilan pada Social Media

62
DAFTAR PUSTAKA

https://www.academia.edu/11491199/Alat_Ukur_Kualitas_Udara_Menggunakan_Sensor_Gas
_MQ135_Berbasis_Mikrokontroller_Atmega16A?auto=download

http://repository.usu.ac.id/bitstream/handle/123456789/45280/Chapter%20II.pdf?sequence=4

https://tutorkeren.com/artikel/tutorial-menggunakan-multiplekser-multiplexer-4051-pada-
arduino.htm

https://www.bmkg.go.id/kualitas-udara/informasi-partikulat-pm25.bmkg

http://www.mqtt-dashboard.com/

Anda mungkin juga menyukai