• Tidak ada hasil yang ditemukan

rancang bangun smart fuel pump pada genset 550 kva

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "rancang bangun smart fuel pump pada genset 550 kva"

Copied!
34
0
0

Teks penuh

(1)

RANCANG BANGUN SMART FUEL PUMP PADA GENSET 550 KVA BERBASIS ARDUINO DENGAN ANDROID DI BANDARA TAMBOLAKA

TUGAS AKHIR

Diajukan sebagai Salah Satu Syarat untuk Mendapatkan Gelar Ahli Madya (A.Md.).

Pada Program Studi Diploma III Teknik Listrik Bandar Udara

Oleh :

AHMAD ILHAM BAIHAQI NIT. 30118002

PROGRAM STUDI DIPLOMA III TEKNIK LISTRIK BANDAR UDARA POLITEKNIK PENERBANGAN SURABAYA

2021

(2)

ii

LEMBAR PERSETUJUAN

RANCANG BANGUN SMART FUEL PUMP PADA GENSET 550 KVA BERBASIS ARDUINO DENGAN ANDROID DI BANDARA TAMBOLAKA

Oleh : Ahmad Ilham Baihaqi

NIT. 30118002

Disetujui untuk diujikan pada : Surabaya, 03 Agustus 2021

Pembimbing I : Drs. HARTONO, ST, M.Pd, MM ...

NIP. 19610727 198303 1 00

Pembimbing II : SUNARYO, ST ...

NIP. 97622329

(3)

LEMBAR PENGESAHAN

RANCANG BANGUN SMART FUEL PUMP PADA GENSET 550 KVA BERBASIS ARDUINO DENGAN ANDROID DI BANDARA TAMBOLAKA

Oleh :

Ahmad Ilham Baihaqi NIT. 30118002

Disetujui untuk diujikan pada tanggal : 03 Agustus 2021

Panitia Penguji :

1. Ketua : KUSTORI, ST, MM ...

NIP. 19590305 198503 1 002

2. Sekretaris : Dr. PRASETYO ISWAHYUDI, ST, MM ...

NIP. 19730916 199703 1 004

3. Anggota : Drs. HARTONO, ST, M.Pd, MM ……….

NIP. 19610727 198303 1 002 Ketua Program Studi

D-III Teknik Listrik Bandar Udara

RIFDIAN IS., ST, MM, MT NIP. 198160629 200912 1 002

(4)

iv DAFTAR ISI

LEMBAR PERSETUJUAN ... ii

LEMBAR PENGESAHAN ... iii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... vi

KATA PENGANTAR... xiv

BAB I ... 1

PENDAHULUAN... 1

1.1 Rumusan Masalah ... 6

1.2 Batasan Masalah ... 6

1.3 Tujuan Penelitian ... 6

1.4 Manfaat Penulisan ... 6

1.5 Sistematika Penulisan ... 7

BAB II ... 8

LANDASAN TEORI ... 8

2.1 Teori Dasar ... 8

2.1.1 Teori Dasar Motor Listrik ... 8

2.1.3 Tangki Bahan Bakar ... 10

2.1.4 Website ... 11

2.1.5 Sensor ... 11

2.1.5.1 Ultrasonic sensor ( HC-SR04 ) ... 12

2.1.6 Sensor Flow Meter ... 12

2.1.7 Relay ... 13

2.1.7 Arduino Uno ... 13

2.1.8 Mobile Wifi ... 14

2.1.9 Buzzer ... 15

2.2 Kajian Penelitian Relavan ... 17

BAB III ... 18

METODOLOGI PENELITIAN ... 18

(5)

3.1 Desain dan Cara Kerja Alat ... 18

3.2 Perancangan Alat ... 18

3.2.1 Desain Alat Gambar ... 19

3.2.2 Cara Kerja Alat ... 21

3.2.3 Komponen Alat ... 23

3.2.3.1 Perangkat Keras (Hardware) ... 24

3.3 Teknik Analisis Data ... 29

3.4 Teknik Pengujian ... 30

3.5 Waktu Dan Tempat Penelitian ... 32

BAB IV ... 33

4.1 Hasil Penelitian Perangkat Keras ... 33

4.1.1 Pengujian dan Analisa Power Supply ... 33

4.1.2 Pengujian dan Analisa Arduino UNO ... 35

4.1.3 Pengujian dan Analisis Pompa Air ... 37

4.1.4 Pengujian dan Analisa Modul Relay ... 39

4.1.5 Pengujian dan Analisa Sensor Ultrasonik HC-SR04 ... 40

4.1.6 Pengujian dan Analisa Sensor Flow Meter ... 41

4.1.7 Pengujian dan Analisa Buzzer ... 44

4.1.8 Pengujian dan Analisa Wemoz D1 MINI... 45

4.1.9 Pengujian dan Analisa LCD ... 46

4.2 Hasil Penelitian Perangkat Lunak ... 46

4.2.1 Pengujian dan Analisa Program Arduino ... 46

4.2.2 Pengujian dan Analisa Analisa Aplikasi Kontrol dan Monitoring pada Smart Fuel Pump ... 48

4.3 Sistem Alat Keseluruhan ... 50

4.3.1 Validasi ... 57

4.3 Pembahasan Hasil Penelitian ... 61

4.3.1 Kelebihan Alat ... 61

4.3.2 Kekurangan Alat... 61

(6)

vi

BAB V ... 62

5.1 Kesimpulan... 62

5.2 Saran ... 62

Daftar Pustaka ... 64

Lampiran ... 66

(7)

DAFTAR GAMBAR

Gambar 1.1 Pengisian Dengan Selang Konvensional ... 3

Gambar 1.2 Blok Diagram Kondisi Saat ini... 3

Gambar 1.3 Wiring Diagram Genset ... 5

Gambar 2.1 Motor Listrik 1 Fasa ... 8

Gambar 2.2 Pompa Air ... 9

Gambar 2.3 Sensor Ultrasonik ... 12

Gambar 2.4 Sensor Flow Meter ... 13

Gambar 2.5 Gambar dan Simbol Relay ... 13

Gambar 2.6 Struktur Relay ... 13

Gambar 2.7 Buzzer... 15

Gambar 2.8 Cara Kerja Buzzer ... 15

Gambar 2.9 Kabel LAN ... 16

Gambar 3.1 Blok Diagram Alat ... 19

Gambar 3.2 Wiring Diagram Alat ... 20

Gambar 3.3 Flow Chart Kontrol ... 21

Gambar 3.4 Flow Chart Monitoring ... 22

Gambar 3.5 Pompa Air ... 24

Gambar 3.6 Rangkaian Mikrokontroler ... 25

Gambar 3.7 Rangkaian Sensor Ultrasonik ... 25

Gambar 3.8 Rangkaian Sensor Flow Meter ... 26

Gambar 3.9 Adaptor Power Supply 9 Vdc... 26

Gambar 3.10 LCD ... 27

Gambar 3.11 Program Aplikasi Arduino ... 28

Gambar 4.1 Pengujian Catu Daya 9 Vdc ... 34

Gambar 4.2 Pengujian Arduino... 35

(8)

viii

Gambar 4.3 Pengujian Pompa Air ... 38

Gambar 4.4 Pengujian Modul Relay ... 39

Gambar 4.5 Pengujian Sensor Ultrasonik ... 40

Gambar 4.6 Pengujian Sensor Flowmeter ... 42

Gambar 4.7 Data Hasil Pengujian Sensor Flowmeter ... 42

Gambar 4.8 Pengujian Buzzer... 44

Gambar 4.9 Pengujian Wemoz D1 Mini ... 45

Gambar 4.10 Pengujian LCD ... 46

Gambar 4.11 Pengujian Program Arduino IDE ... 47

Gambar 4.12 Pengujian Aplikasi Smart Fuel Pump ... 49

Gambar 4.13 Koding Pada Program Arduino ... 50

Gambar 4.14 Menu Tools pada Arduino IDE ... 51

Gambar 4.15 Menu Port Pada Arduino ... 51

Gambar 4.16 Menu Board Pada Arduino ... 52

Gambar 4.17Mengatur Jaringan Koneksi Internet Pada Board Wemos D1 Mini ... 52

Gambar 4.18 Proses Compiling Data ... 53

Gambar 4.19 Proses Uploading Data ... 53

Gambar 4.20Tampilan Menu Log in Pada Aplikasi Smart Fuel Pump ... 54

Gambar 4.21 Tampilan Untuk Memilih Mode pada Aplikasi Pompa Pintar ... 54

Gambar 4.22 Tampilan Data Kontrol dan Monitoring Smart Fuel Pump... 55

Gambar 4.23 Tampilan Data Kontrol dan Monitoring Smart Fuel Pump... 56

Gambar 4.24 Validator pada Ketinggian 20 % ... 57

Gambar 4.25 Validator pada Ketinggian 40 % ... 58

Gambar 4.26 Validator pada Ketinggian 60% ... 58

Gambar 4.27 Validator pada Ketinggian 80% ... 59

(9)

DAFTAR TABEL

Tabel 4. 1 Hasil Pengujian Power Supply ... 34

Tabel 4. 2 Pin Arduino ... 36

Tabel 4. 3 Hasil Pengujian Arduino UNO ... 36

Tabel 4. 4 Hasil Pengujian Module Relay ... 39

Tabel 4. 5 Hasil Pengujian Sensor Ultrasonik ... 41

Tabel 4. 6 Hasil Pengujian Sensor Flowmeter ... 43

Tabel 4. 7 Validasi ... 61

(10)

x ABSTRAK

RANCANG BANGUN SMART FUEL PUMP PADA GENSET 550 KVA BERBASIS ARDUINO DENGAN ANDROID DI BANDARA TAMBOLAKA

OLEH:

AHMAD ILHAM BAIHAQI 30118002

Bandar Udara Tambolaka memiliki 3 (tiga) buah generator set (genset) dengan masing masing kapasitas 550 kVA sebagai genset utama dan juga yang berkapasitas 250 kVA, dan 50 kVA sebagai genset cadangan. Di Tambolaka sering kali mengalami pemadaman atau gangguan. Hampir setiap hari terjadi pemadaman listrik, maka dari itu peran dari genset di Bandar Udara Tambolaka menjadi sangat penting.

Sebab genset juga sebagai cadangan daya utama untuk Tower milik Airnav, maka tidak boleh ada alasan untuk genset tidak mau menyala normal. Aspek bahan bakar solar sebagai bahan bakar genset juga tak kalah penting. Solar pada tangki genset tidak boleh kering atau habis sebab akan mengganggu kerja genset itu sendiri. Maka dari itu proses pengisian bahan bakar solar untuk genset harus dilakukan secara rutin. Namun terkendala dengan peralatan pendukung pengisian bahan bakar solar yang kurang memadai. Untuk saat ini pengisian tersebut masih menggunakan selang konvensional dan belum adanya kontrol dan monitoring ketinggian level bahan bakar pada tangki genset tersebut. Oleh karena itu penulis terinspirasi untuk membuat suatu sistem pengisian bahan bakar secara otomatis menggunakan pompa yang bisa dikendalikan secara jarak jauh dengan menggunakan sensor volume bahan bakar guna mengetahui ketinggian level bahan bakar yang ada di dalam tangki genset . Pada rancangan Prototipe alat ini, batas maksimal level ketinggian bahan bakar adalah 80%, dikarenakan apabila terisi 100% maka akan mengakibatkan sensor ultrasonik terendam dan sensor tersebut akan mengalami rusak ataupun tidak berfungsi dengan normal. Diharapkan dengan adanya prototipe smart fuel pump yang telah penulis buat, para teknisi dimudahkan dalam pengisian bahan bakar solar pada tangki genset dan juga bisa lebih menghemat tenaga pada saat proses pengisian bahan bakar solar pada genset, serta mempermudah untuk mengontrol bakan bakar.

Kata kunci : Generator set (genset), Arduino, Wi-Fi, Pompa, Sensor volume bahan bakar, Bandar Udara Tambolaka

(11)

ABSTRACT

DESIGN AND CONSTRUCTION OF SMART FUEL PUMP ON 550 KVA GENSET BASED ON ARDUINO WITH ANDROID AT TAMBOLAKA AIRPORT

BY :

AHMAD ILHAM BAIHAQI 30118002

Tambolaka Airport has 3 (three) generator sets with a capacity of 550 kVA each as the main generator and also a capacity of 250 kVA, and 50 kVA as a backup generator. Tambolaka often experiences blackouts or disturbances. Almost every day there is a power outage, therefore the role of the generator at Tambolaka Airport is very important. Since the generator is also the main power reserve for Airnav's Tower, there should be no reason for the generator to not turn on normally. The aspect of diesel fuel as generator fuel is equally important. The diesel in the generator tank must not dry or run out because it will interfere with the work of the generator itself. Therefore, the process of refueling diesel fuel for generators must be carried out regularly. However, it is constrained by inadequate supporting equipment for refueling diesel fuel. For now, the filling is still using conventional hoses and there is no monitoring of the fuel level height in the generator tank. Therefore I was inspired to make an automatic refueling system using a pump that can be controlled remotely using a fuel volume sensor to determine the level of fuel in the generator tank. In the prototype design of this tool, the maximum level of fuel level is 80%, because if it is filled 100% it will cause the ultrasonic sensor to be submerged and the sensor will be damaged or not function normally. It is hoped that with the smart fuel pump prototype that I have made, the technicians will be facilitated in refueling diesel fuel in the generator tank and can also save more energy during the process of refueling diesel fuel in the generator, and make it easier to control fuel.

Keywords : Generator set (genset), Arduino, Wi-Fi, Pump, Fuel volume sensor, Tambolaka Airport

(12)

xii

PERNYATAAN KEASLIAN DAN HAK CIPTA

Saya yang bertanda tangan di bawah ini :

Nama : Ahmad Ilham Baihaqi NIT : 30118002

Program Studi : D3 Teknik Listrik Bandara

Judul Tugas Akhir : Rancang Bangun Smart Fuel Pump Pada Genset 550KVA Berbasis Arduino Dengan Android di Bnadara Tambolaka dengan ini menyatakan bahwa :

1. Tugas Akhir ini merupakan karya asli dan belum pernah diajukan untuk mendapatkan gelar akademik, baik di Politeknik Penerbangan Surabaya maupun di Perguruan Tinggi lain, serta dipublikasikan, kecuali secara tertulis dengan jelas dicantumkan sebagai acuan dalam naskah dengan disebutkan nama pengarang dan dicantumkan dalam daftar pustaka.

2. Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan Hak Bebas Royalti Non Eksklusif (Non-Exclusive Royalty-Free Right) kepada Politeknik Penerbangan Surabaya beserta perangkat yang ada (jika diperlukan). Dengan hak ini, Politeknik Penerbangan Surabaya berhak menyimpan, mengalihmedia/formatkan, mengelola dalam bentuk pangkalan data (database), merawat, dan mempublikasikan tugas akhir saya dengan tetap mencantumkan nama saya sebagai penulis/pencipta dan sebagai pemilik Hak Cipta.

Demikian pernyataan ini saya buat dengan sebenarnya. Apabila di kemudian hari terdapat penyimpangan dan ketidakbenaran, maka saya bersedia menerima sanksi akademik berupa pencabutan gelar yang telah diperoleh, serta sanksi lainnya sesuai dengan norma yang berlaku di Politeknik Penerbangan Surabaya.

Surabaya, 03 Agustus 2021

Ahmad Ilham Baihaqi NIT.30117021

(13)

MOTTO

“Keep doing GOOD, because we don't know which GOODNESS will take us to HEAVEN”

Karya ini kupersembahkan Untuk, Ayah dan Ibu tercinta Kakakku Mochammad Harits Fachruddin Rekan-rekan TLB XIII dan teman seperjuangan Dan semua yang telah memberi Do’ a dan Motivasi.

(14)

xiv

KATA PENGANTAR

Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa, karena berkat limpahan rahmat dan hidayahNya, Tugas Akhir yang berjudul “RANCANG BANGUN SMART FUEL PUMP PADA GENSET 550 KVA BERBASIS ARDUINO DENGAN ANDROID DI BANDARA TAMBOLAKA” ini dapat diselesaikan dengan baik. Penyusunan Tugas Akhir ini dimaksudkan sebagai salah satu syarat menyelesaikan pendidikan di Politeknik Penerbangan Surabaya dan memperoleh gelar Ahli Madya (A. Md). Ucapan terima kasih kami sampaikan kepada segenap pihak yang telah membantu selama proses penyusunan Tugas Akhir ini, terutama kepada :

1. Tuhan Yang Maha Esa Allah SWT.

2. Bapak, Gunawan Supriadi, Ibu Siti Aminah, atas doa, semangat, dan dukungan moril, material serta restu yang diberikan hingga terselesaikan Tugas Akhir ini.

3. Bapak Andra Adityawarman, ST, MT, selaku Direktur Politeknik Penerbangan Surabaya.

4. Bapak Rifdian IS, ST, MM, MT selaku Kepala Program Diklat Teknik Listrik Bandara di Politeknik Penerbangan Surabaya.

5. Bapak : Drs. Hartono, ST, M.Pd, MM selaku pembimbing I yang selalu memberi semangat, pemahaman, ilmu, dan dukungan moril, serta masukan yang bersifat membangun dalam penyusunan Tugas Akhir.

6. Bapak Sunaryo, ST. selaku pembimbing II yang senantiasa memberi semangat, pemahaman, ilmu, dan dukungan moril, serta masukan yang bersifat membangun dalam penyusunan Tugas Akhir.

7. Seluruh dosen dan sivitas akademi Prodi D-III Teknik Listrik Bandar Udara Politeknik Penerbangan Surabaya yang telah membantu baik secara langsung maupun tidak langsung

8. Teman–teman course Teknik Listrik Bandar Udara XIII, atas kebersamaan dan kerjasamanya di segala kondisi.

Penulis juga menyadari bahwa penulisan tugas akhir ini masih jauh dari sempurna. Oleh karena itu, penulis mengharapkan kritik dan saran membangun guna penyempuranaan rancangan ini kedepannya.

Akhirnya dengan segala kerendahan hati, penulis mempersembahkan Tugas Akhir ini, semoga bermanfaat bagi pembaca dan penulis untuk dunia penerbangan pada umumnya. Terima kasih.

Surabaya, 03 Agustuss 2021

Penulis

(15)

DAFTAR PUSTAKA

Adriyanto, H. d. (2016). Arduino Belajar Cepat dan Pemrograman. Bandung:

Informatika Bandung.

Artanto, D. (2012). Buku Panduan Praktis Mempelajari Arduino. Jakarta: PT.Elex Media Komputindo.

Bimo. (2014). Modul Sistem Pemompaan . Surabaya: ATKP SURABAYA.

Blocher, R. (2003). Dasar Elektronika. Yogyakarta: Penerbit Andi.

Cummins, I. (2015). Spesification and Datasheet. India: Cummins India Official Campus.

Daryanto. (2014). Konsep Dasar Teknik Elektronika Kelistrikan. Bandung: Bandung Alfabeta.

David, H. (2002). Visual Basic. Net Programing. USA: SYBEX Inc.

Hasan. (2017). Kiat Mudah Sidang Skripsi. Jakarta: Gunindo.

Inc, A. (2011). “Arduino Manual Documentation and product Spesification„„.

Arduino Official Site, http://arduino.cc.

Kadir, A. (2012). Panduan Praktis Mempelajari Aplikasi Mikrokontroler dan Pemrogramannya Menggunakan Arduino. Yogyakarta: Penerbit Andi.

Maria, A. (2005). Kiat Jitu Menyusun Skripsi. Surabaya.

Masyidi, W. (2011). Canggih Berteknologi. Yogyakarta: Graha Ilmu.

Santoso, H. (2015). Cara Kerja Sensor Ultrasonik, Rangkaian, dan Aplikasinya.

Semarang: Elangsakti.

Stamford. (2015).UC Altenator, Owner Manual. Cummins Generator Technologies.

Sugiyono. (2005). Pemrograman Terstruktur. Yogyakarta: Anom

Syahrul. (2008). Jurnal Teknik Sipil . Yogyakarta: Universitas Gajah Mada.

Syam, R. (2013). Dasar Dasar Teknik Sensor. Makassar: Universitas Hassanudin.

(16)

65

Taha. (2019). Prototipe Kontrol dan Monitoring Kapasitas Daily Tank dan Pemakaian Bahan Bakar Genset Berbasis Database. Surabaya.

Tyas, L. A. (2012). Rancangan Kontrol Pengisian Bahan Bakar Secara Otomatis Menggunakan Mikrokontroler di Powee House Akademi Teknik Dan Keselamatan Penerbangan. Surabaya: ATKP SURABAYA.

Widyantara, K. Y. (2016). Komponen Komponen Elektronika yang Digunakan dalam Industri. Kendari: Universitas Haluoleo.

(17)

LAMPIRAN

Lampiran A, Data Sheet Water Flow Sensor

Working voltage 5V-24V

Maximum current 15 mA(DC 5V)

Weight 43 g

External diameters 20mm

Flow rate range 1~30 L/min Operating temperature 0℃~80℃

Liquid temperature <120℃

Operating humidity 35%~90%RH Operating pressure under 1.2Mpa

Store temperature -25℃~+80℃

(18)

67 Lampiran B, Datasheet Arduino UNO

Pin Category

Pin Name Details

Power Vin, 3.3V, 5V, GND

Vin: Input voltage to Arduino when using an external power source.

5V: Regulated power supply used to power microcontroller and other components on the board.

3.3V: 3.3V supply generated by on-board voltage regulator. Maximum current draw is 50mA.

GND: ground pins.

Reset Reset Resets the microcontroller.

Analog Pins A0 – A5 Used to provide analog input in the range of 0- 5V

Input/Output Pins

Digital Pins 0 - 13 Can be used as input or output pins.

Serial 0(Rx), 1(Tx) Used to receive and transmit TTL serial data.

External Interrupts

2, 3 To trigger an interrupt.

PWM 3, 5, 6, 9, 11 Provides 8-bit PWM output.

SPI 10 (SS), 11 (MOSI),

12 (MISO) and 13 (SCK)

Used for SPI communication.

Inbuilt LED 13 To turn on the inbuilt LED.

(19)

Arduino Uno Technical Specifications

Microcontroller ATmega328P – 8 bit AVR family microcontroller

Operating Voltage 5V

Recommended Input Voltage 7-12V

Input Voltage Limits 6-20V

Analog Input Pins 6 (A0 – A5)

Digital I/O Pins 14 (Out of which 6 provide PWM output)

DC Current on I/O Pins 40 mA

DC Current on 3.3V Pin 50 mA

Flash Memory 32 KB (0.5 KB is used for Bootloader)

SRAM 2 KB

EEPROM 1 KB

Frequency (Clock Speed) 16 MHz

(20)

69

Lampiran C, Data Sheet Sheet Sensor Ultrasonik HC-SR04

• Working Voltage DC 5 V

• Working Current 15mA

• Working Frequency 40Hz

• Max Range 4m

• Min Range 2cm

• MeasuringAngle 15 degree

• Trigger Input Signal 10uS TTL pulse

• Echo Output Signal Input TTL lever signal and the range in

• proportion

• Dimension 45*20*15mm

(21)

Lampiran D, Koding Arduino

#include <LCD_I2C.h>

#include <AltSoftSerial.h>

// #include <SoftwareSerial.h>

// #include <Ultrasonic.h>

#include <NewPing.h>

#include <FlowMeter.h>

AltSoftSerial softSerial; // RX = 9, TX = 8

#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.

#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.

#define MAX_DISTANCE 300 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

#define MAX_CAPACITY_DISTANCE 15

// Ultrasonic ultrasonic(5, 4); // Trigger = 4, Echo = 5

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

#define FLOW1 2 FlowMeter *Meter1;

// define an 'interrupt service handler' (ISR) for every interrupt pin you use void Meter1ISR() {

// let our flow meter count the pulses Meter1->count();

}

(22)

71

#define BUZZER_ON LOW

#define BUZZER_OFF HIGH

#define BUZZER1 A0

int buzzer = 0;

void turnOnBuzzer() {

digitalWrite(BUZZER1, BUZZER_ON);

buzzer = 1;

}

void turnOffBuzzer() {

digitalWrite(BUZZER1, BUZZER_OFF);

buzzer = 0;

}

void beep() { delay(100);

turnOnBuzzer();

delay(100);

turnOffBuzzer();

}

#define RELAY_ON LOW

#define RELAY_OFF HIGH

#define RELAY1 A1

int relay1 = 0;

int mode = 0;

(23)

void turnOnRelay() {

digitalWrite(RELAY1, RELAY_ON);

relay1 = 1;

}

void turnOffRelay() {

digitalWrite(RELAY1, RELAY_OFF);

relay1 = 0;

}

LCD_I2C lcd(0x27);

void setup() {

pinMode(BUZZER1, OUTPUT);

turnOffBuzzer();

pinMode(RELAY1, OUTPUT);

turnOffRelay();

Serial.begin(9600);

lcd.begin();

lcd.backlight();

softSerial.begin(4800);

lcd.print("Poltekbang ");

lcd.setCursor(0, 1);

lcd.print("Surabaya ");

(24)

73

// get a new FlowMeter instance for an uncalibrated flow sensor and let them attach their 'interrupt service handler' (ISR) on every rising edge

Meter1 = new FlowMeter(digitalPinToInterrupt(2), UncalibratedSensor, Meter1ISR, RISING);

}

unsigned long latestUpdateTime = 0;

#define UPDATE_TIME 1000

#define TOP_CAPACITY_THRESHOLD 80

#define LOW_CAPACITY_THRESHOLD 20 float capacity = 0;

float flow1 = 0;

String incomingSerialData = "";

void loop() {

// Monitor for incomingSerialData while (softSerial.available()) { char c = softSerial.read();

Serial.write(c);

incomingSerialData += c;

if (c == '\n') {

Serial.print("> incomingSerialData: "); Serial.println(incomingSerialData);

char newMode = incomingSerialData.charAt(0);

Serial.print("> newMode: "); Serial.println(newMode);

(25)

if (newMode == '0') { mode = 0;

} else if (newMode == '1') { mode = 1;

}

if (mode == 0) {

if (capacity > TOP_CAPACITY_THRESHOLD) { turnOffRelay();

} else {

char newRelay1 = incomingSerialData.charAt(2);

Serial.print("> newRelay1: "); Serial.println(newRelay1);

if (newRelay1 == '0') { turnOffRelay();

beep();

} else if (newRelay1 == '1') { turnOnRelay();

beep();

} } }

incomingSerialData = "";

} }

if (millis() - latestUpdateTime > UPDATE_TIME) { latestUpdateTime = millis();

(26)

75 // process the (possibly) counted ticks Meter1->tick(UPDATE_TIME);

flow1 = Meter1->getCurrentFlowrate();

// output some measurement result // Serial.println(" ");

// Serial.println("Meter 1 currently " + String(flow1) + " l/min");

// Serial.println(" ");

unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).

float distance = float(uS) / float(US_ROUNDTRIP_CM);

// Serial.print("Ping: ");

// Serial.print(distance); // Convert ping time to distance in cm and print result (0 = outside set distance range)

// Serial.println(" cm");

capacity = (MAX_CAPACITY_DISTANCE - distance) * 100.0 / MAX_CAPACITY_DISTANCE;

if (capacity <= 0) capacity = 0;

else if (capacity >= 100) capacity = 100;

// Serial.print("Capacity: ");

// Serial.println(capacity);

String message = "";

message += String(mode) + "," + String(relay1) + "," + String(flow1) + "," + String(capacity);

Serial.println(message);

softSerial.println(message);

(27)

if (mode == 1) {

if (capacity > TOP_CAPACITY_THRESHOLD) { turnOffRelay();

} else if (capacity < LOW_CAPACITY_THRESHOLD) { turnOnRelay();

beep();

} } else {

if (capacity > TOP_CAPACITY_THRESHOLD) { turnOffRelay();

} }

lcd.setCursor(0, 0);

lcd.print(mode == 1 ? "AUTO " : "MANUAL ");

lcd.setCursor(8, 0);

lcd.print(flow1); lcd.print("L/m ");

lcd.setCursor(0, 1);

lcd.print(capacity); lcd.print("% ");

lcd.setCursor(8, 1);

lcd.print(relay1 == 1 ? "RELAY ON " : "RELAY OFF ");

} }

(28)

77 Lampiran E, Koding Wemoz D1 Mini

#include <ArduinoWebsockets.h>

#include <ESP8266WiFi.h>

#include <SoftwareSerial.h>

SoftwareSerial softSerial(D2, D1); // RX, TX

const char* ssid = "OPPO A3s";

const char* password = "ilham1234";

const char* websockets_server_host = "smart-fuel-pump.tapoltekbangsby.com";

const uint16_t websockets_server_port = 7813;

using namespace websockets;

WebsocketsClient client;

void onMessageCallback(WebsocketsMessage message) { // Serial.print("--> Got Message: ");

// Serial.println(message.data());

String command = message.data();

if (command.startsWith("'")) { Serial.print("--> Got Message: ");

Serial.println(command);

} else {

Serial.print("--> Forwarding: ");

Serial.println(command);

softSerial.println(command);

(29)

} }

void onEventsCallback(WebsocketsEvent event, String data) { if(event == WebsocketsEvent::ConnectionOpened) {

Serial.println(" ! Connnection Opened");

} else if(event == WebsocketsEvent::ConnectionClosed) { Serial.println(" ! Connnection Closed");

} else if(event == WebsocketsEvent::GotPing) { Serial.println(" ! Got a Ping!");

} else if(event == WebsocketsEvent::GotPong) { Serial.println(" ! Got a Pong!");

} }

void setup() {

pinMode(14, OUTPUT);

digitalWrite(14, LOW);

pinMode(LED_BUILTIN, OUTPUT);

digitalWrite(LED_BUILTIN, LOW);

Serial.begin(9600);

// Connect to wifi

WiFi.begin(ssid, password);

// Wait some time to connect to wifi

for(int i = 0; i < 15 && WiFi.status() != WL_CONNECTED; i++) {

(30)

79 Serial.print(".");

digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));

delay(1000);

}

while (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println();

Serial.println("Fail connecting!");

scanNetworks();

blink(); blink(); blink(); blink(); blink();

ESP.restart();

}

Serial.println("");

Serial.println("WiFi connected");

Serial.println("IP address: "); Serial.println(WiFi.localIP());

Serial.print("Signal Strength (RSSI): ");

Serial.print(dBmtoPercentage(WiFi.RSSI())); Serial.println(" %");

Serial.println();

softSerial.begin(4800);

// Connecting to server...

digitalWrite(LED_BUILTIN, HIGH);

Serial.println("--> Connecting...");

bool connected = client.connect(websockets_server_host, websockets_server_port,

"/");

if(connected) {

Serial.println(" ! Connected!");

// run callback when messages are received

(31)

client.onMessage(onMessageCallback);

// run callback when events are occuring client.onEvent(onEventsCallback);

digitalWrite(LED_BUILTIN, LOW);

} else {

Serial.println(" ! Not Connected!");

} }

unsigned long latestUpdateTime = 0;

#define UPDATE_TIME 1000

String incomingSerialData = "";

String availableSerialData = "";

void loop() {

// Monitor for incomingSerialData while (softSerial.available()) { char c = softSerial.read();

Serial.write(c);

incomingSerialData += c;

if (c == '\n') {

Serial.print("> incomingSerialData: "); Serial.println(incomingSerialData);

availableSerialData = incomingSerialData;

incomingSerialData = "";

} }

(32)

81 // Monitor and forwarding availableSerialData if (millis() - latestUpdateTime > UPDATE_TIME) { latestUpdateTime = millis();

if (availableSerialData.length() > 0 && client.available()) { Serial.println("> Sending availableSerialData...");

Serial.println(availableSerialData);

client.send(availableSerialData);

availableSerialData = "";

// dummy!

// availableSerialData = "0" + String(dummyState == 1 ? ",219.8,0.12,1" :

",0,0,0");

// client.send(availableSerialData);

} else {

// Serial.println(" no available serial data.");

} }

// Monitor client and start accepting connection if possible if(client.available()) {

client.poll();

} else {

// Connecting to server...

digitalWrite(LED_BUILTIN, HIGH);

Serial.println("--> Connecting...");

bool connected = client.connect(websockets_server_host, websockets_server_port,

"/");

if(connected) {

(33)

Serial.println(" ! Connected!");

// run callback when messages are received client.onMessage(onMessageCallback);

// run callback when events are occuring client.onEvent(onEventsCallback);

digitalWrite(LED_BUILTIN, LOW);

} else {

Serial.println(" ! Not Connected!");

} } }

(34)

83

Referensi

Dokumen terkait

RANCANG BANGUN SISTEM TELEMETRI DATA SUDUT PERGERAKAN PADA QUADCOPTER BERBASIS RASPBERRY PI DAN SDR TUGAS AKHIR Oleh : APRILIA PUTRI ANGGRAENI NIT... i RANCANG BANGUN SISTEM