Ringkasan Konsep Dasar Pemrograman ESP32

Suhendar AryadiSuhendar Aryadi
4 min read

Berikut adalah ringkasan konsep-konsep fundamental dalam pemrograman ESP32, dimulai dari yang paling dasar hingga yang spesifik untuk proyek.

1. Dasar-Dasar Pemrograman (Wajib Tahu)

Sebelum masuk ke setup() dan loop(), penting untuk memahami blok bangunan dasar dari semua kode.

  • Variabel: Anggap saja seperti sebuah "wadah" di dalam memori yang diberi nama untuk menyimpan sebuah nilai. Nilai ini bisa diubah-ubah selama program berjalan.
  • Deklarasi: tipeData namaVariabel; (Contoh: int gasLevel;)

  • Inisialisasi: tipeData namaVariabel = nilai; (Contoh: const int ledPin = 16;)

  • Tipe Data: Menentukan jenis nilai yang bisa disimpan oleh sebuah variabel. Beberapa yang paling umum:
  • int: Untuk bilangan bulat (contoh: -10, 0, 100, 4095).

  • float: Untuk bilangan desimal/pecahan (contoh: 25.5, 98.1).

  • bool: Hanya bisa bernilai true (benar) atau false (salah).

  • char: Untuk satu karakter (contoh: 'A', 'b', '9').

  • String: Untuk kumpulan karakter atau teks (contoh: "Status: Aman").

  • Fungsi: Sebuah blok kode yang diberi nama, yang dapat "dipanggil" untuk menjalankan tugas tertentu. Ini membuat kode lebih rapi dan bisa digunakan kembali.
  • Contoh: warningSignal() adalah fungsi kustom untuk menyalakan alarm. digitalWrite() dan delay() adalah fungsi bawaan Arduino.
  • Komentar: Teks di dalam kode yang diabaikan oleh kompiler (tidak akan dijalankan). Sangat berguna untuk memberi penjelasan pada kode agar mudah dimengerti oleh diri sendiri atau orang lain.
  • // Komentar satu baris

  • /* Komentar yang bisa beberapa baris */

2. Struktur Program Inti: setup() dan loop()

Setiap program Arduino dan ESP32 memiliki dua fungsi utama:

  • void setup(): Fungsi ini berjalan hanya satu kali ketika ESP32 pertama kali dinyalakan atau di-reset. Di sinilah tempat untuk melakukan semua konfigurasi awal.

  • void loop(): Setelah setup() selesai, fungsi ini akan berjalan terus-menerus dalam sebuah siklus tak terbatas. Di sinilah logika utama program ditempatkan.

3. Menggunakan Pustaka (Library)

Library adalah kumpulan kode yang sudah jadi untuk mempermudah interaksi dengan modul atau sensor tertentu.

  • Cara Menggunakan: Gunakan perintah #include <NamaLibrary.h> di bagian paling atas kode.

  • Contoh pada Proyek:

  • #include <DHT.h>: Untuk mempermudah pembacaan sensor suhu dan kelembapan DHT11.

  • #include <Wire.h> dan #include <LiquidCrystal_I2C.h>: Untuk berkomunikasi dan menampilkan teks di layar LCD I2C.

4. Konfigurasi Pin (Input & Output)

Setiap pin pada ESP32 harus didefinisikan perannya sebelum digunakan.

  • Deklarasi Pin: Memberi nama pada nomor pin agar kode lebih mudah dibaca. Contoh: const int ledPin = 16;.

  • Mode Pin (pinMode()): Dijalankan di dalam setup(), fungsi ini memberitahu ESP32 apakah sebuah pin akan digunakan untuk menerima sinyal (INPUT) atau mengirim sinyal (OUTPUT).

5. Membaca Data dari Sensor

  • Sensor Analog (analogRead()): Digunakan untuk membaca sensor yang outputnya berupa sinyal tegangan variabel. Pada ESP32, hasilnya adalah nilai antara 0 hingga 4095.
  • Contoh: int gasLevel = analogRead(gasPin);
  • Sensor Digital (via Library): Untuk sensor yang lebih kompleks, kita menggunakan fungsi yang sudah disediakan oleh library-nya.
  • Contoh: float temperature = dht.readTemperature();

6. Mengontrol Aktuator (Output)

Aktuator adalah komponen yang melakukan aksi fisik, seperti LED atau buzzer.

  • digitalWrite(pin, STATE): Fungsi ini digunakan untuk mengirim sinyal digital (HIGH atau LOW) ke pin output.
  • Contoh: digitalWrite(ledPin, HIGH); untuk menyalakan LED.

7. Logika Kondisional (if-else)

Ini adalah otak dari program, yang memungkinkan ESP32 membuat keputusan.

  • Struktur: if (kondisi) { ...aksi jika benar... } else { ...aksi jika salah... }

  • Contoh: if (gasLevel > 100) { warningSignal(); } else { ...matikan alarm... }.

8. Komunikasi dan Debugging

  • Serial Monitor: Alat penting untuk melihat apa yang sedang terjadi di dalam ESP32.
  • Serial.begin(baudrate): Memulai komunikasi serial.

  • Serial.print() atau Serial.println(): Mengirim data ke komputer untuk debugging.

  • Layar LCD: Digunakan sebagai antarmuka pengguna untuk menampilkan informasi secara langsung.

9. Mengenal Perangkat Keras (Hardware) Proyek

  • ESP32: Ini adalah "otak" dari seluruh sistem. Sebagai mikrokontroler, ia bertugas menjalankan kode, membaca data dari semua sensor, memproses informasi tersebut, dan mengontrol semua aktuator (LCD, LED, Buzzer). Kelebihannya adalah sudah memiliki WiFi dan Bluetooth bawaan.

  • Sensor DHT11: Sensor digital ini berfungsi untuk mengukur suhu dan kelembapan udara di sekitarnya. Sensor ini mengirimkan data digital ke ESP32, yang kemudian dibaca menggunakan library DHT.h.

  • Sensor Gas MQ-2: Sensor ini sensitif terhadap berbagai jenis gas seperti LPG, propana, metana, dan asap. Sensor ini memberikan output berupa sinyal tegangan analog yang nilainya sebanding dengan konsentrasi gas yang terdeteksi. Nilai ini dibaca oleh ESP32 menggunakan pin analog.

  • Layar LCD I2C (16x2): Berfungsi sebagai penampil informasi (antarmuka). Tipe 16x2 berarti dapat menampilkan 2 baris teks, masing-masing 16 karakter. Modul I2C yang menempel di belakangnya sangat menyederhanakan perkabelan, karena hanya butuh 4 kabel (VCC, GND, SDA, SCL) untuk terhubung ke ESP32.

  • LED (Light Emitting Diode): Digunakan sebagai indikator visual. Dalam proyek ini, LED akan berkedip sebagai tanda peringatan visual ketika terdeteksi kebocoran gas.

  • Buzzer: Komponen ini menghasilkan suara "bip". Fungsinya sebagai alarm atau indikator audio. Dalam proyek ini, buzzer akan berbunyi bersamaan dengan kedipan LED untuk memberikan peringatan suara yang jelas.

0
Subscribe to my newsletter

Read articles from Suhendar Aryadi directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Suhendar Aryadi
Suhendar Aryadi