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
- 1 buah breadboard
- 1 buah I/O Expansion ESP32 Shield (optional)
- 1 buah Lampu LED
- 1 buah Passive Buzzer Module
- 1 buah Tactile Switch Push Button
- 1 buah Resistor 10K ohm dan 1 buah Resistor 220 ohm
- 9 buah Kabel jumper male to female / sesuai kebutuhan
- 1 buah Kabel jumper male to male / sesuai kebutuhan
Kemudian, susunlah rangkaian ESP32 dan perangkat lainnya mengikuti gambar di bawah ini
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.
Namun jika anda mengalami error pada saat upload seperti gambar di bawah ini
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 😁
Seorang PNS Kementerian Dalam Negeri yang menjadi penerima Beasiswa Kominfo pada Magister Informatika ITB Program Smart-X, yaitu program kerjasama antara Kominfo dan ITB dalam pemenuhan sumber daya manusia di bidang Smart System
Leave a Reply
View Comments