/*******************************************************
Program : Absensi Online dengan RFID MFRC-522
Chip : wemos d1
Website : https://bintangterang.or.id/url/
Tgl Edite : 09 Juli 2024
Pembuat : OCIM
Pemodal : NIA ASTRIANA
Tempat : TUK BINTANG TERANG
Penguji : ASEP
UID Card.:
FB 11 B8 89
DC C7 B7 89
53 D1 2A FE
BA 90 B8 89
UID Pin..:
CA 4A 61 7A
DA 0D DD 80
8A 39 77 80
99 E8 A3 68
Bila ingin mencoba silahkan rubah pada bagian:
1. Sertifikat SSL
2. SSID dan FASSWORD WiFi
3. Link website https://bintangterang.or.id/url/getdemo.php
link yang dirubah >>> https://namawebsite.or.id
tidak dirubah >>> url/getdemo.php
Alat yang dibutuhkan:
1. RFID MFRC-522
2. WEMOS D1 / NODEMCU ESP8266 / ESP32
3. JUMPER SECUKUPNYA
4. WEBSITE
5. ABSENSI PHP
********************************************************/
#include
#include
#include
#include
//////////////////////////////////////////////////////////////
#define SS_PIN D2 // sda pin d2
#define RST_PIN D3 // reset pin d3
MFRC522 mfrc522(SS_PIN, RST_PIN);
int buser=D4;
const char IRG_Root_X1 [] PROGMEM = R"CERT(
-----BEGIN CERTIFICATE-----
MIIDvjCCA0SgAwIBAgISAyCS9tquIfzkz4JWnktcdqWKMAoGCCqGSM49BAMDMDIx
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF
NjAeFw0yNDA2MTgwMTUxMDZaFw0yNDA5MTYwMTUxMDVaMB4xHDAaBgNVBAMTE2Jp
bnRhbmd0ZXJhbmcub3IuaWQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR6SUynxDZr
7mSRzceIdEBVDCqMmrP3lJQETWLVvtTVVPbWow4GRWttkp6QQRucaxBTdpnPdDrR
n111/fGlFbN2kY5hbJKSVcuglQnGqSwJtuMFnCT5rE8joKh9ApsuUeujggIvMIIC
KzAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFBaAE5JxPyamVwj/rDP1K4OXxIsLMB8G
A1UdIwQYMBaAFJMnRpgDqVFojpjWxEJI2yO/WJTSMFUGCCsGAQUFBwEBBEkwRzAh
BggrBgEFBQcwAYYVaHR0cDovL2U2Lm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZo
dHRwOi8vZTYuaS5sZW5jci5vcmcvMDcGA1UdEQQwMC6CE2JpbnRhbmd0ZXJhbmcu
b3IuaWSCF3d3dy5iaW50YW5ndGVyYW5nLm9yLmlkMBMGA1UdIAQMMAowCAYGZ4EM
AQIBMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHYASLDja9qmRzQP5WoC+p0w6xxS
ActW3SyB2bu/qznYhHMAAAGQKUFV9QAABAMARzBFAiEAklTZUamhCXAjiTCayKU7
ATEwFYmyAt9IadE/k/3wG+ACIDXki2CwPwta+vnspKUqgTtX36DlirxYsiKDDVrK
6fmmAHcAPxdLT9ciR1iUHWUchL4NEu2QN38fhWrrwb8ohez4ZG4AAAGQKUFV+wAA
BAMASDBGAiEA2U1stK0GAGNDHsH5hpxEy8Xghmv1dAPFTJ8qsof81C0CIQC3mePT
HP2zndezwLACdzg00wfVyPMq9PNdngcJBiEp4TAKBggqhkjOPQQDAwNoADBlAjAu
r77zH8auq4cRv53DG7vmcYE7ISyHO2otiZTyg9IwY6E02Rm6b6wAif9eVG4e58wC
MQDBi3YFFJPn0AFoOVRJyorydQiqJiQlVjajJh0yy8paI2oyWTlB8C1kgIIoIHTM
p4U=
-----END CERTIFICATE-----
)CERT";
// Replace with your network credentials
const char *ssid = "BINTANG TERANG";
const char *password = "1SAMPAI8";
// Create a list of certificates with the server certificate
X509List cert(IRG_Root_X1);
int readsuccess;
byte readcard[4];
char str[32] = "";
String StrUID;
//////////////////////////////////////////////////////////////////////
void setup(){
Serial.begin(115200);
//Serial.setDebugOutput(true);
pinMode(buser,OUTPUT);
SPI.begin();
mfrc522.PCD_Init();
Serial.println("Dekatkan Kartu ke RFID reader");
Serial.println();
Serial.println();
Serial.println();
Serial.println();
//Connect to Wi-Fi
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi ..");
while (WiFi.status() != WL_CONNECTED) {
Serial.print('.');
delay(1000);
}
// Set time via NTP, as required for x.509 validation
configTime(3 * 3600, 0, "pool.ntp.org", "time.nist.gov");
Serial.print("Waiting for NTP time sync: ");
time_t now = time(nullptr);
while (now < 8 * 3600 * 2) {
delay(500);
Serial.print(".");
now = time(nullptr);
}
Serial.println("");
struct tm timeinfo;
gmtime_r(&now, &timeinfo);
Serial.print("Current time: ");
Serial.print(asctime(&timeinfo));
}
//////////////////////////////////////////////////////////////////
void loop() {
///////////////////////////////////////////////////
if( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
if( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
Serial.print("UID tag :");
String content= "";
byte letter;
for(int i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
digitalWrite(buser,HIGH);
delay(10);
digitalWrite(buser,LOW);
}
Serial.println("");
/////////////////////////////////////////////////////////////
WiFiClientSecure client;
// wait for WiFi connection
if ((WiFi.status() == WL_CONNECTED)) {
client.setTrustAnchors(&cert);
HTTPClient https;
///////////////////////////////////////////////////////////
String ADCData, station, masuk, getData, Link;
int adcvalue=analogRead(A0); //Read Analog value of LDR
ADCData = String(adcvalue); //String to interger conversion
// int i = 0; i < mfrc522.uid.size; i++;
station = "1";
masuk = "HEX";
//////////////////////////////////////////////////////////////
//GET Data
getData = "?status=" + ADCData + "&station=" + station + "&masuk=" + masuk;
Link = "https://bintangterang.or.id/url/getdemo.php" + getData;
Serial.print("[HTTPS] begin...\n");
if (https.begin(client, Link)) { // HTTPS
Serial.print("[HTTPS] GET...\n");
// start connection and send HTTP header
int httpCode = https.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTPS] GET... code: %d\n", httpCode);
// file found at server
if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
String payload = https.getString();
Serial.println(payload);
}
} else {
Serial.printf("[HTTPS] GET... failed, error: %s\n", https.errorToString(httpCode).c_str());
}
https.end();
} else {
Serial.printf("[HTTPS] Unable to connect\n");
}
}
Serial.println();
Serial.println("Menunggu data Berikutnya...");
delay(10000);
}