Komunikasi data antara berbagai perangkat elektronik menjadi penting dalam berbagai proyek elektronik dan Internet of Things. Salah satu cara yang paling umum digunakan adalah komunikasi serial UART (Universal Asynchronous Transmitter. Pada artikel kali ini, Arduino Indonesia akan membahasa tentang bagaimana komunikasi data Arduino dan ESP32 dengan menggunakan UART. UART merupakan protokol komunikasi serial yang memungkinkan perangkat untuk mengirim dan menerima data per bit secara asinkron. Artinya, data dikirimkan dalam bentuk urutan bit tanpa sinyal clock eksternal. Setiap perangkat memiliki tempat penyimpanan sementara (buffer) untuk menampung data yang dikirim dan diterima. Kecepatan komunikasi ditentukan oleh baud rate yang mewakili jumlah bit data yang dikirim dalam satu detik.
Baca juga : Komunikasi Data UART dengan Arduino
Arduino dan ESP32
Arduino dan ESP32 adalah dua jenis board mikrokontroler yang sering digunakan dalam proyek elektronika dan Internet of Things. Arduino dikenal karena kemudahan penggunaannya, sedangkan ESP32 memiliki kemampuan WiFi dan Bluetooth, sehingga cocok untuk berbagai proyek Internet of Things yang memerlukan konektivitas nirkabel. UART dipilih sebagai metode komunikasi Arduino dan ESP32 karena kesederhaannya, keandalannya dan kemudahan dalam mengimplementasikannya. Arduino dan ESP32 memiliki built-in hardware UART, sehingga tidak memerlukan library tambahan untuk menggunakannya dan memungkinkan pengguna untuk fokus pada inti proyek.
Langkah-langkah Komunikasi Data Arduino dan ESP32 dengan menggunakan UART
1. Hubungkan Fisik
Pin TX (transmitter) pada Arduino disambungkan ke
pin RX (receiver) di ESP32 dan pin RX dari Arduino disambungkan ke pin TX di
ESP32. Setelah itu, pastikan kedua perangkat berbagi GND yang sama.
2. Inisialisasi Serial di Kedua Perangkat
Mulailah menginisialisasi komunikasi serial di kedua perangkat. Untuk memulai komunikasi serial dengan baud rate yang sama dengan ESP32 pada Arduino, gunakan “Serial.begin(baud_rate)”. Inisialisasi komunikasi serial pada ESP32 dilakukan juga dengan menggunakan “Serial.begin(baud_rate)”.
void setup() {
Serial.begin(9600); // atau sesuai baud rate yang diinginkan
}
3. Kirim dan Terima Data
Perangkat sudah siap untuk saling berkomunikasi. Untuk mengirim data dari Arduino ke ESP32, gunakan “Serial.write()” untuk Arduino dan “Serial.read()" pada ESP32 untuk menerima data tersebut.
Arduino - Mengirim data
void loop() {
int dataToSend = 42;
Serial.write(dataToSend);
delay(1000);
}
ESP32 - Menerima data
void loop() {
if (Serial.available() > 0) {
int dataReceived = Serial.read();
// Lakukan sesuatu dengan data yang diterima
}
}
4. Tentukan Protokol Komunikasi
Menentukan protokol komunikasi agar kedua perangkat dapat saling memahami termasuk hal penting. Contohnya, Anda dapat menggunakan karakter khusus seperti newline (‘\n’) atau delimiter tertentu untuk memisahkan data yang dikirimkan.
Arduino - Mengirim data dengan newline sebagai delimiter
void loop() {
int dataToSend = 42;
Serial.print(dataToSend);
Serial.print("\n"); // newline sebagai delimiter
delay(1000);
}
ESP32 - Menerima data dan memisahkan menggunakan newline
void loop() {
if (Serial.available() > 0) {
String dataReceived = Serial.readStringUntil('\n');
// Lakukan sesuatu dengan data yang diterima
}
}
0 on: "Komunikasi Data Arduino dan ESP32 dengan menggunakan UART"