基本上我想使用 arduino 制作一个 RFID 门锁,我希望 arduino 读取我的卡 UID,然后将其与 MySQL 数据库中的用户列表进行匹配,如果匹配则电磁门锁将打开。
所以这是代码,首先我让 arduino 读取我的卡 UID,然后使用带有 $_GET 方法的 HTTP 请求将其发送到 PHP,之后 PHP 会将 UID 与数据库中的用户列表进行匹配。
我不知道如何将数据/值从 PHP 发送到 Arduino,以便在 PHP 将卡 UID 与数据库匹配后门锁打开
Arduino代码(RFID_uid.ino)
#include <SPI.h>
#include <MFRC522.h>
#include <Ethernet.h>
#define SS_PIN 53
#define RST_PIN 5
MFRC522 rfid(SS_PIN, RST_PIN);
String id_kartu;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] = "192.168.25.159";
IPAddress ip(192,168,25,5);
EthernetClient client;
void setup() {
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
Ethernet.begin(mac, ip);
}
delay(1000);
}
void loop() {
//Check if there any card on RFID reader
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) {
return;
}
id_kartu = String(rfid.uid.uidByte[0]) + String(rfid.uid.uidByte[1]) + String(rfid.uid.uidByte[2]) + String(rfid.uid.uidByte[3]);
rfid.PICC_HaltA(); //Stop reading card
rfid.PCD_StopCrypto1(); //Stop reading card
Sending_To_phpmyadmindatabase();
delay(3000);
}
void Sending_To_phpmyadmindatabase() { //CONNECTING WITH MYSQL
if (client.connect(server, 80)) {
Serial.println("connected");
// Make a HTTP request:
Serial.print("GET /rfid/rfid.php?id=");
client.print("GET /rfid/rfid.php?id="); //My URL
Serial.println(id_kartu);
client.print(id_kartu);
//client.print(" "); //SPACE BEFORE HTTP/1.1
client.print(" HTTP/1.1");
client.println();
client.println("Host: 192.168.25.159");
client.println("Connection: close");
client.println();
} else {
// if didn't get a connection to the server:
Serial.println("connection failed");
}
}
PHP代码(rfid.php)
<?php
class rfid{
public $link='';
function __construct($id_kartu){
$this->connect();
$this->validID($id_kartu);
}
function connect(){
$this->link = mysqli_connect('localhost','username','password') or die('Cannot connect to the DB');
mysqli_select_db($this->link,'data_kartu') or die('Cannot select the DB');
}
function validID($id_kartu){
$query = "SELECT * FROM kartu WHERE id_kartu='".$id_kartu."'";
$result = mysqli_query($this->link,$query) or die('Errant query: '.$query);
$row = mysqli_fetch_assoc($result);
return $row;
}
}
if($_GET['id'] != ''){
$rfid=new rfid($_GET['id']);
}
var_dump($rfid->validID($_GET['id']));
?>