如何将数据/值从 PHP 发送到 arduino?

问题描述 投票:0回答:0

基本上我想使用 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']));

?>

以防万一这里是 MySQL 表 Table (data_kartu.kartu)

php arduino ethernet rfid mfrc522
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.