# 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. |
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.****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 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(); } ```