Portfolio de Brice BERNARDIN

S’initier aux réseaux informatiques

SAE 1.02

Compétence ciblée :

– Administrer les réseaux et l’Internet

Objectifs et problématique professionnelle :

Le professionnel R&T est confronté dans son environnement professionnel à la mise en œuvre de réseaux informatiques. Il doit donc appréhender la diversité de ses constituants et comprendre les interactions entre les différents éléments constitutifs d’un réseau informatique afin d’intervenir. Il doit mettre en pratique leurs connaissances techniques de configuration de postes de travail et d’équipements du réseau afin d’aboutir à un fonctionnement stable.

Descriptif générique :

Dans son environnement professionnel, le professionnel R&T doit mobiliser ses connaissances et ses compétences dans les systèmes d’exploitation, les protocoles réseaux, les outils logiciels, notamment sur l’interconnexion de switchs, routeurs d’accès Internet (fibre optique, 4G, ...). Il doit être capable de :

Mots-clés :

Réseau local, Connexion Internet, Équipements actifs.

Mise en Situation Professionnelle

Il s’agit de configurer une carte Raspberry PI afin de pouvoir la programmer sans avoir à toujours y brancher un écran et un clavier mais en y accédant simplement en SSH (Secure Shell), peu importe le réseau dans lequel elle est connectée. Une première phase portera sur la commande à distance d’une LED connectée à la carte Raspberry PI par le biais d’une résistance. Une deuxième phase consistera à interfacer des capteurs (tels que capteur de température, humidité …), afin que la carte Raspberry Pi fasse l’acquisition des mesures et les transmette à un « serveur ». Équipe de 3 étudiants au maximum.

Pour ce projet, on doit une présentation qui est le dossier de la raspberrypi et la manière comment le projet a été abouti.

Et également une vidéo où on explique le fonctionnement des codes python pour les LED et le MQTT pour transférer les données de température :

Voici des exemples de code python3 :

Ce code permet d'allumer les 3 LEDS du schéma ci-dessous :

PYTHON

from gpiozero import LED

from time import sleep

# Configuration des broches GPIO pour les trois LED

led_pins = [17, 18, 27] # Changez ces valeurs en fonction de votre configuration matérielle

# Initialiser les LED

leds = [LED(pin) for pin in led_pins]

try:

while True:

# Allumer chaque LED l'une après l'autre

for led in leds:

led.on()

sleep(1) # Réglage de la durée d'allumage de chaque LED

led.off()

except KeyboardInterrupt:

# Arrêt manuel avec Ctrl+C

pass

finally:

# Éteindre toutes les LED et nettoyer la configuration GPIO

for led in leds:

led.off()


Pour le prochain code, on va utiliser un module python appelé ADAfruit :

brice@brice-1-2: ~

brice@brice-1-2: ~ $ git clone https://github.com/adafruit/Adafruit_Python_DHT.git
brice@brice-1-2: ~ $ cd Adafruit_Python_DHT
brice@brice-1-2: ~ $ sudo apt-get update
brice@brice-1-2: ~ $ sudo apt-get install build-essential python-dev
brice@brice-1-2: ~ $ sudo python setup.py install
brice@brice-1-2: ~ $

Le prochain code va permettre les prendre les informations du capteur DHT22 et pour ensuite l'envoyer sur un service MQTT.
Voici le schéma:

Adafruit DHT + Paho MQTT

import Adafruit_DHT as dht

import paho.mqtt.client as mqtt

import time

# Configuration MQTT

MQTT_BROKER = "broker.mqttdashboard.com"

MQTT_PORT = 1883

MQTT_TOPIC = "topic/capteur"

# Configuration DHT

DHT_PIN = 4 # GPIO Pin connecté au capteur DHT22

DHT_SENSOR = dht.DHT22

# Fonction appelée lors de la connexion au broker MQTT

def on_connect(client, userdata, flags, rc):

print("Connecté au broker MQTT avec le code retour: " + str(rc))

# Fonction appelée lorsqu'un message est publié avec succès

def on_publish(client, userdata, mid):

print("Message publié avec succès")

# Configuration du client MQTT

client = mqtt.Client()

client.on_connect = on_connect

client.on_publish = on_publish

# Connexion au broker MQTT

client.connect(MQTT_BROKER, MQTT_PORT, 60)

try:

while True:

# Lecture des données du capteur DHT22

if humidity is not None and temperature is not None:

# Formatage des données à publier

message = '{{"temperature": {:.2f}, "humidity": {:.2f}}}'.format(temperature, humidity)

# Publication des données sur le topic MQTT

result = client.publish(MQTT_TOPIC, message)

# Attente avant la prochaine lecture

time.sleep(5)

else:

# Affichage d'un message d'échec

print('Échec de lecture du capteur. Réessayer.')

time.sleep(2)

except KeyboardInterrupt:

# Interruption par l'utilisateur

print('Interruption par l'utilisateur. Fermeture du programme.')

finally:

# Déconnexion du broker MQTT

client.disconnect()