Tutorial ESP32 18/55 - Mendeteksi Kemiringan menggunakan ESP32 | Kit Pembelajaran IoT ESP32 SunFounder
Dalam tutorial ini, kita akan menggunakan mikrokontroler SunFounder ESP32 untuk membuat proyek sederhana yang mendeteksi kemiringan menggunakan sakelar kemiringan. Ketika sakelar kemiringan diaktifkan, LED akan mati, dan ketika dalam posisi tegak, LED akan menyala. Proyek ini tidak hanya menjadi pengenalan yang bagus untuk bekerja dengan sensor kemiringan, tetapi juga menjadi dasar untuk berbagai aplikasi robotika. Untuk panduan visual yang detail, pastikan untuk menonton video yang ditautkan di atas (di video pada 00:00).

Penjelasan Perangkat Keras
Komponen utama yang digunakan dalam proyek ini termasuk mikrokontroler ESP32, sakelar kemiringan, dan LED. ESP32 adalah mikrokontroler yang kuat dengan Wi-Fi dan Bluetooth bawaan, menjadikannya ideal untuk aplikasi IoT. Sakelar kemiringan adalah perangkat sederhana yang berisi bola logam di dalam kaleng. Saat dimiringkan, bola bergerak dan memutus sirkuit, memungkinkan kita mendeteksi keadaan kemiringan. LED akan menunjukkan status kemiringan secara visual berdasarkan keadaan sakelar. Selain komponen-komponen ini, kita juga akan menggunakan resistor untuk pembatas arus dan pull-down. Resistor 220-ohm yang terhubung ke LED memastikan LED beroperasi dengan aman tanpa menarik terlalu banyak arus. Resistor 10k-ohm berfungsi sebagai pull-down untuk sakelar kemiringan, memastikan pin input membaca keadaan yang diketahui saat sakelar tidak diaktifkan.
Detail Datasheet
| Produsen | SunFounder |
|---|---|
| Nomor bagian | ESP32 |
| Tegangan logika/IO | 3,3 V |
| Tegangan suplai | 5 V |
| Arus keluaran (per saluran) | 12 mA |
| Arus puncak (per saluran) | 40 mA |
| Panduan frekuensi PWM | 1 kHz |
| Ambang logika input | 0,8 V (rendah), 2,0 V (tinggi) |
| Penurunan tegangan / RDS(on) / saturasi | 0,2 V |
| Batas termal | 85 °C |
| Kemasan | Modul ESP32 |
| Catatan / varian | Termasuk kemampuan Wi-Fi dan Bluetooth |
- Pastikan nilai resistor yang tepat untuk mencegah kerusakan pada LED.
- Jaga kerapian kabel untuk menghindari korsleting.
- Gunakan resistor pull-down untuk memastikan pembacaan yang stabil dari sakelar kemiringan.
- Uji koneksi sebelum memberi daya pada sirkuit untuk menghindari kegagalan komponen.
- Periksa orientasi sakelar kemiringan untuk fungsi yang akurat.
Instruksi Pengkabelan

Untuk mengkabel komponen, mulailah dengan sakelar kemiringan, yang tidak memiliki polaritas, sehingga dapat dihubungkan ke arah mana pun. Hubungkan satu pin sakelar kemiringan ke suplai 3,3V dan pin lainnya ke pin 14 pada ESP32. Untuk memastikan pin 14 membaca keadaan yang diketahui saat sakelar tidak diaktifkan, hubungkan resistor 10k-ohm dari pin yang sama ke ground. Selanjutnya, ambil LED dan masukkan ke breadboard dengan kaki yang lebih panjang (anoda) terhubung ke resistor 220-ohm. Hubungkan ujung lain resistor ke pin 26 pada ESP32. Kaki yang lebih pendek (katoda) dari LED harus dihubungkan ke ground. Terakhir, hubungkan pin ground ESP32 ke rel ground breadboard Anda dan pin 3,3V ke rel daya. Pastikan untuk memeriksa ulang semua koneksi untuk mencegah korsleting atau pembacaan yang salah. Jika Anda mengikuti langkah-langkah ini, Anda akan memiliki pengaturan sensor kemiringan yang berfungsi siap untuk diprogram.
Contoh Kode & Penjelasan
Kode dimulai dengan mendefinisikan nomor pin untuk sakelar kemiringan dan LED. Sakelar kemiringan terhubung ke pin 14, dan LED terhubung ke pin 26. Keadaan sakelar kemiringan disimpan dalam variabel tiltState.
// Atur nomor pin
const int tiltPin = 14; // Sakelar Kemiringan
const int ledPin = 26; // LED
// Variabel untuk menyimpan status kemiringan
int tiltState = 0;
Kutipan ini menunjukkan penugasan pin dan deklarasi variabel yang akan melacak keadaan kemiringan. tiltPin diatur sebagai input untuk membaca status sakelar. Dalam fungsi setup(), komunikasi serial diinisialisasi, dan mode pin diatur untuk sakelar kemiringan dan LED. Ini memastikan ESP32 dapat membaca input dari sakelar kemiringan dan mengontrol LED sesuai.
void setup() {
Serial.begin(115200);
// Inisialisasi pin kemiringan sebagai input
pinMode(tiltPin, INPUT);
// Inisialisasi pin LED sebagai output
pinMode(ledPin, OUTPUT);
}
Bagian ini sangat penting karena mengatur lingkungan, memungkinkan ESP32 berkomunikasi secara efektif dan mengontrol output berdasarkan status sakelar kemiringan. Fungsi loop() terus-menerus memeriksa keadaan sakelar kemiringan. Jika sakelar tegak, LED akan menyala; jika dimiringkan, LED akan mati. Keadaan saat ini dicetak ke monitor serial untuk debugging.
void loop() {
// Baca keadaan sakelar kemiringan
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// Jika sakelar tegak
if (tiltState == HIGH) {
// Nyalakan LED
digitalWrite(ledPin, HIGH);
} else {
// Matikan LED
digitalWrite(ledPin, LOW);
}
}
Loop ini berjalan terus-menerus, memungkinkan pemantauan real-time dari keadaan sakelar kemiringan dan kontrol LED yang sesuai. Output dapat diamati di monitor serial, membuatnya mudah untuk memverifikasi fungsi.
Demonstrasi / Apa yang Diharapkan
Setelah semua terhubung dengan benar dan kode berhasil diunggah, Anda akan melihat LED menyala saat sakelar kemiringan dalam posisi tegak, dan akan mati saat dimiringkan. Korelasi langsung antara keadaan kemiringan dan respons LED ini menunjukkan fungsi sakelar kemiringan secara efektif. Kesalahan umum yang sering terjadi meliputi memastikan bahwa kabel terhubung dengan benar dan memverifikasi bahwa resistor ditempatkan dengan tepat untuk menghindari korsleting (dalam video pada menit 12:00).
Stempel Waktu Video
- 00:00 Mulai
- 1:44 Pengenalan Proyek
- 2:49 Dokumentasi
- 6:43 Penjelasan Wiring Arduino
- 10:39 Penjelasan kode Arduino
- 13:40 Memilih papan ESP32 dan port COM di Arduino IDE
- 15:22 Demonstrasi Proyek Kemiringan
// Set pin numbers
const int tiltPin = 14; // Tilt Switch
const int ledPin = 26; // LED
// Variable for storing the tilt status
int tiltState = 0;
void setup() {
Serial.begin(115200);
// Initialize the tilt pin as an input
pinMode(tiltPin, INPUT);
// Initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// Read the state of the tilt switch
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// If the switch is upright
if (tiltState == HIGH) {
// Turn LED on
digitalWrite(ledPin, HIGH);
} else {
// Turn LED off
digitalWrite(ledPin, LOW);
}
}
Common Course Links
Common Course Files
Sumber daya & referensi
-
DokumentasiESP32 Tutorial 18/55 - SunFounder Tile sensor documentationdocs.sunfounder.com
Berkas📁
Tidak ada file tersedia.