TKK_E32210823/rfiddantele/code_rfid/code_rfid.ino

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 ");
}