Kategori
IoT

Mikrokontroler ESP32

ESP32 adalah mikrokontroler yang dikenalkan oleh Espressif System dan merupakan penerus dari mikrokontroler ESP8266.

Pada mikrokontroler ini sudah tersedia modul WiFi dan Bluetooth dalam chip sehingga sangat mendukung untuk membuat sistem aplikasi Internet of Things.

ESP32 memiliki fitur yang cukup lengkap karena mendukung input/output Analog dan Digital, PWM, SPI, I2C, dll.

Pengenalan

Arduino adalah platform yang bagus untuk pemula di Mikrokontroler dan Embedded System. Dengan banyak sensor dan modul yang murah, dapat membuat beberapa proyek baik sebagai hobi atau bahkan komersial.

Seiring kemajuan teknologi, ide dan implementasi suatu proyek kecil penggunaan ESP32 membuat kita ikut bermain dalam peranan Internet of Things (IoT). IoT merupakan platform yang terhubung, di mana beberapa “benda” atau perangkat terhubung melalui internet untuk pertukaran informasi.

Proyek IoT terutama difokuskan pada aplikasi Home Automation dan Smart Home tetapi juga sudah banyak pengembangan proyek IoT untuk komersial dan industri yang memiliki implementasi jauh lebih kompleks seperti Machine Learning, Artificial Intelligence, Wireless Sensor Network, dll.

Dengan pengembangan teknologi IoT yang begitu besar baik hanya sekedar hobi atau kebutuhan komersial, sehingga muncul pengembangan terhadap board-board yang kecil dan multifungsi serta memiliki harga yang terjangkau, seperti Arduino UNO, ESP8266, ESP32, dll

Jika ingin menambahkan konektivitas Wi-Fi dalam sebuah proyek, maka ESP8266 adalah pilihan yang bagus. Tetapi jika ingin membangun sistem yang lengkap dengan konektivitas Wi-Fi, konektivitas Bluetooth, ADC , DAC, Konektivitas Serial, dan banyak fitur lainnya, maka ESP32 adalah pilihan utama.

Apa itu ESP32?

ESP32 adalah Mikrokontroler System on Chip (SoC) berbiaya rendah dari Espressif Systems, yang juga sebagai pengembang dari SoC ESP8266 yang terkenal dengan NodeMCU. ESP32 adalah penerus SoC ESP8266 dengan menggunakan Mikroprosesor Xtensa LX6 32-bit Tensilica dengan Wi-Fi dan Bluetooth yang terintegrasi.

Hal yang baik tentang ESP32, seperti ESP8266 adalah komponen RF terintegrasi seperti Power Amplifier, Low-Noise Receive Amplifier, Antena Switch, dan Filter. Hal ini membuat perancangan hardware pada ESP32 menjadi sangat mudah karena hanya memerlukan sedikit komponen eksternal.

Hal penting yang perlu diketahui tentang ESP32 adalah diproduksi menggunakan teknologi 40 nm ultra-low-power TSMC. Jadi, dapat dioperasikan dengan baterai yang umum seperti yang sudah digunakan pada perangkat perlengkapan audio, monitoring, smartwatch, dll.

Spesifikasi ESP32

ESP32 memiliki lebih banyak fitur daripada ESP8266. Memulai dengan ESP32 ini. Berikut ini daftar beberapa spesifikasi penting dari ESP32. Tetapi untuk spesifikasi lengkap, dapat melihat pada Datasheet.

  • Single or Dual-Core 32-bit LX6 Microprocessor with clock frequency up to 240 MHz.
  • 520 KB of SRAM, 448 KB of ROM and 16 KB of RTC SRAM.
  • Supports 802.11 b/g/n Wi-Fi connectivity with speeds up to 150 Mbps.
  • Support for both Classic Bluetooth v4.2 and BLE specifications.
  • 34 Programmable GPIOs.
  • Up to 18 channels of 12-bit SAR ADC and 2 channels of 8-bit DAC
  • Serial Connectivity include 4 x SPI, 2 x I2C, 2 x I2S, 3 x UART.
  • Ethernet MAC for physical LAN Communication (requires external PHY).
  • 1 Host controller for SD/SDIO/MMC and 1 Slave controller for SDIO/SPI.
  • Motor PWM and up to 16-channels of LED PWM.
  • Secure Boot and Flash Encryption.
  • Cryptographic Hardware Acceleration for AES, Hash (SHA-2), RSA, ECC and RNG.

Software Pendukung

Hardware yang baik seperti ESP32 akan lebih user friendly jika dapat diprogram lebih dari satu software pendukung (Cross Platform). ESP32 mendukung beberapa environment pemrograman.

Beberapa environment pemrograman yang umum digunakan adalah:

  • Arduino IDE
  • PlatformIO IDE (VS Code)
  • LUA
  • MicroPython
  • Espressif IDF (IoT Development Framework)
  • JavaScript

Arduino IDE merupakan environment yang paling sering digunakan, tapi tidak salahnya menggunakan environment yang berbeda sehingga memiliki wawasan yang lebih baik lagi

Layout

Board ESP32 memiliki 30 Pin (15 pin di setiap sisi). Ada beberapa board dengan 36 Pin dan beberapa dengan Pin yang lebih sedikit. Jadi, periksa kembali pin sebelum membuat koneksi atau bahkan menyalakan boardnya.

ESP32-DevKit-Board-Layout

Board ESP32 terdiri dari:

  • ESP-WROOM-32 Module
  • Two rows of IO Pins (with 15 pins on each side)
  • CP2012 USB – UART Bridge IC
  • micro–USB Connector (for power and programming)
  • AMS1117 3.3V Regulator IC
  • Enable Button (for Reset)
  • Boot Button (for flashing)
  • Power LED (Red)
  • User LED (Blue – connected to GPIO2)
  • Some passive components

Hal yang menarik tentang IC USB-to-UART adalah bahwa pin DTR dan RTS-nya digunakan untuk mengatur ESP32 secara otomatis ke mode pemrograman (bila diperlukan) dan juga mengistirahatkan board setelah pemrograman.

Pinout ESP32 Board

ESP32 memiliki total 48 pin yang multi fungsi. Penggunaan pin berbeda-beda tergantung fungsinya.

Detail pin dapat dilihat pada gambar disamping.

Keunggulan ESP32 adalah memiliki banyak pin yang dapat berfungsi sebagai analog atau digital sesuai dengan konfigurasi.

ESP32-Pinout

Komunikasi Wired

ESP32 memungkinkan komunikasi/pertukaran data melalui kabel dengan menggunakan beberapa protokol:

  • I2C (Inter-Integrated Circuit) : I2C dapat digunakan pada ESP32 melalui pin SCL (22) dan SDA (42)
  • SPI (Serial Peripheral Interface) : Komunikasi SPI pada ESP32 menggunakan pin MOSI (23), MISO (19), SCK (18), dan CS (2)
  • UART (universal asynchronous receiver-transmitter) : ESP32 juga memberkan fitur komunikasi UART dengan pin Tx (1) dan Rx (3)

Komunikasi Nirkabel

Wi-Fi menggunakan signal Radio sebagai komponen utama untuk berkomunikasi. Radio Frequency yang

umumnya digunakan adalah Frequency 2.4Ghz dan 5Ghz.

Router atau Access Point akan menerima data dari internet lalu akan diterjemahkan menjadi sinyal radio lalu kemudian akan ditransmisikan dari antenna Wi-Fi dan dipancarkan ke perangkat-perangkat penerima.

Istilah pada WiFi

• Access Point : Access Point atau biasa disingkat AP adalah perangkat yang bertugas untuk mengkoneksikan berbagai peralatan Wifi sehingga dapat saling terhubung ke jaringan lokal dan internet.

• SSID (Service Set Identifier) : SSID atau biasa disebut Network ID adalah nama jaringan wireless (Wifi) yang dipancarkan agar dikenali oleh perangkat lain.

• Password : Password merupakan keamanan untuk kresidensial Wifi agar tidak digunakan oleh orang lain. Wifi diamankan menggunakan berbagai enkripsi seperti WEP, WPA, WPA2-PSK, dll.

• RSSI (Received signal strength indication) : RSSI merupakan informasi kekuatan sinyal yang diterima oleh suatu perangkat Wifi. Rentang RSSI adalah -10dBm hingga -100 dBm. Semakin mendekati -10 maka sinyal akan semakin bagus.

• Internet Protocol (IP) : IP adalah nomor yang ditetapkan menjadi alamat atau identitas untuk terhubung ke jaringan lokal maupun internet.

WiFi ESP32

ESP32 memiliki WiFi 802.11 b/g/n  up to 150 Mbps yang sudah terintegrasi dengan board sehingga memudahkan dalam implementasi IoT.

Wifi pada ESP32 memiliki keandalan yang cukup tinggi karena dapat menjangkau sinyal hingga 25 meter.

Penggunaan WiFi ESP32 dapat digunakan menjadi mode Access Point (AP) atau mode Station/Client.

• Mode Station/Client

ESP32 bekerja dengan memancarkan sinyal WiFi agar diterima oleh perangkat lain (Smartpone, Laptop, dll.).

SSID (nama Wifi) dan password yang diberikan dapat dikonfigurasi melalui program yang diupload pada ESP32.

Mode ini biasa digunakan saat ESP32 bertindak sebagai penyedia data jaringan lokal.

• Mode Access Point

ESP32 bertindak sebagai station atau penerima sinyal Wifi yang dipancarkan oleh perangkat lain (Router, Access Point, dll.) sehingga ESP32 harus menyesuaikan SSID dan password sesuai dengan router yang dikoneksikan.

SSID (nama Wifi) dan password dapat dikonfigurasi melalui program yang diupload pada ESP32 sesuai dengan router/access point yang akan dihubungkan. ESP32 akan menerima alamat IP dari router tersebut.

Mode ini lebih fleksibel karena dapat digunakan saat ESP32 bertindak sebagai penyedia data, maupun pengirim data ke jaringan lokal dan internet.

Baca lebih lanjut tentang : Praktek Scan WiFi ESP32

Ref : [1][2][3][4]