Anda di halaman 1dari 14

Muhammad saeful hilalulloh

XII TAV B

P3V

Selasa, 29 September

ESP32 PART-1. HARDWARE ESP32

ESP32 adalah sebuah chip mikrokontroller. ESP32 merupakan System on Chip yang menyediakan Wi-
Fi ditambah Bluetooth 4.2  Solusi kombo pada pita 2.4GHz dengan menggunakan teknologi 40nm.

ESP32 dibuat oleh Espressif Systems, ESP32 adalah sistem dengan biaya yang rendah, berdaya rendah
pada seri chip (SoC) dengan Wi-Fi & kemampuan Bluetooth dua mode! Keluarga ESP32 termasuk chip
ESP32-D0WDQ6 (dan ESP32-D0WD), ESP32-D2WD, ESP32-S0WD, dan sistem dalam paket (SiP) ESP32-
PICO-D4. Pada intinya, ada mikroprosesor Tensilica Xtensa LX6 dual-core atau single-
core dengan clock rate hingga 240 MHz. ESP32 sudah terintegrasi dengan built-in antenna switches,
RF balun, power amplifier, low-noise receive amplifier, filters, and power management modules.
Didesain untuk perangkat seluler, perangkat elektronik yang dapat dipakai, dan aplikasi IoT, ESP32
juga bekerja dengan konsumsi daya sangat rendah melalui fitur hemat daya termasuk fine resolution
clock gating, multiple power modes, and dynamic power scaling. 

Module ESP32 merupakan penerus dari module ESP8266 yang cukup populer untuk Aplikasi IoT. Pada
ESP32 terdapat inti CPU serta Wi-Fi yang lebih cepat, GPIO yang lebih, dan mendukung Bluetooth Low
Energy.

Fitur dan Spesifikasi ESP32

1.Prosesor:

·  Prosesor utama: Tensilica Xtensa mikroprosesor LX6 32-bit

·  Cores: 2 atau 1 (tergantung variasi)

·  Frekuensi clock: hingga 240 MHz

·  Kinerja: hingga 600 DMIPS


·  Co-prosesor daya sangat rendah: memungkinkan Anda melakukan konversi ADC,

2.Konektivitas nirkabel:

     Wi-Fi: 802.11 b/g/n/e/i (802.11n @2.4 GHz hingga 150Mbit/s) Bluetooth: v4.2 BR/EDR dan
Bluetooth Low Energy(BLE).

3.Memori:

  Memori internal:

ROM: 448 KB

SRAM: 520 KB

RTC fast SRAM: 8 KB

RTC slow SRAM: 8 KB

eFuse: 1 Kbit

Flash tertanam:

0 MB(ESP32-D0WDQ6, ESP32-D0WD, dan chip ESP32-S0WD)

2 MB(chip ESP32-D2WD)

4 MB(modul ESP32-PICO-D4 SiP)

Flash eksternal & SRAM: 

ESP32 mendukung hingga empat kali QSPI eksternal 16 MiB  dan SRAM dengan enkripsi perangkat
keras berdasarkan AES untuk melindungi pengembang  program dan data. ESP32 dapat mengakses
flash QSPI eksternal dan SRAM  melalui cache berkecepatan tinggi.

Flash eksternal hingga 16 MB dipetakan ke ruang kode CPU, mendukung akses 8- bit, 16-bit dan 32-
bit. Eksekusi kode didukung.

  Memori flash/SRAM eksternal 

Memori flash/SRAM eksternal hingga 8 MB dipetakan ke data CPU ruang, mendukung akses  8-bit, 16-
bit dan 32-bit. Pembacaan data didukung pada flash dan SRAM. Penulisan data didukung pada SRAM
4.Input/output periferal: 

Antarmuka periferal yang kaya dengan DMA yang mencakup kapasitif sentuh,ADC (converter analog-
ke-digital),DACkonverter digital-ke-analog),I²C(Sirkuit Terpadu),UART(penerima/pemancar asinkron
universal), CAN 2.0 (Jaringan Area Pengendali), SPI (Serial Peripheral Interface), I²S (Suara Inter-IC
Terpadu), RMII (Reduced Media-Independent Interface), PWM (modulasi lebar pulsa), dan banyak
lagi. 

5. Keamanan:

      Fitur keamanan standar IEEE 802.11 semua didukung, termasuk WFA, WPA/WPA2 dan WAPI Boot
aman Enkripsi flash OTP 1024-bit, hingga 768 bit untuk pelanggan Akselerasi perangkat keras
kriptografis: AES, SHA-2, RSA, kurva eliptik kriptografi (ECC),generator angka acak(RNG).

Bentuk Fisik ESP32 Dev Module

Soket Micro-USB: Soket USB mikro digunakan untuk menghubungkan ESP32 ke komputer melalui
kabel USB. Ini digunakan untuk memprogram modul ESP dan juga dapat digunakan untuk debugging
serial karena mendukung komunikasi serial

Tombol EN: Tombol EN adalah tombol reset pada modul ESP. Menekan tombol ini akan mengatur
ulang kode yang berjalan pada modul ESP

Tombol Booting: Tombol ini digunakan untuk mengunggah Program dari Arduino ke modul ESP. Itu
harus ditekan setelah mengklik ikon unggah pada Arduino IDE. Ketika tombol Boot ditekan bersamaan
dengan tombol EN, ESP masuk ke mode unggahan firmware. Jangan bermain dengan mode ini kecuali
Anda tahu apa yang Anda lakukan.

LED Merah: LED Merah di papan digunakan untuk menunjukkan catu daya. Itu menyala merah ketika
papan dinyalakan.

LED Biru: LED Biru di papan terhubung ke pin GPIO. Itu bisa dihidupkan atau dimatikan melalui
pemrograman. Di beberapa papan kloning Cina seperti milik Anda, led ini juga berwarna merah.

pin I/O: Di sinilah perkembangan besar telah terjadi. Tidak seperti ESP8266, pada ESP32 kita dapat
mengakses semua pin I/O modul melalui pin break-out. Pin ini mampu Baca/Tulis Digital, Baca/Tulis
Analog, PWM, IIC, SPI, DAC, dan banyak lagi. Kita akan membahasnya nanti. Tetapi jika Anda tertarik,
Anda bisa belajar melalui deskripsi pin di ESP32 Datasheet.

ESP-WROOM-32: Ini adalah jantung dari modul ESP32. Ini adalah mikroprosesor 32-bit yang
dikembangkan oleh sistem Espressif. Jika Anda lebih sebagai orang teknis, Anda dapat membaca
Lembar Data ESP-WROOM-32.
ESP32 PART-2. INSTALASI BOARD ESP32

A. Driver USB to Serial 


Untuk dapat mulai mengakses ESP32, yang pertama harus dilakukan adalah memastikan driver serial
to usb telah terinstall pada komputer. Pada board development ESP32 DevKitC yang digunakan chip
usb to serialCP2102, sehingga driver yang diperlukan dapat diunduh dari internet 

Setelah terinstall, hubungkan board development ESP32 dengan komputer menggunakan kabel data
usb. Lalu perhatikan pada Device Manager harusnya terbaca port usb to serial sebagai berikut 

B. Menginstal Board ESP32 Pada Arduino IDE 


Untuk Memulai Pemrograman ESP32 menggunakan Arduino IDE, maka pastikan Anda sudah
melakukan Download dan Install Software Arduino IDE pada PC/Laptop Anda.

Berikut ini langkah-langkah untuk Untuk Memulai Pemrograman ESP32 menggunakan Arduino IDE.

1. Open Arduino IDE >> Pilih Menu File >> Preference 

2. Pada Kolom Preference, masukkan Link ini                      
https://dl.espressif.com/dl/package_esp32_index.json pada kolom tersebut lalu Klik OK. 

3. Tutup Jendela Preference, buka Tools >> Board >> Boards Manager 

Jika anda pernah menginstall board untuk ESP8266, maka pisahkan dengan baris baru.Kemudian klik
OK  

4. Jalankan Boards Manager, melalui menu Tools > Board > Boards Manager. Pastikan komputer
terhubung dengan koneksi internet, karena Arduino IDE akan mengunduh data dari alamat url
repositori yang dimasukan pada menu preferences di langkah sebelumnya. 

5. Ketikan esp32 pada filter pencarian, sehingga muncul seperti gambar. Lalu klik Install 

Tunggu beberapa saat hingga proses download dan instalasi selesei. Lalu klik Close  

6. Hubungkan Module ESP32 ke Laptop Anda seperti tampak pada gambar dibawah ini 

ELEKTRONIKA HENDRY

Pilih board yang akan digunakan  disini kita akan menggunakan esp32 Dev Module 

ELEKTRONIKA HENDRY

ELEKTRONIKA HENDRY
8. Ketik Code Program dibawah ini untuk Uji Coba dan memastikan Port Serial ESP32 tersebut
berfungsi dengan baik. 

            void setup()  

            { 

              Serial.begin(115200); 

             } 

            void loop()  

            { 

              Serial.println("ESP32 Serial Test"); 

              delay(1000); 

             } 

9. Upload code program ke Module ESP32 seperti anda melakukannya ke Module Arduino Uno  atau
yang lainnya.

10. Lalu pilih Tools >> Serial Monitor. Jika berhasil, maka akan tampil seperti berikut ini pada Serial
Monitor. Dan pastikan Baudrate menggunakan 115200. 

11. Module ESP32 sudah siap digunakan dan diprogram sesuai dengan keinginan Anda

ESP32 PART-3. STRUKTUR PEMOGRAMAN ESP32

Secara umum pemograman ESP32 sama dengan Arduino Uno, hanya saja harus ada penyesuaian
seperti penomoran pin, dan perintah-perintah spesifik lainnya yang berbeda dengan Arduino Uno. 

Dibawah ini akan dijelaskan struktur pemrograman untuk ESP32.

int value =0; //variable global

# include // library atau file yang akan digunakan

void setup()

// semua kode yang disini akan dibaca sekali oleh Arduino/ESP32

}
void loop()

//semua kode yang ada disini akan dibaca 

//berulang kali (terus menerus) oleh Arduino/ESP32

void Fungsi();

//fungsi /sub program yang sering dipanggil

KETERANGAN

1.    void setup

Semua kode program yang ada dalam void setup akan dibaca sekali oleh Arduino. Biasanya isinya
berupa kode perintah untuk menentukan fungsi pada sebuah pin.

Contoh kodenya seperti:

pinMode(2, OUTPUT);  // menentukan GPIO 2 sebagai OUTPUT 

pinMode(13,INPUT);    // menentukan GPIO 13 sebagai INPUT        

2.    void loop

Semua kode program yang ada di void loop akan dibaca setelah void setup dan akan dibaca terus
menerus oleh ESP32. Isinya berupa kode-kode perintah kepada pin INPUT dan OUTPUT pada ESP32.

Contoh kodenya seperti:

digitalWrite(13, HIGH);  //untuk memberikan 3,3 V ke pin 13.

digitalWrite(13, LOW);  //untuk memberikan 0 V ke pin 13.

analogWrite(3, 225);    //untuk memberikan nilai 225 (setara dengan 3,3 V) kepada pin 3.

3.    Serial Monitor

Adapun untuk menampilkan nilai pada sebuah sensor di Serial Monitor, bisa menggunaka:

Serial.print(namasensor);
//menampilkan nilai sensor yang disimpan di variabel nama sensor Untuk menampilkan teks, bis
menggunakan:

Serial.print("Selamat Datang"); 

//menampilkan teks Selamat Datang pada Serial Monitor

Dan untuk membuka Serial Monitor sendiri pada Arduino, bisa dengan memilih menu Tools kemudian
pilih Serial Monitor. Atau dengan menekan kombinasi CTRL+SHIFT+M di keyboard. Atau bisa juga
dengan meng-klik ikon Kaca Pembesar di Arduino, seperti gambar dibawah ini:

Untuk komunikasi antara ESP32 dengan komputer, dapat menggunakan: 

// untuk komunikasi Arduino dengan komputer dengan baudrate 9600

4.    Membuat Catatan Pada Program

Kamu bisa membuat catatan pada program dan tidak akan dibaca oleh Arduino, dengan cara
mengetikan // kemudian mengetikan catatannya, seperti:

void loop() {

// catatan pada baris ini tidak akan dibaca oleh program

Tetapi pemakaian tanda // hanya berfungsi untuk catatan satu baris saja.

Jika kamu ingin membuat catatan yang panjang yaitu berupa paragraf. Maka pertama kamu ketikan /*
lalu ketikan catatan kamu, dan jika sudah selesai tutup dengan kode */

Contohnya seperti:

void loop() {

/* apapun yang kamu mau ketikan disini tidak akan dibaca oleh program sepanjang apapun kamu
mengetiknya */

5.    Kurung Kurawal {}

Digunakan untuk menentukan awal dan akhir dari program. Karena seperti bahasa pemrograman
pada umumnya, Arduino membaca mulai dari atas hingga kebawah.

void loop()

{
….program

….program

….program

6. Titik Koma ;

Setiap baris kode pada Arduino harus diakhiri dengan tanda ;

void setup(){

pinMode(13, OUTPUT);

void loop(){

digitalWrite(13, HIGH);

7.    Variabel

Variabel adalah kode program yang digunakan untuk menyimpan suatu nilai pada sebuah nama. Yang
biasa digunakan diantaranya adalah Integer, Long, Boolean, Float, Character.

7a. int (integer)

Variabel yang paling sering digunakan dan dapat menyimpan data sebesar 2 bytes (16 bits).

7b. long (long)

Biasa digunakan jika nilai datanya lebih besar dari integer. Menggunakan 4 bytes (32 bits).

7c. boolean (boolean)

Variabel yang hanya menyimpan nila TRUE dan FALSE saja. Hanya menggunakan 1 bit

saja        

7d. float(float)

Digunakan untuk floating point pada nilai decimal. Memory yang digunakan 4 bytes (32 bits).

7e. char(character)

Menyimpan character berdasarkan ASCII kode (contoh: ‘A’=65). Menggunakan 1 byte (8 bits). 
8.    Operator Matematika 

Digunakan untuk memanipulasi nilai dengan perhitungan matematika sederhana seperti:


penjumlahan, pengurangan, sama dengan, dan sebagainya.

=      (sama dengan) (contoh  x=10*2 (x sekarang jadi 20))

%    (persentase) (contoh 12%10 (hasil sisanya = 2))

+      (penambahan)

–       (pengurangan)

*       (perkalian)

/        (pembagian)

9.    Operator Perbandingan 

Digunakan untuk melakukan perbandingan secara logika.

== (sama dengan) contoh: 15 == 10 FALSE atau 15 == 15 TRUE

!=  (tidak sama dengan) contoh: 15 != 10 TRUE atau 15 != 15 FALSE

<   (lebih kecil dari) contoh: 15 < 10 FALSE  atau 12 < 14 TRUE

>   (lebih besar dari) contoh: 15 > 19 TRUE atau 15 > 10 FALSE

10.Struktur Pengendali (IF)

Program yang digunakan untuk menentukan sebuah kondisi, dan jika kondisinya sudah terpenuhi
maka akan melaksanakan perintah yang sudah ditentukan. Dan saat tidak memenuhi kondisinya juga
ada perintah yang dilaksanakan oleh Arduino.

if(kondisi A)

 {

    Kode Perintah A

   }

   else if(kondisi B)

     {

      Kode Perintah B

     }   
     else

       {

        Kode Perintah C

       } 

Pertama Arduino akan lihat Kondisi A. Jika terpenuhi, maka akan melaksanakan Kode Perintah A.

Tapi jika TIDAK, Arduino akan lihat Kondisi B. Jika terpenuhi, maka akan melaksanakan Kode Perintah
B.

Tapi jika TIDAK juga, maka Arduino akan melaksanakan Kode Perintah C.

11.  Perulangan

for(int i = 0; i < #repeats; i++)

   {

     Kode Perintah

    }

Kode diatas digunakan saat kita ingin mengulangi kode atau nilai dalam beberapa kali.Penjelasan
detailnya nanti akan dibahas ketika mencoba membuat projek, biar lebih mudah dipahami          

12.Kode Digital

Digunakan untuk pemrograman yang menggunakan Pin Digital pada Arduino.

pinMode( pin, mode);

Kode diatas digunakan untuk seting mode pin. Pin adalah nomer pin yang akan digunakan, pada
Board ESP32, pinnya menyesuaikan GPIO dan mode sendiri bisa berupa INPUT atau OUTPUT.

pinMode(2, OUTPUT);    // artinya pin GPIO 2 digunakan sebagai OUTPUT

pinMode(4, INPUT);        // artinya pin GPIO 4 digunakan sebagai INPUT

Dan seperti yang sudah saya bahas sebelumnya untuk kode pinMode itu ada didalam void setup.

digitalRead(pin);

Kode diatas digunakan pin INPUT, untuk membaca nilai sensor yang ada pada pin. Dan nilainya hanya
terbatas pada 1 (TRUE), atau 0 (FALSE).
Contoh:

digitalRead(5);     // artinya kode akan membaca nilai sensor pada GPIO 5

Kode digitalRead kita masukan dalam void loop.

digitalWrite(pin, nilai);

Kode diatas digunakan untuk pin OUTPUT yang sudah kita seting apakah akan diberikan HIGH (+3,3 V),
atau LOW (Ground).

Contoh:

digitalWrite(2, HIGH);    // artinya GPIO 2 mengeluarkan tegangan High (3,3 Volt)

digitalWrite(2, LOW);    // artinya GPIO 2 mengeluarkan tegangan 0 volt / Ground

Untuk kode digitalWrite tentu saja kita masukan dalam void loop. analogWrite(pin, nilai);

analogRead(pin);

Kode diatas digunakan pin INPUT ANALOG, untuk membaca nilai tegangan input dari 0 volt hingga 3,3
Volt.

analogWrite(pin, nilai PWM);   

Pada Arduino Uno kita bisa langsung menggunakan perintah analogWrite sebagai output gelombang
Pulse Width Modulation (PWM), tetapi untuk ESP32 tidak bisa langsung digunakan karena dibutuhkan
Library tambahan khusus yang harus dimasukkan agar perintah  analogWrite bisa dijalankan. Jika
tidak ditambah library khusus analogwrite maka perintah analogwrite akan error.

Contoh:

analogWrite(3, 150);    // artinya pin 3 diberikan nilai sebesar 150

ESP32 PART-4. Program Led Berkedip (Blink)


Pada ESP32 Part 4 ini akan di jelaskan cara membuat Program lampu LED  berkedip (Blink). Pada
percobaan ini kita memanfaatkan lampu LED built in yang ada di dalam board ESP32 dev Module yang
terhubung dengan pin GPIO2.

Di dalam board ESP32 dev Module terdapat 2 buah LED yaitu Power LED dan LED built in GPIO2.
Untuk jelasnya lihat pada gambar di bawah ini:
Silahkan ketik program di bawah ini menggunakan program aplikasi ARDUINO IDE :

/*****************************************

 Program LED berkedip (Blink) 

 ESP32 Dev Module

 LED built in GPIO 2

 *****************************************/

int LED_BUILTIN = 2;

void setup() 

   {

   pinMode (LED_BUILTIN, OUTPUT);

   }

void loop()

   {

   digitalWrite(LED_BUILTIN, HIGH);

   delay(1000);

   digitalWrite(LED_BUILTIN, LOW);

   delay(1000);

   }

Setelah selesai silahkan hubungkan kabel USB ke board ESP32 dev Module. Pastikan port COM sudah
dicheclist. Setelah itu lakukan verify guna memastikan tidak ada kesalahan dalam pengetikan
program. Setelah sukses bisa langsung diupload ke board ESP32. 

Jangan lupa saat muncul pesan connecting......____......____, maka tekan tombol BOOT yang ada pada
board Module ESP32.

JIka sudah sukses maka lampu LED akan berkedip (Blink) sekitar 1 detik ON dan 1 detik OFF dan
program ini akan berjalan terus menerus (looping) selamanya hingga power supply di matikan.

Selamat mencoba.
Setelah selesai silahkan verify dan upload ke board ESP32. JIka tidak ada kesalahan program maka
lampu LED akan berkedip (Blink) sekitar 1 detik ON dan 1 detik OFF dan program ini akan looping
selamanya hingga power supply di matikan.

Anda mungkin juga menyukai