Minggu, 04 Oktober 2026

Simulasi Sistem Pemantauan Suhu dan Kelembaban Berbasis Arduino UNO Menggunakan Sensor DHT22 dan Layar LCD I2C

 

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: 

  1. Bagaimana mengkonfigurasi dan merangkai antarmuka sensor DHT22 serta modul LCD 16x2 I2C pada mikrokontroler Arduino UNO menggunakan platform simulasi Wokwi? 
  2. Bagaimana alur akuisisi data suhu dan kelembapan dari sensor DHT22 hingga diproses oleh program mikrokontroler? 
  3. 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:

  1. Memahami serta menerapkan prosedur komunikasi data digital menggunakan sensor DHT22 dan komunikasi I2C pada Arduino UNO. 
  2. Merancang program akuisisi data lingkungan yang mampu memvalidasi pembacaan sinyal input secara tepat. 
  3. 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: 

  1. 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. 
  2. Bagi Pengguna/Sistem: Memberikan dasar skema monitoring lingkungan otomatis yang handal, sehingga memudahkan pemantauan parameter suhu dan kelembapan secara konstan tanpa inspeksi manual.
  3. 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: 

  1. 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.
  2. 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: 

  1. 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. 
  2. 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:

  1. 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.
  2. 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.
  3. 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:

  1. 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.
  2. 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.
  3. 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