Anda di halaman 1dari 11

SISTEM PRESENSI (Absensi) IoT BERBASIS

ESP-32 dan RFID

Nama : AKHBAR EKA PRATIKTYA


NIM : 2031110025
Kelas : 3A DIII TEKNIK ELEKTRONIKA
Matkul : SISTEM EMBEDED

Program Studi DIII Teknik Elektronika


Jurusan Teknik Elektro
Politeknik Negeri Malang
Kira95523@gmail.com akhbar.mania49@yahoo.com

ABSTRACT
Mata kuliah Sistem Embeded terdapat dalam Prodi D3 TE, yang mempelajari
tentang pengcodingan dengan menggunakan VSC yang dilakukan pada Linux.
Mahasiswa di berikan tugas pada mata kuliah ini dengan membuat sebuah Mini-
Project. Dimana mahasiswa diberikan bekal dalam coding dan menjalankan program
yang sudah dibuat. ESP-32 yang digunakan ini mutlifungsi sehingga dapat di gunakan
dalam membuat Mini-Project. Presensi yang berbasis ESP-32 dan juga RFID ini di
gunakan untuk mencatat data yang masuk dimana menggunakan system tempel, yang
dilakukan mahasiswa dalam melakukan absensi dengan menempelkan KTM pada
sensor RFID. Dalam Mini-Project Presensi ini menggunakan akses point yang dapat
di lihat publik, dengan menggunakan MySQL. MySQL ini berfungsi untuk membuat
server untuk menghubunngkan data yang masuk dari ESP-32 ke dalam server publik,
dengan menggunakan SIM800.
Kata Kunci : ESP-32, RFID, MySQL, VSC, Linux, SIM800, BME280

1. PENDAHULUAN
Mata kuliah Sistem embeded melihat permasalahan yang ada atau
memberikan sebuak tugas berupa Mini- dengan menggunakan metode yang
Project, dimana mahasiswa akan sudah di publikasikan yang akan
diberikan tugas untuk menunjang diterapkan dengan cara yang berbeda,
perkuliahan pada mata kuliah Sistem dengan maksud pengembangan suatu
Embeded. Mini-Project ini di tentukan alat menjadi penemuan baru. Dalam
oleh mahasiswa itu sendiri. Dengan kasus yang saya lakukan dengan patner
saya ialah pengembangan alat presensi publik, akses point ini diberikan
dengan menggunakan ESP-32. Alat melalui jaringan wi-fi, dan dapat
presensi ini bisa di akses dengan diakses oleh pengguna dengan jaringan
menggunakan web server agar bisa yang berbeda namun IP adress server
dilihat oleh semua orang. tetap sama. Namun server ini juga bisa
Presensi ini di gunakan untuk menggunakan jaringan lokal dimana
keperluan absensi di dalam sekolah menggunalan ESP-32 sebagai server
maupun perkantoran. Alat ini terdiri lokal, yaitu dengan menghubungkan ke
dari ESP-32 yang dimana bisa di buat jaringan wi-fi. Namun server ini hanya
sebagai Server, wifi, dan juga sebagai bisa diakse di jaringan yang sama juga.
otak untuk alat Presensi ini. RFID yang Jika diakses oleh pengguna dengan
berfungsi untuk menginput data dari jaringan yang berbeda maka server
luar yang diubah menjadi data yang tidak dapat diakses. Oleh karena itu
akan dikirim ke web server presensi. server local hanya bisa di akses di
Fungsi utama dari alat ini terdapat pada jaringan yang sama, maka dari itu
ESP-32 dimana ia mengatur segala untuk menbuat bisa diakses dengan
fungsi dari RFID, LCD, dan tombol bebas (publik) diperlukan SIM800
pudh button yang ada pada alat diaman ia berfungsi seperti server
presensi. Jadi kami disini membuat alat publik.
ini berdasarkan dengan permasalahan Jadi kami mendapat kesulitan
yang ada di sekitar, dengan dalam pembuatan sehingga masih perlu
menerapkan mikrokontroller sebagai bimbingan dari dosen Sistem Embeded
figure utama dalam pembuatannya. yang akan membantu kami dalam
Dalam lingkup politeknik ini terdapat menyelesaikan tugas Mini-Project ini,
tanda pengenal di setiap mahasiswa tapi tidak menutup kemungkinan bila
yaitu KTM, kemudian kami mahasiswa mengembangkan bakat atau
menerapkan KTM ini untuk sebuah minat dalam menyelesaikan project ini.
kartu untuk absen dalam mata kuliah Ada pun dana yang dibutuhkan dalam
apapun yang terdapat pada polinema pembuatan alat presensi ini tidak lah
ini. sedikit, namun mahasiswa dapat
MySQL di sini digunakan untuk mencoba untuk merealisasikan alat
membuat server yang bisa diakses presensi ini di kemudian hari.
2. STUDI MATERI
Pada pembelajaran Sistem Embeded ini diberikan materi berupa :
1. Cara menginstal sebuah UBUNTU (Linux) pada PC/ Laptop.
Disini mahasiswa diharapkan menguasai cara meninstal Ubuntu
(Linux), dengan cara yang sudah diberikan oleh pengajar. Majasiswa
melakukan yang di contohkan pada template belajar dan kemudian di lakukan
sendiri dengan berusaha agar mandiri. Apa bila menemui kesulitan atas
ketidakpahaman dosen bisa membantu supaya mahasiswa bisa mempelajari
dari apa yang di berikan. Menginstal ubuntu 22.04 dimana permulaannya ialah
dengan membuat sebuah ruang device untuk penyimpanan Ubuntu Linux
22.04 saat prose berlangsung perlu pemahaman dalam setiap prosesnya.
Apabila salah dalam melakukan maka akan berakibat fatal pada PC/ Laptop.
Namun setelah proses install Ubuntu proses selanjutnya sedikit mudah untuk
dimengerti karena proses sudah berjalan, dan selanjutnya menjalankan Ubuntu
Linux 22.04

Gambar 1 Tampilan Ubuntu Linux


2. Cara menjalankan sebuah Terminal pada linux, dengan memberikan
code untuk menjalankan program.
Disini mahasiswa diharapkan bisa menguasai Terminal pada Ubuntu/
Linux, dimana Terminal pad Linux sama halnya dengan CMD pada Microsoft.
Terminal ini ialah sebuah pusat perintah untuk linux agar dapat mmenjalankan
program yang diberikan. Kegunaan dari Terminal linux ini ialah Ketika ingin
mendownload suatu software maka cukup ketikan code pada Terminal seperti
$ sudo apt update

Gambar 2 program pada Terminal


dari program diatas ialah untuk mendownload update dari ubuntu itu
sendiri, dimana memerlukan koneksi internet agar menghindari kesalahan saat
melakukan proses update. Adapun code pada terminal seperti dibawah ini.

$ sudo snap install –classic code

pada proses ini diberikan code seperti diatas, yang dimana untuk
menjalankan program pada ubuntu untuk melakukan proses download
software Visual Studio Code tanpa perlu masuk kedalam google dan
melakukan proses download secara manual. Cukup dengan memasukan code
seperti diatas pada terminal makan ubuntu akan melakukan proses. Visual
Studio Code ini berfungsi untuk mencoding program dengan menghubungkan
ke microcontroller.
3. Cara membuat program pada sebuah Studio Code atau yang lebih
dikenal dengan Visoal Studio Code.
Membuat program pada VSC ini tidaklah sulit, dimana list program
dapat di copy dari internet, dengan mencari list program yang dibutuhkan
kemudian dicopy ke VSC. Pada list program tentu ada beberapa element yang
penting seperti Library, dimana library pada program sendiri berfungsi untuk
mengenali suatu komponen/ modul yang akan disambungkan ke
microcontroller. Seperti halnya library untuk komponen/ modul pada SIM800
Gambar 3 SIM800
Library untuk mengenali suatu komponen/ modul untuk bisa berfungsi
dengan perintah dari mocrokontroller. Agar dikenal oleh microcontroller dan
dapat di jalankan pada Hardware nya.

Gambar 4 include pada main.cpp

Gambar 5 component/ library Adafruit_BME280


4. Cara menghubungkan atau menconnect -kan program dengan ESP-32.
Untuk menconnect-kan program ke ESP-32 perlu dilakukan
pencodingan pada Visoal Studio Code yang kemudian program tersebut di
build pada terminal ESP-idf yang ada di VSC.
$ idf.py build / idf.py full clean
Gambar 6 idf.py build

Gambar 7 idf.py fullclean

Fungsi dari code diatas ialah untuk membuild program agar tertanak pada
microcontroller ESP-32. Dan untuk menghapus program yang ada pada ESP-
32 yaitu dengan memberikan code idf,py full clean.

$ idf.py flash monitor

Gambar 8 idf.py flash monitor


Fungsi dari code diatas ialah untuk menjalankan program yang sudah di
build pada VSC, yang bisa dijalankan pada Hardware. Seperti menekan
tombol pada ESP-32 dimana untuk menyalakan led agar berkedip dan lain
sebagainya.

Dari cara – cara diatas ialah basic untuk bisa belajar pemograman melalui
ubuntu Linux. Dengan melakukan sesuai urutan pasti bisa melaluinya.
3. STUDI KASUS MINI-PROJECT

Dalam proses yang dilalui untuk membuat alat presensi berbasis ESP dan RFID ialah
banyak kendala dan kesulitan dalam melakukannya. Saya dan patner saya dalam
membuat project ini terealisasi kesulitan dalam membuat sebuat server yang dapat di
akses oleh publik. Demikian juga dengan perangkat yang akan digunakan seperti LCD
untuk menampilkan saat RFID mendapat input dari luar dan membuat program nya
agar dapat berjalan. Kali ini saya akan membagian pencapain saya dalam membuat
Mini-Project yang berupa SISTEM PRESENSI (Absensi) IoT BERBASIS ESP-32
dan RFID.
1. Dalam membuat Mini-Project ini saya melakukan atau membuat program
terlebih dahulu dengan empertimbangkan komponen apa saya yang dibutuhkan
dalam merangkaia Hardware -nya.
Seperti RFID, SIM800, dan ESP-32
2. Kemudian saya mencoba menambahkan library dari RFID , SIM800 kedalam
program dimana dengan menambahkan code program pada terminal idf di
Visoal Studio Code

Gambar 9 component/ library RFID

3. Menambahkan library pada program ialah dengan cara mencari terlebih dahulu
list link yang berisi list program unntuk component / library RFID dan juga
SIM800.
4. Juga saya menambahkan library LiqidCrystal pada program yang dimana itu
untuk mendapatkan component yang dibutuhkan. Dibawah ini ialah cpde
program untuk menambahkan component LiquidCrystal.
Gambar 10 add component pada terminal VSC

5. Program tambahan yang diberikan pada main.cpp yaitu seperti gambar


dibawah ini.

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.

*/
#include "Arduino.h"

#ifdef ESP32
#include <WiFi.h>
#include <HTTPClient.h>
#else
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
#endif

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

// Replace with your network credentials


const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

// REPLACE with your Domain name and URL path or IP address with path
const char* serverName = "http://example.com/post-esp-data.php";

// Keep this API Key value to be compatible with the PHP code provided in the project page.
// If you change the apiKeyValue value, the PHP file /post-esp-data.php also needs to have the same key
String apiKeyValue = "tPmAT5Ab3j7F9";

String sensorName = "BME280";


String sensorLocation = "Office";
/*#include <SPI.h>
#define BME_SCK 18
#define BME_MISO 19
#define BME_MOSI 23
#define BME_CS 5*/

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C


//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("Connecting");
while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());

// (you can also pass in a Wire library object like &Wire2)


bool status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring or change I2C address!");
while (1);
}
}

void loop() {
//Check WiFi connection status
if(WiFi.status()== WL_CONNECTED){
WiFiClient client;
HTTPClient http;
// Your Domain name with URL path or IP address with path
http.begin(client, serverName);
// Specify content-type header
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
// Prepare your HTTP POST request data
String httpRequestData = "api_key=" + apiKeyValue + "&sensor=" + sensorName
+ "&location=" + sensorLocation + "&value1=" + String(bme.readTemperature())
+ "&value2=" + String(bme.readHumidity()) + "&value3=" + String(bme.readPressure()/100.0F) + "";
Serial.print("httpRequestData: ");
Serial.println(httpRequestData);
// You can comment the httpRequestData variable above
// then, use the httpRequestData variable below (for testing purposes without the BME280 sensor)
//String httpRequestData =
"api_key=tPmAT5Ab3j7F9&sensor=BME280&location=Office&value1=24.75&value2=49.54&value3=1005.14"
;

// Send HTTP POST request


int httpResponseCode = http.POST(httpRequestData);
// If you need an HTTP request with a content type: text/plain
//http.addHeader("Content-Type", "text/plain");
//int httpResponseCode = http.POST("Hello, World!");
// If you need an HTTP request with a content type: application/json, use the following:
//http.addHeader("Content-Type", "application/json");
//int httpResponseCode = http.POST("{\"value1\":\"19\",\"value2\":\"67\",\"value3\":\"78\"}");
if (httpResponseCode>0) {
Serial.print("HTTP Response code: ");
Serial.println(httpResponseCode);
}
else {
Serial.print("Error code: ");
Serial.println(httpResponseCode);
}
// Free resources
http.end();
}
else {
Serial.println("WiFi Disconnected");
}
//Send an HTTP POST request every 30 seconds
delay(30000);
}

extern "C" void app_main(){


intArduino();
setup();
while (1)
{
loop();
}
}
List program dari main.cpp Mini-Project

6. Untuk progess selantujnya ialah menginstal mySQL, dimana saya mengikuti


intruksi yang ada pada internet dengan tepat. Namun terdapat kendala saat
proses penginstallan mySQL pada ubuntu saya.
7. Sudah 3 minggu saya melakukan percobaan dalam penginstallan mySQL
namun tidak kunjung berhasil.
8. Dimana kendala yang saya hadapi ialah saat proses penginstallan mySQl
behasil ketahap selanjutnya, kemudian masuk kedalam memasukkan password
untuk melakukan verifikasi terhadap mySQL. Kendala ini yang menjadi
penghampat saya untuk melanjutkan progess Mini-Project.

Gambar 11 kendala pada saat penginstallan-mysql

4. PENUTUP
Mini-Project yng berjudul SISTEM PRESENSI (Absensi) IoT
BERBASIS ESP-32 dan RFID menemui kendala dalam proses penginstallan
mySQL, dimana saat verifikasi password muncul Failed… , kemudian progss
terhenti di sana. Mini-Project ini dilakukan oleh 2 mahasiswa untuk menunjang
pembelajaran Sistem Embeded. Mini-Project ini juga bisa dikembangkan
ketahap yang lebih tinggi atau mungkin bisa juga untuk Tugas Akhir (TA)
mahasiswa. Setiap kendala pasti terdapat penyelesaian-nya, disini saya belum
menemukan solusi dalam penginstallan mySQl, namun untuk progess tak
berhenti di situ saja. Dimana menambahkan component RFID dan SIM800
kedalam list program, dan menambahkan program untuk menjalankan system
tersebut. Sudah bisa untuk di build namun belum bisa untuk di jalankan,
karena component hardware belum tersedia dan dalam penbelian lewat situs
online.

Anda mungkin juga menyukai