Académique Documents
Professionnel Documents
Culture Documents
Dédicace
A tout ce que peut nous apporter le partage qu'il soit culturel ou
humain.
Que le fait d'être lu puisse être et rester notre plus belle rétribution.
LAAMARI Ayoub
2
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Remerciements
« Il n'y a guère au monde un plus bel excès que celui de la reconnaissance. » Jean de la Bruyère.
C’est avec beaucoup d’estime et une sincère reconnaissance que je tiens à remercier
toutes les personnes qui ont contribuées à l’aboutissement de ce projet. L’expression de
mes profondes gratitudes ne saurait égaler l’aide et le soutien tant sur le plan professionnel
que moral qu’elles m’ont apporté tout au long de la période de réalisation de ce projet.
J’aimerai que vous receviez mes très sincère gratitude pour votre encouragement et vos
efforts pour fournir les meilleures conditions possibles pour travailler sur ce projet, je dois
ce travail à vous.
À mes Encadrants.
3
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Résumé
La télévision numérique terrestre (TNT) est une évolution technique en matière de
télédiffusion, fondée sur la diffusion de signaux de télévision numérique par un réseau de
réémetteurs hertziens terrestres.
Ce projet de fin d’étude est consacré à la réalisation d'une application de télégestion pour
un émetteur TNT. Mon travail est une conception sur le Framework Django en langage
Python, dont on va créer une interface web qui assure la gestion des différents paramètres de
l'équipement.
Abstract
Digital Video Broadcasting Terrestrial (DVBT) is a technical evolution in television
broadcasting, based on the broadcasting of digital television signals by a network of
terrestrial hertzian transmitters.
This project is devoted to the realization of a remote management application for a DTT
transmitter. Our work is a design on the Django Framework in Python language, of which
we will create a web interface which ensures the management of the various parameters of
the equipment.
4
Réalisation d'une application de télégestion d’un émetteur TNT 2022
REMERCIEMENTS ..................................................................................................................................................... 3
RESUME ........................................................................................................................................................................ 4
ABSTRACT.................................................................................................................................................................... 4
CHAPITRE UN............................................................................................................................................................ 13
5
Réalisation d'une application de télégestion d’un émetteur TNT 2022
VIEWS.PY......................................................................................................................................................... 50
SETTINGS.PY ................................................................................................................................................... 50
DJONGO ........................................................................................................................................................... 51
MODELS.PY ..................................................................................................................................................... 52
6
Réalisation d'une application de télégestion d’un émetteur TNT 2022
- STATICS ........................................................................................................................................................... 53
- DJANGO TEMPLATE LANGUAGE (DTL) : ...................................................................................................... 53
- Base.html : ................................................................................................................................................. 54
- LogIn & LogOut ....................................................................................................................................... 55
- Home page (Index.html) ........................................................................................................................... 55
- Paramètres (Settings.html)....................................................................................................................... 55
- Edit et modification .................................................................................................................................. 57
CONCLUSION ............................................................................................................................................................ 57
BIBLIOGRAPHIE....................................................................................................................................................... 59
ANNEXE ...................................................................................................................................................................... 60
7
Réalisation d'une application de télégestion d’un émetteur TNT 2022
8
Réalisation d'une application de télégestion d’un émetteur TNT 2022
9
Réalisation d'une application de télégestion d’un émetteur TNT 2022
10
Réalisation d'une application de télégestion d’un émetteur TNT 2022
11
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Introduction Générale
Dans le présent rapport de stage, mon projet est visé à la Réalisation d'une application de
télégestion d’un émetteur TNT pour le centre de Casablanca.
Dans tous les systèmes de télédiffusion, on peut voir d'une manière et d'une autre, risque de
perte d'informations, en raison de problèmes de bruit et d'interférence etc.… qui peuvent conduire
à des erreurs d'interprétations du signal par le récepteur. Donc c'est l’occasion de profiter de
l’évolution technologique pour trouver des solutions.
Jusqu’à récemment, pour effectuer ce suivi était de se rendre sur place dans les locaux
techniques. Maintenant, ces émetteurs sont connectés et il est donc possible d’envisager une
supervision à distance.
Mon travail durant le stage est de concevoir une application web qui permet au responsable
de monitorer et contrôler ces émetteurs TNT et d’être alerté en cas de problème.
Le travail présenté dans le présent manuscrit s’articule en trois chapitres, le premier est un
chapitre dans lequel on présentera le contexte de l’entreprise, Le deuxième explique d’une
manière précise le contexte général de sujet tel que la transmission terrestre, étude sur le matériel
et la technologie utilisés, tandis que le troisième est dédié à la partie pratique de conception de site
web.
12
Réalisation d'une application de télégestion d’un émetteur TNT 2022
13
Réalisation d'une application de télégestion d’un émetteur TNT 2022
1.1. La SNRT
La SNRT est une société anonyme dont le capital social est totalement détenu par l'Etat. C’est
une société nationale de l’audiovisuel qui appartient au secteur public pour le but d'exécuter la
politique de l'Etat dans le domaine de la télédiffusion, radiodiffusion, la publicité et la production
des programmes. Elle peut créer des filiales qui peuvent exercer une ou plusieurs activités citées
ci-dessus
1.2.2. La télédiffusion :
Composée de services nationaux et internationaux et de services régionaux suivants :
• La chaîne de télévision nationale marocaine "Al Aoula", diffusée par voie hertzienne
terrestre et par satellite.
• La chaîne de télévision nationale sportive qui diffuse les événements sportifs au Maroc :
"Arryadia".
14
Réalisation d'une application de télégestion d’un émetteur TNT 2022
1.2.3. La radiodiffusion :
Composée de services de radiodiffusion régionaux et nationaux suivants :
• Les radios régionales : "Radio Casablanca, Agadir, Tanger, Ouarzazate, Laâyoune, …".
1.2.4. Programmation :
La SNRT propose une programmation radiophonique et télévisée diversifiée. Parmi ces
programmes on cite :
• Emissions sportives.
15
Réalisation d'une application de télégestion d’un émetteur TNT 2022
1.2.5. La Publicité :
La SNRT est autorisée à diffuser des publicités pendant ses programmes diffusés sur le radio
ou la télévision. Les séquences publicitaires sont séparées des programmes et leur durée dépend de
la nature du programme diffusé. Ces séquences peuvent être insérées entre ou au sein des
émissions mais ne peuvent pas interrompre les journaux d’information ou les émissionspolitiques.
Conclusion :
16
Réalisation d'une application de télégestion d’un émetteur TNT 2022
17
Réalisation d'une application de télégestion d’un émetteur TNT 2022
1. La Transmission terrestre :
Au Maroc le pôle public de l'audiovisuel, représenté par la SNRT (société nationale de
radiodiffusion et de télévision) a réalisé un le basculement de l'analogique vers le tout numérique
par le lancement de la TNT (télévision numérique terrestre). Le Maroc, ainsi que les pays de la
région Maghreb ont déjà passé au tout-numérique. Le pôle public a techniquement numérisé tous
ses chaines.
L’arrêt de la diffusion analogique permettra surtout de libérer des fréquences pour d’autres
usages à valeur ajoutée (Internet mobile à haut débit, applications de nouvelles générations etc.)
On parle alors de « Dividende numérique ».
La TNT passera toujours par les ondes recevables sur l’antenne râteau disposé sur le toit de
votre maison, mais c’est simplement la façon dont les signaux sont envoyés qui change. Les ondes
ne sont pas envoyées de manière analogique mais numérique, ce qui est plus performant.
18
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Une meilleure qualité d’image grâce au mode diffusion qui sera numérisé ;
Une réception sans interférence ;
Un accès garanti sur l’ensemble du territoire, un plus large choix de programmes ;
De nouveaux services (Guide de programme, Archivage, Internet, VOD, Accès aux
bandothèques des diffuseurs, etc.)
Les avantages du passage au numérique :
19
Réalisation d'une application de télégestion d’un émetteur TNT 2022
20
Réalisation d'une application de télégestion d’un émetteur TNT 2022
La télévision numérique terrestre (TNT) est la dénomination française désignant les systèmes de
diffusion numérique de la télévision via un réseau d'émetteurs terrestres.
La transmission se fait selon la norme DVB-T pour Digital Video Broadcasting – Terrestrial dans
la plage de 474 à 858 MHz de la bande UHF, divisée en canaux de largeur 8 MHz.
1.3.2. Introduction :
Digital Video Broadcasting (abrégé en DVB, et qu'on
pourrait traduire par « diffusion vidéo numérique »), est un
ensemble de normes de télévision numérique édictées par
le consortium européen DVB, et utilisées dans un grand
nombre de pays. Ses principales concurrentes sont les
normes ATSC (utilisées aux États-Unis et au Canada) et
les normes ISDB (utilisées au Japon et au Brésil).
1.3.3. Fonctionnement :
En sortie de studio, le signal numérique n'est pas encore exploitable pour la transmission
télévisuelle. Ces signaux sont traités par des codeurs afin de séparer la vidéo, la ou les pistes
audio(s) ainsi que le télétexte. Le codage comprend aussi une partie compression de données, et
pour cela, la plus utilisée aujourd’hui est encore la norme MPEG-2 qui se voit lentement
remplacée par la norme MPEG-4.
21
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Ensuite, tous ces services codés sont multiplexés afin d’y ajouter d’autres fonctionnalités telles
que les sous-titres DVB, les applications interactives, l’accès conditionnel permettant la protection
du contenu, la protection de l’individu par type de contenu (enfant, adulte…) et sa
commercialisation.
Durant le processus de multiplexage, les différents services (chaînes, jeux, radio…) sont
assemblés en flux de transport (TS, Transport Stream) par l’adjonction des tables DVB. Chaque
TS peut ainsi transporter jusqu’à 20 chaînes de télévision, voire plus, dépendant du mode de
transport et de la qualité de codage voulus.
Une fois ce processus terminé, ces flux sont transmis soit sous la forme d’un bouquet numérique
vers les clients finaux qui devront donc posséder un décodeur (Set-top box) compatible qui fera le
processus inverse : démultiplexage, vérification des droits d’accès, décodage et transmission vers
la télévision, soit par un modulateur PAL, soit par une sortie Péritel (SCART), soit par une sortie
HDMI ou encore sous la forme d’un signal composite pour la vidéo et analogique pour l’audio.
Globalement, la norme DVB entre donc en jeu depuis la mise en multiplex jusqu’à la sortie du
décodeur final.
22
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Figure 10: Emetteur Récepteur DVB-T (le paragraphe suivant donnera le détail de ces blocs).
La numérisation des signaux étant faite, il nous reste les transmettre dans le même train binaire.
Généralement, on dispose de deux signaux numériques compressés, l'un vidéo et l'autre audio, il
faut les transmettre dans le même train binaire. Pour cela les deux éléments devront être
synchronisés afin que la restitution de la parole soit en phase avec l'image. Des marqueurs
temporels sont associés à chacune des composantes, ces marqueurs indiqueront l'instant auquel les
informations devront être décodés et joués. Par ailleurs, il est impératif que ces deux signaux
partagent la même horloge de référence.
Le PES (Packetized Elementary Stream) est un paquet de données composé d'un en-tête et
d'une charge ; OverHead + payload. La charge contient des données qui n'appartiennent qu'à une
seule des composantes à transmettre (frames audio ou images vidéo), l'en tête est fixe alors que la
charge peut être de longueur variable mais ne doit pas dépasser 64ko.
23
Réalisation d'une application de télégestion d’un émetteur TNT 2022
- Paquets de transport:
Pour assurer l'efficacité d'un code correcteur d'erreur, il faut transmettre l'information par
paquet de longueur relativement courte. La taille est de 188 octets pour les paquets du train binaire
MPEG-2 ; chaque paquet peut alors contenir des données relatives à n'importe quelle composante
(vidéo, audio, PAT, télétexte...).
Chaque paquet commence par un octet de synchronisation 0x47 qui permet donc au récepteur
de se synchroniser sur le flux binaire.
PUSI (Payload Unit Start Indicator) indique si le paquet correspond à un point d'entrée dans
le flux élémentaire (ce drapeau indique le début d'un PES).
Chaque paquet est identifié par son PID (Packet Identifier), Pour récupérer une composante
élémentaire, il suffit de récupérer tous les paquets qui portent le même PID et de mettre les
charges bout à bout.
Quatre bit d'en-tête constituent un compteur de continuité (CC) permet d'être sûr de récupérer
tous les paquets d'un même PID dans l'ordre.
Les PES de taille variable sont décomposés en multiple de 184 octets afin d'être insérer dans le
train binaire MPEG-2. Il devient donc nécessaire d'adapter la taille de la charge de certains
paquets, pour cela, le champ d'adaptation permet d'inclure des octets de bourrage afin de
réduire la taille de la charge (cas du dernier paquet du PES qui ne serait pas un multiple de 184
octets).
- Codage de canal :
Le codage de source abordé jusque-là consistait à mettre en forme le signal avant diffusion.
Cette diffusion utilise un canal qui apporte généralement des dégradations au message d'origine,
âpres on a compresser les données afin de rendre le transport compatible avec la taille du canal , la
compression supprime une grande partie de la redondance naturelle du signal : il ne reste donc
plus qu'une information sensibles aux perturbations , Il est donc nécessaire d'utiliser une partie de
24
Réalisation d'une application de télégestion d’un émetteur TNT 2022
la bande passante pour émettre des informations redondantes qui permettront de corriger
d'éventuelles erreurs. Pour cela, un codage FEC (Forward Error correction) est utilisé.
Inversion de bloc: Les différentes fonctions vont aller en ordre croissant de difficulté de
réalisation, commençons donc par la plus simple Inversion de l'octet de synchronisation tous les
huit paquets. 0xB8 à la place de 0x47.
La partie supérieure représente la séquence pseudo-aléatoire, c'est quinze bascules en séries dont
les sorties 14 et 15 sont injectées dans une porte logique ou exclusive, le résultat est ensuite
envoyé sur l'entrée de la fonction. La porte logique ET permet de valider ou non la fonction de
dispersion d'énergie (Enable). Cette séquence aléatoire est ensuite additionnée exclusivement (ou
exclusif) avec le train binaire. La fonction d'embrouillage et de désembrouillage est la même dans
ce cas.
25
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Codage détecteur correcteur d’erreur consiste à insérer des bits de redondance dans le message
initiale pour protéger des bruits présents dans le canal et permettant de récepteur de détecter les
erreurs et de les corriger.
Le codage utilisé en DVB-T est le code Reed-SolomonRS(204,188,T=8)
Dans un cas général le codage de Reed-Solomon est caractérisé par RS(n,k,2t)
avec: n:taille du bloc après codage.
k: taille du bloc d’origine
t : est le nombre de symboles corrigibles.
Le code utilisé pour la TNT est adapté aux erreurs en rafales introduites par le canal de
transmission. Le code Reed-Solomon ajoute 16 octets de redondance au paquet du train MPEG-2
portant à 204 la longueur des séquences. C'est donc un code RS(204, 188, t=8) qui est utilisé et
qui permet de corriger jusqu'à 8 octets erroné par paquet.
Exemple :
26
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Pour éviter les paquets d’erreurs très importants les échantillons proches les uns des autres sont
séparés avant la transmission.
Le code employé est un code convolutif, chaque bloc du code dépend non seulement des blocs
présents à l’entrée mais aussi de blocs précédents.il y a introduction d’un effet de mémoire.
Entrelacement symbole : permet de supprimer la corrélation des erreurs sur des symboles transmis
sur des porteuses consécutives du même symbole OFDM (pour éviter d’avoir plusieurs symboles
consécutifs perdus dans les trous du signal reçu).
27
Réalisation d'une application de télégestion d’un émetteur TNT 2022
- Mapper(constellation et mapping) :
QPSK
16QAM
64 QAM
28
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Le signal transmis est organisé en trames. Chaque trame OFDM d’une durée Tf constituée de 68
symboles OFDM.
• Tous les symboles OFDM contiennent des données et des informations de référence.
• Comme le signal OFDM comprend un grand nombre de porteuse modulées
individuellement, chaque symbole OFDM peut être considéré comme divisé en cellules,
chacune correspondant à la modulation véhiculée par une porteuse durant un symbole.
o Des données.
o Des cellules pilotes dispersées.
o Des porteuses pilotes continuelles.
o Des porteuses TPS(Transmission Parameter signalling).
1.3.6. DVB-T2 :
DVB-T2 est la norme de 2ème génération pour la télévision numérique terrestre, offrant des
avantages significatifs par rapport au DVB-T. L'émergence du DVB-T2 est motivée par l'efficacité
spectrale plus élevée que ce soit pour un passage de la TV analogique au DVB-T2, que ce soit
pour un passage du DVB-T au DVB-T2.Une efficacité spectrale plus élevée signifie qu'avec la
même quantité de spectre, un plus grand nombre de programmes peuvent être diffusés ou le même
nombre de programmes diffusés avec une meilleure qualité audio/vidéo ou qualité de couverture.
29
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Nouvelle génération de correction d'erreur directe (FEC) (protection contre les erreurs) et
constellations supérieures (256-QAM) entraînant un gain de capacité de 25 à 30 %.
Augmentation de la porteuse OFDM de 8k à 32k. En SFN, l'intervalle de garde de 1/16 au
lieu de 1/4 résultant en un gain d'environ 18 %.
Nouvelles fractions d'intervalle de garde : 1/128, 19/256, 19/128.
Le DVB-T2 permet également trois nouvelles largeurs de bande de signal : 1,7 MHz,5 MHz
et 10 MHz.
Le système DVB-T2 offre également un certain nombre de nouvelles fonctionnalités pour une
polyvalence améliorée et robustesse dans des conditions de réception critiques telles que :
o Les constellations tournées, qui fournissent une forme de diversité de modulation, pour
aider à la réception de signaux à taux de code plus élevé dans des canaux de transmission
exigeants.
o des techniques spéciales pour réduire le rapport de puissance crête à moyenne (PAPR) de
la transmission du signal résultant en un meilleur rendement des amplificateurs de forte
puissance.
o Mode de transmission à entrées multiples et à sortie unique (MISO).
2. Emetteur TREDESS :
TRedess Fourth Series est une famille d'émetteurs UHF et VHF refroidis par air, de
traducteurs/transmetteurs et de remplisseurs d'espace (pour TNT et DAB+), qui associent des
performances de haute qualité, une modularité, une flexibilité, une compacité exceptionnelle et
une installation et un fonctionnement intelligents, grâce à son architecture autonome tout-en-un
(excitateur et amplificateur sur le même châssis). TRedess Fourth Series Low Power fournit des
plages de puissance de sortie jusqu'à 400 W (500 W pour ATSC 1.0) et couvre les normes DVB-
T/T2, ISDB-T/Tb et ATSC 1.0/3.0, pour les réseaux MFN et SFN.
30
Réalisation d'une application de télégestion d’un émetteur TNT 2022
2 entrées TS sur IP et 2 entrées ASI ou 2 entrées SMPTE (par défaut) avec commutation
transparente.
Annulation d'écho intégré DEEC capable de garantir : Gain Margin = 24 dB. Annulation d'écho
Doppler. Configuration de fenêtre sélective jusqu'à 37 us.
La technologie Doherty à large bande est également disponible dans la gamme basse puissance
de la quatrième série (120 W et 400 W).
Fonctionnalité de redondance Dual Drive et 1+1 / N+1 en option, basée sur une architecture
distribuée
Pas besoin d'unité supplémentaire pour gérer la commutation, économiser les coûts, l'espace
rack et réduire les points de défaillance, car « l'intelligence » pour la commutation est
distribuée dans les émetteurs du système.
Fonctionnalité complète de contrôle à distance pour une utilisation à distance facile : y compris
une interface Web intelligente, un agent SNMP et une interface de contacts d'E/S.
31
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Fonctionnement sans GPS SFN supplémentaire avec verrouillage du débit BTS dans ISDB-
T/Tb.
Les principaux avantages du TRedess Fourth Series Low Power sont sa compacité, l'installation
et le fonctionnement très faciles, ainsi que les performances RF exceptionnelles des émetteurs
et des Gap Fillers.
Les unités sont également compactes et très modulaires (donc évolutives), grâce à plusieurs
options intégrées en option : comme les récepteurs GNSS, l'entrée DVB-T/T2, l'entrée DVB-
S/S2, etc.
La fiabilité du système est également élevée car les configurations de redondance Dual Drive,
1+1 et N+1 sont disponibles ainsi que la redondance de l'alimentation.
Les TRedess Gap Fillers sont également une source intéressante d'économies de coûts car,
grâce à l'inclusion de la meilleure annulation d'écho disponible sur le marché (permettant
l'annulation des niveaux d'écho élevés et des échos multi-trajets avec une qualité MER de sortie
optimale), ils permettent :
- TRedess Gap Filler pour fonctionner en SFN dans des scénarios où d'autres fabricants
ne pourraient installer qu'un Transmette, ce qui conduit clairement à des économies de
coûts importantes sur le site.
- pouvoir utiliser une puissance de sortie plus élevée sur le même site Gap Filler
atteignant ainsi une plus grande couverture
- un fonctionnement plus stable sur le site, de sorte que les performances à long terme du
Gap filler ne soient pas affectées par les fluctuations du signal d'entrée, de nouveaux
échos apparaissant, etc.
32
Réalisation d'une application de télégestion d’un émetteur TNT 2022
3. Taches effectuées :
3.1. Cahier de charges :
Ce projet doit d'être programmer en langage Python, dont on va utiliser le Framework Django
qui connut par la sécurité et la création des applications web et l'accessibiliser à leurs Frontend et
backend. Alors Django nous permet d’implémenter des pages HTML qu’on va construire.
Pour la liaison entre Django et l’émetteur Tredess, on va utiliser le protocole SNMP qui va
nous permet d’obtenir les informations et les paramètres depuis l’émetteur, aussi de les modifier
s’il est possible.
3.2.1. Python :
33
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Il s’agit d’un langage de programmation interprété, qui ne nécessite donc pas d’être compilé pour
fonctionner. Un programme » interpréteur » permet d’exécuter le code Python sur n’importe quel
ordinateur. Ceci permet de voir rapidement les résultats d’un changement dans le code. En
revanche, ceci rend ce langage plus lent qu’un langage compilé comme le C.
En tant que langage de programmation de haut niveau, Python permet aux programmeurs de se
focaliser sur ce qu’ils font plutôt que sur la façon dont ils le font. Ainsi, écrire des programmes
prend moins de temps que dans un autre langage. Il s’agit d’un langage idéal pour les débutants.
Le langage Python doit sa popularité à plusieurs avantages qui profitent aussi bien aux débutants
qu’aux experts. Tout d’abord, il est facile à apprendre et à utiliser. Ses fonctionnalités étant peu
nombreuses, il permet de créer des programmes rapidement et avec peu d’efforts. En outre, sa
syntaxe a été conçue pour être lisible et simple.
Un autre avantage de Python concerne sa popularité. Ce langage fonctionne sur tous les principaux
systèmes d’exploitation et plateformes informatiques. En outre, même s’il ne constitue clairement
pas le langage le plus rapide, il compense sa lenteur par sa polyvalence.
Un Framework est un ensemble d’outils qui simplifie le travail d’un développeur. Traduit
littéralement de l’anglais, un Framework est un « cadre de travail ». Il apporte les bases communes
à la majorité des programmes ou des sites web. Celles-ci étant souvent identiques (le
fonctionnement d’un espace membres est commun à une très grande majorité de sites web de nos
jours), un développeur peut les réutiliser simplement et se concentrer sur les particularités de son
projet. Il s’agit donc d’un ensemble de bibliothèques coordonnées, qui permettent à un
développeur d’éviter de réécrire plusieurs fois une même fonctionnalité, et donc d’éviter de
réinventer constamment la roue. Inutile de dire que le gain en énergie et en temps est considérable.
3.2.2. Django :
Django est un Framework Web Python de haut niveau qui
encourage un développement rapide et une conception propre et
pragmatique. Construit par des développeurs expérimentés, il prend
en charge une grande partie des tracas du développement Web,
vous pouvez donc vous concentrer sur l'écriture de votre application
sans avoir à réinventer la roue. C'est gratuit et open source.
Ridiculement rapide.
Django a été conçu pour aider les développeurs à faire passer les applications du
concept à l'achèvement le plus rapidement possible.
34
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Sécurité rassurante.
Excessivement évolutif.
Certains des sites les plus fréquentés du Web tirent parti de la capacité de Django à
évoluer rapidement et de manière flexible.
- L’architecture MVC :
- La spécificité de Django :
L’architecture utilisée par Django diffère légèrement de l’architecture MVC classique. En effet, la
« magie » de Django réside dans le fait qu’il gère lui-même la partie contrôleur (gestion des
requêtes du client, des droits sur les actions…). Ainsi, nous parlons plutôt de Framework utilisant
l’architecture MVT : Modèle-Vue-Template. Cette architecture reprend les définitions de modèle
et de vue que nous avons vues, et en introduit une nouvelle : le Template (voir figure suivante).
35
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Un Template est un fichier HTML, aussi appelé en français « gabarit ». Il sera récupéré par la vue
et envoyé au visiteur ; cependant, avant d’être envoyé, il sera analysé et exécuté par le Framework,
comme s’il s’agissait d’un fichier avec du code. Django fournit un moteur de Template très utile
qui permet, dans le code HTML, d’afficher des variables, d’utiliser des structures conditionnelles
(if/Else) ou encore des boucles (for), etc.
Concrètement, lorsque l’internaute appelle une page de votre site réalisé avec Django, le
Framework se charge, via les règles de routage URL définies, d’exécuter la vue
correspondante. Cette dernière récupère les données des modèles et génère un rendu
HTML à partir du Template et de ces données. Une fois la page générée, l’appel fait
chemin arrière, et le serveur renvoie le résultat au navigateur de l’internaute. On
distingue les quatre parties qu’un développeur doit gérer :
La représentation des données dans l’application, avec leur gestion (ajout, édition,
suppression…), c’est-à-dire les modèles.
L’affichage de ces données et de toute autre information au format HTML, c’est-à-dire les
Template.
La vue qui récupère les données et génère le Template selon celles-ci. On en revient donc au
modèle MVT. Le développeur se doit de fournir le modèle, la vue et le Template. Une fois cela
fait, il suffit juste d’assigner la vue à une URL précise, et la page est accessible. Si le Template est
un fichier HTML classique, un modèle en revanche sera écrit sous la forme d’une classe où
chaque attribut de celle-ci correspondra à un champ dans la base de données. Django se chargera
ensuite de créer la table correspondante dans la base de données, et de faire la liaison entre la base
de données et les objets de votre classe. Non seulement il n’y a plus besoin d’écrire de requêtes
pour interagir avec la base de données, mais en plus le Framework propose la représentation de
chaque entrée de la table sous forme d’une instance de la classe qui a été écrite. Il suffit donc
d’accéder aux attributs de la classe pour accéder aux éléments dans la table et pouvoir les
modifier, ce qui est très pratique ! Enfin, une vue est une simple fonction, qui prend comme
paramètres des informations sur la requête (s’il s’agit d’une requête GET ou POST par exemple),
36
Réalisation d'une application de télégestion d’un émetteur TNT 2022
et les paramètres qui ont été donnés dans l’URL. Par exemple, si l’identifiant ou le nom d’un
article du blog a été donné dans l’URL « crepes- bretonnes.com/blog/faire-de-bonnes-crepes », la
vue récupérera ‘fairede-bonnes-crepes ’ comme titre et cherchera dans la base de données l’article
correspondant à afficher. Suite à quoi la vue générera le Template avec le bon article et le renverra
à l’utilisateur.
- Projets et applications :
En plus de l’architecture MVT, Django introduit le développement d’un site sous forme de projet.
Chaque site web conçu avec Django est considéré comme un projet, composé de plusieurs
applications. Une application consiste en un dossier contenant plusieurs fichiers de code, chacun
étant relatif à une tâche du modèle MVT que nous avons vu. En effet, chaque bloc du site web est
isolé dans un dossier avec ses vues, ses modèles et ses schémas d’URL. Lors de la conception de
votre site, vous allez devoir penser aux applications que vous souhaitez développer. Voici
quelques exemples d’applications :
Un module d’actualités ;
Un forum ;
Un système de contact ;
Une galerie de photos ;
Un système de dons.
Le code est beaucoup plus structuré. Les modèles et Template d’une application ne seront
que rarement ou jamais utilisés dans une autre, nous gardons donc une séparation nette
entre les différentes applications, ce qui évite de s’emmêler les pinceaux !
Une application correctement conçue pourra être réutilisée dans d’autres projets très
simplement, par un simple copier/coller, comme le montre la figure suivante.
- Résumé :
Django respecte l’architecture MVT, directement inspirée du très populaire modèle MVC ;
Django gère de façon autonome la réception des requêtes et l’envoi des réponses au client
(partie contrôleur) ;
Si elles sont bien conçues, ces applications sont réutilisables dans d’autres projets, puisque
chaque application est indépendante.
37
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Le langage HTML (HyperText Markup Langage) est un balisage standard utilisé dans la création
d’applications et de sites web. Ce système permet de marquer les fichiers textes afin d’obtenir des
couleurs, des graphismes ou des effets spécifiques sur les diverses pages d’un site web. Le
fonctionnement de ce langage est très standardisé, ce qui le rend facile d’accès aux débutants, qui
s’initient en général au développement web avec l’HTML.
- CSS :
Le CSS (pour Cascading Style Sheets) offre d’obtenir un site ou un logiciel esthétiquement
travaillé (la nouvelle version du dispositif permet aussi d’intégrer de petites animations simples).
Ce système s’applique sur une page contenant un code HTML : avec l’outil CSS, on intègre des
balises de style dans le balisage structurel de la page.
- JavaScript :
Quant à l’outil JavaScript, il s’agit d’un code de programmation de haut niveau. Basé sur un
prototype simple, il peut s’exécuter sur tous les navigateurs. C’est un langage qui permet de mettre
en place des mécanismes logiques, des calculs ainsi que toutes les fonctionnalités de
programmation professionnelle au code source d’une page web. En somme, JavaScript est un outil
qui va donner les indications du mouvement du site web.
3.2.4. MongoDB :
MongoDB est un système de base de données. Il est
devenu extrêmement populaire au cours des
dernières années. MongoDB est un système de base
de données orienté, objet dynamique, stable, scalable et sans SQL. Les objets sont stockés sous
format JSON dans des documents séparés. Au lieu de stocker les données sous format de tables
avec des valeurs, on utilise une hiérarchie et un système d’objet JSON pour créer un système plus
adaptatif.
38
Réalisation d'une application de télégestion d’un émetteur TNT 2022
L’avantage de MongoDB par rapport au SQL, est l’habilité de gérer des systèmes de données
complexes. On peut avoir des listes, des objets encapsulés sans avoir de soucis. Ce
fonctionnement facilite grandement le développement d’applications qui gèrent beaucoup de
données.
3.2.5. SNMP :
« Simple Network Management Protocol »,
est un protocole de gestion réseaux proposé
par l’IETF (Internet Engineering Task
Force).
Des agents
Un ou plusieurs managers
Une MIB (Management
Information Base)
Des trames
39
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Le manager envoie des requêtes de type « GET » aux agents pour récupérer les informations d’un
service ou une machine via le protocole SNMP.
Il peut aussi envoyer des requêtes « SET » pour modifier l'état des services et/ou de la machine
gérés par l'agent.
Les agents peuvent envoyer des requêtes de type « TRAP » au manager pour signaler un
dysfonctionnement.
Les agents peuvent être regroupés au travers d'un « agent maître ».
Les informations accessibles et fournies par les agents sont organisées dans une base « virtuelle »
appelée MIB. Cette base est normalisée.
Opérations et commandes du protocole SNMP :
40
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Une MIB n’est pas une base de données mais une « dispatch table ».
Exemple :
Conclusion :
Dans ce chapitre, on a traité le terme TNT e la norme DVBT, aussi on a étudié l’équipement
qu’on a travaillé avec ‘Tredess’, et on a passé au taches effectuées, commençant avec le cahier de
charges jusqu’à les logiciels et les outils techniques qu’on a utilisé dans ce projet.
41
Réalisation d'une application de télégestion d’un émetteur TNT 2022
42
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Établir une liaison entre cet équipement et l’ordinateur avec un câble RJ45.
43
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Pour se connecter il faut s’assurer le lien de connexion pour l’essai technique par la
commande Ping 192.168.0.100.
Instalation de PySNMP :
commande : ‘>pip install pysnmp’
44
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Lancer une fenêtre de CMD dans le répertoire de fichier MIB, puis exécuter la commande
suivante :’ mibdump.py $ build-pysnmp-mib -o E.py TREDESS-FS-MIB.mib’
Maintenant qu’on a convertir le fichier MIB à une extension .py, on peut l’utiliser pour
exécuter les opérations GET et SET pour obtenir et modifier les paramètres de l’émetteur
Tredess. Pour utiliser GET et SET on va utiliser les codes suivants :
o Commande GET :
45
Réalisation d'une application de télégestion d’un émetteur TNT 2022
o Commande SET :
Paramètre OID
"Local_time" 1.3.6.1.4.1.23180.2.1.1.2.1.1.10.5.0'
"remote_IP" '1.3.6.1.4.1.23180.2.1.1.2.1.2.1.2.0 '
"remote_net_mask" '1.3.6.1.4.1.23180.2.1.1.2.1.2.1.3.0 '
"remote_gateway" '1.3.6.1.4.1.23180.2.1.1.2.1.2.1.4.0 '
"DNS_Server" '1.3.6.1.4.1.23180.2.1.1.2.1.2.1.5.0 '
"mac_address" '1.3.6.1.4.1.23180.2.1.1.2.1.2.1.6.0 '
"local_IP" '1.3.6.1.4.1.23180.2.1.1.2.1.2.2.1.0 '
"Modulator temperature" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.10.1.1.0'
"name" '1.3.6.1.4.1.23180.2.1.1.2.1.1.2.0'
"Output_Frq" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.15.2.0'
46
Réalisation d'une application de télégestion d’un émetteur TNT 2022
"Output_Channel" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.15.10.1.0'
"Mode" '.1.3.6.1.4.1.23180.2.1.1.2.1.1.5.0'
"reversed Power" '.1.3.6.1.4.1.23180.2.1.1.2.2.4.4.0'
"Forward Power" '.1.3.6.1.4.1.23180.2.1.1.2.2.4.3.0'
"Amplifier Temp" '.1.3.6.1.4.1.23180.2.1.1.2.2.4.8.0'
"SynchModeTemp" '.1.3.6.1.4.1.23180.2.1.1.2.2.3.2.7.0'
"DVB1Bandwidth" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.10.5.1.1.0'
"Constellation" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.10.5.3.1.0'
"Mer" '.1.3.6.1.4.1.23180.2.1.1.2.1.7.5.15.20.7.0'
"Input1" '.1.3.6.1.4.1.23180.2.1.1.2.2.1.3.10.2.0'
"Input2" '.1.3.6.1.4.1.23180.2.1.1.2.2.1.3.11.2.0'
"Input3" '.1.3.6.1.4.1.23180.2.1.1.2.2.1.3.12.2.0'
"Input4" '.1.3.6.1.4.1.23180.2.1.1.2.2.1.3.13.2.0'
"Ber" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.10.20.6.15.0'
"linear" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.10.20.2.1.0'
"RFout" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.15.20.3.0'
"ModulatorStandard" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.10.1.2.0'
"TestMode" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.10.1.3.0'
"OutputFrqMode" '.1.3.6.1.4.1.23180.2.1.1.2.2.2.15.1.0'
"ConfiguredPower" '.1.3.6.1.4.1.23180.2.1.1.2.2.4.1.0'
"MerTarget" '.1.3.6.1.4.1.23180.2.1.1.2.1.7.5.15.20.8.0'
"Local_time" 1.3.6.1.4.1.23180.2.1.1.2.1.1.10.5.0'
"remote_IP" '1.3.6.1.4.1.23180.2.1.1.2.1.2.1.2.0 '
Remarque :
Pour trouver ces OID on a utiliser un le logiciel ‘MIB Browser’ qui facilite la lecture d’un fichier
MIB et le traduire en forme arborescente.
1) Premièrement, il faut créer un virtuel environnement par la commande suivante dans CMD :
47
Réalisation d'une application de télégestion d’un émetteur TNT 2022
On trouve plusieurs fichiers dans ce dossier, mais les fichiers qu’on va travailler sur sont:
manage.py : un utilitaire en ligne de commande qui vous permet d’interagir avec ce projet
Django de différentes façons.
Le sous-répertoire mysite3 correspond au paquet Python effectif de votre projet. C’est le nom
du paquet Python que vous devrez utiliser pour importer ce qu’il contient (par ex. mysite.urls).
settings.py : réglages et configuration de ce projet Django. Les réglages de Django vous
apprendront tout sur le fonctionnement des réglages.
urls.py : les déclarations des URL de ce projet Django, une sorte de « table des matières » de
votre site Django.
3) Alors on est prêt maintenant pour lancer le serveur utilisant la commande ‘py manage.py
runserver’ :
48
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Maintenant et puisque notre projet est prét, on peut passer à la création de notre applications web,
mais avant ça, à quoi sert une Application ?
Un projet est un ensemble de réglages et d’applications pour un site Web particulier. Un projet
peut contenir plusieurs applications. Une application peut apparaître dans plusieurs projets. Une
application peut être spécifier à manager par exemple un système de blog, une base de données
publique ou une petite application de sondage…
Pour faire ça on doit modifier quelques Figure 45: répertoire de l'app Pages.
paramètres dans ces fichiers, commencent par Views.py :
49
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Views.py:
Pages/Urls.py :
Alors on a associé un URL sous le nom ‘index’ au views, mais on voit qu’on à importer une
bibliothèque nommée urls depuis le dossier ‘ProjectCasa’, donc n doit déclarer notre URL dans
cette dernière.
ProjectCasa/Urls.py :
Maintenant qu’on a affecter un URL à notre VIEWS dans l’application et l’associer avec le
project, on doit tout d’habord déclarer lapplication dans le projet. Pour fare ça on doit ajouter une
ligne dans le fichier settings.py .
Settings.py :
50
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Le fichier Settings.py est le cœur de notre projet, tous les modifications et les commandes qu’on
va appliquer et ajouter, doivent être déclarer dans ce fichier, on parle ici des applications, la base
de données, les utilisateurs, l’authentification (login and out), aussi les Template des pages HTML
qu’on va insérer prochainement.
Simulation :
On est prêt pour lancer une simulation et tester le projet, on va lancer le server :
Le but de ce projet est d’obtenir les informations et les paramètres de l’émetteur Tredess est
afficher ces derniers dans une page web, ces paramètres se varient par rapport au temps. Donc on
besoin de créer un site web dynamique, qui s’actualise dans un délai automatiquement pour
obtenir des nouvelles valeurs qui seront changées (température, puissances, fréquence, temps …).
Donc on est obligé d’enregistrer ces valeurs dans une base de données avant les utiliser.
Comme on a déclaré dans un premier temps, Mongodb enregistre les données sous formes des
fichiers ‘. JSON’, cela nous permet d’utiliser ces fichiers dans le code HTML pour minimiser la
durée d’exécution et de gagner plus de temps pour que notre site web sera vite et pas très lent.
Aussi, MongoDB est compatible avec Django et ça sera facile de les associer utilisant Djongo.
Djongo :
Djongo est une amélioration par rapport à PyMongo dans la mesure où les développeurs n'ont pas
besoin d'écrire de longues requêtes. Il mappe les objets Python sur les documents MongoDB,
c'est-à-dire l'Object Document Mapping (ODM). Djongo garantit que seules des données propres
entrent dans la base de données. En effectuant des contrôles d'intégrité, en appliquant des
validations, etc. avec Django, il n'est pas nécessaire de modifier l'ORM Django existant.
51
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Installer Djongo :
Maintenant que nous avons le projet (et l'application) Django, on peut créer les collections dans
MongoDB à l'aide des commandes :
python manage.py makemigrations
python manage.py migrate
Models.py :
Models.py est un fichier se trouve dans le répertoire de l’applications ‘pages’ qu’on a créé. Dans
ce fichier on va déclarer tous les paramètres et les valeurs qu’on va utiliser et qu’on eut enregistrer
dans la base de données. Ces valeurs seront déclarées dans un class. Vous trouverez le code de
fichier models.py dans l’Annexe.
52
Réalisation d'une application de télégestion d’un émetteur TNT 2022
- Statics :
Le langage de gabarit de Django est conçu comme un compromis entre puissance et simplicité. Il
est conçu pour que les habitués au code HTML se sentent à l’aise.
53
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Un gabarit est un fichier texte. Il peut générer tout format basé sur du texte (HTML, XML, CSV,
etc.). Il contient des variables qui sont remplacées par des valeurs lorsque le gabarit est évalué,
ainsi que des balises qui contrôlent la logique du gabarit.
Les variables apparaissent comme ceci : {{ variable }}. Lorsque le moteur de gabarit rencontre
une variable, il l’évalue et la remplace par le résultat. Les noms de variables peuvent contenir tout
caractère alphanumérique ainsi que le soulignement ("_") mais ne peuvent pas commencer par un
soulignement et ne peuvent pas être un nombre. Le point (".") peut aussi faire partie du nom de
variable, mais avec une signification particulière, comme nous l’expliquons ci-après. Il est
important de relever que les espaces et la ponctuation ne sont pas autorisés dans les noms de
variables.
On va utiliser DTL pour déclarer les variables qu’on a traiter dans Django, sur les pages HTML.
- Base.html :
On va créer une premier page ‘base.html’, cette page va contient ‘navbar’ et ‘sidebar’ et tous
options qui seront dans tous les pages comme la couleur de l’arrière-plan de site. Cette page sera
incluse dans tous les autres pages et comme ça on n’aura pas besoin de répéter le code ces options
dans chacune de ces pages, on peut faire ça avec les deux commandes {% include 'base.html' %}
ou {% extend 'base.html' %}.
Figure 50:base.html
54
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Afin d’assurer la sécurité et là on doit avoir une authentification d’utilisateur pour que l’accès à
l’équipement sera possible seulement pour les ingénieurs et les employés intéressées par se
dernier. Heureusement, Django offre se service d’authentification, donc ce n’est pas l’appel de
créer une page HTML pour le login car ça existe déjà sur Django.
Il suffit de déclarait l’authentifications dans les applications dans setings.py, aussi de créer une
espace ou on va ajouter les utilisateurs. Ensuite, on doit d’déclarer la page login.html dans le
répertoire Template. Finalement on va créer des utilisateurs utilisant la commande ‘> python
manage.py createsuperuser’
Pour créer une Home Page j’ai utilisé le CSS pour réaliser une figure ou bien un schéma qui
présente les différents paramètres de l’émetteur Tredess d’une façon qui permit de suivi son
fonctionnement. (Voir la page suivante).
- Paramètres (Settings.html) :
Quand on parle sur un émetteur de TNT, on parle sur la puissance, la fréquence, la température,
les entrées, les adresses IP, le modulateur, l’amplificateur…etc. Et plusieurs paramètres qu’on
peut trouver dans cet équipement. C’est pour ça que j’ai décidé d’afficher tous ces paramètres sous
forme d’un tableau bien détaillé. (Voir la page suivante).
55
Réalisation d'une application de télégestion d’un émetteur TNT 2022
56
Réalisation d'une application de télégestion d’un émetteur TNT 2022
- Edit et modification:
Il existe des paramètres qu’on peut le modifier comme le nome, le temp, le mode de
fonctionnement, la date, les alarmes…etc. on a dit que cette étape peut être effectuer par la
commande SET de SNMP. Et pour l’interface web, j’ai décidé de créer une fenêtre pop-up ou on
va insérera la nouvelle valeur de la variable.
Conclusion
Dans ce chapitre, on a abordé la partie pratique, tout ce qui est en relation avec la programmation,
le protocole SNMP et la liaison avec l’équipement utilises, on a aussi vu les étapes de créations d'u
projet sur le Framework Django, sans oublier l'association de ce dernier avec la base de données
MongoDB. Enfin on a passé au développement web de l'interface du site web et des Template en
langage DTL, HTML, CSS.
57
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Conclusion Générale
L’objectif de ce projet était de Réaliser une application de télégestion d’un émetteur TNT
pour le centre de Casablanca.
J'ai réussi à atteindre les objectifs demandés, le principal étant de résoudre la problématique
et la réalisation de la solution, j'étais capable d‘accomplit les missions du projet, grâce à mes
recherches, le support de mes encadrants et mes superviseures, l'effort, le travail, la patience et la
volonté que j'avais qui étaient suffisants pour faire réussir ce projet.
De ce stage, j’ai mieux maitrisé les diffèrent outils que j’au utilisé commencent par les
langues de programmations Python, HTML, DTL. Tandis que j’ai tiré de nouvelles compétences
comme le Framework Django et le protocole SNMP.
Vue que c’est la première fois que je travaille sur un sujet comme cela, c’était largement
attendu de rencontrer des difficultés durant ce stage, l’un de ces derniers était la comptabilité entre
les diffèrent versions de chaque outil ou plateforme utilisé dans ce projet. Mais après des
recherches approfondis, j’étais capables de palier ces problèmes trouvant la version de chaque
outil qui sera compatible avec les autres.
Ce projet là également m’a permis de développer un aspect de moi en tant que futurs
ingénieurs qui consiste à trouver les solutions à une problématique, et aussi un sens de
prospection.
Ce stage me conforte dans mon choix de carrière professionnelle. En effet, étant donné cette
opportunité d'essayer et de pratiquer les différentes choses enseignées, améliore encore et obtient
ce qui est déjà appris.
58
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Bibliographie
[1] PYTHON SNMP TUTORIAL | ICTSHORE.COM
[10] PYTHON.ORG
59
Réalisation d'une application de télégestion d’un émetteur TNT 2022
Annexe
from django.db import models
60
Réalisation d'une application de télégestion d’un émetteur TNT 2022
61