Sujet BTS SNIR 2024 : Épreuve E4
Sujet BTS SNIR 2024 : Épreuve E4
SYSTÈMES NUMÉRIQUES
SESSION 2024
______
Durée : 6 heures
Coefficient : 5
______
Ce sujet comporte :
Présentation du système PR1 à PR3
Sujet
Questionnaire Partie 1 Informatique S-Pro1 à S-Pro12
Document réponses à rendre avec la copie DR-Pro1 à DR-Pro5
Questionnaire Partie 2 Physique S-SP1 à S-SP9
Document réponses à rendre avec la copie DR-SP1
Documentation DOC1 à DOC15
Dès que le sujet vous est remis, assurez-vous qu’il est complet.
Chaque candidat remettra deux copies séparées : une copie « domaine professionnel » dans
laquelle seront placés les documents réponses DR-Pro1 à DR-Pro5 et une copie « Sciences
Physiques » dans laquelle sera placé le document réponses DR-SP1.
1. Présentation
Un nombre important de grandeurs issues de différents capteurs sont stockées dans une base
de données afin de permettre leur exploitation.
Ces actions s’inscrivent dans une démarche générale « horizon 2030 » qui vise à définir et à
améliorer l’urbanisation des communes dans les prochaines années. Le but est d’améliorer
l’environnement et la qualité de vie.
Une attention particulière est donnée à la surveillance de la qualité de l’eau car c’est un enjeu
majeur pour toute cette région de tradition agricole. Trois stations de mesure ont été installées
pour contrôler les eaux côté mer, les eaux de rivières côté terre et au niveau de la ville de Lannion.
Ces contrôles permettent de surveiller la pollution pouvant venir de la mer, des eaux fluviales et
du ruissellement des eaux de pluies sur des zones contaminées.
Un bulletin mensuel est édité par le département dans lequel sont listées toutes les informations
concernant les régimes hydrologiques, le bilan des débits, le niveau des particules présentes
dans les rivières, la circulation des cours d’eau.
Afin d’effectuer les relevés, chaque station est équipée d’une sonde multi-paramètres AP-2000
(voir documentation PP5) qui est capable de fournir des informations relatives à la qualité de
l’eau. Chaque station transmet ensuite les grandeurs mesurées à une passerelle LoRaWan
« LORIX » installée en plein air, sur le site de la mairie de Lannion en Bretagne.
Les stations de mesure sont considérées comme des objets connectés. Les grandeurs issues de
ces stations sont transmises par liaison radio LoRaWan vers une passerelle (ou « gateway »)
LoRaWan « LORIX » qui les transmet à son tour à un serveur TTN « The Things Network » via
internet. Le serveur TTN, grâce au protocole MQTT, communique les grandeurs à un serveur
applicatif situé à la mairie de Lannion.
Q2. Expliquer en quoi les technologies Bluetooth et Wifi ne sont pas adaptées pour permettre
aux stations de mesure de transmettre leurs informations.
Q3. Sur le diagramme d’exigences du document réponse, placer les blocs manquants
« Microcontrôleur LoRaWan », « Sonde AP2000 » et « Passerelle LoRa LORIX ».
Q6. En vous aidant de la documentation PP3, indiquer à quoi correspond cet indice de
protection.
Q7. Sur le diagramme d’exigences du document réponse, compléter le texte des exigences
d’id 1.3.2 et [Link].
La sonde est utilisée avec la configuration usine, son adresse est donc égale à 0.
Les différentes mesures effectuées par la sonde ne peuvent pas être récupérées par une seule
commande. Elles doivent être récupérées au moyen de deux séquences de mesures.
Q8. A l’aide de la documentation PP5, donner les commandes sous la forme de 3 chaînes de
caractères qui permettent au capteur de :
• lancer la mesure en mode concurrent sans CRC ;
• envoyer la séquence de mesures 0 sans CRC ;
• envoyer la séquence de mesures 1 sans CRC.
Commande Réponse
Lancement de mesure 000216
Q9. A partir des trames réponses précédentes et à l’aide de la documentation PP5, extraire et
donner les informations suivantes en précisant l’unité de chaque mesure :
• temps à partir duquel la mesure est disponible
• nombre de mesures fournies
• température
• pourcentage saturation oxygène (do-sat)
• salinité
• pH
• turbidité
Le diagramme des classes partiel du programme exécuté par le Microcontrôleur LoRaWan est
donné Figure 4 :
• Les mesures sont stockées dans des attributs privés (temp, etc...), et accessibles via des
accesseurs (getTemp(), etc…).
• La méthode start() de la classe AP2000 déclenche l’exécution d’une boucle infinie dans
laquelle elle demande à la sonde AP2000 d’effectuer une série de mesures.
Pour cela, elle envoie une série de commandes ASCII à la sonde AP2000, et elle analyse
les réponses retournées par celle-ci.
Q11. Compléter le diagramme de séquence sur le document réponse en ajoutant les appels de
méthodes manquants.
Les cinq mesures à envoyer au serveur TTN, issues du capteur AP-2000, sont la température, le
pourcentage d’oxygène dissous, la salinité, le pH et la turbidité. Pour être transmises, ces
mesures sont stockées dans un tableau d’octets payload.
Afin de structurer les données à envoyer vers le serveur TTN, on s’interroge sur le format de
stockage des mesures.
Une première solution consiste à représenter en ASCII les valeurs mesurées et exprimées en
nombres décimaux à virgule. Par exemple, pour une température de 10.24°C, on stocke les
caractères ASCII ‘1’, ‘0’, ‘.’,’2’ et ‘4’.
Une deuxième solution est de multiplier la mesure par 100 et de conserver la valeur entière. Cette
valeur entière est ensuite codée sous forme d’un entier 16 bits. Par exemple, pour une
température de 10.24°C, la valeur entière obtenue est 1024. Cette valeur codée en entier 16 bits
se représente en binaire 0000 0100 0000 0000 ou en hexadécimal 0400.
Q13. En vous aidant de la documentation PP6, compléter le document réponses pour une
mesure de saturation d’oxygène de 95.3%.
La deuxième solution est retenue car elle utilise moins d’octets de payload. Le format de la
payload est le suivant :
payload[0] 04
payload[1] CE
payload[2] 25
payload[3] 08
payload[4] 07
payload[5] F3
payload[6] 02
payload[7] DC
payload[8] 00
payload[9] 76
Q14. A partir du tableau précédent, donner les valeurs en nombre décimaux à virgule de la
température (en °C) et de la turbidité (en NTU).
Problématique : Récupérer et stocker sur le serveur applicatif les données fournies par le
serveur TTN.
The Things Network est un réseau LoRaWan communautaire et open source pour l'Internet des
Objets (IoT en anglais). Actuellement le réseau se compose de plus de 40000 contributeurs
regroupés en plus de 400 communautés dans 90 pays ayant déployé plus de 4000 passerelles.
Le serveur TTN intègre un « broker MQTT » qui permet de publier les données sur un « topic »
au format JSON.
A la réception d’une payload, le serveur TTN retransmet les données au serveur applicatif au
travers d’une publication MQTT.
Q16. A l’aide de la documentation PP7, donner la commande qui permet au client MQTT de
s’abonner à la totalité des topics auprès du serveur [Link], avec
le nom d’utilisateur station_epuration et le mot de passe stE45!#589io.
La capture Wireshark de la trame lors de la demande de cette souscription est représentée ci-
dessous :
• La table Mesure contient toutes les mesures. Chaque mesure est associée à un type de
grandeur mesurée et au capteur qui a effectué la mesure.
• La table TypeMesure contient une liste des types de grandeurs mesurées avec pour
chacune son unité.
• La table Station contient pour chaque station son nom, ses coordonnées GPS et
l’identifiant de son capteur.
• La table Capteur contient une liste de capteurs avec pour chacun ses caractéristiques.
Q18. En s’aidant de la documentation PP8, donner la requête SQL qui permet de lister
l’ensemble du contenu de la table Mesure.
Q19. En s’aidant des Figure 6 et 7, préciser le nom de la grandeur mesurée pour la ligne 3 de
la table Mesure.
Les données relatives à une série de mesures sur l’eau provenant du capteur d’id_Capteur 1, à
la date 2022-04-05 [Link] , sont :
• température : 10.78°C
• taux oxygène : 68.9 %
• salinité : 12.35 mg/l
• pH : 7.5
• turbidité : 12.23 UTN
Q20. En s’aidant de la documentation PP8 et de la figure 6, donner la requête SQL qui permet
d’insérer la mesure de température dans la table Mesure.
Parefeu Mairie
[Link]
Le Serveur Applicatif avec lequel le serveur TTN communique se trouve dans la DMZ du réseau
de la Mairie de Lannion. L’administration dispose du bloc [Link]/16 pour l’ensemble du
réseau de la mairie. Ce bloc d’adresses sera divisé en sous-réseaux pour attribuer une plage
d’adresse à chaque service, DMZ comprise. On a besoin de créer 10 sous-réseaux.
Le serveur TTN doit pouvoir accéder au Serveur Applicatif, situé dans la DMZ du réseau de la
mairie. Pour cela, on doit mettre en œuvre des redirections de port sur le pare feu de la mairie.
Le service supportera les protocoles HTTP (port 80) et HTTPS (port 443).
Q24. Compléter le tableau sur le document réponses en s’appuyant sur les informations
fournies et sur la figure 8.
BTS Systèmes Numériques
SESSION 2024 Option A Informatique et Réseaux
Épreuve E4 Page S-Pro11 sur 12
24SN4SNIR1 Domaine professionnel - Sujet
Dans la perspective d’un passage à l’IPV6, il est possible de créer une adresse IPV6 à partir de
l’adresse MAC. Le document PP9 donne la méthode pour obtenir les 4 hextets de poids faible.
Le sous-réseau «unicast global » du service «Capteurs» sera [Link]/64.
Q25. Donner l’adresse IPV6 complète (sans simplification) qui serait construite à partir de cette
adresse MAC.
Réponse à la question Q1
Class GestionStation
{
private :
unsigned char * payload ;
void aquisitionMesuresStation() ;
void composerPayloadLoRa() ;
public :
Solution 1 :
9 5 . 3 0
Code Ascii en
hexa
Solution 2 :
décimal hexa
Mesure de la saturation d’oxygène 95.3 x 100
void GestionStation::composerPayloadLoRa()
{
unsigned short int int_Temp = sonde->getTemp()*100 ;
Question Réponse
Nombre de bits de découpage de sous-réseaux
Nombre de sous-réseaux possibles
Masque de sous-réseau en notation CIDR
Masque de sous-réseau en décimal pointé
Adresse IP du premier sous-réseau
Adresse IP du dernier sous-réseau
Nombre d’adresses IP utilisables par sous-
réseau
Chaque station de mesures transmet régulièrement les différentes informations par liaison
radio vers des antennes appelées passerelles ou « gateway ».
Ces informations sont ensuite remontées vers un serveur central via internet (figure 1).
- Mode continu : il s’agit d’une phase de test ou de maintenance durant laquelle la sonde
est sous tension en permanence. Les mesures sont effectuées toutes les 2 secondes, mais
ne sont pas transmises ;
- Mode critique : il s’agit d’une phase nécessitant un nombre de mesures important. Les
mesures sont effectuées et transmises toutes les minutes. La sonde est mise en veille entre
deux mesures ;
- Mode normal : Les mesures sont effectuées et transmises toutes les heures. La sonde est
mise en veille entre deux mesures.
Ce taux donne une indication sur le degré d’équilibre pour l’oxygène entre l’air et l’eau. Lorsque
Cr est inférieur à 100 %, l’eau est sous-saturée en oxygène, et lorsque Cr est supérieur à 100 %,
l’eau est sursaturée en oxygène.
Lors d’une mesure de la station, le capteur réalisé avec la sonde de mesures multi-paramètre
AP-2000 fournit les valeurs suivantes :
16
14
12
Cs (mg∙L-1)
10
8
6
4
2
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
Température (°C)
Les données mesurées sont transmises sous forme de caractères sur un seul fil en suivant le
protocole SDI12 décrit document SP1.
Une trame SDI12 a été capturée à l’oscilloscope lors d’une mesure (figure 4). Elle contient 34
caractères soit 340 bits.
Q33. Calculer le débit binaire D et vérifier que sa valeur est compatible avec la norme SDI12
présentée dans la documentation PP4.
Dans le but de valider le choix du câble de transmission, une mesure du spectre du signal
transmis est proposée figure 5.
0,80
0,70
0,60
Amplitude (V)
0,50
0,40
0,30
0,20
0,10
0,00
-0,10 0 1 200 2 400 3 600 4 800 6 000 7 200 8 400 9 600 10 800 12 000
Fréquence (Hz)
Pour rendre ces mesures exploitables, l'objectif est de développer un filtre numérique temps
réel permettant de lisser les mesures.
Pour la mise en œuvre du filtre, la station est configurée en mode critique, c’est-à-dire que
la période d’échantillonnage, notée TE, vaut 2 s.
Le diagramme de Bode du gain du filtre a été tracé à partir de la transmittance T(z), à l’aide
d’un logiciel de simulation (figure 6).
Q41. Démontrer, à partir de la transmittance T(z), que l'équation de récurrence du filtre est
la suivante :
Q42. Préciser s’il s'agit d'un filtre récursif ou non-récursif. Justifier la réponse.
Le graphe suivant (figure 7) présente une portion du signal brut et du signal filtré.
t en heures
Q44. Indiquer si le filtre remplit bien son rôle en le justifiant à partir du chronogramme de la
figure 7.
Le « duty cycle » est la portion de temps pendant laquelle un dispositif LoRa est autorisé à
émettre. Il est calculé sur une heure glissante et exprimé en pourcentage.
Le « duty cycle » ne doit pas dépasser 1 %. Par conséquent, pendant les 100 dernières
secondes, un dispositif ne doit jamais avoir émis pendant plus de 1 seconde au total.
Problématique : Vérifier que le duty cycle est respecté et que le maillage des antennes
de réception est suffisant.
La station de mesure émet un message de 246,8 ms (time on air) toutes les minutes (mode
critique).
Pour récupérer les données émises par les différentes stations de mesure, douze antennes
de réception (passerelles) ont été déployées à des endroits stratégiques.
Leur positionnement permet de garantir une distance maximale de 5 km, notée D, entre une
station et une passerelle, en espace libre (figure 8).
La perte de connectique pour l’émetteur entre le module radio et l’antenne est de 1,0 dB.
P
PdBm = 10 log avec P0 = 1 mW
P0
Q47. Calculer la puissance émise par la station de mesure PTX en dBm et compléter le document
réponse DR-SP1.
Q48. Vérifier que la PIRE (puissance isotrope rayonnée équivalente) est de 15 dBm et
compléter le document réponse DR-SP1.
On rappelle que la perte de puissance en espace libre, notée FSL, est donnée par la formule de
FRIIS :
Q49. Calculer la perte de puissance FSL en espace libre et en déduire la puissance PR reçue
par l’antenne. Compléter le document réponse DR-SP1.
Q51. En déduire la puissance reçue PRX par le récepteur et compléter le document réponse DR-
SP1.
Q52. Déterminer la valeur de la marge définie dans le diagramme, intitulé bilan des puissances,
du document réponse DR-SP1.
Q53. Conclure sur la validité de la transmission en considérant le duty cycle et le maillage des
antennes.
LoRaWan appartient à la catégorie des LPWAN (Low Power Wide-Area Network), réseaux
basse consommation d'énergie, longue portée, adaptés aux objets connectés (IoT : internet of
things) dont l'application requiert une autonomie importante.
Les cas d'usage les plus courants des réseaux LPWAN sont les « smart cities », les industries
connectées et la mesure de données en milieu isolé, par exemple agricoles ou météorologiques.
Le tableau ci-dessous présente le positionnement de LoRaWan vis à vis des autres réseaux sans
fil, par rapport à leur portée (« range ») et bande passante respectives (« bandWidth ») et leur
consommation.
10 m 5Mb/s 2 mW
50 m 200Mb/s 80 mW
100Mb/s – 4G
5000 m 500 mW
1Gb/s - 5G
10 000 m 500b/s 25 mW
Sur un réseau LoRaWan, les données émises par les équipements (nœuds LoRa) sont
centralisées par des passerelles qui transmettent les données à leur tour vers le serveur de
réseau. Le serveur réseau « Network Server » du service de collecte s'appelle The Things
Network (TTN) : [Link]
• End Device, Node, Mote - nœuds (End Device) sont les objets connectés, ils sont de nature très
diverse et en constante évolution.
• Gateway - passerelles (Gateway) qui vont récolter leurs données et les transmettre par internet
vers TTN.
• Network Server - « The Things Network » : serveurs, site TTN, services ….
• Application Server - application cliente sera capable de récupérer ces données par un serveur
utilisant le protocole MQTT que l’on nomme « broker ».
D’un point de vue réseau et son modèle de représentation OSI « Open Systems
Interconnection », LoRa intervient sur les bases couches Physique et Liaison.
• La passerelle LORIX existe en deux versions : une version 915MHZ POUR US/CANADA et une
VERSION 868MHZ POUR L’EUROPE.
• Elle se connecte par RJ45 et ne nécessite pas d’alimentation supplémentaire. Elle utilise la
technologie « PoE : power Over Ethernet »
• Elle est munie d’une antenne qui permet de communiquer avec les nœuds.
• Selon son indice de protection, elle peut être utilisée en extérieur. Il y a deux versions : IP43 pour
les antennes type « indoor » et IP65 pour les antennes type « outdoor ».
« Reset » Usine :
Protégé contre les corps solides Protégé contre les chutes verticales de
1
supérieurs à 50. gouttes d'eau.
Protégé contre les corps solides Protégé contre les chutes de gouttes
2
supérieurs à 12,5. d'eau jusqu'à 15° de la verticale.
Protégé contre les corps solides Protégé contre l'eau en pluie jusqu'à 60°
3
supérieurs à 2,5. de la verticale.
Protégé contre les corps solides Protégé contre les projections d'eau de
4
supérieurs à 1. toutes directions.
Protégé contre les poussières et Protégé contre les jets d'eau de toutes
5
autres résidus microscopiques. directions à la lance.
Totalement protégé contre les Protégé contre les forts jets d'eau de
6
poussières. toutes directions à la lance.
Exemple IP 2X : protégé contre les corps solides supérieurs à 12,5. Aucune protection contre les
intrusions d'eau.
The asynchronous serial data line is a bidirectional (half-duplex) data transfer line.
Communication:
• 1 start bit
• 7 data bits, LSB first
• 1 even parity bit
• 1 stop bit
Command Format:
<a><command-data>!
where:
• <a> is the address character (valid values are ASCII “0”-”9”, “A”-” Z”, “a”-” z” & “?”)
default : 0.
• <command-data> is a string of zero or more command dependent data characters (values
in the range 0x20-0x7E, excluding 0x21 (ASCII “!”))
• The packet is terminated by 0x21 (ASCII “!”)
Response packets have the format:
<a><response-data><CR><LF>
Where :
• <a> is the address character
• <response-data> is a string of zero or more command dependent data characters (values
in the range 0x20-0x7E)
• the packet is terminated by a carriage return followed by a line feed
where :
• <time> is the time in seconds (three digits) until the measurement will be ready.
• <nr-values> is a two-digit number (“01”- “20”) specifying the number of
measurements that will be returned by a subsequent D0 command.
where :
• <sequence-nr> is a single digit (“0”-”9”) indicating the data packet number being requested.
• <values> is a string of measurement results, each consisting of a sign character (“+” or “-
”), 1-7 digits and an optional decimal point.
• the <crc> field will be present if measurement with CRC was requested, and is a 3 byte
string containing the encoded CRC of the response packet.
BTS Systèmes Numériques
SESSION 2024 Option A Informatique et Réseaux
Épreuve E4 Page DOC7 sur 15
24SN4SNIR1 Documentation
The maximum size of the <values> field is 75 characters when following a concurrent
measurement request, or 35 characters when following a non-concurrent measurement
request.
Table below details the measurements provided by the AP2000 and the following
subsections describe the contents of the measurement related packets for each type of
Aquaprobe.
MQTT, pour "Message Queuing Telemetry Transport", est un protocole open source de
messagerie « publish-subscribe ».
Le serveur MQTT (« broker ») possède deux types de clients :
• Le publieur : émet les données sur un sujet ou « topic » donné.
• L’abonné : récupère les données de ce « topic ».
Un « topic » définit l’identité des informations. Exemple, pour un capteur de température : topic=
« device-utilisé/temperature ».
Ce protocole utilise le port 1883 par défaut et est encapsulé dans TCP/IP. La taille maximale d'un
message envoyé avec MQTT est de 256 Mo.
MQTT est particulièrement bien adapté pour récupérer les données acheminées par les
passerelles au site « The Things Network ».
Mosquitto est un serveur MQTT (broker) qui possède deux outils en ligne de commande
permettant de publier et de s’abonner à des sujets (topics) auprès d’un serveur MQTT :
• mosquitto_pub : pour publier un sujet
• mosquitto_sub : pour souscrire (s’abonner) à un sujet
Exemples de commande :
mosquitto_pub -h [Link] -t "/moteur/temperature" -u tplora2022 -P
gre!L32E2GPJ33 -m 12.5.
mosquitto_sub -h [Link] -t "/moteur/#" -u tplora2022 -P gre!L32E2GPJ33.
Créer une table dans la base de données active : CREATE nomTable (id INT NOT NULL
AUTO_INCREMENT PRIMARY KEY,
champ1 typeChamp, champ2 typeChamp,
…) ;
• NUMERIC (numérique), cela comprend les types INT, FLOAT, DOUBLE, BOOL ...
• STRING (Caractère), comprend deux types CHAR(n) de longueur fixe n et VARCHAR(n)
variable jusqu’à n caractères
• DATE, contient date et heure
Un exemple :
2001 : 0D88 : 0000 : 1111 : 0000 : 0000 : 0000 : 0200
• Première règle : 2001 : D88 : 0 : 1111 :0 : 0 : 0 : 200
• Deuxième règle :2001 : D88 : 0 : 1111 : 200
• La troisième règle est respectée
Principe de l’EUI-64
Caractère 1 Caractère 2