Dans la première partie  (lien) nous avons présenté les différents composants  matériels du système, les principales fonctions utilisées au niveau du code arduino, en plus des tables de correspondance qui vont faciliter la réalisation du circuit. Dans cette partie nous allons présenter la suite du code source, les étapes de réalisation et les résultats obtenus.

 

Code PHP & HTML & CSS:

Vérification : afin de savoir si une carte détectée par le composant RFID RC522 est valide ou non il est nécessaire d’effectuer une vérification de l'UID de la carte s’il appartient à la liste des cartes enregistré dans la base de données. Si la carte appartient à la liste statut reçoit 1 si non il reçoit 0.

N.B : nous avons utilisé le format json car il est décodable par arduino

 

<?php

$servername = "localhost";

$username = "root";

$password = "";

$dbname = "Access Control";

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

if ($conn->connect_error) {

    die("Connection failed: " . $conn->connect_error);

}

$card=$_GET["NCard"];

$req = "SELECT  Nom FROM carte  where Crfid='".$card."'";

$result = $conn->query($req);

if($result->num_rows > 0) {

   $file = fopen("light.json", "w") or die("can't open file");

   fwrite($file, '{"statut": 1 }');

   fclose($file);

 }

else{

     $file = fopen("light.json", "w") or die("can't open file");

    fwrite($file, '{"statut": 0 }');

    fclose($file);

}

?>

 

Liste de Cartes : le code au-dessous va permettre au propriétaire du système de visualiser la liste des cartes ayant le droit d’accès et leurs propriétaires.

 

<!DOCTYPE HTML>

<html>

<head>

          <meta charset="utf-8" />

          <title>Liste de Cartes</title>

    <style>

        ul {

 float:right;

}

li {

 display: inline;

}

a {

 color: darkgrey;

 font-size:20px;

 text-align: center;

 padding:16px;

 text-decoration: none;

 font-style:italic;
}

.active {

 color: gold;

 font-weight: bold;

}

a:hover {

 color: gold;

}

    </style>

</head>

<body style="background: ;">

    <h1 style="color:blue; font-size:50px;text-align:center;"><b><i>Control Access</i></b></h1>

    <nav><ul>

 <li><a href="/ajoutC.html" > Ajouter Carte</a></li>

<li> <a href="#" class="active">Liste des Cartes</a></li>

 </ul> </nav><br><br><br><br>

<table border="1" style="margin-left:20%;text-align: center;width: 60%;">

<tr style="background: pink;">

    <td> <b>Numero de Carte</b> </td>

    <td> <b> Nom </b></td>

    <td> <b> Prenom </b> </td>

</tr>

    <?php


 $servername = "localhost";

$username = "root";

$password = "";

$dbname = "Access Control";

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);


// Check connection

if ($conn->connect_error) {

    die("Connection failed: " . $conn->connect_error);

}

$req = "SELECT  Nom, Prenom, Crfid FROM carte";

$result = $conn->query($req);

while ($row = $result->fetch_array(MYSQLI_ASSOC)) {

 echo '<tr><td>' .$row["Crfid"]. '</td>';

    echo '<td>' .$row["Nom"]. '</td>';

    echo '<td>' .$row["Prenom"]. '</td></tr>';
}
?>
    </table>

    </body>

</html>

 

Ajout d’une carte: afin de permettre au propriétaire du système d’ajouter une nouvelle carte nous allons créer en premier lieu un formulaire en se basant sur HTML pour saisir les différentes données, puis un code php qui va permettre de sauvegarder les données saisies dans le formulaire dans la base de données

 

Formulaire :

 

<!DOCTYPE HTML>

<html>

<head>

          <meta charset="utf-8" />

          <title>Liste de Cartes</title>

    <style>

        ul {

 float:right;

}

li {

 display: inline;

}

a {

 color: darkgrey;

 font-size:20px;

 text-align: center;

 padding:16px;

 text-decoration: none;

 font-style:italic;

}

.active {

 color: gold;

 font-weight: bold;

}

a:hover {

 color: gold;

}

    </style>

</head>

<body style="background: ;">

<h1 style="color:blue; font-size:50px;text-align:center;"><b><i>Control Access</i></b></h1>

    <nav><ul>

 <li><a href="#" > Ajouter Carte</a></li>

<li> <a href="/listeC.php" class="active" >Liste des Cartes</a></li>

 </ul> </nav>

<br><br><br><br>

 <form action="add.php" method="post" style="font-size:15px;margin-left:30%;">

<label> Crfid:</label><br>

<input type="text" name="Crfid" placeholder="numero de carte" ><br><br>

     <label> Nom:</label><br>

<input type="text" name="Nom" placeholder="nom du proprietaire" ><br><br>

     <label> Prenom:</label><br>

<input type="text" name="Prenom" placeholder="prenom du proprietaire" ><br><br>

     <label> Poste:</label><br>

<input type="text" name="Poste" placeholder="poste du proprietaire" ><br><br>

     <input type="submit" name="submit" value="SAVE"/>

    </form>

    </body>

</html>

 

add.php :

 

<?php

 $servername = "localhost";

$username = "root";

$password = "";

$dbname = "Access Control";

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

if ($conn->connect_error) {

    die("Connection failed: " . $conn->connect_error);

}

$crfid = $_POST['Crfid'];

$nom = $_POST['Nom'];

$prenom = $_POST['Prenom'];

$poste = $_POST['Poste'];

$req = "INSERT INTO carte (Crfid, Nom, Prenom,Poste)  VALUES ('".$crfid."','".$nom."','".$prenom."','".$poste."')";

$result = $conn->query($req);

?>

Etapes de réalisation:

  1. Créer un fichier light.json
  2. Créer une base de donnée Access Control

Figure 1: Base de donnees Access Control

  1. Créer table Carte

Figure 2: Structure de la table Carte

  1. Televerser le code source arduino au circuit contenant RFID et ESP8266 v3
  2. Tester le fonctionnement du système en utilisant deux cartes RFID une carte valide et une autre non valide

 

Résultats:

Fichier "light.json":

{"statut": 1 }

Servomotor:

Le degré du  servomoteur  va  changer de 90 a 0 car la valeur du statut est 1 ce qui signifie que la carte est valide, après 1s il va retourner au degré 90.

                                                  

Figure 3: Etat du servomotor cas de succès

Fichier "light.json":

{"statut": 0 }

Servomotor: 

Le degré du  servomoteur ne va pas changer car la valeur du statut est 0 ce qui signifie que la carte est invalide

 

Figure 4: Etat du servomotor cas d'echec

 

Figure 5: Formulaire

 

 

Figure 6: Formulaire rempli par le proprietaire du systeme

 

 

Figure 7: table carte apres save

 

 

Figure 8: Liste des cartes et leurs proprietaires

 

Auteur:

Fatima Zahra Fagroud,  Student

HASSAN 2 University, Casablanca,

Faculty of Sciences  Ben M'Sik. Morocco