Dalam Tutorial ini, MatGyver akan menerangkan bagaimana MEMAHAMI Board ESP32.
Antara tujuan artikel ini ditulis, adalah kerana Board ESP32 adalah antara Board yang terdapat TERLALU-BANYAK Pantang-Larang yang tidak diterangkan dengan jelas, dan tidak di-COMPILE-kan dalam satu rujukan.
JADUAL RINGKASAN PANTANG-LARANG PIN ESP32
Jadual di bawah, menerangkan secara keseluruhan berkenaan PANTANG-LARANG menggunakan ESP32. Perincian berkenaan jadual ini, akan kita terangkan dengan lebih lanjut.

Bagi memulakan tutorial artikel ini, kita akan sentuh dahulu berkenaan SPESIFIKASI serta KAEDAH-INSTALL Board ESP32 dalam Arduino IDE.
SPESIFIKASI BOARD ESP32 (DEV KIT V1 DOIT)
Spesifikasi | ESP32 | Arduino UNO |
Bilangan Core CPU | 2 (Dual-Core) | 1 (Single-Core) |
Built-In WiFi | 2.4GHz | TIADA |
Built-In Bluetooth | BLE dan Legacy Bluetooth | TIADA |
CPU Clock Frequency | sehingga 240MHz | 16MHz |
CPU Architecture | 32-bit | 8-bit |
RAM | 512 KB | 2 KB |
EEPROM | 4 KB | 1 KB |
Flash Memory | 4 MB | 32 KB |
Digital/Analog Pins | 30~36pin | 19 pin |
Analog-In Pins | 14 (rujuk carta Pantang-Larang) | 6 pin |
Hardware Serial | 2 | 1 |
I2C Port | 1 | 1 |
SPI Port | 2 | 1 |
Capacitive Touch Pin | 10 | TIADA |
CPU / Frequency / Core
ESP32 mempunya 2 (Dual-Core) CPU, bermakna kita seolah-olah dapat menggunakan 2 VOID-LOOP yang dapat saling berinteraksi antara satu-sama lain. Ini boleh menjadi SOLUSI MULTI-TASKING yang sering dihadapi bila menggunakan UNO. Namun, penggunaan dan programming 2 VOID-LOOP adalah amat sukar untuk beginners, dan terma yang biasa digunakan untuk Multi-Core Programming adalah RTOS (RealTime Operating System).
Penggunaan Multi-Core boleh menjadi solusi untuk sistem-sistem yang mengawal STEPPER MOTOR kerana kawalan Stepper Motor mementingkan Precise-Frequency Execution.
Kelajuan CPU 240MHz berbanding 16MHz juga merujuk kepada kelajuan Void-Loop dibaca oleh CPU. Ini antara aspek penting yang dapat dimanfaatkan untuk applikasi-applikasi IoT yang sangat padat dengan Line-Line Coding String HTML/JAVA/JSON dan sebagainya.
Dalam masa yang sama, kelajuan CPU 240MHz juga dapat dimanfaatkan oleh applikasi STEPPER-MOTOR dimana, MAX-RPM Stepper Motor dapat ditingkatkan berbanding penggunaan Arduino UNO.
Built-In WiFi
AMARAN!
WiFi dan Bluetooth TIDAK boleh digunakan kedua-dua dalam SATU MASA.
Built-In Bluetooth
AMARAN!
WiFi dan Bluetooth TIDAK boleh digunakan kedua-dua dalam SATU MASA.
RAM / EEPROM / Flash Memory
PANTANG-LARANG ESP32

PENGGUNAAN SERVO UNTUK ESP32
Library default yang biasa digunakan <Servo.h> TIDAK boleh digunakan bersama Board ESP32.
Oleh itu, Library pengganti yang boleh digunakan adalah
ServoESP32 by RoboticsBrno
Library tersebut boleh didapatkandi URL GitHub berikut:
https://github.com/RoboticsBrno/ServoESP32
Kaedah penulisan dan penggunaan Library ServoESP32 adalah sama sahaja seperti library <Servo.h>
INPUT_PULLUP BUKAN UNTUK SEMUA PIN
Fungsi INPUT_PULLUP adalah sangat menyenangkan, namun tidak semua pin pada ESP32 membenarkan fungsi ini digunakan.
Senarai Pin yang boleh menggunakan INPUT_PULLUP pada ESP32 adalah:
16, 17, 18, 19, 21, 22, 23
OUTPUT BUKAN UNTUK SEMUA PIN
Senarai Pin yang TIDAK boleh menggunakan OUTPUT pada ESP32 adalah:
Pin 6 hingga 11, dan juga 34,35,36 dan 39
ELAKKAN PENGGUNAAN Pin 12
Pin 12 biasa digunakan untuk process mengupload coding.
Sebarang device yang bersambung pada Pin 12 boleh mengganggu process upload coding dan mengeluarkan ERROR berikut:
A fatal error occurred: Timed out waiting for packet content
SAMBUNGAN i2C dan Library
Pin DEFAULT untuk i2C hardware pada ESP32 adalah pada pin 21 dan pin 22, di mana;
- Pin 21 = SDA
- Pin 22 = SCL
Penulisan code , Wire.begin()
Untuk mengubah pin i2C pin yang boleh digunakan adalah seperti berikut:
- Pin16 dan Pin17
- asdasd
Penulisan code , Wire.begin(16, 17)
Senarai gabungan pin yang TIDAK boleh digunakan.
- Pin15 dan Pin2
AMARAN:
I2C pin 21 dan juga pin 22 tidak boleh digunakan bersama SPI communication. Dalam keadaan ini, gunakan gabungan pin lain selain pin 21 dan 22 untuk I2C
GURU MEDITATION ERROR: Core 1 panic’ed…

Bagi sesiapa yang pernah membuat pelbagai project dengan ESP32, Error: Guru Meditation ini pasti pernah muncul beberapa kali.
Namun bagi beginners, pasti akan keluh untuk mencari penyelesaian bagi error ini.
Kami hanya dapat “highlight” beberapa punca UTAMA error ini, namun adakalanya, error ini boleh berpunca dari masalah lain.
Punca #1 : Current supply yang tidak mencukupi

Seperti gambar di atas, kebiasaan anda memberi kuasa pada board ESP32 melalui port USB. Kebiasaan USB-Port/Plug/Charger HANYA mampu mengeluarkan 5V voltage pada CURRENT 500mA SAHAJA!
ESP32 sendiri boleh consume sehingga 150mA current.
500mA ini TIDAK MENCUKUPI untuk sesetengah module seperti di bawah.
Secara tidak langsung, semasa module-module ini dinyalakan, ia menyebabkan CURRENT-SUPPLY pada ESP32 TIDAK MENCUKUPI dan menyebabkan ESP32 Restart dan mengeluarkan Error: Meditation Core
GSM SIM900 / SIM800

SERVO MOTOR

PENYELESAIAN : VOLTAGE REGULATOR / POWER SUPPLY
Salah satu penyelesaian bagi kekurangan current supply adalah dengan kaedah menambahkan Voltage Regulator LM2596 (Rating 2A) seperti dalam rajah di bawah.
Punca #2 : Penggunaan Interrupt-Pin yang tidak sesuai
Seperti yang diterangkan di Jadual-Pin di atas, walaupun ESP32 mempunyai banyak pin, namun kebanyakan pin berkongsi fungsi dengan fungsi-fungsi hardware utama ESP32 seperti Bluetooth dan juga WiFi.
Oleh itu, adakalanya pin-interrupt yang digunakan perlu dipilih dengan betul supaya tidak bercanggah dengan fungsi WiFi dan Bluetooth.
Punca lain-lain
Bagi punca-punca lain yang tidak diterangkan di atas, tuan-tuan perlu membuat rujukan lanjut di blog-blog atau tutorial lain di Google.
To Be Continued….
Jika anda menyukai artikel-artikel keluaran MatGyver.my, kami mohon jasa baik tuan/cikpuan untuk sumbangkan like pada page FaceBook kami,
dan juga Subscribe ke YouTube Channel kami !
end