IoT - RFID actif - Projet en Langage C & Qt/C++

Projet réalisé par la SoDevLog à l'aide de puces RFID. Il s'agit de faire communiquer plusieurs puces, de une à 7 cartes électroniques RFID Actives, entre elles. Ces puces seront connectées à un PC par l'intermédiaire d'un port de communication de type série (USB) et se transmettront des trames par Radio (RF) sous l'effet de commandes envoyées par notre IHM.

On donnera un ordre de configuration à l'une des puces RFID pour qu'elle se mette en mode de communication par Radio Fréquence, on communiquera la trame à transmettre à la première puce afin qu'elle transmette cette trame (des octets) à la seconde puce. On vérifiera la réception de cette trame par la seconde puce.

Représentation simplifiée du projet IoT - RFID actif

Architecture du projet

Recherche de portabilité

Dans un premier temps, on souhaite développer une application pour Poste PC, mais par la suite on veut pouvoir communiquer entre smartphones de la façon suivante :

Communication entre smartphones grâce aux puces RFID

On va donc développer, une DLL (Logiciel) de Communication qui va assurer la communication entre l'IHM et les ports de communication. Cette DLL sera "portée" sur SmartPhone.

Choix d'Eclipse pour la DLL de Communication en Langage C, compilée avec MinGW et le SDK d'Android. Choix de Qt/C++ pour l'IHM portable sur PC et sur SmartPhone.

DLL de Communication en Langage C sous Eclipse

Assurer la testabilité et la non-regression

La DLL de Communication est rendue testable par l'utilisation d'un logiciel de Tests Unitaires sous Eclipse (Trace Reporter), un émulateur de port de communication et un simulateur de puce RFID ecris en C# avec Visual Studio.

Emulateur de ports de communication

Logiciel de Traces - Trace Reporter

Simulateur de communication en WPF C#

Émulateur de port COM : permet d'émuler un Port COM de façon logicielle, permet ainsi, à deux applications qui sont sur le même poste, de communiquer entre elles comme si elles le faisait au travers du Port COM (Hardware).

Simulateur de port COM : joue alternativement le rôle de la Puce RFID ou le rôle de l'application. Permet d'envoyer des Trames et d'afficher les Trames reçues.

Logiciel de Traces
Développement sous Eclipse avec utilisation du logiciel de Traces :

IDE Eclipse pour le développement de la DLL de communication en Langage C

1. La DLL de communication multithread sous Tests 
2. Logiciel de Traces et Tests Unitaires Multi-ports Comm

Spécificité de la DLL, il s'agit d'une DLL de communication multi-ports dont le multithreading est assuré à l'aide de la DLL Posix en Langage C.

IHM en Langage C++ avec Qt Creator

Utilisation de la DLL de Communication écrite en Langage C avec Qt Creator en C++, présentation de l'IDE :

IDE Qt/C++ Creator pour le développement de l'IHM

On peut distinguer au centre, une partie du design de l'IHM dans Qt Creator l'IDE de Qt/C++. Cette IHM permet d'envoyer des trames, des commandes, aux puces RFID et d'afficher le retour d'exécution des commandes. Cette IHM permet également d'afficher les trames reçues de façon "spontanée".

Exécution du projet COM Emulateur - RFID

Notre simulateur d'équipement RFID nous permet d'obtenir l'écran suivant ou l'on peut constater l'ensemble des logiciels interconnectés par l'Emulateur de port de Communication.

Simulateur d'équipement RFID développé avec Visual Studio WPF.
Simulateur d'équipement RFID développé avec Visual Studio WPF simulation d'une communication sur le port COM

Je clique sur mon Simulateur d'équipement RFID pour envoyer la trame "01 01 01" à mon configurateur du puces RFID qui répond par une trame d'acquittement "06".

Download Sources Codes

Retrouvez le communauté des développeurs GitHub des projets OpenSources

RFID CloverViewer on GitHub
RFID CloverViewer on GitHub


Have fun!

2 commentaires:

  1. Merci, mais pouvez vous m'envoyer le code source slv ? j'ai pas pu accéder au lien GitHub.

    RépondreSupprimer
    Réponses
    1. Pour accéder au code source vous devez créer un compte GitHub :

      https://github.com/signup

      Les sources sont centralisés à cet endroit pour plus de collaboration.

      Supprimer

Merci de prendre le temps de nous écrire un commentaire