Komunikasi serial merupakan salah satu komunikasi data yang sinkron, meskipun esp32 sudah memiliki cukup banyak pin gpio yang bisa bekerja sendiri tanpa menggunakan arduino sekalipun, namun tujuan dari artikel ini hanya untuk belajar, barang kali suatu saat mengharuskan komunikasi data antar esp32 dan arduino uno dengan serial, maka tutorial ini bisa bermanfaat.
memang jarang saya temui orang yang menggunakan esp32 juga menggunakan arduino uno dalam satu proyek, tapi hal ini tidak mustahil dalam satu proyek digunakan arduino dan esp32 secara bersamaan.
Aplikasi Penerapan Komunikasi Serial ESP32 dan Arduino Uno
- Saat membutuhkan WiFi dalam Proyek
- Proyek yang membutuhkan tegangan level 5V
- Saat membutuhkan Bluetooth dan Wifi sekaligus banyak port
- dan sebagainya
Langkah Membuat Komunikasi Serial ESP32 dan Arduino Uno
Pada ESP32 kita tidak memerlukan library softwareserial karena sudah tersedia hardwareserial, jika menginginkan softwareserial silahkan cari sendiri library yang cocok untuk ESP32. Sedangkan untuk Arduino Uno kita akan menggunakan library SoftwareSerial.
- Siapkan modul ESP32 Beli Disini
- Siapkan modul arduino uno Beli Disini
- Buat rangkaian seperti pada gambar diatas
- Buat program
- Upload program
Program ESP32 Serial
//GPIO17 itu tx2 //GPIO16 itu rx2 String data; void setup() { // put your setup code here, to run once: Serial.begin(9600); Serial2.begin(9600); } void loop() { // berikut data yang dibaca dari serial monitor sendiri, kemudian dikirim ke perangkat lain while(Serial.available() > 0){ delay(10); char d = Serial.read(); data += d; } if (data.length() > 0){ Serial2.print(data); data = ""; } // berikut code untuk membaca data dari perangkat lain while(Serial2.available() > 0){ delay(10); char d = Serial2.read(); data += d; } if (data.length() > 0){ Serial.println(data); data = ""; } }
Program Arduino Uno Serial
#include <SoftwareSerial.h> SoftwareSerial Serial2 (2, 3); // 2 rx, 3 tx String data; void setup() { // put your setup code here, to run once: Serial.begin(9600); Serial2.begin(9600); } void loop() { // berikut data yang dibaca dari serial monitor sendiri, kemudian dikirim ke perangkat lain while(Serial.available() > 0){ delay(10); char d = Serial.read(); data += d; } if (data.length() > 0){ Serial2.print(data); data = ""; } // berikut code untuk membaca data dari perangkat lain while(Serial2.available() > 0){ delay(10); char d = Serial2.read(); data += d; } if (data.length() > 0){ Serial.println(data); data = ""; } }
Hasil dari program diatas akan tampak seperti pada gambar dibawah ini.
Komunikasi serial memiliki kekurangan dalam penggunaan kabel nya yang tidak bisa di pararel seperti pada komunikasi I2C ataupun SPI.
Sebenarnya cukup sampai disini penjelasan tentang komunikasi serial antar esp32 dengan arduino uno, supaya banyak dan mencapai tiga ratus kata maka artikel ini akan saya panjang kan sedikit.
jika kalian membutuhkan jasa pemograman arduino, esp32, esp8266, pcb dan sebagainya untuk kebutuhan komersil ataupun tugas kuliah, admin anakkendali.com siap menjadi pembantu.
silahkan hubungi admin untuk membicarakan mengenai jasa iot atau mikrokontroler lainya, adapun jika kalian ingin ikut bergabung sebagai penulis konten di website anakkendali.com kami sangat senang jika ada orang lain yang punya jiwa berbagi.
Keyword
- Arduino dan ESP32
- Komunikasi Antar Arduino ESP32
- Komunikasi Arduino ESP32
- Mengakses ESP32 Arduino
- Program ESP32 dengan Arduino Uno
- Code Komunikasi ESP32
izin bertanya, pada arduino jika yg digunakan untuk rx dan tx adalah pin 0 dan 1 apakah bisa?,
dan kenapa memakai pin 2 dan 3?
terima kasih
arduino uno/nano/pro mini pin 0 dan 1 hardwareserial, yang defaultnya sudah digunakan untuk proses upload program dan komunikasi antar arduino dan laptop, tapi bisa digunakan jika proses upload sudah selesai.
2 – 13 pin digital yang bisa dimodifikasi menjadi softwareserial sebagai alternatif pin 0 dan 1
izin bertanya, apakah di esp32 harus dideclare pin software serialnya seperti arduino?
pakai hardwareserial aja,, bisa pakai serial2
izin bertanya, kalau arduino unony hanya sebagai receiver saja bagaimana y?
misal dari esp32 mengirim data sensor dht22 ke arduino uno
Terima Kasih
izin bertanya, apakah skematic pada wemos bisa di terapkan pada semua tipe esp32 lainnya seperti devkit v1 dll ?
atau jika beda tipe esp32 di butuhkan resistor atau tidak saat komunikasi dari esp32 ke arduino atau sebaliknya ?
Izin bertanya, tegangan kerja dari arduino uno itu 5v sedangkan tegangan kerja dari esp32 itu 3v. apakah tidak masalah menghubungkan pin arduino uno dengan esp32 tanpa voltage divider? terimakasih..