<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rgouenar</id>
		<title>Wiki d'activités IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rgouenar"/>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php/Sp%C3%A9cial:Contributions/Rgouenar"/>
		<updated>2026-05-14T18:13:25Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_App_Premiere_Page.png&amp;diff=9756</id>
		<title>Fichier:BGX App Premiere Page.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_App_Premiere_Page.png&amp;diff=9756"/>
				<updated>2014-02-25T10:52:54Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9755</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9755"/>
				<updated>2014-02-25T10:51:59Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Habillage estétique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé l'habillage graphique de l'application à l'aide de jQuery mobile. Voici le rendu final.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée. &lt;br /&gt;
Deux pages internet permettent ainsi de consulter, d'ajouter et de supprimer des produits et des ingrédients. Une troisième gère elle les relations entre les deux, sans avoir à se soucier des correspondances entre les différents ids.&lt;br /&gt;
&lt;br /&gt;
L'outil est développé en html5 et utilise l'api de connexion à la base de donnée développée précédemment en java. Certaines fonctionnalités on cependant due être ajoutées afin d'avoir de plus grandes possibilités de requêtes SQL. L'ensemble de l'outil à été habillé graphiquement à l'aide de INK (Interface Kit), un framework CSS3 open source, pour un meilleur rendu visuel.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Liste_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Ajout_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Relation.png]]&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure de l'avancée du projet, l'équipe de l'Ircica nous soumettait de nouvelles demandes de fonctionnalités. La salle utilisée pour la démonstration du chariot RFID est équipée d'un grand écran permettant de visualiser ce qui se passe coté serveur. Dans ce sens, l'équipe Decarte nous a donc demandé de développer une interface de supervision coté serveur sur laquelle nous pourrions visualiser le contenu des différents chariots connectés, le tout sous un aspect relativement joli afin de ne pas paraître barbare devant les yeux des spectateurs lors d'une démonstration.&lt;br /&gt;
Le thème développé précédemment pour l'interface de gestion de la base de donnée sous INK (Interface Kit) plaisant à l'équipe, nous sommes donc partis sur la même base afin de présenter notre interface de supervision.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Supervision.png]]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;br /&gt;
&lt;br /&gt;
* [http://ink.sapo.pt INK Interface Kit]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_App_finale.png&amp;diff=9753</id>
		<title>Fichier:BGX App finale.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_App_finale.png&amp;diff=9753"/>
				<updated>2014-02-25T10:50:50Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Gantt.png&amp;diff=9750</id>
		<title>Fichier:BGX Gantt.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Gantt.png&amp;diff=9750"/>
				<updated>2014-02-25T10:47:06Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : a téléversé une nouvelle version de « Fichier:BGX Gantt.png »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Gantt.png&amp;diff=9745</id>
		<title>Fichier:BGX Gantt.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Gantt.png&amp;diff=9745"/>
				<updated>2014-02-25T10:42:56Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9744</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9744"/>
				<updated>2014-02-25T10:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Planning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée. &lt;br /&gt;
Deux pages internet permettent ainsi de consulter, d'ajouter et de supprimer des produits et des ingrédients. Une troisième gère elle les relations entre les deux, sans avoir à se soucier des correspondances entre les différents ids.&lt;br /&gt;
&lt;br /&gt;
L'outil est développé en html5 et utilise l'api de connexion à la base de donnée développée précédemment en java. Certaines fonctionnalités on cependant due être ajoutées afin d'avoir de plus grandes possibilités de requêtes SQL. L'ensemble de l'outil à été habillé graphiquement à l'aide de INK (Interface Kit), un framework CSS3 open source, pour un meilleur rendu visuel.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Liste_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Ajout_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Relation.png]]&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure de l'avancée du projet, l'équipe de l'Ircica nous soumettait de nouvelles demandes de fonctionnalités. La salle utilisée pour la démonstration du chariot RFID est équipée d'un grand écran permettant de visualiser ce qui se passe coté serveur. Dans ce sens, l'équipe Decarte nous a donc demandé de développer une interface de supervision coté serveur sur laquelle nous pourrions visualiser le contenu des différents chariots connectés, le tout sous un aspect relativement joli afin de ne pas paraître barbare devant les yeux des spectateurs lors d'une démonstration.&lt;br /&gt;
Le thème développé précédemment pour l'interface de gestion de la base de donnée sous INK (Interface Kit) plaisant à l'équipe, nous sommes donc partis sur la même base afin de présenter notre interface de supervision.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Supervision.png]]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;br /&gt;
&lt;br /&gt;
* [http://ink.sapo.pt INK Interface Kit]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9739</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9739"/>
				<updated>2014-02-25T08:17:26Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Interface de supervision serveur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée. &lt;br /&gt;
Deux pages internet permettent ainsi de consulter, d'ajouter et de supprimer des produits et des ingrédients. Une troisième gère elle les relations entre les deux, sans avoir à se soucier des correspondances entre les différents ids.&lt;br /&gt;
&lt;br /&gt;
L'outil est développé en html5 et utilise l'api de connexion à la base de donnée développée précédemment en java. Certaines fonctionnalités on cependant due être ajoutées afin d'avoir de plus grandes possibilités de requêtes SQL. L'ensemble de l'outil à été habillé graphiquement à l'aide de INK (Interface Kit), un framework CSS3 open source, pour un meilleur rendu visuel.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Liste_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Ajout_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Relation.png]]&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure de l'avancée du projet, l'équipe de l'Ircica nous soumettait de nouvelles demandes de fonctionnalités. La salle utilisée pour la démonstration du chariot RFID est équipée d'un grand écran permettant de visualiser ce qui se passe coté serveur. Dans ce sens, l'équipe Decarte nous a donc demandé de développer une interface de supervision coté serveur sur laquelle nous pourrions visualiser le contenu des différents chariots connectés, le tout sous un aspect relativement joli afin de ne pas paraître barbare devant les yeux des spectateurs lors d'une démonstration.&lt;br /&gt;
Le thème développé précédemment pour l'interface de gestion de la base de donnée sous INK (Interface Kit) plaisant à l'équipe, nous sommes donc partis sur la même base afin de présenter notre interface de supervision.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Supervision.png]]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;br /&gt;
&lt;br /&gt;
* [http://ink.sapo.pt INK Interface Kit]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Supervision.png&amp;diff=9738</id>
		<title>Fichier:BGX Supervision.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Supervision.png&amp;diff=9738"/>
				<updated>2014-02-25T08:11:50Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Architecture.png&amp;diff=9737</id>
		<title>Fichier:BGX Architecture.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Architecture.png&amp;diff=9737"/>
				<updated>2014-02-25T07:27:37Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : a téléversé une nouvelle version de « Fichier:BGX Architecture.png »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9720</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9720"/>
				<updated>2014-02-24T17:50:27Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Choix des technologies utilisées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée. &lt;br /&gt;
Deux pages internet permettent ainsi de consulter, d'ajouter et de supprimer des produits et des ingrédients. Une troisième gère elle les relations entre les deux, sans avoir à se soucier des correspondances entre les différents ids.&lt;br /&gt;
&lt;br /&gt;
L'outil est développé en html5 et utilise l'api de connexion à la base de donnée développée précédemment en java. Certaines fonctionnalités on cependant due être ajoutées afin d'avoir de plus grandes possibilités de requêtes SQL. L'ensemble de l'outil à été habillé graphiquement à l'aide de INK (Interface Kit), un framework CSS3 open source, pour un meilleur rendu visuel.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Liste_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Ajout_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Relation.png]]&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure de l'avancée du projet, l'équipe de l'Ircica nous soumettait de nouvelles demandes de fonctionnalités. La salle utilisée pour la démonstration du chariot RFID est équipée d'un grand écran permettant de visualiser ce qui se passe coté serveur. Dans ce sens, l'équipe Decarte nous a donc demander de développer une interface de supervision coté serveur sur laquelle nous pourrions visualiser le contenu des différents chariots connectés, le tout sous un aspect relativement joli afin de ne pas paraître barbare devant les yeux des spectateurs lors d'une démonstration.&lt;br /&gt;
Le thème développé précédemment pour l'interface de gestion de la base de donnée sous INK (Interface Kit) plaisant à l'équipe, nous sommes donc partis sur la même base afin de présenter notre interface de supervision.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Supervision.png]]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;br /&gt;
&lt;br /&gt;
* [http://ink.sapo.pt INK Interface Kit]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Architecture.png&amp;diff=9719</id>
		<title>Fichier:BGX Architecture.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Architecture.png&amp;diff=9719"/>
				<updated>2014-02-24T17:49:52Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9703</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9703"/>
				<updated>2014-02-24T14:24:24Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Interface de supervision serveur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée. &lt;br /&gt;
Deux pages internet permettent ainsi de consulter, d'ajouter et de supprimer des produits et des ingrédients. Une troisième gère elle les relations entre les deux, sans avoir à se soucier des correspondances entre les différents ids.&lt;br /&gt;
&lt;br /&gt;
L'outil est développé en html5 et utilise l'api de connexion à la base de donnée développée précédemment en java. Certaines fonctionnalités on cependant due être ajoutées afin d'avoir de plus grandes possibilités de requêtes SQL. L'ensemble de l'outil à été habillé graphiquement à l'aide de INK (Interface Kit), un framework CSS3 open source, pour un meilleur rendu visuel.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Liste_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Ajout_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Relation.png]]&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure de l'avancée du projet, l'équipe de l'Ircica nous soumettait de nouvelles demandes de fonctionnalités. La salle utilisée pour la démonstration du chariot RFID est équipée d'un grand écran permettant de visualiser ce qui se passe coté serveur. Dans ce sens, l'équipe Decarte nous a donc demander de développer une interface de supervision coté serveur sur laquelle nous pourrions visualiser le contenu des différents chariots connectés, le tout sous un aspect relativement joli afin de ne pas paraître barbare devant les yeux des spectateurs lors d'une démonstration.&lt;br /&gt;
Le thème développé précédemment pour l'interface de gestion de la base de donnée sous INK (Interface Kit) plaisant à l'équipe, nous sommes donc partis sur la même base afin de présenter notre interface de supervision.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Supervision.png]]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;br /&gt;
&lt;br /&gt;
* [http://ink.sapo.pt INK Interface Kit]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_GestionBDD_Relation.png&amp;diff=9698</id>
		<title>Fichier:BGX GestionBDD Relation.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_GestionBDD_Relation.png&amp;diff=9698"/>
				<updated>2014-02-24T14:15:46Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_GestionBDD_Ajout_Produit.png&amp;diff=9697</id>
		<title>Fichier:BGX GestionBDD Ajout Produit.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_GestionBDD_Ajout_Produit.png&amp;diff=9697"/>
				<updated>2014-02-24T14:15:11Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9696</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9696"/>
				<updated>2014-02-24T14:14:54Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Gestion de la base de donnée */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée. &lt;br /&gt;
Deux pages internet permettent ainsi de consulter, d'ajouter et de supprimer des produits et des ingrédients. Une troisième gère elle les relations entre les deux, sans avoir à se soucier des correspondances entre les différents ids.&lt;br /&gt;
&lt;br /&gt;
L'outil est développé en html5 et utilise l'api de connexion à la base de donnée développée précédemment en java. Certaines fonctionnalités on cependant due être ajoutées afin d'avoir de plus grandes possibilités de requêtes SQL. L'ensemble de l'outil à été habillé graphiquement à l'aide de INK (Interface Kit), un framework CSS3 open source, pour un meilleur rendu visuel.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Liste_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Ajout_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Relation.png]]&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;br /&gt;
&lt;br /&gt;
* [http://ink.sapo.pt INK Interface Kit]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_GestionBDD_Liste_Produit.png&amp;diff=9695</id>
		<title>Fichier:BGX GestionBDD Liste Produit.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_GestionBDD_Liste_Produit.png&amp;diff=9695"/>
				<updated>2014-02-24T14:13:48Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : a téléversé une nouvelle version de « Fichier:BGX GestionBDD Liste Produit.png »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_GestionBDD_Liste_Produit.png&amp;diff=9589</id>
		<title>Fichier:BGX GestionBDD Liste Produit.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_GestionBDD_Liste_Produit.png&amp;diff=9589"/>
				<updated>2014-02-19T15:22:07Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : a téléversé une nouvelle version de « Fichier:BGX GestionBDD Liste Produit.png »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_GestionBDD_Liste_Produit.png&amp;diff=9588</id>
		<title>Fichier:BGX GestionBDD Liste Produit.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_GestionBDD_Liste_Produit.png&amp;diff=9588"/>
				<updated>2014-02-19T15:16:54Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9587</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9587"/>
				<updated>2014-02-19T14:56:48Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Gestion de la base de donnée */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée. &lt;br /&gt;
Deux pages internet permettent ainsi de consulter, d'ajouter et de supprimer des produits et des ingrédients. Une troisième gère elle les relations entre les deux, sans avoir à se soucier des correspondances entre les différents ids.&lt;br /&gt;
&lt;br /&gt;
L'outil est développé en html5 et utilise l'api de connexion à la base de donnée développée précédemment en java. Certaines fonctionnalités on cependant due être ajoutées afin d'avoir de plus grandes possibilités de requêtes SQL. L'ensemble de l'outil à été habillé graphiquement à l'aide de INK (Interface Kit), un framework CSS3 open source, pour un meilleur rendu visuel.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_GestionBDD_Liste_Produit.png]]&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;br /&gt;
&lt;br /&gt;
* [http://ink.sapo.pt INK Interface Kit]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9586</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9586"/>
				<updated>2014-02-19T14:40:00Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Bibliographie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée. &lt;br /&gt;
Deux pages internet permettent ainsi de consulter, d'ajouter et de supprimer des produits et des ingrédients. Une troisième gère elle les relations entre les deux, sans avoir à se soucier des correspondances entre les différents ids.&lt;br /&gt;
&lt;br /&gt;
L'outil est développé en html5 et utilise l'api de connexion à la base de donnée développée précédemment en java. Certaines fonctionnalités on cependant due être ajoutées afin d'avoir de plus grandes possibilités de requêtes SQL. L'ensemble de l'outil à été habillé graphiquement à l'aide de INK (Interface Kit), un framework CSS3 open source, pour un meilleur rendu visuel.&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;br /&gt;
&lt;br /&gt;
* [http://ink.sapo.pt INK Interface Kit]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9585</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9585"/>
				<updated>2014-02-19T14:39:19Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Pour aller plus loin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée. &lt;br /&gt;
Deux pages internet permettent ainsi de consulter, d'ajouter et de supprimer des produits et des ingrédients. Une troisième gère elle les relations entre les deux, sans avoir à se soucier des correspondances entre les différents ids.&lt;br /&gt;
&lt;br /&gt;
L'outil est développé en html5 et utilise l'api de connexion à la base de donnée développée précédemment en java. Certaines fonctionnalités on cependant due être ajoutées afin d'avoir de plus grandes possibilités de requêtes SQL. L'ensemble de l'outil à été habillé graphiquement à l'aide de INK (Interface Kit), un framework CSS3 open source, pour un meilleur rendu visuel.&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9584</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9584"/>
				<updated>2014-02-19T14:35:32Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Pour aller plus loin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée. &lt;br /&gt;
Deux pages internet permettent ainsi de consulter, d'ajouter et de supprimer des produits et des ingrédients. Une troisième gère elle les relations entre les deux, sans avoir à se soucier des correspondances entre les différents ids.&lt;br /&gt;
&lt;br /&gt;
L'outil est développé en html5 et utilise l'api de connexion à la base de donnée développée précédemment en java. Certaines fonctionnalités on cependant due être ajoutées afin d'avoir de plus grandes possibilités de requêtes SQL.&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9583</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9583"/>
				<updated>2014-02-19T14:18:24Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Pour aller plus loin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
L’administration du serveur et de sa base de donnée n'est pas forcement une chose intuitive. Cependant, cette tâche pourra être confiée à des personnes n'ayant aucunes connaissances spécifiques en MySQL. Dans cet optique, nous avons donc développé une interface simple d'utilisation et dynamique afin de gérer la base de donnée.&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9558</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9558"/>
				<updated>2014-02-18T13:26:54Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Le Projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
=== Gestion de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
=== Interface de supervision serveur ===&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9557</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9557"/>
				<updated>2014-02-18T13:20:20Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Communication Chariot - Serveur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin. &lt;br /&gt;
&lt;br /&gt;
La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9556</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9556"/>
				<updated>2014-02-18T13:16:58Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Développement Matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.jpg]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin.&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9544</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9544"/>
				<updated>2014-02-17T17:53:28Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Communication Chariot - Serveur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.png]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
Finalement le démarrage du lecteur RFID s'effectue directement depuis la première page de l'application mobile. Cela présente notamment l'avantage de ne pas trop solliciter le reader lorsqu'il n'est pas utile, et donc d'économiser sa batterie. La première page se présente donc comme suit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_Premiere_Page.png]]&lt;br /&gt;
&lt;br /&gt;
Elle fait appel à la même servlet que pour le lancement web, mais on peut désormais la lancée au moment où en à effectivement besoin.&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9543</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9543"/>
				<updated>2014-02-17T17:37:14Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Choix des technologies utilisées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.png]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Configuration_WIFI.jpg&amp;diff=9542</id>
		<title>Fichier:BGX Configuration WIFI.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Configuration_WIFI.jpg&amp;diff=9542"/>
				<updated>2014-02-17T17:35:36Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9541</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9541"/>
				<updated>2014-02-17T17:26:10Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Objectif */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser une application pour un chariot RFID permettant d'afficher sur le smartphone du client la liste des produits présents dans le chariot.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.png]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Ping_Reader.png&amp;diff=9540</id>
		<title>Fichier:BGX Ping Reader.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Ping_Reader.png&amp;diff=9540"/>
				<updated>2014-02-17T17:21:44Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9539</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9539"/>
				<updated>2014-02-17T17:20:08Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Problèmes liés au module USB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.png]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations à l'équipe d'Impinj, nous sommes arrivés à la conclusion qu'il était préférable de changer le type de connexion pour un relais via une borne wifi, sans vraiment savoir pourquoi la solution utilisant le dongle USB ne fonctionnait pas. Une borne wifi est alors embarquée dans le chariot et est connectée directement sur le port RJ45 du reader. Cette solution est cependant plus coûteuse en place, mais également en énergie car il faut alors alimenter la borne wifi à part.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9538</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9538"/>
				<updated>2014-02-17T17:04:14Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Développement Matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.png]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion. La liaison avec le reader est effective mais se coupe par intermittence.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Ping_Reader.png]]&lt;br /&gt;
&lt;br /&gt;
Après avoir chercher et demander des informations&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9537</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9537"/>
				<updated>2014-02-17T17:01:15Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Développement Matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
[[fichier:BGX_Configuration_WIFI.png]]&lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Problèmes liés au module USB ===&lt;br /&gt;
&lt;br /&gt;
L'utilisation des modules USB spécifiques présente cependant un problème. Ces appareils sont sensé fonctionner correctement puisqu'ils ont étés testés et conseillés par l'équipe Impinj qui a développé le reader RFID. Cependant en pratique on observe des perturbation dans la connexion.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9536</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9536"/>
				<updated>2014-02-17T16:42:01Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Création de la base de données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Développement du serveur ==&lt;br /&gt;
&lt;br /&gt;
=== Design de la base de donnée ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9535</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9535"/>
				<updated>2014-02-17T16:40:26Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Développement de l'application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Habillage estétique ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_App_finale.png]]&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données ==&lt;br /&gt;
&lt;br /&gt;
=== Design ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et Mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9534</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9534"/>
				<updated>2014-02-17T16:36:11Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Mise en place du projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées ===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données ==&lt;br /&gt;
&lt;br /&gt;
=== Design ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et Mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9533</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9533"/>
				<updated>2014-02-17T16:34:52Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application ===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
=== Architecture html ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionnelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données ==&lt;br /&gt;
&lt;br /&gt;
=== Design ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients, ce qui n'était pas géré jusqu'à lors.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et Mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9530</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9530"/>
				<updated>2014-02-17T16:23:32Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Choix des technologies utilisées : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif : ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description : ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Choix techniques : matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une communication wifi entre le serveur et le smartphone&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application :===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
=== Architecture html &amp;amp; Instanciation Dynamique ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données==&lt;br /&gt;
&lt;br /&gt;
=== Design ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et Mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi : ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Gantt1.png&amp;diff=9528</id>
		<title>Fichier:BGX Gantt1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BGX_Gantt1.png&amp;diff=9528"/>
				<updated>2014-02-17T16:11:27Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9527</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=9527"/>
				<updated>2014-02-17T16:05:39Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Planning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif : ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description : ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Choix techniques : matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
&lt;br /&gt;
Ces plannings sont des supports pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
=== Première partie ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième partie === &lt;br /&gt;
&lt;br /&gt;
[[Fichier:BGX_Gantt2.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application :===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
=== Architecture html &amp;amp; Instanciation Dynamique ===&lt;br /&gt;
Avant de relier le serveur à l'application ou avant de procéder à l'habillage graphique, il faut s'assurer d'avoir une base de travail propre. Actuellement, l'application est sommaire mais permet l'affichage d'une liste d'articles, le prix total du panier et la mise en évidence des produits qui peuvent poser problème.&lt;br /&gt;
&lt;br /&gt;
Voici un aperçu des pages &amp;quot;Articles&amp;quot; et &amp;quot;profil&amp;quot; fonctionelles :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:avant_après.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données==&lt;br /&gt;
&lt;br /&gt;
=== Design ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et Mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi : ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BDD.png&amp;diff=7538</id>
		<title>Fichier:BDD.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:BDD.png&amp;diff=7538"/>
				<updated>2013-11-12T09:02:18Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7537</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7537"/>
				<updated>2013-11-12T09:01:40Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif : ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description : ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Choix techniques : matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
''mis à jour le: 10/10/2013''&lt;br /&gt;
&lt;br /&gt;
Ce planning est un support pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application :===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données==&lt;br /&gt;
&lt;br /&gt;
=== Design ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BDD.png]]&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et Mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi : ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7536</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7536"/>
				<updated>2013-11-12T08:56:00Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Création de la base de données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif : ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description : ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Choix techniques : matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
''mis à jour le: 10/10/2013''&lt;br /&gt;
&lt;br /&gt;
Ce planning est un support pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application :===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données==&lt;br /&gt;
&lt;br /&gt;
=== Design ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
Insérer l'image.&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients.&lt;br /&gt;
&lt;br /&gt;
=== Persistance et Mapping des données ===&lt;br /&gt;
&lt;br /&gt;
La mise en relation avec la base de donnée s'effectue à l'aide de la librairie DbUtils d'Apache. Elle a la particularité de présenter une implémentation peu complexe vis à vis d'autres interface de persistance. Il suffit ensuite de jouer les requêtes voulues directement depuis les classes java. L’inconvénient de cette librairie est qu'il est obligatoire d'effectuer la correspondance entre les tables SQL et les objets java correspondant via un mapping manuel. Cela reste cependant raisonnable puisqu'il n'y a qu'un nombre très limité d'objets.&lt;br /&gt;
&lt;br /&gt;
Nous avons développé notre propre manager pour l'implémentation de la librairie DbUtils. Celui ci est sous forme d'une énumération utilisée en singleton, afin de garder une connexion unique à la base de données, et ce quel que soit le nombre de requêtes jouées. &lt;br /&gt;
Pour la correspondance entre objets et tables, chaque objet à persister ou à récupérer de la base possède son propre manager DAO (Data Acces Object), utilisant lui même la connexion du manager de librairie.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi : ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7535</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7535"/>
				<updated>2013-11-12T08:40:56Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Création de la base de données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif : ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description : ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Choix techniques : matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
''mis à jour le: 10/10/2013''&lt;br /&gt;
&lt;br /&gt;
Ce planning est un support pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application :===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données==&lt;br /&gt;
&lt;br /&gt;
=== Design ===&lt;br /&gt;
&lt;br /&gt;
La base de donnée utilisée lors de l'application initiale était réalisée à l'aide d'un fichier texte, et présentait des fonctionnalités limitées. On ne pouvait par exemple donner qu'un seul ingrédient allergène par produit. De plus, ce type de modèle de donnée n'était pas non plus adapté à de grosse quantité de données. Nous avons donc mis en place un serveur MySQL avec notre propre base de donnée. Sa création à été effectuée conformément au schéma suivant.&lt;br /&gt;
&lt;br /&gt;
Insérer l'image.&lt;br /&gt;
&lt;br /&gt;
Cette modélisation, bien que simple, permet notamment une relation n-n entre les Produits et les Ingrédients.&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi : ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7534</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7534"/>
				<updated>2013-11-12T08:21:00Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Choix techniques : matériel requis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif : ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description : ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Choix techniques : matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
* Routeur Wifi Linksys WRT54GL&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
''mis à jour le: 10/10/2013''&lt;br /&gt;
&lt;br /&gt;
Ce planning est un support pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application :===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi : ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7533</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7533"/>
				<updated>2013-11-12T08:17:23Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Dessin de l'application : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif : ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description : ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Choix techniques : matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
''mis à jour le: 10/10/2013''&lt;br /&gt;
&lt;br /&gt;
Ce planning est un support pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application :===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi : ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7532</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7532"/>
				<updated>2013-11-12T08:14:25Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Développement Matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif : ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description : ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Choix techniques : matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
''mis à jour le: 10/10/2013''&lt;br /&gt;
&lt;br /&gt;
Ce planning est un support pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application :===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi : ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo. Nous avons donc dans un premier temps effectué quelques test avec un hotspot wifi créé à partir du logiciel Connectify, principalement pour vérifier l’établissement de la connexion entre le reader et le serveur. Nous avons ensuite opté pour une solution durable en configurant un réseau à l'aide d'un routeur wifi.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur. Nous avons pour cela utilisé LLRP, une bibliothèque dédiée aux applications RFID. Un article sur le site d'Impinj nous à permis d’implémenter l'interface LLRPEndpoint afin d'établir un listener spécifique (ROSpec) permettant le début du transfert de données et son suivi en temps réel.&lt;br /&gt;
Le pilotage de ce listener s'effectue à l'aide d'une interface web de type servlet, et le suivi des tags à lieu dans la console java. La communication est établie à ce stade, mais nous pensons néanmoins que l'interface web sera amenée à disparaître pour être intégrée de façon cachée dans l'application mobile (lors de son démarrage et du flash du QRcode chariot par exemple).&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7531</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7531"/>
				<updated>2013-11-12T07:42:29Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Développement Matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif : ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description : ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Choix techniques : matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
''mis à jour le: 10/10/2013''&lt;br /&gt;
&lt;br /&gt;
Ce planning est un support pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application :===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration du module USB - WiFi : ===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. &lt;br /&gt;
&lt;br /&gt;
La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo.&lt;br /&gt;
&lt;br /&gt;
=== Communication Chariot - Serveur ===&lt;br /&gt;
&lt;br /&gt;
Une fois dans le même réseau, il convenait de faire suivre les données lues par le reader vers le serveur.&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7442</id>
		<title>Chariot RFID</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Chariot_RFID&amp;diff=7442"/>
				<updated>2013-10-31T16:27:14Z</updated>
		
		<summary type="html">&lt;p&gt;Rgouenar : /* Configuration du module USB - WiFi : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Céline BURTAIRE - Robin GOUENARD&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== Objectif : ==&lt;br /&gt;
&lt;br /&gt;
Réaliser un chariot RFID permettant d'envoyer en temps réel la liste des produits présents sur le smartphone du client&lt;br /&gt;
&lt;br /&gt;
== Description : ==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d’une collaboration Recherche-Industrie, l'IRCICA a contribué au développement d’un projet consistant au DEveloppement de CARTon Electronique (DECARTE). Le projet a permis d’imprimer directement sur le carton d’emballage d’un produit une étiquette RFID (Radio Frequency Identification Device). Un premier démonstrateur intitulé le « caddie intelligent » a été mis au point en développant une interface de communication entre l’étiquette RFID et le consommateur utilisant un PC. Ce dernier peut ainsi disposer d’informations très précises et personnalisées sur la composition du produit (allergènes, taux de sucres, graisses… ou son prix). En fonction de son propre profil et de son budget, le consommateur accepte ou refuse un produit en s’épargnant ainsi la fastidieuse lecture des emballages actuels. &lt;br /&gt;
&lt;br /&gt;
L’objectif de ce projet est de poursuivre et d’améliorer le concept en déployant le logiciel sur son propre mobile. La première étape consiste à installer sur le chariot l'antenne RFID et le module de gestion RFID. Ce dernier communique via Ethernet. Il faut mettre en place un pont ethernet/WiFi afin que le chariot puisse se connecter directement sur l'infrastructure WiFi du magasin. La deuxième étape consiste pour le client à lancer l'application et à identifier le chariot via un QR Code ou un tag NFC. L'application sera réalisé sous Android. Elle permettra de connaître le contenu exact du chariot en interrogeant directement ce dernier.&lt;br /&gt;
&lt;br /&gt;
== Choix techniques : matériel requis ==&lt;br /&gt;
&lt;br /&gt;
* Lecteur RFID [http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx Speedway Revolution Reader] &lt;br /&gt;
* Dongle USB Wifi [http://www.wifi-highpower.com/cartes-wifi-usb/10-awus036h-carte-wifi-usb-alfa-network-1000-mw-et-antenne-5-dbi.html Alfa AWUS036H]&lt;br /&gt;
&lt;br /&gt;
= Le Projet =&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
''mis à jour le: 10/10/2013''&lt;br /&gt;
&lt;br /&gt;
Ce planning est un support pour organiser le projet. Les couleurs représentent les 2 membres du binômes. Certaines tâches seront effectuées en parallèles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
== Mise en place du projet ==&lt;br /&gt;
===Choix des technologies utilisées :===&lt;br /&gt;
&lt;br /&gt;
Sur une application tel que le chariot RFID, il est primordial de prendre en compte l'aspect énergétique des systèmes autonomes. Nous avons donc déporté un maximum des fonctionnalités de traitement sur un serveur. Celui ci agit principalement comme relais entre le chariot et le smartphone. Le choix des différentes technologies est venue logiquement une fois l'architecture fixée. On peut notamment relever :&lt;br /&gt;
* une communication wifi entre le chariot et le réseau (serveur)&lt;br /&gt;
* une application java sur le serveur, pour interpréter les tags RFID lus par le chariot&lt;br /&gt;
* une base de donnée MySQL sur le serveur, pour stoker les produits correspondants aux différents tags&lt;br /&gt;
* une interface basée sur HTML5, CCS3 et jQuery mobile, pour un traitement coté client adaptable aux différentes plateformes existantes (smartphone, tablette, android, iOS, windowsphone, etc) et communiquant avec le serveur via JSON (AJAX).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_systeme.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Dessin de l'application :===&lt;br /&gt;
&lt;br /&gt;
Voilà ce à quoi ressemblera l'application élémentaire.&lt;br /&gt;
Il y aura 2 pages. La première listera les articles présents dans le panier avec leurs prix, les articles suspects seront en rouge. Un bouton permettra d'accéder à la seconde page pour paramétrer son profil. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_accueil.jpg]]  -  [[Fichier:page_profil.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Développement de l'application==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Création de la base de données==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Développement Matériel ==&lt;br /&gt;
&lt;br /&gt;
===Configuration du module USB - WiFi :===&lt;br /&gt;
&lt;br /&gt;
Le module USB wifi fonctionne avec une Chipset Realtek 8187L. Le lecteur RFID dont nous disposons possède déjà les drivers de cette carte intégrés en natif, il suffit donc de configurer le lecteur RFID pour utiliser son interface wlan par défaut. On utilise pour ca un terminal série. La configuration en elle même s'effectue sans problèmes majeurs, cependant le seul réseau wifi disponible au labo est &amp;quot;eduroam&amp;quot;. Ce réseau est légèrement différent d'un réseau wifi classique, au sens où il nécessite en plus du SSID un login et un mot de passe. La configuration de base du lecteur ne permettant pas d'être configuré pour se connecter à un tel réseau, nous avons dû trouver une solution rapide, pour être utilisée au moins dans les conditions du labo.&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
* [http://blog.valtech.fr/2011/04/18/passez-vos-applications-html5-sur-android HTML5 vers Android]&lt;br /&gt;
&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Connecting-to-Speedway-Revolution-Reader-Using-WiFi-USB-Adapter Tuto configuration du recepteur rfid en wifi]&lt;br /&gt;
* [http://www.easytutoriel.com/creer-reseau-sans-fil-local-lan-sans-routeur-adhoc Créer un réseau AdHoc ]&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.rifidi.net/index.php?title=LLRP_Reader Wiki du protocole de communication LLRP]&lt;br /&gt;
* [http://learn.impinj.com/articles/en_US/RFID/Creating-RFID-Applications-with-Java/ HelloWorld de la librairie LLRP LTK]&lt;/div&gt;</summary>
		<author><name>Rgouenar</name></author>	</entry>

	</feed>