# 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. - Alamat url : **[https://www.arduino.cc/en/software](https://www.arduino.cc/en/software)**
- 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](https://blog.sandihex.id/uploads/images/gallery/2024-03/scaled-1680-/insatller.png)](https://blog.sandihex.id/uploads/images/gallery/2024-03/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](https://blog.sandihex.id/uploads/images/gallery/2024-03/scaled-1680-/screenshot-2024-03-03-at-11-22-14.png)](https://blog.sandihex.id/uploads/images/gallery/2024-03/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..**
--- **2.** Memasukan link repositori kedalam parameter pengaturan **Additional board manager URLs** di laman dialog Arduino IDE, dengan cara copy-paste link berikut kedalam form pengaturan. ``` 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](https://www.silabs.com/interface/usb-bridges/classic/device.cp2101?tab=specs)
**CH340**[https://sparks.gogo.co.nz/ch340.html](https://sparks.gogo.co.nz/ch340.html)
--- ### Kode ESP 32 - SIMS ---

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

```c++ /* Prgrammed for ESP32 Modul Kontroller Power */ /* Edited 9 Juli 2024 21: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(); } ```