Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- SoftwareSerial SIM900A(0,1);
- #pragma GCC diagnostic ignored "-Wwrite-strings"
- #include "SIM900.h"
- #include "sms.h"
- #include <RFID.h>
- #include <SPI.h>
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- LiquidCrystal_I2C lcd(0x3F, 16, 2);
- #define SS_PIN 10
- #define RST_PIN 9
- RFID rfid(SS_PIN,RST_PIN);
- SMSGSM sms;
- boolean started=false;
- char smsbuffer[160];
- char n[20];
- const int button = 4;
- const int buzzer = 8;
- const int doorLock = 7;
- int serNum[5];
- int cards [][5]=
- {
- {136,4,100,93,181} //nomor ID Ektp
- };
- int buttonState = 0;
- boolean access = false;
- int alarm = 0;
- int8_t alarmStat = 0;
- int8_t maxError = 3;
- void setup(){
- SPI.begin();
- lcd.clear();
- rfid.init();
- pinMode(doorLock, OUTPUT);
- pinMode(button, INPUT);
- digitalWrite(doorLock, LOW);
- lcd.begin(16,2);
- lcd.print("LOADING...");
- if (gsm.begin(9600))
- {
- started=true;
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print(" NURMALA ");
- lcd.setCursor(0,1);
- lcd.print("TEKNIK KOMPUTER");
- delay(3000);
- sms.SendSMS("085832042144","Sms telah siap");
- }
- else{lcd.clear();
- lcd.print("GSM ERROR");
- }
- }
- void loop()
- {
- if(alarm>=maxError){
- alarmStat = 1;
- }
- if(alarmStat==0){
- lcd.setCursor(0,0);
- lcd.print(" SELAMAT DATANG ");
- lcd.setCursor(0,1);
- lcd.print("TEMPELKAN E-KTP");
- if(rfid.isCard()){
- if(rfid.readCardSerial()){
- for(int x = 0; x < sizeof(cards);x++){
- for(int i = 0; i <sizeof(rfid.serNum);i++){
- if(rfid.serNum[i]!=cards[x][i]){
- access = false;
- break;
- } else {
- access = true;
- }
- }
- if(access)break;
- }
- }
- if(access){
- {
- digitalWrite(doorLock, HIGH);
- alarmStat = 0;
- alarm = 0;
- }
- lcd.setCursor(0,0);
- lcd.print(" Silahkan Masuk ");
- lcd.setCursor(0,1);
- lcd.print("Akan Terkunci ");
- for(int i=10; i>0; i--){
- lcd.setCursor(14,1);
- lcd.print(i);
- lcd.print(F(" "));
- delay(1000);
- }
- digitalWrite(doorLock,LOW);
- } else {
- alarm = alarm+1;
- lcd.setCursor(0,0);
- lcd.print(" Akses Ditolak ");
- lcd.setCursor(0,1);
- lcd.print("-----------------");
- tone(buzzer,2000);
- delay(200);
- noTone(buzzer);
- delay(200);
- tone(buzzer,2000);
- delay(200);
- noTone(buzzer);
- delay(1000);
- noTone(buzzer);
- lcd.setCursor(0,0);
- lcd.print(" E-KTP Anda ");
- lcd.setCursor(0,1);
- lcd.print("Tidak Terdaftar");
- delay(2000);
- lcd.clear();
- }
- }
- rfid.halt();
- }
- else {
- lcd.setCursor(0,0);
- lcd.print(" PERINGATAN!!! ");
- lcd.setCursor(0,1);
- lcd.print("SISTEM TERKNCI ");
- tone(buzzer, 1500);
- /*
- delay(3000);
- noTone(buzzer);
- delay(1000);
- tone(buzzer,1500);
- delay(4000);
- noTone(buzzer);
- delay(2000);
- tone(buzzer, 1500);
- delay(5000);
- noTone(buzzer);
- delay(3000);
- tone(buzzer, 1500);
- delay(6000);
- noTone(buzzer);
- delay(4000);
- tone(buzzer, 15000);
- delay(7000);
- noTone(buzzer);
- */
- sms.SendSMS("08582042144","Peringatan!!! Ada yang mencoba membuka pintu.");
- //delay(500);
- tone(buzzer, 1500);
- delay(8000);
- noTone(buzzer);
- alarmStat = 0;
- alarm = 0;
- }
- buttonState = digitalRead(button);
- if(buttonState==HIGH){
- digitalWrite(doorLock,HIGH);
- lcd.setCursor(0,0);
- lcd.print(" Silahkan Masuk");
- lcd.setCursor(0,1);
- lcd.print(" Kunci Terbuka ");
- delay(7000);
- digitalWrite(doorLock,LOW);
- lcd.clear();
- alarmStat=0;
- alarm=0;
- }
- int pos=0;
- if(started){
- pos=sms.IsSMSPresent(SMS_ALL);
- if(pos){
- sms.GetSMS(pos,n,smsbuffer,100);
- if(!strcmp(smsbuffer,"buka")){
- digitalWrite(doorLock,HIGH);
- lcd.setCursor(0,0);
- lcd.print(" Silahkan Masuk");
- lcd.setCursor(0,1);
- lcd.print(" Kunci Terbuka");
- //sms.SendSMS("085832042144","Kunci telah terbuka");
- delay(10000);
- digitalWrite(doorLock,LOW);
- }
- delsms();
- alarmStat=0;
- alarm=0;
- }
- }
- }
- void delsms()
- {
- for (int i=0; i<10; i++)
- {
- int pos=sms.IsSMSPresent(SMS_ALL);
- if(pos!=0)
- {
- if(sms.DeleteSMS(pos)==1){}else{}
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement