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!

Outils de Test & Validation en Langage C

Très rapidement, il faut que je vous fasse part d'un outil de développement.

C'est plutôt une chaîne d'outils, trois briques logicielles qui fonctionnent ensembles appelées le TraceReporter. Cet outil permet de faire des traces depuis les programmes que vous écrivez en Langage C mais également dans d'autres langages moyennant une simple adaptation de l'interface. Ces traces sont transmises via des sockets TCP/IP à une application le Reporter qui les affiche.

Nous avons un site pour présenter cette suite logicielle de Test & Validation en Langage C, c'est en Open Source, il y a également un GitHub dédié. Alors n'hésitez pas à investir votre temps dans la compréhension puis l'utilisation du :

Qu’est-ce que la blockchain ?

La première blockchain est apparue en 2008 avec la monnaie digitale Bitcoin, développée par Satoshi Nakamoto qui est le pseudonyme d'une ou de plusieurs personnes dont on ne connait pas encore la véritable identité...

BitCoin est une blockchain

Le site de Blockchain France :

Blockchain France - Qu'est-ce qu'une blockchain ?

En suite nous avons Ethereum :

Welcome to Ethereum - Ethereum is the community-run technology powering the cryptocurrency ether (ETH) and thousands of decentralized applications.
Downlod Ethreum Wallet for Windows 32 bits (requires Command Line tools)
CREATE YOUR OWN CRYPTO-CURRENCY WITH ETHEREUM

Et puis on peut ajouter encore un site de référence sur la blockchain :

Blockchain.com  - Learning Portal

Ce site vous permettra de mieux comprendre les grands concepts de la BlockChain mais il est plutôt dédié à la blockchain Bitcoin.

Discussion & Informations

Journal Du Net : Pourquoi il faudra 10 ans à la blockchain pour percer dans la finance

Microsoft Ideas - Digital is business

Blockchain : pourquoi toutes les industries sont concernées - nouveau paradigme de gestion de la confiance -

https://rslnmag.fr/innovation/blockchain-revolution-quotidien/

Des contrats d’assurance à votre facture d’électricité, en passant par la traçabilité de ce qui se retrouve dans votre assiette ou la sécurité de vos données personnelles, les technologies blockchain pourraient transformer radicalement votre quotidien, au-delà des cryptomonnaies supportées par ces algorithmes, comme le bitcoin. Une nouvelle révolution technologique est-elle en marche ?

Code C# sur la plateforme GitHub

Comment ça fonctionne ? C'est très simple ... plus de blabla, voici du code

https://blockchainprogramming.azurewebsites.net/

Si vous allez plus loin avec le code C# de Nicolas Dorier, vous verrez que la mise en oeuvre consiste en l'envoi d'une somme de 0.004 Bitcoin sur sa blockchain.

Hall of the Makers - Take a picture to seel how does it evolve

https://github.com/NicolasDorier/BlockchainProgramming

Have Fun !