#include <SPI.h>
#include <MFRC522.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <Ethernet.h>
#include<ArduinoJson.h>
#include<SoftwareSerial.h>
LiquidCrystal_I2C lcd(0×3f, 16, 2);
int RST_PIN = 9;
int SS_PIN = 10;
char* json;
MFRC522 rfid(SS_PIN, RST_PIN);
IPAddress ip(192, 168, 0, 177);
IPAddress myDns(192, 168, 0, 1);
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] = “192.168.1.7”;
EthernetClient client;
String kartNumarasi="";
SoftwareSerial mySerial(5, 6);
void setup() {
mySerial.begin(9600);
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
lcd.begin();
lcd.backlight();
// start the Ethernet connection:
Serial.println(“Initialize Ethernet with DHCP:”);
if (Ethernet.begin(mac) == 0) {
Serial.println(“Failed to configure Ethernet using DHCP”);
// Check for Ethernet hardware present
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
Serial.println(“Ethernet shield was not found. Sorry, can’t run without hardware. 🙁”);
while (true) {
delay(1); // do nothing, no point running without Ethernet hardware
}
}
if (Ethernet.linkStatus() == LinkOFF) {
Serial.println(“Ethernet cable is not connected.”);
}
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip, myDns);
} else {
Serial.print(“ DHCP assigned IP ”);
Serial.println(Ethernet.localIP());
}
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.print(“connecting to ”);
Serial.print(server);
Serial.println(“…”);
}
void loop() {
kartNumarasi="";
if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial())
{
kartNumarasi="";
lcd.clear();
for(int sayac = 0; sayac < 4; sayac++){
kartNumarasi = kartNumarasi + rfid.uid.uidByte[sayac];
}
if (client.connect(server, 80)) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: application/json");
client.println("Host: 192.168.1.7");
client.println("Connection: keep-alive");
client.println("Access-Control-Allow-Origin: *");
client.println();
client.print("{");
client.print("\"kartNumarasi\":");
client.print("\"");
client.print(kartNumarasi);
client.print("\"");
client.print(',');
client.print("\"cihazIp\":");
client.print("\"");
client.print(ip);
client.print("\"");
client.println("}");
if (client.available())
{
json = client.read();
DynamicJsonDocument doc(1024);
deserializeJson(doc, json);
char* durum = doc["durum"];
if(durum == "ac")
{
lcd.print("onaylandı");
mySerial.print("A");
delay(5000);
mySerial.print("a");
}
if(durum == "acma"){
lcd.print("reddedildi");
}
}
else {
Serial.println("Sunucu verisi yoktur");
}
}
else {
Serial.println("Bağlantı hatası");
}
client.flush();
client.stop();
}
rfid.PICC_HaltA();
}