Async Proses dengan ESP32

Suko Widodo
2 min readMar 12, 2020

Kali ini saya ingin bahas 2 hal yang mungkin masih belum familiar bagi kalian yaitu tentang Async dan ESP32. Mungkin bagi para maker atau opreker tidak asing dengan ESP32. Ya ESP32 adalah development board yang cukup populer, development board dari Expressif untuk membuat alat-alat yang terhubung dengan internet atau populer disebut IoT (Internet of Think).

ESP32 selain wifi juga sudah include Bluetooth v4 atau lebih sering disebut BLE (Bluetooth Low Energy). Tapi untuk tutorial kali ini saya akan membahas tentang async process di ESP32.

Sedangkan apa itu async? Async atau multi threading adalah 2 atau lebih proses yang berjalan tanpa saling tunggu (non blocking). Sedangkan kebalikanya disebut synchronous (blocking).

Nah ini spesialnya ESP32 yang dibekali dengan 2 core Xtensa LX6 yang membuatnya dapat memproses 2 proses sekaligus. Selanjutnya apa manfaat dari proses async tersebut? Tentu saja kita bisa manfaatkan untuk proses yang butuh async, contoh kita buat saja kita punya 2 led yang kita

Led1 => jalan setiap 3 detik

Led2 => jalan setiap 5 detik

Yang seharusnya

Led1 nyalah di detik => 3, 6, 9, 12, …dst

Led2 nyalah di detik => 5, 10, 15,20,..dst

Hasil diatas tidak akan diperoleh jika async karena async hanya menggunakan 1 thread seperti pada umumnya mikrokontroller seperti arduino atau ESP8266. Dibawah ini contoh async

Bisa juga tetap sync marathon proses antara kedua core dengan XemaphoreHandle seperti contoh dibawah ini

Kesimpulan

ESP32 cocok untuk jika kita butuh async proses yang membuat proses jadi lebih cepat karena ada 2 core yang berjalan paralel tanpa saling tunggu seperti pada umumnya mikrokontroller

Thanks and credit for Andreas Spiess this article inspired by https://www.youtube.com/watch?v=k_D_Qu0cgu8

--

--