Anda di halaman 1dari 12

PROYEK AKHIR IOT

ESC (ELECTRONIC SPEED CONTROLLER) MONITORING SYSTEM

Disusun Oleh:

- Fathonah Utami Ningsih (21502241021)


- Bagus Rian Maulana (21502241022)
- Ganang Aji Priambodo (21502241029)
- Muhamad Fadhlan Hafizh (21502244005)

DEPARTEMEN PENDIDIKAN TEKNIK ELEKTRONIKA DAN INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS NEGERI YOGYAKARTA

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

Rangkaian voltage divider adalah rangkaian penurun tegangan atau nama


lainnya reduksi tegangan dari tegangan sumber, fungsi dari voltage divider ini
adalah sesuai namanya yaitu untuk menyamakan level tegangan tertinggi input
dengan level tegangan baca mikrokontroller, ini dikarenakan level tegangan baca
mikrokontroller adalah 0 sampai 5 volt sedangkan tegangan input adalah lebih dari
5 volt, maka dari itu dipakailah voltage divider, rangkaian voltage divider terdiri
dari 2 buah resistor.
3. Sensor Suhu LM35

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 SCREEN_WIDTH 128


#define SCREEN_HEIGHT 32
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C

#define TeganganV 33
#define ACS 15

const float VCC = 3.3;


const float SENSITIVITY = 0.060;
const float OFFSET_VOLTAGE = 5.0;
const int numReadings = 10;
float readings[numReadings];
int currentIndex = 0;
float total = 0.0;
float voltage;

float Vmodul = 0.0; // Tegangan


float hasil = 0.0; // Tegangan
float R1 = 35500; // 30k ohm resistor
float R2 = 7500; // 7500 ohm resistor
int value = 0; // Tegangan
float temp = 0.0; // LM35

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire,


OLED_RESET);

TaskHandle_t Core1Task; //Handle tugas di Core 1

void Core1Loop(void *parameter) {


// Loop untuk menampilkan di OLED (Core 1)
while (1) {
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;

float voltage_average = total / numReadings;


float current = voltage_average / SENSITIVITY;

value = analogRead(TeganganV);
Vmodul = (value * 3.3) / 4096;
hasil = Vmodul / (R2 / (R1 + R2));

float temp = (analogRead(32) * 1.1875) / 1000;


temp = temp * 100;

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;

float voltage_average = total / numReadings;


float current = voltage_average / SENSITIVITY;

value = analogRead(TeganganV);
Vmodul = (value * 3.3) / 4096;
hasil = Vmodul / (R2 / (R1 + R2));

float temp = (analogRead(32) * 1.1875) / 1000;


temp = temp * 100;

//Serial.print("#");
Serial.print(current);
Serial.print(",");
Serial.print(hasil);
Serial.print(",");
Serial.println(temp);
delay(1000);
}

ESP32 Kedua

#define BLYNK_TEMPLATE_ID "TMPL64JDNdnng"


#define BLYNK_TEMPLATE_NAME "ESC Monitoring System"
#define BLYNK_AUTH_TOKEN "LDMhw3CCjzpJH8wCZEB5Cfhw8v9HbIl6"
#define BLYNK_PRINT Serial

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

char auth[] = BLYNK_AUTH_TOKEN;

char ssid[] = "i8";


char pass[] = "........";

float arus = 0.0;


float volt = 0.0;
float suhu = 0.0;

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);

if (comma1 != -1 && comma2 != -1) {


arus = data.substring(0, comma1).toFloat();
volt = data.substring(comma1 + 1, comma2).toFloat();
suhu = data.substring(comma2 + 1).toFloat();
Blynk.virtualWrite(V0, arus);
Blynk.virtualWrite(V1, volt);
Blynk.virtualWrite(V2, suhu);
Serial.print(arus);
Serial.print(" ");
Serial.print(volt);
Serial.print(" ");
Serial.println(suhu);
}
}
}

void loop() {
Blynk.run();
delay(1000);
sendData();
}

4. Kelebihan dan Kekurangan Rancangan


Kelebihan
a) Simpel karena menggunakan PCB
b) Penggunaannya Plug and Play
c) Hemat tempat di dalam pesawat
d) Memiliki tampilan offline yaitu OLED Display
Kekurangan
a) Mikrokontroller dan sensor tersolder dalam PCB
b) Perlu 2 baterai untuk sumber sistem monitoring dan ESC
c) Menggunakan 2 mikrokontroller
d) Memerlukan Telemetry Long Range jika ingin 1 mikrokontroller
E. Pengujian Proyek
Pengujian dilakukan menggunakan ESC T-Motor 18A, Motor BLDC SunnySky
2200KV, Servo tester sebagai sumber PWM ESC, dan 2 Baterai LiPo masing – masing
2S dan 3S 2200mAh.
Saat rangkaian dinyalakan dan motor mulai berputar bertahap dari pelan hingga
paling kencang.

Terlihat hasil pada OLED Display saat motor berputar

Hasil pada dashboard Blynk saat motor berputar.


Cara kerja dari sistem monitoring ini yaitu saat rangkaian dijalankan sensor
suhu akan mulai mengambil data sedangkan untuk sensor arus dan tegangan akan mulai
mengambil data saat motor sudah berputar, data yang didapat tadi akan ditampilkan
pada OLED Display dan disaat yang bersamaan akan dikirim ke ESP32 kedua, setelah
ESP32 kedua menerima data dari ESP32 pertama data tersebut akan dikonversi terlebih
dulu dari tipe data string menjadi tipe data float, setelah data dikonversi baru data
tersebut akan dikirim ke platform Blynk melalui koneksi Wi-fi.
F. Analisis Proyek
Hasil yang didapat bervariasi tergantung dari seberapa kecepatan motor
berputar, jika putaran motor dari keadaan pelan dan langsung dibuat kencang maka arus
akan langsung melonjak tinggi dengan nilai maksimum yang didapat saat pengambilan
data dilakukan yaitu 15A, sedangkan untuk tegangan jika nilai PWM dinaikkan maka
tegangan ESC akan mendekati tegangan dari baterai dan jika nilai PWM tetap atau
putaran motor tetap tegangan akan turun menjadi kisaran 6-8 V, untuk nilai dari
temperature tergantung dari seberapa lama penggunaan ESC dan seberapa kencang
putaran motor.
Untuk hasil dari platform Blynk sudah cukup real-time yang artinya sudah
minim delay, namun tergantung juga dari kestabilan dari ping internet yang digunakan
pengiriman data akan terhambat atau menjadi sedikit lebih lama jika ping dari internet
yang digunakan cukup tinggi.
G. Kesimpulan
Proyek ESC (Electronic Speed Controller) Monitoring System menunjukkan
langkah progresif dalam meningkatkan kehandalan dan keamanan operasional pesawat
tanpa awak/drone. Dengan memfokuskan pemantauan pada parameter kunci seperti
arus, tegangan, dan suhu pada ESC, proyek ini bertujuan untuk memberikan informasi
yang komprehensif terkait kesehatan sistem secara keseluruhan. Dengan memanfaatkan
teknologi sensor, proyek ini memungkinkan deteksi dini terhadap potensi kegagalan
komponen, mengoptimalkan efisiensi energi, dan menghindari situasi berisiko tinggi
yang dapat memengaruhi kinerja pesawat.
Kesimpulan proyek ini menegaskan bahwa pemantauan secara terus-menerus
terhadap arus, tegangan, dan suhu ESC merupakan langkah krusial dalam menjaga
stabilitas dan keandalan pesawat tanpa awak khususnya yang memiliki waktu terbang
yang lama, yang pada gilirannya dapat meningkatkan keberhasilan misi dan
penggunaan pesawat tanpa awak/drone dalam berbagai konteks aplikatif.

Anda mungkin juga menyukai