Tutorial ESP32 – Contoh Program Input / Output ESP32

ARSAFAMILY.COM – Kali ini kita akan membuat contoh program input / output sederhana menggunakan ESP32. Perlu diketahui, ESP32 mempunyai pin i/o yang bisa digunakan sebagai input maupun output sehingga bisa diprogram sesuai dengan kebutuhan pengguna.

Langsung saja, beberapa bahan yang perlu disiapkan antara lain

  • 1 buah DEVKIT ESP32
ESP32 DEVKIT V1 30 PIN
  • 1 buah breadboard
Breadboard
  • 1 buah I/O Expansion ESP32 Shield (optional)
I/O Expansion ESP32 Shield
  • 1 buah Lampu LED
Led Dioda
  • 1 buah Passive Buzzer Module

  • 1 buah Tactile Switch Push Button
Tactile Switch Push Button
  • 1 buah Resistor 10K ohm dan 1 buah Resistor 220 ohm
Resistor
  • 9 buah Kabel jumper male to female / sesuai kebutuhan
Kabel jumper male to female
  • 1 buah Kabel jumper male to male / sesuai kebutuhan
Kabel jumper male to male

Kemudian, susunlah rangkaian ESP32 dan perangkat lainnya mengikuti gambar di bawah ini

Gambar rangkaian ESP32 dengan tombol sebagai input, dan led beserta passive buzer sebagai output

Keterangan :

  • PIN 3.3V ESP32 dihubungkan ke garis merah Breadboard (sebagai jalur vcc)
  • PIN GND ESP32 dihubungkan ke garis biru Breadboard (sebagai jalur ground)
  • Resistor 220 ohm dihubungkan antara kaki negatif led dan ground Breadboard
  • Resistor 10K ohm dihubungkan antara kaki negatif Tactile Switch Push Button dan ground Breadboard
  • PIN 2 atau D2 ESP32 terhubung ke I/O Passive Buzzer
  • PIN 4 atau D4 ESP32 terhubung ke Tactile Switch Push Button di Breadboard
  • PIN 5 atau D4 ESP32 terhubung ke Lampu Led di Breadboard

Lalu buka ARDUINO IDE anda, copy-lah kode di bawah ini

const int buttonPin = 4;  // pin 4 untuk tombol
const int ledPin =  5;    // pin 5 untuk led
const int buz = 2;        // pin 2 untuk passive buzzer

int buttonState;
int stat = 0;
int bunyi = 0;

void setup() {
  Serial.begin(9600);  
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(buz, OUTPUT);
  tone(buz, 1000, 2000);
}

void loop() {
  buttonState = digitalRead(buttonPin);
  if (buttonState == 1 )      // angka 1 sama dengan HIGH sedangkan 0 sama dengan LOW
  {
    if(bunyi == 0)
    {
      bunyiOn();
    }
    else
    {
      bunyiOff();
    }
   
    if(stat == 0)
    {
      stat = 1;
    }
    else
    {
      stat = 0;
    }
  }

  if(stat == 1)
  {
    digitalWrite(ledPin, HIGH);
  }
  else
  {
    digitalWrite(ledPin, LOW);
  }
delay(100);
}

void bunyiOn()    // fungsi suara ketika lampu hidup
{
  tone(buz, 587);
  delay(100);

  tone(buz, 523); 
  delay(100);

  tone(buz, 784);
  delay(100);

  noTone(buz);
  bunyi = 1;
}

void bunyiOff()   // fungsi suara ketika lampu mati
{
  tone(buz, 784);
  delay(100);

  tone(buz, 587);
  delay(100);

  tone(buz, 523);
  delay(100);

  noTone(buz);
  bunyi = 0;
}
Pada hakikatnya, tombol yang digunakan di atas adalah tombol yang bersifat momentary, nilainya akan berubah menjadi 1 jika ditekan, dan 0 jika dilepaskan. Namun pada proyek ini, kita mengubah fungsi momentary button menjadi seperti saklar, ditekan sekali maka akan terus bernilai 1, ditekan kembali baru akan menjadi 0. Memanfaatkan logika dengan penyimpanan status sementara pada variabel stat, jadi awalnya variabel stat bernilai 0, maka otomatis lampu tidak akan menyala, tapi ketika tombol ditekan maka variabel stat akan bernilai 1 sampai ada tekanan pada tombol selanjutnya, sehingga fungsinya dirubah mirip seperti tombol saklar.
Lalu silahkan upload kode tersebut ke ESP32 anda. Jika upoad berhasil tampilan pada Output terimal Arduino IDE anda akan seperti gambar di bawah ini
Pesan ketika sukses upload kode ke ESP32

Namun jika anda mengalami error pada saat upload seperti gambar di bawah ini

Pesan error ketika upload kode ke ESP32

Solusinya adalah lepaskan terlebih dahulu kabel VCC atau GND pada Passive Buzzer, lalu upload ulang kode nya, dan ketika sudah berhasil diupload baru dipasang kembali kabel VCC atau GND nya. Error tersebut biasanya terjadi karena pada saat diupload, ESP32 kekurangan daya karena terhubung dengan perangkat lain yang cukup memakan daya internal ESP32. Solusi ini juga berlaku untuk perangkat-perangkat lain yang terjadi error ketika terhubung dengan ESP32 saat proses upload.

Berikut hasil video yang dapat dilihat dari contoh proyek ini

NOTE : Sound Up untuk mendengarkan suara dari Passive Buzzer

Sekian tutorial input output menggunakan ESP32 ini, Sekian dan terimakasih, We’ll Back Soon With Another Project 😁