bab iii perancangan alat 3.1 sistem - uksw

18
11 BAB III PERANCANGAN ALAT Pada bab ini akan dijelaskan tentang perancangan dari perangkat keras dan perangkat lunak yang digunakan pada sistem. 3.1 Gambaran Sistem Berikut adalah diagram blok gambaran sistem yang dibuat : Gambar 3.1 Diagram blok perangkat keras Rancangan alat ini menggunakan power supply sebagai sumber daya utama dengan tegangan sebesar 12 V arus maksimal 5A. Arduino Mega sebagai mikrokontroler membutuhkan akses jaringan wifi untuk dapat terhubung dengan server , oleh karena itu Arduino Mega dihubungkan NodeMCU dengan komunikasi serial. Sebagai masukan utama

Upload: others

Post on 01-Dec-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

11

BAB III

PERANCANGAN ALAT

Pada bab ini akan dijelaskan tentang perancangan dari perangkat keras dan perangkat

lunak yang digunakan pada sistem.

3.1 Gambaran Sistem

Berikut adalah diagram blok gambaran sistem yang dibuat :

Gambar 3.1 Diagram blok perangkat keras

Rancangan alat ini menggunakan power supply sebagai sumber daya utama dengan

tegangan sebesar 12 V arus maksimal 5A. Arduino Mega sebagai mikrokontroler

membutuhkan akses jaringan wifi untuk dapat terhubung dengan server , oleh karena itu

Arduino Mega dihubungkan NodeMCU dengan komunikasi serial. Sebagai masukan utama

Page 2: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

12

dari mikrokontroler adalah dari kartu RFID yang dibaca oleh RFID reader dan load cell

untuk mengetahui berat beras pada tangki. Setiap kartu RFID yang terbaca akan diolah

mikrokontroler dibandingkan dengan database dan akan ada insert pada tabel database yang

hanya dapat dibuka oleh admin. Apabila kartu RFID yang terbaca telah sesuai , motor akan

memutar tabung pengeluaran beras. Terdapat 2 buah sensor infrared proximity sensor untuk

menentukan putaran tabung pengeluaran beras.

Setiap pemberitahuan dan notifikasi ditampilkan di LCD dan akan terdapat bunyi

dari buzzer jika terdapat kesalahan pengambilan atau error pada alat. Tangki beras hanya

dapat dibuka oleh kartu admin.

3.2 Perancangan dan Realisasi Perangkat Keras

Berikut merupakan gambaran alat dalam perancangan tugas akhir.

Gambar 3.2 Gambaran Tangki Beras

Gambar 3.3 Penghubung Tangki Beras

Page 3: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

13

Gambar 3.4 Mekanisme Pengeluaran Beras 1 Liter

Gambar 3.5 Gambaran Hasil Akhir Alat

Page 4: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

14

Gambar 3.6 Realisasi Tangki dihubungkan dengan mekanisme pengeluaran beras

Gambar 3.7 Realisasi Alat tanpa cover

Page 5: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

15

Gambar 3.8 Realisasi Alat Tampak Depan

Gambar 3.9 Realisasi Alat Tampak Samping

Page 6: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

16

3.3 Perancangan Elektronika

Alat ini dibagi dalam beberapa bagian, yaitu panel indikator , panel pengendali, load

cell .

3.3.1 Panel Indikator

Gambar 3.10 Panel Indikator Alat

a. LCD

LCD pada alat ini digunakan sebagai penampil kondisi alat dan

informasi yang sudah diolah oleh mikrokontroler. Informasi yang

ditampilkan berupa waktu terkini, sisa beras pada tangki dalam kilogram,

informasi jatah beras, hari dan jam pengambilan beras .

Gambar 3.11 Wiring LCD dan Arduino Mega

Page 7: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

17

b. RFID Reader

RFID Reader digunakan untuk membaca kartu RFID kaum duafa.

Setiap kartu RFID yang terbaca ID akan dikirm ke mikrokontroler untuk

diolah.

Gambar 3.12 Wiring RFID reader dan Arduino Mega

c. LED Indikator

LED ini dihubungkan dengan NodeMCU untuk mengetahui apakah

alat sudah terhubung dengan jaringan wifi dan server.

Gambar 3.13 Wiring LED indikator dan NodeMCU

Page 8: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

18

3.3.2 Panel Pengendali

Gambar 3.14 Panel Pengendali

Panel Pengendali ini berukuran panjang 23 cm dan lebar 23 cm. Berisi modul

dan mikrontroler untuk pengolahan data pada alat.Untuk Keterangan dari setiap

bagian adalah seperti berikut :

A. NodeMCU dan Arduino Mega

Untuk mengatasi keterbatasan Arduino Mega yang tidak dapat

terhubung dengan jaringan wifi, Arduino Mega dihubungkan dengan

NodeMCU dengan menggunakan komunikasi serial. Arduino Mega

akan mengolah setiap masukan dari RFID reader dan load cell . Setiap

ID kartu yang terbaca oleh Arduino Mega akan dikirim ke NodeMCU

untuk dikirim ke server, dimana ID tersebut akan dibandingkan dengan

database. Hasil tersebut akan kembali dikirm ke Arduino Mega untuk

diolah , untuk menentukan keluaran selanjutnya.

Page 9: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

19

Gambar 3.15 Wiring NodeMCU dan Arduino Mega

B. Real Time Clock

Real Time Clock digunakan untuk mengetahui waktu terkini pada

alat. Waktu ini disesuaikan dengan waktu pada server. Hasil dari RTC

akan ditampilkan pada LCD dengan menunjukan hari , jam , menit dan

detik terkini.

Gambar 3.16 Wiring RTC dan Arduino Mega

C. Relay

Relay pada alat ini digunakan sebagai saklar dari solenoid door.

Solenoid tersebut dipasang pada tutup tangki beras.Solenoid ini bekerja

pada tegangan 12v. Tutup tangki ini hanya dapat dibuka oleh admin.

Page 10: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

20

Gambar 3.17 Wiring Relay, Solenoid door dan Arduino Mega

Gambar 3.18 Pemasangan Solenoid door pada tutup tangki

D. Driver Motor L298n

Apabila Arduino Mega memberi sinyal untuk menggerakkan Motor

DC, driver ini akan bekerja mengontrol gerakan motor DC. Motor ini

bekerja pada tegangan 12 V. Untuk mengeluarkan beras 1 liter

diperlukan 1 kali gerakan maju dan mundur. Untuk gerakan maju dan

mundur , PWM (pulse with modulation) yang diberikan kepada motor

adalah 200.

Page 11: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

21

Gambar 3.19 Wiring driver motor, motor DC dan Arduino Mega

Untuk motor dapat berhenti, terdapat 2 buah sensor infrared

proximity untuk menentukan letak perhentian motor. Sensor ini bekerja

ketika cahaya dari infrared dipantulkan oleh tabung (tabung diberi cat

untuk memantulkan cahaya infrared). Jika Proximity 1 membaca putih

maka tabung berada dalam posisi pengisian, sedangkan jika proximity

2 membaca putih, tabung beras dalam posisi mengeluarkan beras. Pada

saat pengeluaran beras , tabung berhenti selama 2 detik, dan ketika

pengisian beras berhenti 3 detik.

Gambar 3.20 Wiring proximity sensor dan Arduino Mega

Page 12: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

22

Gambar 3.21 Proximity sensor pada tabung beras

E. Buzzer

Buzzer pada alat digunakan sebagai indikator suara.

Gambar 3.22 Wiring buzzer dan Arduino Mega

F. Terminal kabel

Terminal kabel disini adalah untuk mempermudah pembagian

sumber daya. Dibedakan menjadi 3 yaitu terminal 12V ,5V, dan

ground. Sumber 12 V untuk Arduino Mega, NodeMCU, L298n, Relay

dan 5 V untuk RTC, LCD , Infrared proximity sensor, HX711.

G. Power Supply

Sumber daya alat ini sepenuhnya berasal dari Power Supply.

Memiliki Tegangan keluaran 12 V dan arus maksimal 5 Ampere.

Page 13: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

23

3.3.3 Load Cell

Load Cell merupakan perangkat untuk mengetahui berat benda. Load cell ini

dihubungkan dengan modul HX711 untuk mengubah keluaran dari resistansi

menjadi tegangan yang dikuatkan agar mudah dibaca oleh Arduino Mega. Pada alat

ini load cell diletakkan pada bagian bawah alat, untuk menimbang ketersediaan

beras pada Tangki.

Gambar 3.23 Wiring load cell dan HX 711 dan Arduino Mega

Gambar 3.24 Pemasangan Load cell dan HX711 pada alas alat

3.4 Perancangan Perangkat Lunak

Pada bagian ini akan dijelaskan mengenai perancangan perangkat lunak dari

Anjungan Beras Mandiri. Berikut adalah diagram alir dari perangkat lunak alat

Page 14: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

24

Gambar 3.25. Diagram Alir Sistem Anjungan Beras Mandiri bagi kaum duafa

Page 15: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

25

Cara kerja dari alat ini adalah ketika alat dihidukan, NodeMCU akan mencoba

menghubungkan jaringan wifi dan pada database server yang telah dibuat .Apabila sudah

terkoneksi Led indikator akan menyala.

void setup() { Serial.begin(9600); NodeMCU.begin(115200); pinMode(LEDwifi, OUTPUT); pinMode(LEDdatabase, OUTPUT); Serial.println("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); } void loop() { if (!client.connect(host,80)) { Serial.println("Gagal Konek"); digitalWrite(LEDdatabase,LOW); delay(1000); return; } digitalWrite(LEDdatabase,HIGH); if(NodeMCU.available()){ RFID = NodeMCU.readString(); Serial.println(RFID); koneksi_database(); } }

Source 3.1. Periksa koneksi koneksi wifi dan database

Kemudian load cell akan menghitung beban yang ada pada tangki, dan jika beban

tangki tidak memenuhi lebih dari 3Kg maka akan ada pemberitahuan yang ditampilkan

pada LCD.

Setelah dua ketentuan tadi terpenuhi, maka alat akan bisa membaca kartu yang

ditempelkan, setiap pembacaan kartu, ID kartu tersebut akan diolah pada Arduino mega

dan dikirm ke NodeMCU untuk dibandingkan dengan database pada tabel db_user yang

berisi jadwal pengambilan, nomor kartu RFID yang terdaftar,dan status untuk

Page 16: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

26

menentukan sudah mengambil atau belum. Apabila nomor kartu terbaca pada jadwal

yang tepat, dan nomor tersebut juga sudah terdaftar maka akan ada insert database pada

tabel db_record yang berisi pencatatan nomor RFID ,nama, alamat, jatah, dan waktu

ambil. Dan juga terdapat update pada baris ID RFID bersangkutan, menjadi status = 1.

$rfid = $_GET["data1"]; $sqlCekrfid="SELECT * from tb_user where rfid='$rfid' "; $hasilCek1= mysqli_query($konek,$sqlCekrfid); if (mysqli_num_rows($hasilCek1)> 0) { echo "OK".","; $sqlCeksudahambil="SELECT * from tb_user where rfid='$rfid' AND status='0'"; $hasilCek2= mysqli_query($konek,$sqlCeksudahambil); if (mysqli_num_rows($hasilCek2)> 0) { echo "OK".","; $sqlCekjadwal=" SELECT * from tb_user where rfid='$rfid' AND hari='$day' AND '$jam' >

mulai_ambil AND '$jam' < akhir_ambil"; $hasilCek3= mysqli_query($konek,$sqlCekjadwal); if (mysqli_num_rows($hasilCek3)> 0) { echo "OK".","; $sqlinsert="insert into tb_record(rfid, nama, alamat, jatah) select

tb_user.rfid,tb_user.nama,tb_user.alamat,tb_user.jatah from tb_user where tb_user.rfid=$rfid"; $result1= mysqli_query($konek,$sqlinsert); $sqlupdate="UPDATE `tb_user` SET `status` = '1' where rfid='$rfid' "; $result2=mysqli_query($konek,$sqlupdate); while($row =mysqli_fetch_assoc($hasilCek3)) { echo $row["nama"]. "," .$row["jatah"]; } } else { echo "ERR".","; $sqlCekjadwalsalah="SELECT * from tb_user where rfid='$rfid'"; $hasilCek4= mysqli_query($konek,$sqlCekjadwalsalah); while($row =mysqli_fetch_assoc($hasilCek4)) { echo $row["hari"]. "," .$row["mulai_ambil"]. "-" .$row["akhir_ambil"]; } } } else { echo "ERR".","; } } else { echo "ERR".","; }

Source 3.2. Periksa RFID pada database

Page 17: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

27

Setelah itu NodeMCU akan membaca echo hasil dari server. Kemudian data tersebut

dikirim ke Arduino Mega untuk diolah menjadi keluaran.

if(ArduinoMega.available()) { cekrfid = ArduinoMega.readStringUntil(','); cekstatus= ArduinoMega.readStringUntil(','); cekjadwal = ArduinoMega.readStringUntil(','); no = ArduinoMega.readStringUntil(','); jatah = ArduinoMega.readStringUntil(',');

Source 3.3. Variabel data Arduino Mega

Data tersebut diolah oleh Arduino Mega. Jika didapatkan hasil bahwa ID RFID yang

terbaca tersebut sudah mengambil, buzzer akan menyala sesaat dan terdapat

pemberitahuan lewat LCD. Jika ID RFID tersebut mengambil pada jadwal yang salah

aan ditampilkan jadwal peserta dan buzzer menyala sesaat.

void cek() { jatahberas=jatah.toInt(); if(cekrfid=="ERR"){ Serial.println("Kartu Tidak Terdaftar"); lcd.clear(); lcd.setCursor(0, 1); //baris kedua lcd.print("Tidak Terdaftar"); buzzer(); } else if(cekrfid=="OK" && cekstatus=="ERR"){ Serial.println("Anda Sudah Ambil"); lcd.clear(); lcd.setCursor(0, 1); lcd.print("Anda Sudah Ambil"); buzzer(); } else if(cekrfid=="OK" && cekstatus=="OK" && cekjadwal=="ERR"){ Serial.println(no); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Mohon Ambil pada :"); lcd.setCursor(0, 1); lcd.print(no); lcd.setCursor(0, 2); lcd.print(jatah); buzzer(); delay(400); lcd.clear(); } else if(cekjadwal=="OK" && jatahberas!="null"){ Serial.println(jatahberas); lcd.clear(); lcd.setCursor(0, 0);

Page 18: BAB III PERANCANGAN ALAT 3.1 Sistem - UKSW

28

lcd.print(no); lcd.setCursor(0, 1); lcd.print("Anda mendapat :"); lcd.setCursor(0, 2); lcd.print(jatah); lcd.setCursor(3, 2); lcd.print("Liter Beras"); for(int x=0;x<jatahberas;x++) { ambil(); } } lcd.clear(); }

Source 3.4. Cek Variabel Arduino Mega

Jika ID RFID telah memenuhi persyaratan ,maka motor akan bergerak memutar maju,

dan jika sensor infrared 2 membaca warna putih maka motor tersebut akan berhenti

selama 2 detik, kemudian bergerak memutar kearah sebaliknya. Jika sensor infrared 1

membaca putih maka motor akan berhenti. Gerakan motor ini ditentukan oleh jumlah

jatah .

void ambil() { b=digitalRead(38); while(b!=0){ b=digitalRead(38); maju(); Serial.println("maju"); } berhenti(); delay(2000); Serial.println("berhenti"); a=digitalRead(34); Serial.println(a); delay(2000); while(a==1){ a=digitalRead(34); mundur(); Serial.println("mundur"); Serial.println(a); } berhenti(); delay(3500); }

Source 3.5 Pergerakan Motor

Setelah proses ini mikrokontroler akan mengecek koneksi dan nilai load cell kembali,

dan siap membaca kartu RFID.