Disusun Oleh:
FAKULTAS TEKNIK
2023
A. Pendahuluan
Komponen ESC biasa digunakan pada wahana robot terbang Pesawat Tanpa
Awak atau Unmanned Aerial Vehicle (UAV). Fungsi dari ESC sendiri bertanggung
jawab untuk mengontrol keluaran daya dan kecepatan rotasi motor sebagai respons
terhadap perintah throttle operator. ESC memiliki sebuah konsep mengubah arus searah
(DC) dari baterai menjadi AC 3- fase, dimana sistem kerja dan pemilihan dari ESC
dipengaruhi oleh jenis motor dengan KV berbeda dan berbagai jenis UAV serta ragam
ukurannya. Untuk menggerakan motor dengan KV yang semakin besar maka harus
diimbangi dengan kebutuhan arus yang besar pula, dengan kata lain untuk mencapai
power yang maksimal dari putaran motor maka sebuah kontrol atau ESC harus mampu
menyuplai daya yang dibutuhkan.
Namun, sebagai sebuah kontroler ESC juga harus mempunyai batasan ketika
sebuah motor memiliki KV yang rendah, sehingga dapat dikatakan bahwa antara ESC
dengan motor harus mempunyai kesesuaian. Sering kali terjadi sebuah ESC yang
terbakar karena tidak mampu menyuplai daya sesuai dengan spesifikasi motor yang
digunakan. Selain itu, banyak juga kejadian yang menyebabkan motor terbakar karena
daya yang dikeluarkan dari ESC terlalu besar. Maka dari itu sebuah Pesawat Tanpa
Awak harus memiliki ESC yang sesuai dengan spesifikasi motor yang digunakan,
dimana untuk menentukan hal tersebut digunakan sebuah acuan hukum Ohm. Selain
itu kondisi dari ESC juga harus selalu dipantau agar kecelakaan seperti ESC terbakar
atau ESC memiliki output daya yang berlebihan dapat diminimalisir.
Oleh karena itu, pada studi kasus ini diciptakan sebuah ide untuk membuat ESC
Monitoring System yang dibuat secara mandiri, dimana ESC yang dibuat memiliki
sebuah sistem monitoring pada kesehatan ESC dan dapat dipantau dari darat saat
pesawat sedang mengudara. Pengembangan ESC dengan menggunakan teknologi
Internet of Things (IoT) yang berfungsi untuk memantau kondisi berupa arus, tegangan,
dan suhu pada komponen ESC dengan mudah dan fleksibel melalui tampilan dashboard
Blynk yang berupa web application.
B. Manfaat Proyek
Manfaat proyek ini yaitu pengguna dapat memonitoring kondisi ESC saat
penerbangan, karena jika ESC rusak/terbakar maka motor pada wahana akan berhenti
dan wahana akan kehilangan tenaga untuk mengudara dan dapat menimbulkan
kerusakan yang parah saat terjadi crash. Maka dari itu monitoring ESC ini berfungsi
agar pengguna dapat menentukan keputusan jika kondisi ESC masih baik maka wahana
masih bisa terbang lebih lama, jika kondisi ESC sudah mendekati buruk maka bisa
dilakukan pendaratan atau landing.
C. Dasar Teori
1. Sensor Arus ACS758
ACS758 merupakan salah satu sensor arus yang memiliki range pengukuran
yang tinggi. Aplikasi ini merupakan aplikasi umum yang termasuk 15imbale motor,
pendeteksi beban, power supply dan DC-to-DC control converter, 15imbale
inverter, dan mendeteksi kesalahan arus lebih. Arus mengalir melalui jalur konduksi
tembaga sehingga menghasilkan medan magnet yang mengubah Hall IC menjadi
tegangan proporsional.
2. Sensor Tegangan Voltage Divider
Sensor suhu LM35 berfungsi untuk mengubah suhu menjadi tegangan listrik,
sehingga dapat dikatakan bahwa suhu merupakan variabel input yang dideteksi oleh
sensor suhu LM35 dan tegangan merupakan output dari sensor suhu LM35.
Semakin panas atau semakin tinggi suhu yang masuk, maka tegangan keluaran
sensor LM35 semakin besar. Semakin dingin atau semakin rendah suhu yang
masuk, tegangan keluaran sensor LM35 semakin kecil.
D. Perancangan Sistem
1. Alat dan Bahan
- ESP32 (2)
- ACS758 50A (1)
- R 30K SMD (1)
- R 7.5K SMD (1)
- LM35 (1)
- PCB 7 x 3.5 cm (1)
- ESC 18-50 A (1)
- BLDC Motor (1)
- OLED Display (1)
- Step Down 5V UBEC (1)
- Baterai 2S dan 3S (1)
- Pin header secukupnya
2. Pembuatan PCB
Berikut adalah pembuatan mulai dari desain skematik dan desain dari layout PCB
yang akan digunakan untuk Sistem Monitoring ESC Pada Wahana Pesawat Tanpa
Awak/Drone
Untuk pembuatan desain dari skematik dan layout PCB diatas menggunakan
software EAGLE menggunakan konfigurasi PCB double layer agar dapat
memperkecil ukuran PCB dan menghemat tempat saat di dalam pesawat.
3. Program
Pada proyek ini menggunakan 2 ESP32 dengan protocol komunikasi UART
untuk mengirim data dimana fungsi ESP32 pertama untuk mengolah data dari
sensor dan fungsi ESP32 kedua untuk mengirim data sensor tersebut ke Blynk.
ESP32 Pertama
#include <Arduino.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include <SPI.h>
#define TeganganV 33
#define ACS 15
value = analogRead(TeganganV);
Vmodul = (value * 3.3) / 4096;
hasil = Vmodul / (R2 / (R1 + R2));
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
// Menampilkan suhu
display.print(F("Temp.: "));
display.print(temp);
display.println(F(" C"));
// Menampilkan arus
display.print(F("Current: "));
display.print(current);
display.println(F(" A"));
// Menampilkan tegangan
display.print(F("Voltage: "));
display.print(hasil);
display.println(F(" V"));
display.display();
display.display();
delay(500);
}
}
void setup() {
Serial.begin(9600);
pinMode(TeganganV, INPUT);
pinMode(32, INPUT);
for (int i = 0; i < numReadings; i++) {
float voltage_raw = (VCC / 4096.0) * analogRead(ACS);
total += voltage_raw;
delay(10);
}
float zeroCurrentOffset = total / numReadings;
for (int i = 0; i < numReadings; i++) {
readings[i] = zeroCurrentOffset;
total += zeroCurrentOffset;
}
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("Teliti lagi wiringnya bangg"));
for (;;);
}
display.display();
delay(2000);
display.clearDisplay();
xTaskCreatePinnedToCore(
Core1Loop, // Fungsi yang akan dijalankan di Core 1
"Core1Loop", // Nama tugas
10000, // Ukuran tumpukan (stack size)
NULL, // Parameter yang diteruskan ke fungsi
1, // Prioritas tugas
&Core1Task, // Handle tugas
1 // Nomor core (0 atau 1 untuk Core 0 atau Core
1)
);
}
void loop() {
// Loop utama di Core 0 untuk menampilkan pada serial monitor
float voltage_raw = (VCC / 4096.0) * analogRead(ACS);
total -= readings[currentIndex];
readings[currentIndex] = voltage_raw - OFFSET_VOLTAGE;
total += voltage_raw - OFFSET_VOLTAGE;
currentIndex = (currentIndex + 1) % numReadings;
value = analogRead(TeganganV);
Vmodul = (value * 3.3) / 4096;
hasil = Vmodul / (R2 / (R1 + R2));
//Serial.print("#");
Serial.print(current);
Serial.print(",");
Serial.print(hasil);
Serial.print(",");
Serial.println(temp);
delay(1000);
}
ESP32 Kedua
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void sendData() {
if (Serial.available() > 0) {
String data = Serial.readStringUntil('\n');
Serial.println(data);
int comma1 = data.indexOf(',');
int comma2 = data.indexOf(',', comma1 + 1);
void loop() {
Blynk.run();
delay(1000);
sendData();
}