Affichage des articles dont le libellé est eclipse. Afficher tous les articles
Affichage des articles dont le libellé est eclipse. Afficher tous les articles

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!

IoT - Protocole MQTT

Vous souhaitez en savoir plus sur le protocole MQTT. Vous avez-entendu récemment cette nouvelle notion de télécom : "Internet of Things" ou "IoT" c'est à dire en français l'Internet des Objets.

Alors c'est quoi MQTT ?

Internet of Things : Internet des Objets connectés, les objets communiquent entre eux sans passer par l'humain. Exemple : votre pacemaker connecté connait votre humeur du moment en entrant chez vous il demande à vote system audio de jouer une musique en conséquence.

Bon, vous l'aurez compris ce n'est pas un bon exemple, je n'ai pas envie de porter un pacemaker pour écouter la musique correspondant à mon humeur d'autant qu'il existe des devices plus simples. Il y a surement mieux à faire mais c'est pour vous dire que cette nouvelle aire de la télécommunication reste à inventer.

MQTT : Message Queuing Telemetry Transport est un protocole de messagerie basé sur TCP/IP (ça tombe bien, on voit mal un nouveau protocole recommencer tout, de tout en bas du modèle OSI à 7 couches) "publish-subscribe", cela signifie simplement que pour recevoir les messages du Broker il faut s'enregistrer au prêt de celui-ci. Et là c'est la clef de MQTT, un moyen tout simple de faire dialoguer les objets entre eux.

Visitez le site MQTT.org

Mise en oeuvre avec Eclipse

Côté serveur

Il ne reste plus qu'à trouver une implémentation du message broker, sorte de Serveur MQTT. L'installer, le configurer et le faire s'exécuter. Puis de développer un client, un soft capable de s'enregistrer au prêt du message broker pour recevoir et afficher les messages transmis.

Côté client

On imagine que l'on va le développer en langage C avec eclipse et en regardant de plus prêt la communication avec le Broker Mosquitto. Mais il existe, du côté d'Eclipse le projet Open Source nommé : paho

https://www.eclipse.org/paho/clients/c/

MQTT C Client for Posix and Windows

Porte d'entrée vers la compréhension d'MQTT chez IBM

Initiation aux client MQTT

Initiation aux Serveurs MQTT
  WebSphere

Modèle MQTT en Langage Java ou C
Je clique sur le Langage C :

Initiation au client MQTT pour C
On y trouvera du code en Langage C pour Visual Studio ou Eclipse tout ce qu'il faut pour démarrer votre application Client/Serveur MQTT.

Autres serveurs MQTT
Nous avons ici tout pour bien démarrer et faire aboutir un projet dans la maîtrise d'MQTT, Maintenant la vraie question c'est : doit-on investir dans la compréhension et le développement de ce type d'applications tandis que l'on entend parler plutôt de protocoles comme LoRa ou Sigfox pour les applications de l'IoT ...

Littérature
Sur la compréhension des protocoles un article simple et concis :

Frugalprototype/Quels protocoles applicatifs pour l’Internet des Objets ?