Anda di halaman 1dari 12

SISTEM PRESENSI MENGGUNAKAN RFID BERBASIS ESP32

disusun untuk memenuhi tugas Embedded System


dosen pegampu : Sidik Nurcahyo, ST., MT

OLEH :

NAMA : MUHAMMAD ARDI FEBRIYANTO

NIM : 2031110079

KELAS : 2B-D3 TEKNIK ELEKTRONIKA

Program Studi D3 Teknik Elektronika


Jurusan Teknik Elektronika
Politeknik Negeri Malang
2022
ARTIKEL RESUME SYSTEM EBDEDDED

Judul Mini project : Sistem Absensi Menggunakan RFID berbasis ESP32

Nama : Muhammad Ardi Febriyanto

Kelas : 3B D3TE

Absen : 15

NIM : 203111079

Partner Mini project : Alaudin Lazuardi Arifin


BAB 1
MEMBUAT LIBRARY
(PEMBAHASAAN BAB 6)
1.1 Arduino
Arduino adalah papan elektronik open-source yang mencakup hardware dan software
yang digunakan untuk memprogramnya. Pada mulanya Arduino hanya digunakan
sebagai tool untuk mempercepat proses prototyping dan ditujukan untuk siswa-siswa dan
penghobi yang tidak memiliki latar belakang ilmu elektronik dan pemrograman.
Kemudahan yang ditawarkan Arduino menjadikannya makin banyak digunakan pada
berbagai kalangan. Atas dasar itu kemudian Arduino mulai beradaptasi terhadap
tantangan/kebutuhan sehingga kini Arduino tidak hanya mendukung board sederhana
berprosesor 8bit tetapi juga board yang lebih powerfull 32bit seperti untuk aplikasi IoT,
wearable, 3D printing, dan embedded environments.
Menyikapi kondisi ini, Espressif juga menyediakan library ESP32 yang cocok
(compatible) dengan gaya pemrograman Arduino. Dengan adanya library ESP32 versi
Arduino ini maka pembuatan program ESP32 menjadi lebih mudah seperti halnya
pembuatan program Arduino untuk board mikrokontroler pada umumnya.

1.2 Library Pada ESP-IDF


Project program yang baik selalu mengelompokkan kode program berdasarkan topik
atau tema, bukan mencampuraduk semua program dalam satu file. Kode program
yang dikelompok-kelompokkan berdasarkan topik atau tema ini dikenal dengan
nama library. Manfaat library ialah memudahkan dalam pemakaian ulang library
itu dalam sebuah project, yaitu tinggal meng-include atau menyertakannya dalam
project program yang membutuhkannya.
Library didalam ESP-IDF terdiri atas file-file source code (*.c, *.cpp), dan
fileheader (*.h) yang disimpan didalam direktori tertentu dan disertai dengan
file CMakeList.txt yang digunakan untuk menunjang proses compile file-file library
menjadi sebuah file archive (*.a). File archive inilah yang nantinya di-link dengan program
aplikasi yang menggunakan library tersebut.

1.3 Prosedur Membuat Library


Sub bab ini akan membahas cara membuat library sendiri, nama direktori library
menjadi nama library. Lokasi direktori tempat menyimpan library ini harus didalam
direktory “components” yang ada didalam project program, atau didalam direktory
“components” yang ada didalam direktori framework ESP-IDF (~/esp/esp-idf442)
atau boleh diluar dari kedua lokasi tersebut tetapi harus menyebutkan direktori
lokasinya menggunakan variabel EXTRA_COMPONENT_DIRS didalam file
CMakeLists.txt project program.
Contoh konfigurasi variabel ini telah ditunjukkan di Subbab 5.3 nomor 1, yaitu
untuk mengijinkan penggunaan library Arduino didalam project program ESP32. File
CMakeList.txt juga berisi informasi daftar source code, daftar file header dan juga
dependency atau library lain yang diperlukan oleh library tersebut. CMakeLists.txt untuk
Arduino dapat dilihat di direktori $HOME/esp/arduino.
Cara membuat library sendiri semisal dengan nama myGpio yaitu library yang akan
digunakan untuk akses GPIO. Jika library ini sudah selesai dibuat maka bisa digunakan
seperti contoh berikut.

#include “myGpio.h”
myGpio Led(2); //definisikan obyek Led tersambung pada pin 2
Led.set(); //nyalakan
LedLed.clear(); //matikan Led
Untuk memulai pembahasan, buat dulu project program baru dengan mencopy
program hasil Subbab 5.3 dan mengubah nama menjadi tesLibrary, setelah itu buka
project programya didalam VsCode dan hapus directory build karena berisi file-file hasil
compile project sebelumnya. Selanjutnya harus buat direktori “components” didalam
project program lalu buat direktori “mygpio” didalam direktori “component tersebut.
Untuk membuat direktori, pilih direktori induknya lalu klik icon New Folder,
seperti ditunjukkan dalam Gambar 6.1.

New File

Gambar 6.1 Membuat Directory Componensts/mygpio

Setelah itu buat file mygpio.h dan mygpio.cpp didalam direktori mygpio, dengan cara
klik direktori mygpio lalu klik icon New File dan beri nama filenya. Buka file mygpio.h dan
ketikkan beberapa instruksi sehingga tampak seperti pada listing dibawah ini.
#pragma once
#include “Arduino”

Class myGpio{
Public :
myGpio (int pin, int mode =OUTPUT);
void set ();
void clear();
bool isClear();
private :
int _pin;
};

Pada Baris 3 meng-include library arduino supaya library myGpio dapat


menggunakan library arduino terkait Gpio seperti fungsi pinMode, digitalWrite,
dan digitalRead. Baris 5 sampai 13 merupakan deklarasi class myGpio. Didalam scope
public terdapat deklarasi sebuah constructor (baris 7) dan tiga buah deklarasi fungsi masing-
masing bernama set, clear dan isClear. Baris 12 mendeklarasikan variabel private _pin yang
digunakan untuk menyimpan nomor pin obyek gpio tersebut. Variabel ini nanti
digunakan oleh fungsi set, clear dan isClear.
Selanjutnya membuka file mygpio.cpp dan ketikkan beberapa intruksi seperti listing
dibawah ini

#include “mygpio.h”

myGpio::myGpio(int pin, int mode)


{ pinMode (pin, mode);
-pin = pin;
}
Void myGpio::set()
{
digitalWrite(_pin,HIGH);
}
Void myGpio::clear()
{
digitalWrite(_pin,LOW);
}
Bool myGpio::isClear(){
Return digitalRead(_pin)==0;
}

Setelah selesai melakukkan editing pada Listing program langkah selanjutnya yaitu
meng-copy paste file CMakeList.txt yang ada didalam direktori main kedalam direktori
mygpio yang telah kita buat sebelumnya. Buka file CMakeList.txt hasil copy-an lalu ubah
listing programnya seperti pada isting dibawah ini

Idf_components_register(
SRCS “mygpio.cpp”
INCLUDE_DIRS ”.”
REQUIRES “arduino”
)
Tambahkan library mygpio ke dalam project program dengan cara membuka file
CMakeLists.txt project program (yang langsung dibawah direktori tesLibrary,
bukan didalam direktori mygpio maupun didalam direktori main), tambahkan
“mygpio” kedalam instruksi baris ke-6 sehingga tampak seperti Listing dibawah ini.

Setelah itu buka file main.cpp lalu ubah intrusi program seperti pada listing dibawah
ini

Disini terdapat beberapa hal yang belum pernah dilakukan pada bab sebelumnya yaitu
adanya instruksi pada baris 2 dan adanya definisi obyek pada bariss 7 dan 8. Selanjutnya
yaitu save semua hasil editing listing programnya dengan cara klik menu file dan klik di
menu autosave, maka semua program yang telah kita ubah secara otomatis akan tersimpan.
Langkah selanjutnya yaitu mengcompile program dan jika tidak ada error maka bisa
dilanjutkan pada flash monitor. Pada program ang telaah kita ketikkan akan bekerja sama
haya dengan project subbab 5, tetapi pada program kali ini menggunakan library buatan
sendiri yang bersifat object oriented yaitu adanya obyek led dan tombol.
BAB II
PEMBAHASAN HASIL MINIPROJECT
2.1 INSTALASI LAMP (Linux, Apache, MySql, PHP)
Dalam proyek ini saya akan membangun klient ESP32 yang membuat permintaan
HTTP POST ke skrip PHP untuk memasukkan data (pembacaan sensor) ke dalam database
MySQL.
1. Perbarui Cache Paket
Hal yang perlu dilakukan pertama kali yaitu membuka terminal ubuntu lalu ketikkan
sudo apt update, gunanya yaitu memperbarui paket cache manager ke versi
terbaru

2. Install Server Database Mariadb


Setelah melakukan pembaruan terhadap paket cache, sekarang akan menginstal
server database mariadb, alasan saya menggunakan mariadb yaitu karena lebih banyak
fitur yang mendukung mesin penyimpanan baru selain kierja yang tinggi.
• Untuk menginstal mariadb, jalankan perintah berikut sudo apt install mariadb-
server mariadb-client

• Disini akan menginstal 2 paket yaitu mariadb-server dan mariadb-client, setelah


instalasi selesai, verifikasi bahwa server databse Mariadb berjalan dengan benar
menjalankan perintah berikut untuk memeriksa status layanan Mariadb.
sudo service mariadb status

Output harus menunjukkan bahwa layanan diaktifkan dan berjalan:

• Untuk memastikan bahwa server database MariaDB dimulai dengan sistem saat
boot. Untuk melakukannya, jalankan perintah berikut: sudo systemctl enable
mariadb.service, dan akan keluar output bahwa mariadb tersinkron sesuai dengan
contoh dibawah.

• Metode pengamanan server database mariadb, Mariadb hadir dengan beberapa


pengaturan default yang tidak aman yang dapat mengekspos server database Anda ke
kerentanan keamanan yang berbahaya. Untuk mengamankan server database mariadb,
jalankan perintah berikut sudo mysql_secure_installation
Jika terdapat pesan seperti diatas maka silahkan klik ENTER untuk melanjutkan tanpa
kata sandi, ikuti perintah selanjutnya dengan mengklik “Y” hingga sampai diminta
password baru seperti gambar dibawah ini

Dengan ini, instalasi MariaDB Anda lebih aman dari sebelumnya, asalkan Anda
mengikuti praktik terbaik keamanan.

3. Install Apache HTTP Server


Setelah menginstal dan mengamankan server database MariaDB, langkah selanjutnya
dalam instalasi tumpukan LAMP kami adalah menginstal server HTTP Apache, yang
menyajikan konten web. Gunakan perintah sebagai berikut untuk mengintsal Apache
sudo apt install apache2

Setelah instalasi selesai maka periksa versi Apache untuk mengkonfigurasi bahwa
diinstall dengan benar, jalan kan kode peritah berikut sudo apachectl -v.

Kemudian periksa status Apache sudo systemctl status apache2, pastikan setelah di enter
output akan menunjukkan bahwa layanan Apache diaktifkan dan berjalan.
4. Install PHP
Dengan MariaDB dapat menyimpan dan mengelola data, dan server HTTP
Apache memungkinkan untuk menyajikannya. sekarang perlu menginstal PHP
untuk menampilkan data secara dinamis, dan memungkinkan pengguna akhir
untuk berinteraksi dengan layanan web melalui formulir web atau panggilan API
yang mudah digunakan.

Gunakan perintah berikut untuk menginstal paket PHP utama, bersama


dengan paket PHP dasar yang memungkinkan berinteraksi dengan database
dan server HTTP sudo apt install php php-mysql php-xml php-
mbstring libapache2-mod-php

Saat diminta, ketuk tombol y lalu Enter untuk melanjutkan penginstalan. Selanjutnya
untuk memastikan PHP berhasil diinstal, periksa versinya menggunakan perintah berikut
php -v maka akan mendapatkan output mirip denga gambar dibawah ini.

5. Meguji web halaman yang dibuat


Setelah kita selesai menginstal semua komponen tumpukan LAMP, sekarang kita
akan menguji server Apache kita dengan membuat file HTML kecil di folder Apache
Document Root – folder yang berisi file situs web. Untuk membuat folder root dokumen
untuk melayani file pengujian kami, buat direktori baru yang disebut mysitedi
dalam /var/wwwdirektori, yang merupakan root dokumen default untuk Apache. Ketikkan
perintah berikut sudo mkdir /var/www/mysite

Selanjutnya buat fie Bernama index.html didalam mysite, dengan kode peritah berikut
sudo nno /var/www/mysite/index.html
Copykan script berikut kedalam file nano index.html, setelah selesai silhkan klik ctrl + o
untuk menyimpa dan ctrl + x untuk menutup.

Agar Apache mengetahui tentang mysite direktori root dokumen dan


menyajikannya index.html di alamat IP atau domain server,maka perlu memodifikasi file
konfigurasi default Apache. Untuk melakukan ini, pertama buka menggunakan perintah
berikut: sudo nano /etc/apache2/sites-enabled/000-default.conf,
maka ubahlah alamat dari document root seperti daalam gambar berikut

Selanjutnya mengkonfigurasi utuk memastikan bahwa tidak ada kesalahan dengan


perintah sebagai berikut sudo apache2ctl configtest

Dan akan mennampilkan pesan sintax OK

2.2 Selanjutnya membuat database didalam mariadb


Cara membuat database pada mariadb dapat menggunakan kode perintah sebagai
berikut mysql -u root -p maka akan diminta untuk memasukkan password yang
telah disetting pada point ke -2.

Disini kita bisa membuuat database dengan cara mengetikkan CREATE DATABASE
(nama database);, jika perintah benar maka akan menampilkan pesan bahwa database akan
masuk, setelah itu membuat table dalam database yaitu dengan cara CREATE TABLE
(nama table), untuk table sendiri harus berada didalam database.

2.3 Menambahkan file php didalam directory mysite


Pembahasan kali ini yaitu membuat file php untuk bisa terkoneksi ke web server ubuntu
dengan cara masuk kedalam directory /var/www/html/mystie/, dan ketikkan
perintah berikut pada terminal sudo nano esp-data.php, maka akan masuk
kedalam editor nano esp-data.php dan ketikkan suatu script, contoh pada percoban kali ini
saya menggunakan script sebagai berikut
<!DOCTYPE html>
<html><body>
<?php
/*
Rui Santos
Complete project details at https://RandomNerdTutorials.com/esp32-
esp8266-mysql-database-php/

Permission is hereby granted, free of charge, to any person obtaining


a copy
of this software and associated documentation files.

The above copyright notice and this permission notice shall be


included in all
copies or substantial portions of the Software.
*/

$servername = "localhost";

// REPLACE with your Database name


$dbname = "REPLACE_WITH_YOUR_DATABASE_NAME";
// REPLACE with Database user
$username = "REPLACE_WITH_YOUR_USERNAME";
// REPLACE with Database user password
$password = "REPLACE_WITH_YOUR_PASSWORD";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, sensor, location, value1, value2, value3,


reading_time FROM SensorData ORDER BY id DESC";

echo '<table cellspacing="5" cellpadding="5">


<tr>
<td>ID</td>
<td>Sensor</td>
<td>Location</td>
<td>Value 1</td>
<td>Value 2</td>
<td>Value 3</td>
<td>Timestamp</td>
</tr>';

if ($result = $conn->query($sql)) {
while ($row = $result->fetch_assoc()) {
$row_id = $row["id"];
$row_sensor = $row["sensor"];
$row_location = $row["location"];
$row_value1 = $row["value1"];
$row_value2 = $row["value2"];
$row_value3 = $row["value3"];
$row_reading_time = $row["reading_time"];
// Uncomment to set timezone to - 1 hour (you can change 1 to
any number)
//$row_reading_time = date("Y-m-d H:i:s",
strtotime("$row_reading_time - 1 hours"));

// Uncomment to set timezone to + 4 hours (you can change 4 to


any number)
//$row_reading_time = date("Y-m-d H:i:s",
strtotime("$row_reading_time + 4 hours"));

echo '<tr>
<td>' . $row_id . '</td>
<td>' . $row_sensor . '</td>
<td>' . $row_location . '</td>
<td>' . $row_value1 . '</td>
<td>' . $row_value2 . '</td>
<td>' . $row_value3 . '</td>
<td>' . $row_reading_time . '</td>
</tr>';
}
$result->free();
}

$conn->close();
?>
</table>
</body>
</html>

Setelah itu simpan dan tutup editor nano, dan silahkan lakukan posting dalam kedalam web
server degan perintah sebagai berikut

Silahkan cek diweb server dengan menggukan IP Address perangkat atau bisa
menggunakan localhost/esp-data.php, jika pada saat memposting data dengan benar maka
dalam tampilan web php akan seperti dibawah ini

Anda mungkin juga menyukai