Skip to main content

B. Menginstall IDE ESP32

dibuat dalam rangka tugas mata kuliah EL5057 Sistem Penginderaan

Sebelum kita bermain-main membuat beberapa program sederhana dengan ESP32, terlebih dahulu harus kita siapkan suatu lingkungan (environment) pemrograman yang akan kita gunakan, atau istilah kerennya IDE (Integrated Development Environment) atau dalam bahasa artinya sebuah lingkungan pengembangan terpadu. Biasanya kita dapat menggunakan beberapa IDE, namun yang umumnya orang gunakan adalah Arduino IDE, kenapa menggunakan Arduino IDE? ya simpel saja sih, banyak tutorial yang tersedia, jadi ketika mengalami error, dapat mencari solusinya dengan mudah. dan juga Arduino ini kan berasal dari suatu komunitas, nah biasanya kalau berbasis komunitas pengembangannya lebih cepat dan troubleshooting-nya juga banyak.


Apa itu Arduino IDE?

Arduino IDE adalah IDE yang dikembangkan oleh komunitas Arduino untuk mendukung pengembangan perangkat lunak pada platform Arduino. Arduino sendiri adalah platform perangkat keras terbuka yang digunakan untuk membuat berbagai proyek elektronika. Arduino IDE menyediakan antarmuka yang ramah pengguna dan mudah digunakan, cocok untuk pemula maupun pengembang berpengalaman. Dengan Arduino IDE, pengguna dapat menulis kode, menguploadnya ke papan Arduino mereka, dan menjalankan program dengan mudah. Selain itu, Arduino IDE mendukung berbagai papan Arduino yang berbeda, membuatnya menjadi pilihan populer di kalangan hobiis dan pengembang DIY.

apakah bisa menggunakan Arduino IDE untuk ESP32?

jawabannya adalah bisa, karena Arduino IDE hanya sebagai compiler yang akan mengubah baris kode kita kedalam bahasa mesin, nah proses compiler dalam melakukan tugasnya dikelola oleh suatu fungsi yang di desain untuk chipset ESP32. atau gampangannya, Arduino IDE hanya pabriknya saja, sementara mesin di dalamnya diganti untuk memproduksi program ESP32.


Menginstal Arduino IDE

Sebelum melakukan instalasi Arduino IDE ke dalam komputer kita, ada beberapa yang harus disiapkan, atau bahasa kerennya ada minimum requirement yang harus dipenuhi seperti ditampilkan pada tabel berikut.

Requirement Keterangan

Komputer/ Laptop/ PC

 

Periksa, jenis operating system yang digunakan dan arsitektur komputer yang digunakan

Koneksi internet

 

Karena kita harus mengunduh installer dari laman Arduino, maka dibutuhkan koneksi internet yang stabil.

disini saya menggunakan laptop Macbook Air dengan opearting system MacOs Sonoma versi 14.2.1

bagi teman-teman yang menggunakan operating lainnya, akan dijelaskan di laman selanjutnya


Langkah 1 | Download aplikasi Arduin IDE, dengan mengakses laman berikut.

  • Pilih operating system yang digunakan, jika menggunkan Macbook, maka pilih macOS, karena saya menggunakan Macbook Air dengan prosesor Intel, maka saya pilih pada bagian yang ditandai merah diatas.

Langkah 2 | Instalasi Arduino IDE ke komputer kita.

File installer versi MacOs

File installer versi MacOS, menggunakan file yang berekstensi *.dmg, untuk membukanya cukup melakukan klik dua kali pada file yang dimaksud, dan ikuti langkah-langkah selanjutnya.

File Arduino IDE versi 2.3.2 memiliki ukuran 182MB, sehingga pastikan kuota internet anda cukup.

insatller.png

  • Install dengan melakukan drag icon Arduino IDE.app ke folder Applications.


Langkah 3 | Inisialisasi awal aplikasi Arduino IDE. Proses ini bertujuan untuk memasukan repositori ESP32 kedalam IDE. Secara lengkap prosesnya adalah sebagai berikut:

Screenshot 2024-03-03 at 11.22.14.png

diatas adalah antarmuka aplikasi Arduino IDE, untuk menggunakannya sebagai IDE ESP32 perlu beberapa konfigurasi, seperti memasukan repositori ESP32 dan mendownload compiler boardnya, agar Arduino IDE faham jika akan digunakan untuk programming pada mikrokontroler ESP32.


1. Buka menu pengaturan pada aplikasi Arduino IDE, dengan cara menekan top menu Arduino IDE > Settings..


https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json


3. Mengunduh board ESP32, dengan cara buka top-menu tools > board > boards manager.

Setelah tampil laman dialog, kemudian ketik ESP32 pada field BOARDS MANAGER untuk mencari repositori board ESP32, setelah ketemu kemudian klik download untuk mengunduh ke dalam Arduino IDE. 


Sebelum memulai pemrograman, pastikan terlebih dahulu untuk mengecek kesamaan board di IDE dan dev-board ESP32 yang kita gunakan.

saya menggunakan dev-board ESP-32 versi 1, sehingga board IDE yang digunakan adalah DOIT ESP32 DEVKIT V1

Cara untuk mengecek kesesuaian board IDE adalah dengan cara menekan dropdown menu bertuliskan Select Board, kemudian pada kotak dialog Board cari dengan mengetikan DOIT, kemudian pilih DOIT ESP32 DEVKIT V1.


Langkah 4 | Mendownload driver USB ke UART. Seperti kita ketahui sebelumnya, bahwa ESP32 berkomunikasi dengan beberapa cara, namun untuk kepentingan upload binary file ke register diperlukan antarmuka UART. Disebabkan, sebagian besar komputer yang ada dipasaran menggunakan protokol komunikasi USB (Universal Serial Bus), maka diperlukan konverter USB to UART. Nah, untungnya sebagian besar dev-board sudah dilengkapi dengan konverter USB-UART yang dihandle oleh chipset, biasanya berjenis CP2101 or CH340. 

CP2102 https://www.silabs.com/interface/usb-bridges/classic/device.cp2101?tab=specs 
CH340 https://sparks.gogo.co.nz/ch340.html 

Kode ESP 32 - SIMS


Kode Untuk Water Quality Sensor (Edited 09 Juli 2024 - 21:41)

/* Prgrammed for ESP32 Modul Kontroller Power */
/* Edited 17 April 2024 11:24 */
/*
   Kaki RTC Default :
     SCL RTC -> 22
     SDA RTC -> 21
*/



#include "RTClib.h"
RTC_DS3231 rtc;

const int relayPin = 18; // Pin relay on di kaki 18 
const int mpin = 5; // pin untuk maintenance
const int buzerPin = 2; // pin buzzer ada di kaki nomor 2
int relayState = 0;
int btnState = 0;
int maintenanceState = 0;

void setup() {
  Serial.begin(115200);
  delay(5000);

  if (! rtc.begin()) {
    Serial.println("Tidak tersambung di RTC");
    Serial.flush();
    while (1) delay(10);
  }

  if (rtc.lostPower()) {
    Serial.println("Konfigurasi ulang timer");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  pinMode(relayPin, OUTPUT);
  pinMode(buzerPin, OUTPUT);
  pinMode(mpin, INPUT);

  // Inisiasi pin maintennance ke high
  digitalWrite(relayPin, HIGH);
}

/* ---------- Deklarasi fungsi - fungsi ------------------- */

void printWaktu(int dt){
  // Fungsi cetak waktu untuk mengepring time dari DS3231
  DateTime now = rtc.now();
  Serial.println();
  Serial.print(now.hour(), DEC);
  Serial.print(":");
  Serial.print(now.minute(), DEC);
  Serial.print(":");
  Serial.print(now.second(), DEC);
  Serial.print(":");
  Serial.print(" ");
  Serial.print(now.day(), DEC);
  Serial.print("/");
  Serial.print(now.month(), DEC);
  Serial.print("/");
  Serial.print(now.year(), DEC);
  delay(dt);
}

void beep_buz(int t, int lama) {
  // Funsi untuk menyalakan beep
  for (int i = 1 ; i <= t ; ++i) {
    digitalWrite(buzerPin, HIGH);
    delay(lama);
    digitalWrite(buzerPin, LOW);
    delay(lama);
  }
}

void relayOn(int set) {
  // Fungsi untuk menyalakan relay
    delay(1000);
    beep_buz(2,100);
    digitalWrite(relayPin, LOW);
    delay(set);
    digitalWrite(relayPin, HIGH);
    beep_buz(1,1500);
    delay(1000);
}

void cekWaktu(int waktu){
  // Fungsi timer untuk otomatisasi
  Serial.println("Proses Cek waktu");
  DateTime now = rtc.now();
  Serial.print("Menit menunjukan nilai : ");
  Serial.println(now.minute());
  switch (now.minute()) {
    case 30:
      Serial.println("Perintah relay ON");
      relayOn(waktu);
    case 0:
      Serial.println("Perintah relay ON");
      relayOn(waktu);
      break;
  }
  Serial.println();
}

void isMaintennance() {
  // Disable maintenance mode
  if (maintenanceState == 1) {
    Serial.println("Kode ini harusnya tidak ter-eksekusi");
    Serial.println("Maintenance mode");
    digitalWrite(relayPin, LOW);
  } else {
    printWaktu(1000);
    cekWaktu(300000);
  }
}

/* Eksekusi program utama */
void loop(){
  isMaintennance();
}