Cara Membuat absensi sidik jari






Teknologi.

Assalamu’alaikum.


Bagaimana keadaan teman-teman semua muda-mudahan selalu dalam keadaan sehat dan selalu diberi keselamatan oleh yang mahakuasa, bagi teman-teman yang kurang sehat semoga cepat sembuh supaya bisa mengerjakan pekerjaan sehari-hari seperti sedia kala amin.

Pada kali ini kita akan membahas tentang cara membuat cara membuat absensi sidik jari menggunakan arduino. untuk tidak banyak basa basi lagi mari kita langsung saja.

Sistem Kerja Alat:

Absensi karyawan menggunakan sidik jari dengan sensor fingerprint. Data disimpan pada EEPROM internal Arduino, pada projek ini hanya 10 karyawan saja datanya yang di masukkan, tapi jika Anda ingin menambahkan lebih banyak juga bisa. Selanjutnya RTC digunakan untuk mengetahui tanggal absensinya. Untuk melihat daftar absensinya
menggunakan monitor serial (bawaan software Sketch Arduino).

Kebutuhan Hardware :
  • Arduino UNO Board
  • Sensor Fingerprint FPM10
  • Modul RTC DS1307
  • Buzzer
  • LCD 2x16
  • Power Supply 7-9 Vdc
Schematics

Screenshot (578).png

Koneksi Arduino UNO dengan modul RFID RC522 :
Pin ARDUINOPin modul Sensor Fingerprint
5.0 VV (kabel merah)
GNDG (kabel hitam)
2T (kabel hijau)
3R (kabel putih)
Koneksi Arduino UNO dengan LCD :
Pin ARDUINOPin modul Sensor Fingerprint
8RS
9E
10D4
11D5
12D6
13D7
Koneksi Arduino UNO dengan RTC
Pin ARDUINOPin RTC DS1307
A4SDA
A5SCL
5V5V
GNDGND
Koneksi Arduino UNO dengan Buzzer :
Pin ARDUINOBuzzer
7BUZZER +
GNDBUZZER -

Sebelum Kita masuh ke code program terlebih dahulu kita memasang beberapa library seperti <SoftwareSerial.h> <LiquidCrystal.h> <EEPROM.h> <Wire.h> <Adafruit_Fingerprint.h>. kalau library tersebut belum ada bisa di download pada link berikut https://www.adafruit.com/

Source Code/Sketch :

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>
#include <Wire.h>
#define DS1307_ADDRESS 0x68 byte zero = 0x00;

LiquidCrystal lcd(8, 9, 10, 11, 12, 13);

byte second ,minute,hour, weekDay;
byte monthDay,month,year;

uint8_t id;
uint8_t getFingerprintEnroll();

// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino (WHITE wire) SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup(){ pinMode(7, OUTPUT); digitalWrite(7, LOW); delay(500);

Wire.begin();
/*
// Seting RTC second=0; minute=50; hour=12; monthDay=15; month=10; year=16; setingRTC();

delay(100);
*/ Serial.begin(9600);

lcd.begin(16, 2);
lcd.clear();
lcd.print("Absensi karyawan");
lcd.setCursor(0,1); lcd.print(" dg sidik jari"); delay(2000);
lcd.clear();
lcd.print("Test Koneksi");

// set the data rate for the sensor serial port finger.begin(57600);

if (finger.verifyPassword()) { lcd.setCursor(0,1); lcd.print("OK !");
} else { lcd.setCursor(0,1); lcd.print("ERROR !");
while (1);
}
delay(2000);
}

//===================program utama void loop(){
// bacaRTC(); lcd.setCursor(0, 0); lcd.print("Absensi Karyawan"); lcd.setCursor(0, 1);
lcd.print(" Letakkan Jari "); getFingerprintIDez(); kirimSerial();
delay(50);
}

int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;

p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;

p = finger.fingerFastSearch();
if (p == FINGERPRINT_NOTFOUND){
lcd.clear();
lcd.print(" Akses"); lcd.setCursor(0,1); lcd.print(" Tidak Diterima"); digitalWrite(7, HIGH); delay(3000);
digitalWrite(7, LOW);
delay(100);
return p;
}

if (p != FINGERPRINT_OK) return -1;
// found a match! digitalWrite(7, HIGH); delay(500); digitalWrite(7, LOW); delay(50);

bacaRTC(); lcd.clear(); lcd.print("Karyawan "); lcd.print(finger.fingerID); lcd.setCursor(0,1); lcd.print(hour); lcd.print(":"); lcd.print(minute); lcd.print(":"); lcd.print(second); lcd.print(" ");

lcd.print(monthDay); lcd.print("/"); lcd.print(month); lcd.print(" ");

//-------------------simpan data id=finger.fingerID;
byte addr = (monthDay*10)+id;
EEPROM.write(addr, 0);
delay(4000);
lcd.clear();
return finger.fingerID;

}

/****************************************

  • peta penyimpanan di EEPROM
  • tanggal disimpan pada alamt 0

  • tgl | Alamat EEPROM karyawan
  •  | 1   2    3   4   5    6   7   8    9   10
    

  • 1 | 11 12 13 14 15 16 17 18 19 20
  • 2 | 21 22 23 24 25 26 27 28 29 30
  • 3 | 31 32 33 34 35 36 37 38 39 40
  • 30 | 311 312 313 314 315 316 317 318 319 320

  • Rumus Penyimpanan EEPROM=
  • alamatSimpan = (tgl * 10)+id
  • kode absensi:
    • 0 = Hadir
    • 255 = Alpha
      */

//---------------------------RTC Area byte decToBcd(byte val){
return ( (val/10*16) + (val%10) );
}

byte bcdToDec(byte val) {
return ( (val/16*10) + (val%16) );
}

void bacaRTC(){ Wire.beginTransmission(DS1307_ADDRESS); Wire.write(zero);
Wire.endTransmission(); Wire.requestFrom(DS1307_ADDRESS, 7); second = bcdToDec(Wire.read());
minute = bcdToDec(Wire.read());
hour = bcdToDec(Wire.read() & 0b111111); weekDay = bcdToDec(Wire.read()); monthDay = bcdToDec(Wire.read());
month = bcdToDec(Wire.read());
year = bcdToDec(Wire.read());

}

void setingRTC(){ Wire.beginTransmission(DS1307_ADDRESS); Wire.write(zero); //stop RTC Wire.write(decToBcd(second)); Wire.write(decToBcd(minute)); Wire.write(decToBcd(hour)); Wire.write(decToBcd(weekDay)); Wire.write(decToBcd(monthDay)); Wire.write(decToBcd(month)); Wire.write(decToBcd(year)); Wire.write(zero); //start
Wire.endTransmission();
}

void kirimSerial(){ if(Serial.available()){ char str; str=Serial.read();
if (str=='R'){

/*


  • tgl | Absensi karyawan
  •  | 1  2  3   4   5  6   7   8  9  10
    

  • 1 | H H - - H H H H H H
  • 2 | H H H H - H H H H H
  • 3 |
  • 30 |

  • H = HADIR
    • = ALPHA
      */

for(byte i=0; i<60;i++){ Serial.print('-');
}
Serial.println('-');

Serial.println(" tgl | Absensi Karyawan"); Serial.print (" | ");

for(byte i=1; i<11;i++){ Serial.print(i);
Serial.print(" ");
}
Serial.println(" ");

for(byte i=0; i<60;i++){ Serial.print('-');
}
Serial.println('-');

byte value; byte address; byte j=0;
String absensi="";
for(byte tgl=1; tgl<31; tgl++){ Serial.print(tgl);
Serial.print(" |");
j=tgl*10;
for(byte i=1; i<11; i++){
address=i+j;
value = EEPROM.read(address);
if (value==0) absensi="H";
else absensi="-";
Serial.print(" "+absensi+" ");
}
Serial.println(" ");
}
str=' ';
}
else if(str=='D'){ Serial.println("Hapus Data"); for(word i=0; i<310; i++){ EEPROM.write(i, 255); Serial.println(".");
delay(5);
}
Serial.println("Hapus Data Sukses!");
}
}
}

Jalannya Alat :
1. Sebelum digunakan terlebih dahulu Anda daftarkan 10 sidik jari pada sensor fingerprint menggunakan program enroll Anda bisa lihat pada proyek interfacing Arduino Sensor Fingerprint atau proyek Simpan Sidik Jari Tampilan LCD.
2. Tampilan pertama pada LCD :

Absensi karyawan dg sidik jari

3. Selanjutnya tes koneksi antara sensor Fingerprint dengan Arduino, jika sukses maka tampilanya seperti ini:

Test Koneksi
OK !

4. Tampilan normal LCD menampilkan tulisan:

Absensi Karyawan
Letakkan Jari

5. Letakan jari pada sensor fingerprint, jika sidik jari sudah terdaftar maka tampilan pada

LCD seperti ini:

Karyawan 1
12:30:55 15/10

Pada baris pertama menampilkan data karyawan, sedangkan baris ke-2 menampilkan jam dan tanggal.

6. Selanjutnya tampilan LCD kembali ke tampilan Normal.
7. Jika ingin melihat daftar karyawan, buka dulu Serial Monitor dg baud rate : 9600 + Carriage return.
8. Ketik R kemaudian kirim, sehingga menampilkan data absen. H menunjukkan kehadiran sedangkan minus (-) menunjukkan aplha.

Nah itulah cara membuat absensi sidik jari menggunakan arduino, mungkin sekian dulu artikel kaliini semoga bermanfaat untuk kita semua, saya akhiri dengan salam teknologi dan wassalam.

Ingin Lebuh Banyak tau dan membaca topik menarik lainnya bisa klik pada bagian daftar isi atau klik pada tombol berikut.

**Terimasih telah berkunjung semoga dapat menambah wawasan kita bersama, untuk dukungan teman-teman bisa berdonasi pada link berikut (Klik Dini) Sebanyak apapun donasi dari teman-teman itu sangat berarti bagi kami dan juga kalau ada dari teman-teman yang ingin mengajukan pertanyaan atau request tema seputar teknologi bisa langsung saja tulis pada kolom pesan di link donasi yang sudah ter sedia.**

Cara Buat Robot Line follower 4 sensor




Teknologi Bissmillah.........

Assalamu'alaikum sahabat steem sea semoga kita semua di limpahkan rezeki dan selalu dalam keadaan sehat wal'afiat, bagi sahabat yang kurang sehat jangan lupa istirahat dan perbanyak minum air putih, dan satu lagi semoga kita semua selalu di lindungi dari virus corona yang lagi mewabah sekarang.

Kali ini Kita masih membahas tentang tutorial tutorial lagi semoga terhibur dan bermanfaat, jadi karna itu mari kita langsung saja.

Sistem Kerja Alat:

Robot line follower yaitu robot yang mengikuti line/jalur lintasan, sensor Infrared sebagai sensor pembaca garis. Sensor infrared (IR) menyala dan dipantulkan oleh media/lantai putih kemudian sensor Photo Diode (PD) membaca pantulan tersebut, sedangkan pada permukaan hitam (lakban hitam) infrared tidak dipantulkan sehingga sensor tidak membaca adanya pantulan infrared. Output sensor masuk pada IC LM324/komparator yang berfungsi sebagai penentu nilai/logika 1 (+5V) atau logika 0 (GND). Selain itu juga untuk mengatur respon sensor.

Screenshot (584).png

Keterangan Gambar:

  1. Gambar 1 menunjukkan IR memantul karena media pantulnya putih.
  2. Gambar 2 IR tidak memantul karena media pantulnya hitam.
  3. Gambar 3
  • Ketika IR memantul pada media putih output sensor IR (PD) berlogika 0 (GND)
  • IR mengenai warna hitam output IR berlogika 1 (+5V).

Sensor IR sisi kanan untuk menggerakkan motor DC sisi kiri, sedangkan sensor IR sisi kiri
untuk menggerakan motor DC sisi kanan, dan apabila ke-2 sensor membaca garis ke-2
motor akan berputar sehingga robot akan mengikuti garis tersebut. Semakin banyak sensor
pembaca line semakin bagus, nah kali ini 4 sensor saja ya kalau ingin lebih silahkan di desain
sendiri mudah kog.

Kebutuhan Hardware :

  • 4 Sensor Inframerah (Sensor baca garis)
  • Modul komparator (LM324)
  • Driver Motor L298
  • 2 Motor DC
  • 2 Roda belakang
  • 1 Roda depan (Roda bebas)
  • 6 Baterai AA + Baterai holder
  • Modul Arduino UNO

Screenshot (585).png

Diagram Blok:

Screenshot (586).png

Schematics

Screenshot (587).png

Untuk mempermudah pemahaman bisa kita lihat tabel dibawah ini:

Kondisi Infrared membaca warna ------------- | PWM Motor

IR1IR2IR3IR4Kanan (EA)Kiri (EB)
HitamPutihPutihPutih0255
PutihHitamPutihPutih80220
HitamHitamPutihPutih100200
PutihHitamHitamPutih230230
PutihPutihHitamPutih200100
PutihPutihPutihHitam2200
PutihPutihHitamHitam2550

Semakin besar nilai PWM maka kecepatan putaran motor semakin cepat.

Koneksi Driver L298:

Pin L298Pin ARDUINO
IN1Pin 6
IN2Pin 7
IN3Pin 8
IN4Pin 9
ENAPin 10
ENBPin 11
Out 1+ M1
Out 2- M1
Out 3+ M2
Out 4- M2

Koneksi LM324:

PIN LM324Pin ARDUIN
PIN 1 (Out IR 1)Pin 2
PIN 7 (Out IR 2)Pin 3
PIN 8 (Out IR 3)Pin 4
PIN 14 (Out IR 4)Pin 5

Source Code/Sketch

const int IR1 = 2;
const int IR2 = 3;
const int IR3 = 4;
const int IR4 = 5;
const int IN1 = 6;
const int IN2 = 7;
const int IN3 = 8;
const int IN4 = 9;
const int EA = 10;
const int EB = 11;

// variables will change:
int inIR1 = 0;
int inIR2 = 0;
int inIR3 = 0;
int inIR4 = 0;

void baca_IR() {
inIR1 = digitalRead(IR1);
inIR2 = digitalRead(IR2);
inIR3 = digitalRead(IR3);
inIR4 = digitalRead(IR4);
}

void setup() {
//------- mode output ke driver motor
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(EA, OUTPUT);
pinMode(EB, OUTPUT);
//------- mode input sesnsor
pinMode(IR1, INPUT);
pinMode(IR2, INPUT);
pinMode(IR3, INPUT);
pinMode(IR4, INPUT);
//------ arah motor maju
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(2000);
}

void loop(){
baca_IR();
if (inIR1 == 0 && inIR2 == 0 && inIR3 == 0 && inIR4 == 1) {
analogWrite(EA, 255);
analogWrite(EB, 0);
}
else if (inIR1 == 0 && inIR2 == 0 && inIR3 == 1 && inIR4 == 1) {
analogWrite(EA, 220);
analogWrite(EB, 80);
}
else if (inIR1 == 0 && inIR2 == 0 && inIR3 == 1 && inIR4 == 0) {
analogWrite(EA, 200);
analogWrite(EB, 100);
}
else if (inIR1 == 0 && inIR2 == 1 && inIR3 == 1 && inIR4 == 0) {
analogWrite(EA, 230);
analogWrite(EB, 230);
}
else if (inIR1 == 0 && inIR2 == 1 && inIR3 == 0 && inIR4 == 0) {
analogWrite(EA, 100);
analogWrite(EB, 200);
}
else if (inIR1 == 1 && inIR2 == 1 && inIR3 == 0 && inIR4 == 0) {
analogWrite(EA, 80);
analogWrite(EB, 220);
}
else if (inIR1 == 1 && inIR2 == 0 && inIR3 == 0 && inIR4 == 0) {
analogWrite(EA, 0);
analogWrite(EB, 255);
}
}

Jalannya Alat

  1. Buat desain robot sendiri sesuai keinginan, untuk koneksinya silahkan disesuaikan seperti pada rangkaian/skematik.
  2. Siapkan line/jalur lintasan menggunakan lakban hitam (lebar lakban = 3,5cm) dengan background / lantai dasar warna putih, bentuk bebas namun hindari sudut lintasan Siku atau yang lebih lancip.
  3. Pasang baterai dan nyalakan robot line follower sehingga lampu LED indikator nyala.
  4. Upload program di atas terlebih dahulu.
  5. Tes masing masing sensor dengan diberi kertas putih dan hitam, pastikan sensor bisa
    membacanya.
  6. alankan robot pada line yang tadi dibuat
  7. Apabila robot sering keluar lintasan bisa di trim ulang kepekaan sensor IR (trimport VR1 s/d VR4) atau bisa jadi sudut lintasannya terlalu tajam. Bisa juga Teman-teman ubah nilai masing masing output PWM-nya (analogWrite).

Nah jadi itulah Tutorial pada kali ini semoga bermanfa'at, Kalau ada yang ragu atau atau terdapat kesalahan pada tutorial bisa komendi bawah kita diskusi di kolom komentar, sekian dulu hormat saya Zakky Rakhmad wassalam.

Ingin Lebuh Banyak tau dan membaca topik menarik lainnya bisa klik pada bagian daftar isi atau klik pada tombol berikut.

**Terimasih telah berkunjung semoga dapat menambah wawasan kita bersama, untuk dukungan teman-teman bisa berdonasi pada link berikut (Klik Dini) Sebanyak apapun donasi dari teman-teman itu sangat berarti bagi kami dan juga kalau ada dari teman-teman yang ingin mengajukan pertanyaan atau request tema seputar teknologi bisa langsung saja tulis pada kolom pesan di link donasi yang sudah ter sedia.**

Cara Membuat Alarm Kebakaran

 Alarm Kebakaran dengan sensor Api dan Asap



Teknologi.
Assalamu’alaikum.


Bagaimana keadaan teman-teman semua muda-mudahan selalu dalam keadaan sehat dan selalu diberi keselamatan oleh yang mahakuasa, bagi teman-teman yang kurang sehat semoga cepat sembuh supaya bisa mengerjakan pekerjaan sehari-hari seperti sedia kala amin.

Pada kali ini kita akan mencoba membuat sebuah sistem keamanan gedung yaitu Alaram kebakaran dimana alaram ini sangat lah penting dan sangat di perlukan untuk SOP sebuah gedung, Nah tanpa berlama-lama lagi mari kita mulai saja.

Sistem Kerja Alat:

Arduino membaca sensor gas MQ-2 dan sensor Api. Jika salah satu sensor membaca adanya kebakaran maka secara otomatis .Alarm akan berbunyi dan secra otomatis keran membuka.

Kebutuhan Hardware :

  • Modul Sensor MQ-2
  • Modul sensor Api
  • 2 Relay +5V
  • Alarm AC
  • Elektric valve +12V (solenoid valve)
  • LCD 2x16
  • Modul Arduino UNO
  • Power supply +9Volt
  • Power supply +12Volt

Screenshot (579).png

Schematics

Screenshot (580).png

Koneksi Arduino UNO dengan LCD:

Pin ARDUINOLCD
2RS
3EN
4D4
5D5
6D6
7D7

Koneksi Modul RS232:

Pin Modul RS232Pin ARDUINO
GNDGND
VCC+5V
RXD8
TXD9

Koneksi Sensor:

Output SensorPin ARDUINO
MQ-2 (AO)A0
FLAME SENSOR (AO)A1

Koneksi Relay:

Pin ARDUINORelay
81 (solenoid valve)
92 (sirine)

Sebelum masuk ke code kita di haruskan untuk memiliki sebuah library yaitu library LCD supaya LCD tersebut dapat di akses secara mudah kalau library nya sudah ada bisa di pake langsug tetapi kalau belum bisa download di sini (Klik). Setelah di download dan d pasangkan mari kita lanjutkan.

Source Code/Sketch :

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

float MQ2;
float sensorApi;
int adc;
byte kedip;
byte keluar;

void setup(){
pinMode(8,OUTPUT);
digitalWrite(8,LOW);
pinMode(9,OUTPUT);
digitalWrite(9,LOW);
lcd.begin(16, 2);
lcd.print("Alarm kebakaran ");
delay(2000);
lcd.clear();
lcd.print(" Tunggu sensor");
lcd.setCursor(0, 1);
lcd.print(" siap...");
delay(2000);
do{
adc=(analogRead(A0));
MQ2 = adc * (5.0 / 1023.0);
}
while(MQ2 > 1.5);
lcd.clear();
}

void loop(){
adc=(analogRead(A0));
MQ2 = adc * (5.0 / 1023.0);
adc=(analogRead(A1));
sensorApi = adc * (5.0 / 1023.0);
lcd.setCursor(0,0);
lcd.print("Api :");
lcd.print(sensorApi);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("Asap:");
lcd.print(MQ2);
lcd.print(" ");
if (MQ2 > 1.2 || sensorApi<3){
lcd.setCursor(0,0);
lcd.print(" Ada kebakaran");
lcd.setCursor(0,1);
lcd.print("AlarmON ValveON");
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
delay(1000);
keluar=1;
do{
adc=(analogRead(A0));
MQ2 = adc * (5.0 / 1023.0);
adc=(analogRead(A1));
sensorApi = adc * (5.0 / 1023.0);
if(sensorApi>4 && MQ2<1)keluar=0;
}
while(keluar);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
lcd.clear();
}
delay(100);
}

Jalannya Alat :

1. Koneksikan antara sistem Arduino dengan peripheral lain seperti pada rangkaian (skematik).

Alarm Kebakaran

2. Pasang power supply (adaptor 9 V) dan hidupkan (colokkan ke sumber PLN 220V) sehingga lampu LED indikator nyala, LCD juga nyala.
3. Pasang juga power supply untuk Elektreic valve-nya.
4. Tampilan pertama:

Alarm Kebakaran

5. Berikutnya tunggu sampai sensor MQ-2 siap.

Tunggu sensor
siap..

6. Selanjutnya jika sensor sudah siap maka tampilan pada LCD menampilkan hasil pembacaan sensor.

Api :4.61
Asap:0.28

7. Saat sensor membaca ada api atau asap maka alarm berbunyi dan valve membuka.
8. Selanjutnya jika sensor sudah tidak membaca adanya asap maupun api maka alarm dan valve mati lagi.

Mungkin ada di antara kita ada yag berfikir bagaimana kalau serine berbunyi dan air juga keluar itu bisa di lakukan dengan cara buat rangkaian secara seri pada relay dimana kabel untuk Water pam dipasang secara seri pada relay serine dan maka Water Pam akan aktif serentak dengan serine.

Nah itulah lah cara membuat Alaram kebakaran menggunakan Arduino, sebenarnya masih banyak cara untuk membuat sistem ini tergantung sensor dan tindakan apa yang ingin dilakukan oleh si alat ketika ada api, mungkin untuk artikel kali ini sekian dulu semoga bermanfaat saya akhiri dengan salam teknologi dan wassalam.

Ingin Lebuh Banyak tau dan membaca topik menarik lainnya bisa klik pada bagian daftar isi atau klik pada tombol berikut.

**Terimasih telah berkunjung semoga dapat menambah wawasan kita bersama, untuk dukungan teman-teman bisa berdonasi pada link berikut (Klik Dini) Sebanyak apapun donasi dari teman-teman itu sangat berarti bagi kami dan juga kalau ada dari teman-teman yang ingin mengajukan pertanyaan atau request tema seputar teknologi bisa langsung saja tulis pada kolom pesan di link donasi yang sudah ter sedia.**

Followers

Generic Banner