Bonjour,
Dans ce tutoriel nous allons apprendre à utiliser la carte Akeru avec un Shield NFC.
Nous allons créer une sorte de pointeur afin de permettre à un patron de vérifier le nombre d'heures de travail de son employé.
Autrement dit, quand l'employé arrive sur son lieu de travail, il devra passer un tag qui enverra une information pour dire qu'il est arrivé.
Pour ce faire nous allons fortement nous appuyer sur ce Tutoriel.
- MATÉRIEL:
- - Carte Akeru (x1).
- NFC Shield V2.0 (x1).
- Porte-clefs Mifare Classic (x3).
- MONTAGE:
Rien de plus simple! Il suffit de monter le shield en mezzanine sur la carte Akeru.
- CODE:
Avant de balancer le code quelques explications sur ce qu'il doit faire.
Nous voulons donc que le patron connaisse les heures de travail de son employé. Pour cela, il y a les trois tags.
Un pour quand l'employé arrive. Un pour la pause déjeuner. Et le dernier pour quand il rentre chez lui.
Lorsqu'il arrive et qu'il passe le premier tag, la carte Akeru va envoyer le mot "Bonjour" sur Actoboard. Quand il part déjeuner et quand il revient de sa pause déjeuner, "Dejeuner". Puis quand il rentre, le dernier tag envoie "A demain".
Tout ceci est géré par la structure switch/case.
- Code: Tout sélectionner
#include <PN532.h> // Déclaration des différentes librairies.
#include <SPI.h>
#include <SoftwareSerial.h>
#include <Akeru.h>
#define PN532_CS 10 // La pin CS peut être connectée à la sortie D9 ou D10.
PN532 nfc(PN532_CS);
#define NFC_DEMO_DEBUG 1
void setup()
{
#ifdef NFC_DEMO_DEBUG
Serial.begin(9600); // Vérification liaison série.
Serial.println("Bonjour!");
#endif
nfc.begin(); // Démarrage puce PN532.
uint32_t versiondata = nfc.getFirmwareVersion();
if(!versiondata)
{
#ifdef NFC_DEMO_DEBUG // Vérification PN532.
Serial.print("Puce PN532 absente");
#endif
while(1);
}
#ifdef NFC_DEMO_DEBUG // Vérification paramétrage de la puce.
Serial.print("Puce detectee, PN5");
Serial.println((versiondata>>24) & 0xFF, HEX);
Serial.print("Firmware version: ");
Serial.print((versiondata>>16) & 0xFF, DEC);
Serial.print('.');
Serial.println((versiondata>>8) & 0xFF, DEC);
Serial.print("Supports ");
Serial.println(versiondata & 0xFF, HEX);
#endif
nfc.SAMConfig(); // Configuration de la carte pour lire des tags et cartes RFID.
Akeru.begin();
}
void loop()
{
uint32_t id;
id = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A);
switch(id) // Réalisation d'un switch pour gérer les différentes conditions.
{
case 4267267237: // Condition à remplir si l'ID detecté est 4267267237.
Serial.println();
Serial.println("Bonjour!"); // Envoi au moniteur.
Akeru.send(&"Bonjour", sizeof("Bonjour")); // Remonte la donnée sur le réseau Sigfox.
break;
case 1589696432: // Condition à remplir si l'ID detecté est 1589696432.
Serial.println();
Serial.println("Au revoir!"); // Envoi au moniteur.
Akeru.send(&"A demain", sizeof("A demain")); // Remonte la donnée sur le réseau Sigfox.
break;
case 839461248: // Condition à remplir si l'ID detecté est 839461248.
Serial.println();
Serial.println("Pause dejeuner!"); // Envoi au moniteur.
Akeru.send(&"Dejeuner", sizeof("Dejeuner")); // Remonte la donnée sur le réseau Sigfox.
break;
default: // Condition à remplir si aucunes des précédentes n'est vérifiées.
Serial.println();
Serial.println("Attente d'identification!"); // Envoi au moniteur.
}
delay(500);
}
Avant de vous montrer comment se déroule la réception sur Actoboard, explication des fonctions Akeru présentes dans le code.
Partie "envoi des données".
______________________________
Inclusion des librairies:
- Code: Tout sélectionner
#include <SoftwareSerial.h>
#include <Akeru.h>
______________________________
Initialisation de la carte Akeru (Modem Sigfox):
- Code: Tout sélectionner
Akeru.begin();
______________________________
Envoi des données:
- Code: Tout sélectionner
Akeru.begin(&VARIABLE, sizeof(VARIABLE));
Dans le code ci-dessus, il s'agit de:
- Code: Tout sélectionner
Akeru.send(&"Bonjour", sizeof("Bonjour"));
Akeru.send(&"A demain", sizeof("A demain"));
Akeru.send(&"Dejeuner", sizeof("Dejeuner"));
Maintenant pour la partie réception des données sur Actoboard. Une fois votre compte ouvert, cliquer sur "+ New Data Source".
Rentrer les paramètres demandés.
Dans la case suivante...
...pour coller au programme, il faut rentrer:
- Code: Tout sélectionner
Info::char:8
Cette case renseigne à Actoboard le nom de votre variable, son type et sa taille. C'est indispensable pour qu'il puisse déchiffrer vos valeurs correctement.
Vous devrez toujours rentrer les paramètres dans cet ordre ci:
- Code: Tout sélectionner
Nom_Variable::Type:Nombre_Bits
A préciser qu'il est possible d'en mettre plusieurs d'affilée.
Normalement si tout les paramètres sont rentrés correctement, et en passant les badges dans l'ordre suivant: "Bonjour" - "Dejeuner" - "Dejeuner" (On suppose qu'il faut utiliser le même badge en partant et en revenant de déjeuner.) - "A demain"... Actoboard devrait afficher quelque chose de similaire à ceci:
Le patron peut donc à partir d'une connexion internet (donc n'importe où) savoir si son employé réalise bien les heures pour lesquelles il est payé.
On voit donc qu'il est arrivé à 16h13min37s. Il a pris sa pause de 16h14min15s à 16h14min57s. Et qu'il est rentré chez lui à 16h15min57s pour la journée du 05 juin 2014.
De plus Actoboard fournit la donnée sous forme brute et la qualité du signal de diffusion.
Il est possible dans les paramètres de demander un lien URL pour afficher les données sur une page internet pour les rendre accessibles à toutes et tous. On peut également en faire une page privée si souhaité. Il n'y a rien à paramétrer pour cela. Il suffit de cliquer sur "RequestBin" qui va tout faire pour vous et vous fournir l'adresse à rentrer dans vos paramètres.
Dans notre cas, on obtient ceci:
Cela nous fournit les mêmes informations que le site Actoboard, juste présentées différemment.
Voilà pour un premier usage de la carte Akeru.