PFE Finale
PFE Finale
PFE Finale
net/publication/354573162
CITATIONS READS
0 104
2 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Abdelwadoud Achouche on 14 September 2021.
Thème
Conception et Réalisation d'une Application
QR code au service de l'INTTIC
Présenté Par :
CHELLAL Mohammed.
ACHOUCHE Abdelwadoud.
Encadrée Par :
Promotion : IGE 41
Année Universitaire : 2020 - 2021
Résumé
Mots-clés : QR code, encodage, décodage, code QR générateur, lecteur code QR, base de
donnée, interface graphique, bibliothèque, navigateur web.
i
Abstract
We used JavaScript for encoding and decoding user information, HTML & CSS for
the design of our application's GUI, and PHP for connecting to the database.
The popular library “ QRCode for Javascript “ helped us to develop a user interface on
the web browser and encode the data in a QR code symbol.
ii
Table des matières
Résumé ................................................................................................................... i
Abstract.................................................................................................................. ii
Table des matières ................................................................................................ iii
Dédicace ................................................................................................................ v
Remerciements ..................................................................................................... vi
Liste des figures................................................................................................... vii
Liste des tableaux ................................................................................................. ix
Liste des acronymes .............................................................................................. x
Introduction générale............................................................................................. 1
Chapitre I : Généralité sur le code QR. ................................................................. 3
1.1. Introduction ................................................................................................ 3
1.2. Historique ................................................................................................... 3
1.3. Définition d’un code QR ............................................................................ 4
1.4. Description d’un code QR.......................................................................... 5
1.5. Structure d’un code QR.............................................................................. 7
1.6. Principes de fonctionnement .................................................................... 10
1.7. Domaines d’utilisation des codes QR ...................................................... 13
1.8. Conclusion................................................................................................ 19
Chapitre II : Aspect technique des codes QR...................................................... 21
2.1. Introduction .............................................................................................. 21
2.2. Elaboration d’un code QR........................................................................ 21
2.2.1. L'analyse des données ........................................................................ 21
2.2.2. Codage de donnée .............................................................................. 23
2.2.3. Codage de correction d'erreur ............................................................ 26
2.2.4. Structure finale d’un message ............................................................ 31
2.2.5. Placement du module dans la matrice................................................ 36
2.2.6. Placer les bits de données .................................................................. 42
iii
2.3. Conclusion................................................................................................ 45
Chapitre III : Conception et réalisation de l’application. .................................... 48
3.1. Introduction .............................................................................................. 48
3.2. Analyse des besoins ................................................................................. 48
3.2.1. Besoins fonctionnels .......................................................................... 48
3.2.2. Besoins non fonctionnels ................................................................... 48
3.3. Spécification des Besoins......................................................................... 49
3.4. Cas d’utilisation ....................................................................................... 49
3.5. Conception de la base de données............................................................ 49
3.6. Environnement de travail ......................................................................... 50
3.6.1. Environnement matériel ..................................................................... 50
3.6.2. Environnement logiciel ...................................................................... 50
3.7. Architecture physique et technique .......................................................... 52
3.8. Interface de l’application ......................................................................... 52
3.9. Conclusion................................................................................................ 59
Conclusion générale ............................................................................................ 61
Bibliographie ....................................................................................................... 62
Webographie ....................................................................................................... 62
iv
Dédicace
Tous d’abord, je tiens à remercier ALLAH, qui m’a aidé et donné la patience et le
courage durant cette longue année d’études.
Je dédie ce modeste travail à mes parents, mes frères : Bilal & Yacine et ma petite sœur
et toute la grande famille CHELLAL qui par leurs encouragements et leur patience, j’ai pu
surmonter tous les obstacles.
Je ne manquerais pas de dédier et dire un grand merci à qui ont contribué de près ou de
loin à l’élaboration de ce travail.
À tous ceux qui j’aime et qui m’aiment.
Mohammed CHELLAL
Abdelwadoud ACHOUCHE
v
Remerciements
Nous tenons à remercier avant tout « ALLAH » qui nous a accordé la santé, la possibilité
ainsi que la volonté d’entamer et de continuer nos études.
Nous remercions les membres du jury : Pr. Belkacem KOUNINEF et Dr. Mohammed
DJELTI, d’avoir accepté d’examiner et d’évaluer notre modeste travail.
Nous remercions tous ceux qui ont contribué de près ou de loin, pour leur soutien moral ou
matériel, dans la réalisation de notre projet.
Nous remercions chaleureusement nos parents et toutes nos familles (merci pour vos
encouragements permanents et pour votre confiance).
Et enfin, un remerciement particulier à tous étudiants de la promotion IGE 41, pour ces cinq
superbes années d’études en leur compagnie.
Nous leur souhaitons à tous une carrière réussie dans le domaine des TICs.
vi
Liste des figures
vii
Figure 33 : Le placement des bits dans la première colonne ascendante. ......... 44
Figure 34 : Placement vers le bas. ...................................................................... 44
Figure 35 : intersection avec le motif d'alignement. .......................................... 45
Figure 36 : Le saut des modèles de fonction. .................................................... 45
Figure 37 : Diagramme de cas d’utilisation. ...................................................... 49
Figure 38 : L’architecture physique « trois tiers » de l’application. .................. 52
Figure 39 : Page d’accueil de l’application. ....................................................... 53
Figure 40 : Générateur du code QR. .................................................................. 53
Figure 41 : Le code QR généré. ......................................................................... 54
Figure 42 : Réception d’un email. ...................................................................... 54
Figure 43 : Contenu de l’email reçu................................................................... 55
Figure 44 : Lecteur QR code. ............................................................................. 55
Figure 45 : Lecteur prêt à scanner le code QR. .................................................. 56
Figure 46 : Contenu du code QR scanné............................................................ 56
Figure 47 : Code QR est déjà scanné. ................................................................ 57
Figure 48 : Base de données............................................................................... 57
Figure 49 : Activation du paramètre d’accès à l’email. ..................................... 58
Figure 50 : Empêchement de l’envoi d’email par Google. ................................ 58
viii
Liste des tableaux
ix
Liste des acronymes
CE : Correction d’Erreur.
QR : Quick Response.
x
INTRODUCTION
GENERALE
xi
Introduction générale
Le code QR, c'est-à-dire «Quick Response», est un code matriciel 2D conçu en tenant
compte de deux points, c'est-à-dire qu'il doit stocker une grande quantité de données par
rapport aux codes à barres 1D et qu'il doit être décodé à grande vitesse à l'aide de n'importe
quel appareil portable comme les téléphones. Le code QR offre une capacité de stockage de
données élevée, une numérisation rapide, une lisibilité omnidirectionnelle et de nombreux
autres avantages, notamment la correction des erreurs (afin que le code endommagé puisse
également être lu avec succès) et différents types de versions.
De nos jours, un code QR est appliqué dans différents flux d'applications liés au
marketing, à la sécurité, aux universitaires, etc. et gagne en popularité à un rythme très élevé.
Jour après jour, de plus en plus de personnes prennent conscience de cette technologie
et l'utilisent en conséquence.
1
Chapitre I :
2
Chapitre 1 : GENERALITE SUR LE CODE QR
1.1. Introduction
De nos jours, un code QR est appliqué dans différents flux d'applications liés à notre
vie, donc nous le trouvons partout.
Dans ce chapitre nous allons voir quelques notions ou vue globale sur la définition de
code QR ainsi la structure de ce dernier et aussi les caractéristiques qui spécifient les codes
QR.
1.2. Historique
Le code QR a été créé par l'entreprise japonaise Denso-Wave en 1994 pour suivre le
chemin des pièces détachées dans les usines de Toyota.
Il est rendu public en 1999 sous licence libre, cela a contribué à la diffusion du code au Japon.
Par la suite, il prend un réel essor avec l'avènement des smartphones.
À la fin des années 2000, il devient l'un des codes bidimensionnels les plus populaires
dans le monde, et les applications de lecture de codes QR sont souvent déjà installées par les
fabricants dans les téléphones mobiles. [1]
3
Chapitre 1 : GENERALITE SUR LE CODE QR
Le code QR (en anglais QR Code) est un type de code-barres en deux dimensions (ou
code matriciel) constitué de modules noirs disposés dans un carré à fond blanc L'agencement
de ces modules définit l'information que contient le code QR (QR est l’abréviation de l'anglais
Quick Response) ce qui signifie que le contenu du code peut être décodé rapidement après
avoir été lu par un lecteur de code-barres, un téléphone mobile, un smartphone, ou encore une
webcam. Son avantage est de pouvoir stocker plus d'informations qu'un code à barres, et
surtout des données directement reconnues par des applications. [2]
4
Chapitre 1 : GENERALITE SUR LE CODE QR
5
Chapitre 1 : GENERALITE SUR LE CODE QR
Le code QR a l'atout de pouvoir être placé dans des espaces réduits, mais il faut faire
attention pour permettre une lecture aisée.
En effet, plus il y a de points dans la matrice, plus il y a de l'information stockée dans le code
QR. Donc il faut faire un compromis entre la taille et la lisibilité du code QR sous peine
d'avoir des difficultés à le décoder.
Le code QR a également la capacité de pouvoir être lu dans tous les sens (360°) de manière très
rapide grâce à des repères dans la matrice facilement détectables. [2]
En effet, le Code QR tolère d'être abîmé (déchirures, salissures, etc.) car ce dernier
contient un code correcteur et de redondance de l'information.
En résumé, la force du code QR est d'intégrer un taux de correction d'erreur qui définit la
quantité d'informations répétées, et donc une tolérance plus ou moins importante aux
dégradations.
6
Chapitre 1 : GENERALITE SUR LE CODE QR
Plus le taux de correction d'erreurs est élevé, plus le code QR sera complexe à la lecture.
Le code QR est composé de plusieurs parties distinctes. Certaines sont directement liées
aux données contenues dans le symbole (zone d’encodage), tandis que d’autres ont des
fonctions précises pour faciliter la lecture du code QR (motifs fonctionnels ou function
patterns).
7
Chapitre 1 : GENERALITE SUR LE CODE QR
Comme nous pouvons le remarquer, un code QR est composé de carrés noirs et blancs qui
s'appellent modules. Chaque module représente une valeur binaire :
NOIR => 1.
BLANC => 0.
La zone de silence est composée de 4 modules de largeur pour délimiter le code QR, cette
dernière est non obligatoire mais recommandée. Cette zone facilite fortement la lecture du code
QR.
Les séparateurs permettent de séparer les motifs de repérage (motifs de détection du position)
du reste du code.
8
Chapitre 1 : GENERALITE SUR LE CODE QR
Les motifs de détection de position sont très ressemblants aux motif d'alignement, à la
différence près qu'ils sont plus gros et qu'ils sont toujours présents au nombre de 3 dans le
motif du code QR.
La région du code contient toutes les données encodées, avec le code de correction d'erreur, les
informations de version et de format.
Il existe dans le code 2 principales régions. Le code contenant les données à stocker et le code
correcteur. Le code correcteur permettra, en cas de perte des données stockées, à corriger
celles-ci et récupérer les informations détruites. [2]
Toutefois, il est important de noter que plus un code QR a une version élevée, plus il sera
difficile à décoder.
Ainsi, pour permettre une meilleure lecture, le nombre de motif de détection de position
augmentera en fonction de la version utilisée.
De plus, nous remarquerons que pour un QR Code très simple (version 1), il n'y a pas besoin de
motif d'alignement. [3]
9
Chapitre 1 : GENERALITE SUR LE CODE QR
Le principe du code QR, qui en fait son principal atout, est d'utiliser la redondance
d'informations.
En informatique, la redondance des données (ou data redundancy en anglais) désigne le fait des
données identiques soient disponibles dans différentes bases ou différents gisements de
données.
Ces données redondantes peuvent réapparaître dans différents champs d’une même base de
données ou dans plusieurs emplacements différents.
10
Chapitre 1 : GENERALITE SUR LE CODE QR
Le message est plongé dans un ensemble plus grand, la différence de taille contient la
redondance, l'image du message par le plongement est transmise. En cas d'altération du
message, la redondance est conçue pour détecter ou corriger les erreurs. [3]
11
Chapitre 1 : GENERALITE SUR LE CODE QR
Dans notre exemple ici, le décodeur trouve 45 au lieu de 41, Il sait donc détecter qu'il y
a eu une erreur lors de la transmission du message, donc Il note de côté la différence entre le
nouveau nombre trouvé et celui qu'il a en mémoire.
Maintenant, pour corriger l'erreur, il doit trouver où se situe celle-ci parmi les informations
reçues. Pour le second nombre de redondance, il trouve une différence. Cette différence divisée
par la valeur de l'erreur donnera la position de l'erreur. Il faut donc retirer 4 au nombre du
rang 2. Le décodeur a donc pu détecter et corriger l'erreur simplement pour fournir le bloc
original, et ce malgré l'altération du message. Il faut noter que lors d'une transmission sans
perturbation, les différences des sommes simples et des sommes pondérées sont nulles.
12
Chapitre 1 : GENERALITE SUR LE CODE QR
Il ne fait aucun doute que le code QR est présent dans la plupart des domaines de notre
vie, donc nous le trouvons partout, parmi ces domaines sont les suivants : [4]
Vos Code QR servent autant pour la communication ciblée que générale : publicité,
lancement de nouveautés, affichage de campagnes promotionnelles, Evènement…
Vos Code QR peuvent être utilisés pour vos campagnes de publicité sur panneaux.
Edition, Bibliothèques…
Code QR pour renseigner sur un auteur, un éditeur, Code QR au dos de livre, Code QR
pour le rangement et l’information en bibliothèque, Code QR pour le classement de
livres.
13
Chapitre 1 : GENERALITE SUR LE CODE QR
Evènementiel, culture…
Code QR pour salon, foire et évènements en tous genres, Code QR pour les stands et
affiches d’expos… Un Code QR imprimé au dos d’un ticket, ou sur un programme, un
magazine ciné donne accès à un contenu spécifique, Code QR extraits de films, Code
QR pour donné des informations sur des évènements, Code QR de remises, offres
commerciales de partenaires, Code QR culturels.
14
Chapitre 1 : GENERALITE SUR LE CODE QR
Grande distribution
Les Code QR imprimés sur vos produits, ou sur vos catalogues ou sur vos PLV
permettent de promouvoir les ventes, renseigner vos clients, gérer des opérations
promotionnelles…
15
Chapitre 1 : GENERALITE SUR LE CODE QR
Code QR pour renseigner les visiteurs sur un musée, code QR pour renseigner sur une
œuvre, une peinture, une sculpture, code QR pour commenter une expo, Code QR pour
raconter l’histoire d’un lieu, Code QR pour donner des indications horaires, Code QR
pour tarifs, plans d’accès…
Code QR pour assurer la traçabilité, Code QR pour renseigner sur médicaments, Code
QR pour assurer le suivi des lots, Code QR pour limiter la contrefaçon, Code QR
composition des produits.
16
Chapitre 1 : GENERALITE SUR LE CODE QR
Code QR pour office de tourisme, Code QR pour renseigner les touristes, Code QR
pour gérer les horaires des sites, Code QR pour aider la visite de site, Code QR pour les
horaires, accès sites, Code QR pour tarifs, Code QR pour raconter l’histoire d’un lieu…
Transport, accessibilité
Un Code QR renseigne sur les horaires, les destinations, le trafic, et donne des
informations en temps réel pour vos voyageurs; dans vos véhicules les codes QR
rendent la publicité interactive !
17
Chapitre 1 : GENERALITE SUR LE CODE QR
Traçabilité, sécurité
Une authentification par Code QR permet de valider la réception d’un produit, suivre la
distribution. Le contenu web d’un Code QR alimentaire donne son origine, sa
certification, sa composition.
Code QR pour renseigner avant achat, Code QR pour filière AOC, Code QR pour
traçabilité filière alimentaire, Code QR pour filière Alcools, vins, champagnes…
18
Chapitre 1 : GENERALITE SUR LE CODE QR
1.8. Conclusion
Ce chapitre a été consacré à la description des codes QR, leur structure et aussi
quelques domaines d’utilisation, dans le chapitre suivant nous rentrerons dans un aspect plus
technique et détaillé dans l'élaboration de ces fameux petits carrés bourrés d'informations.
19
Chapitre II :
Aspect technique des
codes QR
20
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
2.1. Introduction
Au cours de ce chapitre, nous avons présenté les notions basiques pour élaborer un code
QR. Nous avons commencé par l’analyse des données qui est la 1ère étape pour élaborer un
code QR, puis nous parlons sur le codage des données, nous citons toutes les étapes du codage
jusqu'à ce que nous arrivions à placer les modules dans la matrice.
Chaque mode code le texte sous forme de chaîne de bits, mais chaque mode utilise une
méthode différente pour convertir le texte en bits.
Chaque méthode est optimisée pour générer la chaîne de bits la plus courte possible pour ce
type de données. [5]
21
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
chaque caractère Kanji, de sorte que le mode Kanji compresse les caractères Kanji plus
efficacement. Si la chaîne d'entrée entière se compose de caractères dans la plage à
deux octets de Shift JIS, utilisez le mode Kanji.
Le mode Extended Channel Interpretation (ECI) spécifie directement le jeu de
caractères (par exemple UTF-8). Cependant, certains lecteurs de codes QR ne prennent
pas en charge le mode ECI et ne comprendront pas les codes QR qui l'utilisent.
Le mode d'ajout structuré encode les données sur plusieurs codes QR, jusqu'à un
maximum de 16 codes QR.
Le mode FNC1 permet au code QR de fonctionner comme un code-barres.
Pour sélectionner le mode le plus efficace pour le code QR, il faut examiner les
caractères de la chaîne d'entrée et vérifier les conditions suivantes :
Il est possible d'utiliser plusieurs modes dans un seul code QR en incluant l'indicateur
de mode avant chaque section d'octets qui utilise ce mode (4 bits qui définissent le mode).
Chaque mode de codage est conçu pour créer la chaîne de bits la plus courte possible
pour les caractères utilisés dans ce mode, Chaque mode utilise une méthode différente pour
convertir le texte d'entrée en une chaîne de bits. [4]
Les codes QR utilisent la correction d'erreur Reed-Solomon. Ce processus crée des mots de
code de correction d'erreurs (octets) sur la base des données codées. Un lecteur de code QR
peut utiliser ces octets de correction d'erreur pour déterminer s'il n'a pas lu les données
correctement, et les mots de code de correction d'erreur peuvent être utilisés pour corriger ces
erreurs.
Les codes QR utilisent le système Reed-Solomon pour la correction d'erreur sur les données.
Le code QR contient jusqu'à 30% de redondance, ce qui signifie qu’il peut être décodé même si
30% des données sont illisibles. [7]
Soyez conscient que les niveaux plus élevés de correction d’erreur nécessitent plus d’octets, de
sorte que plus le niveau de correction d’erreur est élevé, plus le code QR doit être grand.
Nous avons une quarantaine de versions qui sont disponibles. La plus petite version est la
version 1 et mesure 21 pixels sur 21 pixels.
23
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
La version 2 est de 25 pixels par 25 pixels, La plus grande version est la version 40 et mesure
177 par 177 pixels.
Chaque version a une capacité maximale, selon le mode utilisé. De plus, le niveau de
correction d'erreurs restreint davantage la capacité.
Le tableau suivant répertorie les capacités de quelques versions QR pour un mode d'encodage
et un niveau de correction d'erreur donnés.
Donc pour déterminer la plus petite version il faut compter le nombre de caractères à encoder
et déterminer quelle est la version la plus petite pouvant contenir ce nombre de caractères pour
le mode d’encodage et le niveau de correction d’erreur souhaité. [7]
24
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
caractères. Si la phrase faisait plus de 16 caractères, comme HELLO THERE WORLD (qui fait
17 caractères), la version 2 serait la plus petite.
Chaque mode de codage possède un indicateur de mode à quatre bits qui l'identifie. Les
données codées doivent commencer par l'indicateur de mode approprié qui spécifie le mode
utilisé pour les bits qui suivent. Le tableau suivant répertorie les indicateurs de mode pour
chaque mode.
Par exemple, si vous encodez HELLO WORLD en mode alphanumérique, l'indicateur de mode
est 0010.
L'indicateur de nombre de caractères est une chaîne de bits qui représente le nombre de
caractères codés. L'indicateur de nombre de caractères doit être placé après l'indicateur de
mode. De plus, l'indicateur de nombre de caractères doit avoir une longueur d'un certain
nombre de bits, selon la version QR.
Comptez le nombre de caractères dans le texte d'entrée d'origine, puis convertissez ce nombre
en binaire. La longueur de l'indicateur de nombre de caractères dépend du mode d'encodage et
de la version du code QR qui sera utilisée. Pour que la chaîne binaire ait la longueur
appropriée, complétez-la à gauche avec des 0. [8]
Les listes suivantes contiennent les tailles des indicateurs de nombre de caractères pour chaque
mode et version.
Par exemple, si vous encodez HELLO WORLD dans un code QR version 1 en mode
alphanumérique, l'indicateur de nombre de caractères doit avoir une longueur de 9 bits.
Le nombre de caractères de HELLO WORLD est 11. En binaire, 11 est 1011. Complétez-le sur
la gauche pour lui faire 9 bits de long : 000001011. Mettez ceci après l'indicateur de mode de
l'étape 3 pour obtenir la chaîne de bits suivante : 0010 000001011.
Après l’ajout de bits de L'indicateur de nombre de caractères, nous allons codée la chaine
entrée selon le mode que nous avons choisi.
25
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Par exemple : HELLO WORLD est encodé sur la page d'encodage en mode alphanumérique.
Pour l'exemple suivant HELLO WORLD, la chaîne de bits jusqu'à présent est :
Avant de générer des mots de code de correction d'erreurs, il peut être nécessaire de diviser les
mots de code de données en blocs plus petits si le code QR est plus grand que la version 2,
Par exemple, si vous créez un code QR 5-Q ( code QR de version 5 avec correction d’erreurs
de niveau Q ) , Le tableau suivant montre quelques versions de code QR avec les mots de code
qui contient :
26
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
4-H 36
5-L 108
5-M 86
5-Q 62
5-H 46
Tableau 7 : Nombre total de mots de code de données pour cette version et niveau EC.
Le tableau de correction d'erreur [9] indique qu'un code 5-Q a 62 mots de code de données
(chaînes de nombres binaires de 8 bits), par exemple :
27
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Le tableau de correction d'erreurs [9] mentionne 'groupe 1' et 'groupe 2', ainsi que 'nombre de
blocs'. Cela signifie que les mots de code de données doivent être divisés en deux groupes
maximum, et au sein de chaque groupe, les mots de code de données peuvent être encore divisés
en blocs. Les mots de code de données sont décomposés séquentiellement (c'est-à-dire en
commençant par le mot de code 1, puis le mot de code 2, et ainsi de suite.)
Pour un code QR de version 5-Q, il indique qu'il existe deux groupes, dont le premier doit être
divisé en 2 blocs contenant chacun 15 mots de code de données, et le second doit être divisé en 2
blocs contenant chacun 16 données. Mots de code. Notez que 15+15+16+16 = 62, qui est le
nombre total de mots de code de données. Ci-dessous, sont les mots de code ci-dessus, divisés en
groupes et blocs corrects pour illustrer comment faire cette étape.
28
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Dans le tableau, notez que les blocs du groupe 1 se composent de 15 mots de code de données et
que les blocs du groupe 2 se composent de 16 mots de code de données comme spécifié dans le
29
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
tableau de correction d'erreur. Notez également qu'ils sont décomposés séquentiellement. C'est-à-
dire qu'ils sont dans le même ordre qu'avant d'être séparés en blocs.
Le tableau de correction d'erreur indique également que pour un code 5-Q, il existe 18 mots de
code de correction d'erreur par bloc. Dans cet exemple, il y a quatre blocs, il y aura donc quatre
ensembles de 18 mots de code de correction d'erreurs, pour un total de 72 mots de code de
correction d'erreurs.
Comme indiqué dans le tableau de correction d'erreurs, les codes QR plus petits ne nécessitent
pas du tout de fractionner les mots de code de données, donc, pour un code 1-M (par exemple),
les 16 mots de code de données seraient utilisés comme un seul bloc, et Seuls 10 mots de code de
correction d'erreurs devraient être générés.
Les mots de code de correction d'erreur seront générés à l'aide d'une méthode appelée correction
d'erreur Reed-Solomon. Une partie du processus consiste à effectuer une division longue
polynomiale. C'est-à-dire en divisant un polynôme par un autre polynôme.
La division longue polynomiale est légèrement plus compliquée que la division longue standard.
Pour aider à clarifier le processus, voici un exemple simple de division longue polynomiale. [10]
La division longue polynomiale nécessaire pour la correction d'erreur de Reed-Solomon est plus
simple à certains égards que cet exemple, car il ne sera pas nécessaire de traiter les exposants des
termes polynomiaux.
Comme mentionné dans la section précédente, pour générer des mots de code de correction
d'erreur, ce processus utilise une méthode appelée correction d'erreur Reed-Solomon. Avec la
division longue polynomiale, cette méthode utilise un champ de Galois, qui est essentiellement
un ensemble restreint de nombres, ainsi que certaines opérations mathématiques qui créent des
nombres qui sont toujours dans cet ensemble.
30
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Vous devriez maintenant avoir les mots de code de données et leurs mots de code de correction
d'erreur correspondants.
Comme mentionné avant, les codes QR plus volumineux vous obligent à diviser les mots de
code de données en blocs plus petits et à générer des mots de code de correction d'erreurs
séparément pour chaque bloc.
Dans ce cas, les blocs de données et les mots de code de correction d'erreurs doivent être
entrelacés conformément à la spécification du code QR.
Pour les codes plus petits, utilisez les mots de code de correction d'erreur et de données tels
quels.
Veuillez noter que les codes QR plus petits ne se composent que d'un bloc de mots de code de
données, avec un ensemble de mots de code de correction d'erreur pour ce bloc. Dans ce cas,
aucun entrelacement n'est nécessaire.
Placez simplement les mots de code de correction d'erreur après les mots de code de données et
passez à l'étape suivante, le placement du module dans la matrice.
Pour des codes QR plus gros, Sur la partie de codage de la correction d'erreurs, Nous avons cité
un exemple utilisant un code 5-Q.
Le tableau de correction d'erreur indique que le premier groupe d'un code 5-Q se compose de 2
blocs, avec 15 mots de code de données par bloc, et le deuxième groupe se compose de 2 blocs,
avec 16 mots de code de données par bloc.
Notez que la table de correction d'erreur indique que pour chaque bloc, un code 5-Q doit avoir 18
mots de code de correction d'erreur. Maintenant que le codage de correction d'erreurs a été
expliqué, les mots de code de correction d'erreurs pour les données ci-dessus peuvent être
calculés. [11]
Il y a quatre blocs, donc quatre ensembles de 18 mots de code de correction d'erreur doivent être
générés. Ce qui suit est un tableau mis à jour qui montre les mots de code de correction de
données de chaque bloc convertis en une liste d'entiers, et les 18 mots de code de correction
d'erreur générés pour chaque bloc.
Numéro Numéro Mots de code de données dans le Mots de code de données sous forme
de de bloc groupe d'entiers
31
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Groupe Bloc 1 (mot de code #31) 10110110 Mots de code de données a partir de la
2 (mot de code #33) 11110111 gauche sous forme d'entiers:
(mot de code #34) 01110111 182,230,247,119,50,7,118,134,87,38,8
(mot de code #35) 00110010 2,6,134,151,50,7Mots de code de
(mot de passe #36)00000111 correction d'erreur :
(mot de code #37) 01110110 148 116 177 212 76 133 75 242 238 76
(mot de code #38) 10000110 195 230 189 10 108 240 192 141
(mot de code #39) 01010111
(mot de code #40) 00100110
(mot de code #41) 0101010
32
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Tableau 9 : les mots de code de correction de données de chaque bloc les mots de code de
correction d'erreur générés.
Maintenant que les mots de code de correction d'erreur pour les données ont été calculés, la
section suivante explique le processus d'entrelacement des blocs de données et des mots de code
de correction d'erreur.
Ce motif est répété, en parcourant les blocs, jusqu'à ce que tous les mots de code de données
aient été entrelacés.
33
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Faites-le jusqu'à ce que tous les mots de code de correction d'erreurs aient été utilisés. [11]
Col Col Col Col Col Col Col Col Col Col Col Col Col Col Col Col
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Bloc 67 85 70 134 87 38 85 194 119 50 6 18 6 103 38
1
Bloc 246 246 66 7 118 134 242 7 38 86 22 198 199 146 6
2
Bloc 182 230 247 119 50 7 118 134 87 38 82 6 134 151 50 7
3
Bloc 70 247 118 86 194 6 151 50 16 236 17 236 17 236 17 236
4
Comme décrit ci-dessus, prenez le premier mot de code de données du premier bloc, suivi du
premier mot de code de données du deuxième bloc, suivi du premier mot de code de données du
troisième bloc, suivi du premier mot de code de données du quatrième bloc.
Ou, comme indiqué dans le tableau ci-dessus, prenez les mots de code de données de la colonne
1, en commençant par le bloc 1 et se terminant par le bloc 4. Les nombres de la colonne 1 sont
67, 246, 182 et 70.
Après cela, mettez les nombres de la colonne 2, en commençant par le bloc 1 et en terminant par
le bloc 4.
Données entrelacées jusqu'à présent:
67, 246, 182, 70, 85, 246, 230, 247
34
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Répétez le processus, colonne par colonne. Voici le résultat après avoir ajouté la colonne 15.
La colonne 16 ne contient que deux chiffres, comme vous pouvez le voir dans le tableau ci-
dessus. Mettez simplement ces deux nombres à la fin des données entrelacées comme ceci :
Nous répétons les mêmes étapes précédentes que nous avons utilisées pour obtenir les mots de
code de données.
Mettre les mots de code de correction d'erreur entrelacés après les mots de code de données
entrelacés
Le message final se compose des mots de code de données entrelacés suivis des mots de code de
correction d'erreurs entrelacés.
Message final:
67, 246, 182, 70, 85, 246, 230, 247, 70, 66, 247, 118, 134, 7, 119, 86, 87, 118, 50, 194, 38, 134,
7, 6, 85, 242, 118, 151, 194, 7, 134, 50, 119, 38, 87, 16, 50, 86, 38, 236, 6, 22, 82, 17, 18, 198, 6,
236, 6, 199, 134, 17, 103, 146, 151, 236, 38, 6, 50, 17, 7, 236, 213, 87, 148, 235, 199, 204, 116,
159, 11, 96, 177, 5, 45, 60, 212, 173, 115, 202, 76, 24, 247, 182, 133, 147, 241, 124, 75, 59, 223,
157, 242, 33, 229, 200, 238, 106, 248, 134, 76, 40, 154, 27, 195, 255, 117, 129, 230, 172, 154,
209, 189, 82, 111, 17, 10, 2, 86, 163, 108, 131, 161, 163, 240, 32, 111, 120, 192, 178, 39, 133,
141, 236
Convertir en binaire
Le message final est converti en binaire 8 bits. Dans notre exemple, les quatre premiers mots de
code sont 67, 246, 182 et 70. Convertis en binaire, ce sont :
35
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
67 = 01000011
246 = 11110110
182 = 10110110
70 = 01000110
Pour être complet, l'intégralité du message final en binaire se trouve dans la zone de texte ci-
dessous:
01000011111101101011011001000110010101011111011011100110111101110100011001000
01011110111011101101000011000000111011101110101011001010111011101100011001011
00001000100110100001100000011100000110010101011111001001110110100101111100001
00000011110000110001100100111011100100110010101110001000000110010010101100010
01101110110000000110000101100101001000010001000100101100011000000110111011000
00001101100011110000110000100010110011110010010100101111110110000100110000001
10001100100001000100000111111011001101010101010111100101001110101111000111110
01100011101001001111100001011011000001011000100000101001011010011110011010100
10101101011100111100101001001100000110001111011110110110100001011001001111110
00101111100010010110011101111011111100111011111001000100001111001011100100011
10111001101010111110001000011001001100001010001001101000011011110000111111111
10111010110000001111001101010110010011010110100011011110101010010011011110001
00010000101000000010010101101010001101101100100000111010000110100011111100000
01000000110111101111000110000001011001000100111100001011000110111101100.
Pour certaines versions QR, le message binaire final n'est pas assez long pour remplir le nombre
de bits requis. Dans ce cas, il faut ajouter un certain nombre de 0 à la fin du message final pour
qu'il ait la bonne longueur. Ces 0 supplémentaires sont appelés bits de reste. Un code QR version
5, comme celui de cet exemple, doit avoir 7 bits de reste ajoutés à la fin. [12]
Avec les 7 bits restants ajoutés à la fin, les derniers bits de la chaîne sont:
111011000000000
Nous savons que les carrés noirs et blancs du code QR nommé des modules plutôt que des
pixels. Il s'agit de faire la différence entre les pixels à l'écran et les carrés noirs et blancs du code
QR.
36
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Par exemple, un QR code version 1 fait toujours 21 modules par 21 modules, même s'il occupe
42 par 42 pixels sur un écran d'ordinateur, soit 105x105, et ainsi de suite.
Les modèles de recherche sont les trois blocs dans les coins du code QR en haut à gauche,
en haut à droite et en bas à gauche.
Les séparateurs sont des zones d'espace à côté des motifs de recherche.
Les modèles d'alignement sont similaires aux modèles de recherche, mais plus petits, et
sont placés dans tout le code. Ils sont utilisés dans les versions 2 et supérieures, et leurs
positions dépendent de la version du code QR.
Les modèles de synchronisation sont des lignes pointillées qui relient les modèles de
recherche.
Le module sombre est un module noir unique qui est toujours placé à côté du motif de
recherche en bas à gauche.
37
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Nous allons expliquer ci-dessous plus de détails comment positionner les modèles de fonction.
Les scanners de code QR peuvent rechercher ce rapport de modules clairs à sombres pour
détecter les modèles de recherche et orienter correctement le code QR pour le décodage.
Les modèles de recherche sont toujours placés dans les coins supérieurs gauches, supérieur droit
et inférieur gauche du code QR, quelle que soit la version utilisée. [10]
Pour illustrer cela, les figures ci-dessous montrent les emplacements des motifs de recherche. La
première image est un code de version 1, et la deuxième image est un code de version 18.
La taille d'un code QR peut être calculée avec la formule (((V-1)*4)+21), où V est la version du
code QR.
Par exemple, la version 32 est (((32-1)*4)+21) ou 145 modules par 145 modules. Par
conséquent, les positions des motifs de recherche peuvent être généralisées comme suit:
Le coin supérieur gauche du motif de recherche en haut à gauche est toujours placé à
(0,0).
Le coin supérieur GAUCHE du motif de recherche en haut à droite est toujours placé à
([(((V-1)*4)+21) - 7], 0)
Le coin supérieur GAUCHE du motif de recherche en bas à gauche est toujours placé à
(0,[(((V-1)*4)+21) - 7])
Ajouter les séparateurs
Les séparateurs sont des lignes de modules blancs, d'un module de large, qui sont placés à côté
des motifs du viseur pour les séparer du reste du code QR.
Les séparateurs ne sont placés qu'à côté des bords des motifs du viseur qui touchent l'intérieur du
code QR.
39
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Les emplacements auxquels les motifs d'alignement doivent être placés sont définis dans le
tableau [13] des emplacements des motifs d'alignement.
Les nombres doivent être utilisés à la fois comme coordonnées de ligne et de colonne. Par
exemple, la Version 2 a les numéros 6 et 18.
Cela signifie que les MODULES CENTRES des motifs d'alignement doivent être placés à (6, 6),
(6, 18), (18, 6) et (18, 18).
Cependant, les motifs d'alignement doivent être placés dans la matrice après que les motifs de
recherche et les séparateurs ont été placés, et les motifs d'alignement ne doivent pas chevaucher
les motifs de recherche ou les séparateurs.
Les images suivantes montrent un code de version 2, qui a été décrit dans le paragraphe
précédent comme ayant des motifs d'alignement centrés sur (6, 6), (6, 18), (18, 6) et (18, 18).
Cependant, comme le montre l'image de gauche, les motifs d'alignement surlignés en rouge ne
doivent pas être placés dans la matrice car ils chevauchent les motifs de recherche et les
séparateurs. Les motifs d'alignement qui chevauchent les motifs de recherche ou les séparateurs
sont simplement omis de la matrice.
Le motif de chronométrage horizontal est placé sur la 6e rangée du code QR entre les
séparateurs, le modèle de chronométrage vertical est placé sur la 6ème colonne du code QR entre
les séparateurs.
40
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
synchronisation, comme nous pouvons le voir sur l'image de droite. La figure suivante montre
des modèles de synchronisation sur différentes versions de codes QR.
Module sombre : Tous les codes QR ont un module sombre à côté du motif de recherche
en bas à gauche, pour plus précisément, le module sombre est toujours situé à la
coordonnée ([(4 * V) + 9], 8) où V est la version du code QR.
Réserver la zone d'information sur le format :
Une bande de modules à côté des séparateurs doit être réservée à la zone d'information
format comme suit:
Près du motif de recherche en haut à gauche, une bande à un module doit être
réservée en dessous et à droite du séparateur.
Près du motif de recherche en haut à droite, une bande à un module doit être
réservée sous le séparateur.
Près du motif de recherche en bas à gauche, une bande à un module doit être
réservée à droite du séparateur.
La figure suivante montre les zones réservées en bleu, ils sont toujours placés le long des
séparateurs, quelle que soit la version du code QR.
41
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Figure 30 : Les emplacements des zones réservées aux code QR de version 7 ou plus.
Il est maintenant temps d'ajouter les bits de données à la matrice de code QR.
Modèle de placement
Les bits de données sont placés en commençant en bas à droite de la matrice et en progressant
vers le haut dans une colonne de 2 modules de large. Utilisez des pixels blancs pour 0 et des
pixels noirs pour 1. Lorsque la colonne atteint le haut, la colonne suivante à 2 modules
42
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
La figure suivante montre le modèle de placement des bits de données dans le code QR. Notez
que lorsque le modèle de synchronisation vertical est atteint, la colonne suivante commence à sa
gauche.
Placement ascendant
La figure suivante montre l'ordre dans lequel placer les bits de données lorsque la colonne
monte.
43
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
La figure suivante montre l'ordre dans lequel placer les bits de données lorsque la colonne
descend.
44
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Lorsqu'un modèle de fonction est rencontré, ignorez tous les modules occupés jusqu'à ce que
vous atteigniez le prochain module inutilisé.
Dans les figures suivantes, les bits de données sous le motif d'alignement se déroulent dans une
colonne ascendante. Notez que la colonne chevauche le motif d'alignement.
En résumé, procédez toujours normalement le long des colonnes, en sautant les modules utilisés
par les modèles de fonction ou les zones réservées.
2.3. Conclusion
45
Chapitre 2 : ASPECT TECHNIQUE DES CODES QR
Dans ce deuxième chapitre nous avons présenté comment avoir un code QR, nous
commençons par l’analyse de données vers le codage de donnée et sans oublie la partie de la
correction d’erreurs Jusqu'à ce que nous arrivions à la construction de la matrice.
46
Chapitre III :
Conception et réalisation
de l’application
47
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
3.1. Introduction
Dans notre application, nous proposons une solution valide pour faciliter le travail de
l'administration au sein de l'INTTIC et mettre en place une application qui numérise toutes les
informations des étudiants à travers la technologie de QR code.
Vu que cette technologie est presque partout dans le monde, nous voulons l'intégrer dans
l'institut pour faciliter plusieurs taches tels que :
48
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
Dans ce diagramme, nous allons présenter les interactions réalisées par l’acteur comme illustre la
figure ci-dessous :
49
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
Nous avons crée une base de donnée nommée : « admin ». Elle contient une seule table
nommée : « etudiants ». La description de cette classe entité est présentée dans le tableau ci-
dessous (Tableau 11) :
Table : « etudiants »
Attribut Libellé Type
Id Identifiant de l’étudiant Entier
Nom Nom de l’étudiant Chaine de caractère
Prenom Prénom de l’étudiant Chaine de caractère
Email Email de l’étudiant Chaine de caractère
Promotion Promotion de l’étudiant Chaine de caractère
Le « VS code » est un IDE que nous avons utilisé pour le développement de l’application.
Il s’agit d’un éditeur de code qui support les langages de programmation Web, comme le
Javascript, le PHP et d’autres langages descriptifs comme l’HTML et le CSS.
50
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
Xampp
« Xampp » est un logiciel libre « open source » contient des distributions Apache pour le
serveur Apache, MariaDB, PHP et Perl. Ce logiciel serveur « XAMPP » nous offre un
environnement approprié pour tester les projets MYSQL, PHP, Apache et Perl sur l'ordinateur
local.
PhpMyAdmin
« PhpMyAdmin » est une application web qui nous permet de gérer le serveur de bases
de données MySQL. Dans un environnement multiutilisateur, cette interface permet également
de donner à un utilisateur un accès à ses propres bases de données, il est possible d'organiser les
informations, gérer, récupérer et mettre à jour les données quand vous voulez.
JavaScript
Est un langage de programmation, principalement utilisé dans les pages web interactives.
C'est aussi un langage orienté objet à prototype, il nous permet à implémenter des mécanismes
complexes sur les pages web.
JQuery
« JQuery » est une bibliothèque JavaScript libre « open source » qui peut être utilisée
pour simplifier la gestion des événements, les interactions Ajax et l'animation pour le
développement rapide des sites Web. JQuery simplifie les scripts côté client du HTML,
simplifiant ainsi le développement des applications Web.
PHP
C'est un langage de programmation côté serveur qui nous aide à créer des sites Web
dynamiques. Ce langage est principalement utilisé pour construire des applications logicielles
basées sur le Web. À l’aide de PHP, nous pouvons connecter à la base de données et préparer
l’exécution du code.
HTML
L’HTML est un langage descriptif de balisage des pages Web. Il est utilisé afin de créer
et de représenter le contenu d'une page web et sa structure d’une façon statique. Le langage
HTML utilise des « balises » pour annoter du texte, des images et d'autres contenus afin de les
afficher dans un navigateur web.
CSS
Le CSS est l’un des langages principaux du Web. Il nous permet à modifier la
présentation des éléments HTML : couleur, taille, police de caractères, position sur la page,
largeur, hauteur, animations… et tout ce qui touche à la mise en page d’un document HTML.
51
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
Dans notre application, nous avons utilisé l’architecture 3 tiers où nous pouvons dire que
notre application est découpée en trois parties : une partie interface graphique, une partie
fonctionnelle, et une partie de stockage de données.
Nous avons utilisé l’architecture MVC « Model Vue Controller ». Cette architecture
permet de séparer complètement la logique de l’interface utilisateur.
52
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
53
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
54
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
55
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
56
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
Si le code QR est scanné pour la première fois, l’application affiche « Première tentative »
(Figure 46) et nous offre la possibilité de scanner encore une autre fois. Mais si ce QR code est
déjà scanné, l’application affiche :
57
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
Pour que nous puissions envoyer un e-mail à partir notre compte Gmail « qrcode-
[email protected] », il faut d’abord activer le paramètre " Autoriser les applications moins
sécurisées " comme il est montré dans la figure ci-dessous :
58
Chapitre 3 : CONCEPTION ET REALISATION DE L’APPLICATION
3.9. Conclusion
Dans ce chapitre, nous avons présenté l’analyse et la spécification des besoins en passant
par le cas d’utilisation et son diagramme. Ensuite, nous avons parlé sur l’environnement de
travail : matériel et logiciel et l’architecture physique et technique. Finalement, nous avons fini
ce chapitre par des figures qui illustrent l’interface d’utilisateur et notre base de données.
59
CONCLUSION
GENERALE
60
Conclusion générale
En élaborant ce projet, nous avons présenté, en premier lieu, des généralités sur le code
QR : un petit historique, une description de cette technologie et sa structure, son principe de
fonctionnement et ses domaines d’utilisation afin d’avoir une idée générale sur le QR code.
Par la suite, nous avons passé aux aspects techniques du QR code en citant les étapes de
l’élaboration d’un code QR : l’analyse et le codage des données, Placement des bits des
données… Cette analyse nous a permis de comprendre le principe de fonctionnement de la
technologie de QR code.
Nous avons finalisé notre projet par l’analyse et la spécification des besoins en passant
par le cas d’utilisation et son diagramme. Nous avons cité aussi l’environnement de travail
matériel et logiciel ainsi que l’architecture physique et technique adoptée avec des illustrations
qui montre l’interface d’utilisateur de notre application.
Etant étudiants au niveau de l'INTTIC depuis cinq années nous avons pu voir quelques
problèmes liés à l'utilisation de la carte d'étudiant (papier, oubli...) et notre application peut y
remédier, en plus de fait que tous les étudiants possèdent un smart phone donc ils peuvent utiliser
la version mobile de notre application et pour la partie administration et génération des QR codes
les deux versions de l'application peuvent être utilisées mobile et web.
61
Bibliographie
[3] Scan me-everybody‟s guide to the magical world of QR Codes, Winter Mick , 2010
[6] QR Codes & Mobile marketing for the small business owner , Weir Michael , 2010.
Webographie
[9]ihttps://drive.google.com/file/d/19AAWnfhqS1NY1WSbEY78YB379sHRtSKk/view?usp=sh
aring
[13]ihttps://drive.google.com/file/d/1lMPG9VfYWmvpKEP87uBbKFQ0O8JNQtks/view?usp=s
haring
62