LAPORAN PRAKTIKUM
INTERNET OF THINGS (IOT)
Simulasi Sistem
Pemantauan Suhu dan Kelembaban Berbasis Arduino UNO Menggunakan Sensor DHT22
dan Layar LCD I2C
Disusun Oleh:
Athallah Firmansyah 24051204136
Dave Osvaldo Adris 24051204172
Arsena Cahya Fioralle 24051204190
M. Ai-Bee Tazkyan N 24051204212
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pemantauan
kondisi parameter lingkungan seperti suhu dan kelembaban udara merupakan
kebutuhan krusial dalam berbagai ranah aplikasi Internet of Things (IoT) dan
sistem tertanam (embedded system). Pada ruang seperti laboratorium, fasilitas
produksi, maupun server komputer, fluktuasi suhu dan kelembaban yang tidak
teridentifikasi dapat mempengaruhi performa perangkat elektronik hingga
menyebabkan kerusakan material. Oleh karena itu, diperlukan sistem akuisisi
data otomatis yang bekerja secara real time untuk memantau perubahan kondisi
lingkungan secara akurat.
Dalam
merancang purwarupa pemantauan lingkungan, mikrokontroler Arduino UNO bertindak
sebagai unit pemroses utama yang bertugas membaca data masukan dari sensor dan
mengolahnya menjadi informasi visual. Sensor digital DHT22 digunakan untuk
mengukur suhu dan kelembaban udara relatif karena memiliki keunggulan presisi
dan ketahanan terhadap gangguan sinyal. Sinyal digital dari sensor dikirimkan
melalui jalur pin tunggal ke pin GPIO digital pada mikrokontroler.
Selanjutnya, data yang telah diproses ditransmisikan ke layar antarmuka LCD
16x2 menggunakan protokol komunikasi Inter Integrated Circuit (I2C) pada pin A4
(SDA) dan A5 (SCL), sehingga menghemat efisiensi penggunaan pin pada
prapemrosesan mikrokontroler.
Untuk memastikan kelayakan alur program dan menangani
potensi bug seperti penanganan kesalahan pembacaan sensor (error handling)
platform simulasi berbasis cloud Wokwi dimanfaatkan sebagai sarana pengujian
virtual. Melalui Wokwi, validasi data masukan dari DHT22, eksekusi fungsi isnan
(), serta sinkronisasi pencetakan data ke Serial Monitor dan layar LCD I2C
dapat diuji secara real time tanpa risiko kegagalan perangkat keras fisik.
Berdasarkan pertimbangan tersebut, laporan praktikum Tugas 3 ini disusun untuk
menganalisis dan mendokumentasikan hasil perancangan simulasi sistem pemantauan
suhu dan kelembaban udara berbasis Arduino UNO.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dijelaskan, maka
rumusan masalah dalam praktikum ini adalah sebagai berikut:
- Bagaimana
mengkonfigurasi dan merangkai antarmuka sensor DHT22 serta modul LCD 16x2
I2C pada mikrokontroler Arduino UNO menggunakan platform simulasi
Wokwi?
- Bagaimana
alur akuisisi data suhu dan kelembapan dari sensor DHT22 hingga diproses
oleh program mikrokontroler?
- Bagaimana
mengimplementasikan logika validasi data sensor (penanganan kondisi isnan)
dan penayangan data secara real time melalui Serial Monitor dan antarmuka
LCD I2C?
1.3 Tujuan Laporan
Tujuan dari penulisan laporan praktikum Tugas 3 ini adalah:
- Memahami
serta menerapkan prosedur komunikasi data digital menggunakan sensor DHT22
dan komunikasi I2C pada Arduino UNO.
- Merancang
program akuisisi data lingkungan yang mampu memvalidasi pembacaan sinyal
input secara tepat.
- Memvalidasi
hasil keluaran sistem pemantauan suhu dan kelembaban pada layar LCD matrix
16x2 dan Serial Monitor melalui simulasi Wokwi.
1.4 Manfaat Penulisan
Manfaat yang diharapkan dari pengerjaan simulasi dan
penyusunan laporan ini meliputi:
- Bagi
Penulis: Menambah penguasaan praktis mengenai penerapan protokol
komunikasi I2C, akuisisi sinyal digital sensor lingkungan, dan logika
pengondisian error handling pada pemrosesan mikrokontroler berbasis
Arduino.
- Bagi
Pengguna/Sistem: Memberikan dasar skema monitoring lingkungan otomatis
yang handal, sehingga memudahkan pemantauan parameter suhu dan kelembapan
secara konstan tanpa inspeksi manual.
- Bagi
Pengembang: Mempercepat proses evaluasi dan debugging skematik maupun
sintaks program melalui simulator Wokwi, sehingga meminimalisir kesalahan
pengkabelan sebelum tahap implementasi pada komponen elektronik
fisik.
BAB II
TINJAUAN PUSTAKA
2.1 Dasar Teori
2.1.1 Internet of Things (IoT)
Internet of Things (IoT) adalah konsep yang
menghubungkan objek fisik yang dilengkapi sensor, unit pemroses, dan
konektivitas sehingga dapat mengumpulkan serta bertukar data tanpa campur
tangan manusia secara langsung. Secara umum, sistem IoT tersusun atas tiga
lapisan, yaitu lapisan persepsi (sensor dan aktuator yang berinteraksi dengan
lingkungan fisik), lapisan jaringan (media pengiriman data), dan lapisan
aplikasi (pengolahan dan penyajian informasi kepada pengguna). Sistem pada
praktikum ini berfokus pada lapisan persepsi dan penyajian data lokal, yaitu
pembacaan sensor lingkungan oleh mikrokontroler yang ditampilkan pada layar LCD
dan Serial Monitor, sehingga menjadi dasar sebelum data dikirim ke jaringan
pada pengembangan berikutnya.
2.1.2 Sistem Tertanam dan Mikrokontroler
Sistem tertanam (embedded system) adalah
sistem berbasis komputer yang dirancang untuk menjalankan fungsi tertentu
secara terus-menerus sebagai bagian dari perangkat atau sistem yang lebih
besar. Inti dari sistem ini umumnya berupa mikrokontroler, yaitu satu keping IC
yang mengintegrasikan prosesor, memori program, memori data, serta antarmuka
masukan/keluaran (input/output) (Monk, 2016). Platform Arduino menyederhanakan
pemrograman mikrokontroler melalui perangkat keras terbuka dan lingkungan
pengembangan terpadu (IDE) berbasis bahasa C/C++. Program Arduino tersusun atas
fungsi setup() yang dijalankan satu kali saat awal dan fungsi loop() yang
dijalankan berulang-ulang (Banzi & Shiloh, 2014).
2.1.3 Akuisisi Data dan Sensor Digital
Akuisisi data adalah proses mengambil besaran
fisik dari lingkungan, mengubahnya menjadi sinyal listrik, lalu mengolahnya
menjadi data yang dapat dibaca sistem. Sensor dapat menghasilkan keluaran
analog maupun digital. Sensor digital seperti DHT22 telah memiliki rangkaian
pengonversi di dalam modulnya, sehingga hasil pengukuran dikirim dalam bentuk
deretan bit melalui satu jalur data dan mikrokontroler tidak membutuhkan ADC
eksternal untuk membacanya. Data yang dikirim DHT22 berukuran 40 bit, terdiri
atas 16 bit data kelembaban, 16 bit data suhu, dan 8 bit checksum untuk
pemeriksaan kesalahan (Aosong Electronics, n.d.).
2.1.4 Protokol Komunikasi I2C
I2C (Inter-Integrated Circuit) adalah protokol
komunikasi serial sinkron dua kabel yang dikembangkan oleh Philips (kini NXP
Semiconductors). Jalur komunikasinya terdiri atas SDA (Serial Data) untuk data
dan SCL (Serial Clock) untuk sinyal clock, dengan arsitektur master–slave di
mana setiap perangkat slave dikenali melalui alamat unik (NXP Semiconductors,
2021). Kedua jalur bersifat open-drain sehingga memerlukan resistor pull-up,
dengan kecepatan 100 kbit/s pada mode standar dan hingga 400 kbit/s pada mode
cepat. Pada Arduino Uno, jalur I2C berada pada pin A4 (SDA) dan A5 (SCL) dan
diakses melalui pustaka Wire (Arduino, 2024). Keunggulan utama protokol ini
adalah banyak perangkat dapat berbagi dua jalur yang sama sehingga penggunaan
pin mikrokontroler menjadi lebih hemat.
2.1.5 Validasi Data Sensor dan Penanganan Kesalahan (NaN)
Pembacaan sensor tidak selalu berhasil,
misalnya karena kabel data terlepas, sensor tidak merespons, atau terjadi
kegagalan pewaktuan (timing) saat transfer data. Ketika pembacaan gagal,
pustaka DHT mengembalikan nilai NaN (Not a Number), yaitu nilai khusus pada
standar bilangan titik mengambang IEEE 754 yang menandakan hasil tidak valid.
Nilai ini dapat dideteksi menggunakan fungsi isnan() pada bahasa C/C++ Arduino.
Dengan memeriksa kondisi tersebut melalui percabangan if–else sebelum data
ditampilkan, program dapat mencegah tampilan angka yang salah dan memberi tahu
pengguna bahwa sensor bermasalah.
2.1.6 Simulator Wokwi
Wokwi adalah simulator elektronika berbasis
web yang mendukung berbagai papan mikrokontroler, seperti Arduino Uno, Arduino
Mega, ESP32, dan Raspberry Pi Pico, beserta komponen pendukung seperti sensor
DHT22, layar LCD I2C, LED, dan tombol (Wokwi, 2024). Rangkaian dapat dirakit
secara virtual dan program diuji langsung tanpa perangkat keras fisik, dengan
Serial Monitor untuk melihat keluaran program. Nilai suhu dan kelembaban pada
sensor DHT22 di Wokwi juga dapat diubah secara interaktif sehingga berbagai skenario
pembacaan dapat diuji.
2.2 Komponen
Komponen yang digunakan dalam simulasi sistem
pemantauan suhu dan kelembaban ini dijelaskan sebagai berikut.
2.2.1 Arduino Uno
Arduino Uno Rev3 adalah papan mikrokontroler
yang berbasis ATmega328P, yaitu mikrokontroler AVR 8-bit dari Microchip
(Microchip Technology Inc., 2018). Pada sistem ini, Arduino Uno berperan
sebagai unit pemroses utama yang membaca data sensor, memvalidasinya, dan
mengirimkannya ke layar LCD serta Serial Monitor. Spesifikasi utamanya adalah
sebagai berikut (Arduino, 2024).
- Mikrokontroler:
ATmega328P (8-bit AVR).
- Tegangan
operasi: 5 V.
- Pin
I/O digital: 14 pin, 6 di antaranya mendukung PWM.
- Pin
masukan analog: 6 pin (A0–A5).
- Frekuensi
clock: 16 MHz.
- Memori:
32 KB flash, 2 KB SRAM, dan 1 KB EEPROM.
- Antarmuka
komunikasi: UART, SPI, dan I2C (SDA pada A4, SCL pada A5).
2.2.2 Sensor DHT22
DHT22 (AM2302) adalah sensor digital yang
mengukur suhu dan kelembaban udara relatif. Sensor ini menggabungkan elemen
pengukur kelembaban kapasitif dan termistor, serta chip pengolah sinyal yang
mengubah hasil pengukuran menjadi keluaran digital melalui satu kabel data
(Aosong Electronics, n.d.). Periode pembacaan minimal sensor adalah dua detik,
sehingga jeda delay 2 detik pada program telah sesuai dengan batas kemampuan
sensor. Spesifikasi utamanya adalah sebagai berikut.
- Rentang
pengukuran kelembaban: 0–100% RH dengan akurasi tipikal ±2% RH.
- Rentang
pengukuran suhu: −40 hingga 80 °C dengan akurasi ±0,5 °C.
- Resolusi:
0,1 untuk suhu maupun kelembaban.
- Tegangan
kerja: 3,3–6 V DC.
- Keluaran:
digital satu kabel (single-wire) 40 bit.
- Periode
pembacaan (sampling): minimal 2 detik (0,5 Hz).
- Pin:
VCC, SDA (data), NC (tidak terhubung), dan GND.
2.2.3 Layar LCD 16x2 dengan Modul I2C
LCD (Liquid Crystal Display) 16x2 mampu
menampilkan 16 karakter pada 2 baris, dengan setiap karakter tersusun dari
matriks titik 5x8 dan dikendalikan oleh pengendali HD44780 (Hitachi, n.d.).
Pada mode paralel, LCD ini membutuhkan banyak pin pada mikrokontroler untuk
jalur data dan kontrol. Modul I2C yang dipasang pada bagian belakang LCD,
umumnya menggunakan IC I/O expander PCF8574, mengubah antarmuka tersebut
menjadi hanya empat pin, yaitu VCC, GND, SDA, dan SCL. Alamat I2C yang lazim
digunakan adalah 0x27 atau 0x3F, dan pada program ini digunakan alamat 0x27.
2.2.4 Pustaka Program
Program simulasi menggunakan tiga pustaka
(library) berikut untuk menyederhanakan akses ke komponen.
- Wire.h:
pustaka bawaan Arduino untuk komunikasi I2C.
- LiquidCrystal_I2C.h:
pustaka untuk mengendalikan LCD melalui I2C, dengan fungsi seperti init(),
backlight(), clear(), setCursor(), dan print().
- DHT.h:
pustaka DHT sensor library untuk membaca sensor DHT22 melalui fungsi
readTemperature() dan readHumidity().
BAB III
PEMBAHASAN
3.1 Rangkaian Simulasi
3.1.1
Mikrokontroler Arduino Uno
Perakitan
antarmuka perangkat keras virtual dilakukan dengan memetakan koneksi antar
komponen menuju pin pada board mikrokontroler Arduino Uno. Konfigurasi
pengkabelan disusun secara sistematis berdasarkan fungsi masing-masing pin
sebagai berikut:
- Sensor
Suhu dan Kelembaban (DHT22): Bertindak sebagai simulator
pendeteksi kondisi lingkungan ruang praktikum. Pin VCC dihubungkan ke 5V,
pin GND ke GND, dan pin keluaran sinyal (SDA) dihubungkan secara spesifik
ke pin digital 2 pada board mikrokontroler.
- Modul
LCD 16x2 I2C: Bertindak sebagai output peringatan visual layaknya
monitor informasi antarmuka. Modul ini dirangkai dengan protokol I2C agar
penggunaan pin lebih efisien, di mana pin data (SDA) dihubungkan ke pin
analog A4, dan pin clock (SCL) dihubungkan ke pin analog A5 pada Arduino
Uno.
3.1.2
Algoritma Sistem
Secara algoritma, sistem beroperasi dengan membaca input
kondisi secara terus-menerus (looping). Mikrokontroler Arduino Uno akan
mengekstraksi data fluktuasi nilai dari sensor secara real-time. Data tersebut
langsung diproses untuk memicu aktuator visual. Sistem menggunakan logika
kondisional (if-else) berdasarkan validasi hasil pembacaan sensor
lingkungan:
- Kondisi
Validasi Gagal (Sensor Rusak): Program terus memantau status pembacaan
sensor. Jika nilai suhu atau kelembaban yang dikonversi menghasilkan nilai
bukan angka (NaN), sistem akan mengeksekusi instruksi peringatan yang
dicetak melalui antarmuka Serial Monitor sebagai indikasi bahwa
periferal mengalami gangguan.
- Kondisi
Pemantauan Aktif: Jika nilai pembacaan sensor tervalidasi dengan baik,
program mendeteksi parameter suhu dan kelembaban aktual. Mikrokontroler
akan mengirimkan instruksi keluaran untuk membersihkan memori layar
sebelumnya, lalu mencetak parameter suhu (dalam °C) dan kelembaban (dalam
persentase) secara presisi ke layar LCD matrix 16x2 dengan interval jeda
pembaruan (delay) yang diatur setiap 2 detik.
3.2 Program
Berikut adalah struktur kode program yang digunakan dalam
simulasi:
|
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <DHT.h> #define DHT_PIN 2 DHT dht(DHT_PIN, DHT22); // Inisialisasi alamat LCD I2C (0x27) untuk
ukuran 16x2 LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { Serial.begin(9600); dht.begin(); lcd.init(); lcd.backlight(); } void loop() { // Proses akuisisi data float suhu =
dht.readTemperature(); float kelembapan =
dht.readHumidity(); // Validasi data sensor if (isnan(suhu) ||
isnan(kelembapan)) { Serial.println("Sensor
Rusak"); } else { // Tampilan ke
Serial Monitor Serial.print("Suhu:
"); Serial.print(suhu); Serial.print("
C\t"); Serial.print("Kelembapan:
"); Serial.print(kelembapan); Serial.println("%"); // Tampilan ke
Layar LCD Matrix lcd.clear(); lcd.setCursor(0, 0); lcd.print("Suhu:
"); lcd.print(suhu); lcd.print("
C"); lcd.setCursor(0, 1); lcd.print("Kelembapan:
"); lcd.print(kelembapan); lcd.print("
%"); } // Delay 2 detik untuk
pembacaan selanjutnya delay(2000); } |
BAB IV
PENUTUP
4.1 Kesimpulan
Berdasarkan hasil perancangan, pengujian, dan pembahasan
simulasi sistem pemantauan suhu dan kelembaban berbasis Arduino UNO menggunakan
simulator Wokwi, dapat ditarik beberapa kesimpulan sebagai berikut:
- Konfigurasi
dan Pengkabelan Sistem: Integrasi antarmuka perangkat keras virtual
berhasil dilakukan dengan menghubungkan pin data sensor DHT22 ke pin
digital 2, serta modul LCD 16x2 I2C ke pin analog A4 (SDA) dan A5 (SCL)
pada Arduino UNO. Penggunaan komunikasi I2C terbukti efektif dalam
menghemat penggunaan pin I/O pada mikrokontroler.
- Alur
Akuisisi Data Lingkungan: Proses akuisisi data berjalan secara kontinyu di
dalam fungsi loop() dengan interval penundaan (delay) sebesar 2 detik.
Jeda pewaktuan ini telah sesuai dengan spesifikasi teknis dan batas
kecepatan pembacaan sampel (sampling rate) sensor DHT22.
- Validasi
Data dan Penayangan Real-Time: Penerapan fungsi isnan() berhasil melakukan
error handling untuk memvalidasi keluaran sinyal dari sensor. Jika terjadi
kegagalan pembacaan, sistem menampilkan peringatan "Sensor
Rusak" pada Serial Monitor. Jika data bernilai valid, parameter suhu
(°C) dan kelembaban (%) dapat ditayangkan secara akurat dan real-time baik
pada Serial Monitor maupun layar LCD 16x2.
4.2 Saran
Untuk pengembangan dan penyempurnaan sistem pemantauan ini
pada praktikum maupun penelitian selanjutnya, disarankan beberapa poin berikut:
- Pengujian
Perangkat Keras Fisik: Mengimplementasikan rancangan kode dan skematik ini
ke dalam bentuk komponen fisik (hardware nyata) guna menguji ketahanan
sensor, stabilitas daya, serta pengaruh gangguan (noise) pada lingkungan
sebenarnya.
- Integrasi
Konektivitas Cloud (IoT): Mengembangkan sistem dengan menggunakan
mikrokontroler berbasis Wi-Fi (seperti ESP8266 atau ESP32) agar data
pemantauan dapat dikirimkan ke platform cloud (misalnya Blynk,
ThingsBoard, atau Antares) untuk dipantau secara jarak jauh via aplikasi
mobile atau web dashboard.
- Penambahan
Aktuator dan Peringatan Otomatis: Menyertakan komponen aktuator seperti
relay, kipas pendingin (fan), humidifier, atau buzzer peringatan yang
aktif secara otomatis ketika parameter suhu atau kelembaban melewati batas
ambang aman (threshold) yang ditentukan.
DAFTAR PUSTAKA
Arduino. (2024). Arduino Uno Rev3 Documentation and
Pinout Guide. Arduino Docs. https://docs.arduino.cc/hardware/uno-rev3/
Aosong Electronics. (n.d.). DHT22 (AM2302) Temperature
and Humidity Sensor Datasheet.
Banzi, M., & Shiloh, M. (2014). Getting Started with
Arduino: The Open Source Electronics Prototyping Platform (3rd ed.).
Sebastopol: O'Reilly Media.
Hitachi. (n.d.). HD44780U (LCD-II) Dot Matrix Liquid
Crystal Display Controller/Driver Datasheet.
Microchip Technology Inc. (2018). ATmega328P 8-bit AVR
Microcontroller Datasheet. Microchip Technology Documentation.
https://www.microchip.com/
Monk, S. (2016). Programming Arduino: Getting Started
with Sketches (2nd ed.). New York: McGraw-Hill Education.
Wokwi. (2024). Wokwi Documentation - Arduino Uno
Simulator. Wokwi Docs. https://docs.wokwi.com/
Tidak ada komentar:
Posting Komentar