184 lines
4.9 KiB
C++
184 lines
4.9 KiB
C++
#include <SPI.h>
|
|
#include <MFRC522.h>
|
|
#include <ESP8266WiFi.h>
|
|
#include <WiFiClient.h>
|
|
#include <ESP8266WebServer.h>
|
|
#include <ESP8266HTTPClient.h>
|
|
#include <LiquidCrystal_I2C.h>
|
|
#include "CTBot.h"
|
|
|
|
// Deklarasi Konstanta dan Objek
|
|
const char *ssid = "Arif";
|
|
const char *password = "sijisiji";
|
|
|
|
String token = "6882219025:AAH8wwvnLPwEnN7GqlpXzkgOP0Fwq6FqJdM";
|
|
|
|
const int RST_PIN = D4;
|
|
const int SS_PIN = D8;
|
|
const int pinBuzz = D0;
|
|
const int pinCamera = D3;
|
|
const int lcdColumns = 16;
|
|
const int lcdRows = 2;
|
|
|
|
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
|
|
CTBot myBot;
|
|
|
|
MFRC522 rfid(SS_PIN, RST_PIN);
|
|
MFRC522::MIFARE_Key key;
|
|
|
|
WiFiClient wifiClient;
|
|
HTTPClient http;
|
|
|
|
// melakukan persiapan
|
|
void setup() {
|
|
delay(1000);
|
|
Serial.begin(115200);
|
|
|
|
lcd.init();
|
|
lcd.backlight();
|
|
|
|
lcd.setCursor(0, 0);
|
|
lcd.print("SYSTEM ABSENSI ");
|
|
|
|
lcd.setCursor(0, 1);
|
|
lcd.print(" KARYAWAN ");
|
|
|
|
pinMode(pinCamera, OUTPUT);
|
|
digitalWrite(pinCamera, HIGH);
|
|
|
|
pinMode(pinBuzz, OUTPUT);
|
|
digitalWrite(pinBuzz, HIGH);
|
|
|
|
WiFi.mode(WIFI_OFF);
|
|
delay(1000);
|
|
WiFi.mode(WIFI_STA);
|
|
|
|
WiFi.begin(ssid, password);
|
|
Serial.println("");
|
|
|
|
Serial.print("Connecting");
|
|
while (WiFi.status() != WL_CONNECTED) {
|
|
delay(500);
|
|
Serial.print(".");
|
|
}
|
|
|
|
Serial.println("");
|
|
Serial.print("Connected to ");
|
|
Serial.println(ssid);
|
|
Serial.print("IP address: ");
|
|
Serial.println(WiFi.localIP());
|
|
|
|
myBot.wifiConnect(ssid, password);
|
|
myBot.setTelegramToken(token);
|
|
|
|
if (myBot.testConnection())
|
|
Serial.println("\ntestConnection OK");
|
|
else
|
|
Serial.println("\ntestConnection NOK");
|
|
|
|
SPI.begin();
|
|
rfid.PCD_Init();
|
|
digitalWrite(pinBuzz, LOW);
|
|
delay(1000);
|
|
digitalWrite(pinBuzz, HIGH);
|
|
Serial.println("Ready");
|
|
lcd.clear();
|
|
lcd.setCursor(0, 0);
|
|
lcd.print(" TEMPELKAN ");
|
|
|
|
lcd.setCursor(0, 1);
|
|
lcd.print("KARTU DISINI");
|
|
|
|
myBot.sendMessage(1263710714, "SYSTEM ABSENSI KARYAWAN");
|
|
}
|
|
|
|
// melakukan looping
|
|
void loop() {
|
|
if (!rfid.PICC_IsNewCardPresent())
|
|
return;
|
|
|
|
if (!rfid.PICC_ReadCardSerial())
|
|
return;
|
|
|
|
String content = "";
|
|
|
|
for (byte i = 0; i < 4; i++) {
|
|
content +=
|
|
(rfid.uid.uidByte[i] < 0x10 ? "0" : "") +
|
|
String(rfid.uid.uidByte[i], HEX) +
|
|
(i != rfid.uid.size - 1 ? "" : "");
|
|
}
|
|
content.trim();
|
|
content.toUpperCase();
|
|
|
|
digitalWrite(pinBuzz, LOW);
|
|
delay(500);
|
|
digitalWrite(pinBuzz, HIGH);
|
|
|
|
HTTPClient http;
|
|
|
|
String getData, Link;
|
|
|
|
getData = "?Data='" + content + "'";
|
|
Link = "http://192.168.197.197/rfidcam/esp.php" + getData;
|
|
http.begin(wifiClient, Link);
|
|
|
|
int httpCode = http.GET();
|
|
if (httpCode == 200) {
|
|
Serial.println(content);
|
|
if (content.equals("58B694A4")) {
|
|
myBot.sendMessage(1263710714, "gesang budiarso berhasil melakukan absensi");
|
|
} else if (content.equals("48430FA4")) {
|
|
myBot.sendMessage(1263710714, "Deny juliarto berhasil melakukan absensi");
|
|
} else if (content.equals("648D25A1")) {
|
|
myBot.sendMessage(1263710714, "adimitra baratama berhasil melakukan absensi");
|
|
} else if (content.equals("43ACDA0F")) {
|
|
myBot.sendMessage(1263710714, "Adi Bisono berhasil melakukan absensi");
|
|
} else if (content.equals("E2CEB61B")) {
|
|
myBot.sendMessage(1263710714, "aditya koeswojo berhasil melakukan absensi");
|
|
} else if (content.equals("F2062B1B")) {
|
|
myBot.sendMessage(1263710714, "Giovani Maria berhasil melakukan absensi");
|
|
} else if (content.equals("78D523A4")) {
|
|
myBot.sendMessage(1263710714, "gerry prawira berhasil melakukan absensi");
|
|
} else if (content.equals("18C5D2A4")) {
|
|
myBot.sendMessage(1263710714, "devin wirawan berhasil melakukan absensi");
|
|
} else if (content.equals("F344A7AA")) {
|
|
myBot.sendMessage(1263710714, "adi sasono berhasil melakukan absensi");
|
|
} else if (content.equals("3893BEA4")) {
|
|
myBot.sendMessage(1263710714, "devie hendrastuti berhasil melakukan absensi");
|
|
} else if (content.equals("28F235A4")) {
|
|
myBot.sendMessage(1263710714, "dermawan berhasil melakukan absensi");
|
|
} else if (content.equals("B793BD66")) {
|
|
myBot.sendMessage(1263710714, "GINAWAN CHONDRO berhasil melakukan absensi");
|
|
} else if (content.equals("98F5F9A4")) {
|
|
myBot.sendMessage(1263710714, "Denny Wijaya berhasil melakukan absensi");
|
|
} else if (content.equals("E2B18B1B")) {
|
|
myBot.sendMessage(1263710714, "GITA IRAWAN berhasil melakukan absensi");
|
|
} else if (content.equals("E28DF41B")) {
|
|
myBot.sendMessage(1263710714, "Gino Junior berhasil melakukan absensi");
|
|
} else if (content.equals("71B5381B")) {
|
|
myBot.sendMessage(1263710714, "HARIJANTO KOESDJOJO berhasil melakukan absensi");
|
|
}
|
|
}
|
|
|
|
lcd.clear();
|
|
lcd.setCursor(0, 0);
|
|
lcd.print(" Absen Berhasil ");
|
|
|
|
digitalWrite(pinCamera, LOW);
|
|
delay(500);
|
|
digitalWrite(pinCamera, HIGH);
|
|
|
|
delay(2000);
|
|
http.end();
|
|
|
|
rfid.PICC_HaltA();
|
|
rfid.PCD_StopCrypto1();
|
|
Serial.println("Ready");
|
|
lcd.setCursor(0, 0);
|
|
lcd.print(" SCAN ");
|
|
|
|
lcd.setCursor(0, 1);
|
|
lcd.print(" YOUR CARD ");
|
|
}
|