« SE5 ECEAI/eceai 2023/2024/GodardDelcourt » : différence entre les versions
Aucun résumé des modifications |
|||
Ligne 84 : | Ligne 84 : | ||
Cependant, ce code ne nous convenait pas, nous avons donc du le modifier afin d'obtenir des données brutes séparées par une virgule (ce qui n'était pas le cas sur le programme originel). | Cependant, ce code ne nous convenait pas, nous avons donc du le modifier afin d'obtenir des données brutes séparées par une virgule (ce qui n'était pas le cas sur le programme originel). | ||
//CODE | |||
==Protocole de communication== | ==Protocole de communication== |
Version du 21 janvier 2024 à 16:36
Introduction
Objectifs du projet
Le projet vise à distribuer le calcul à différents endroits du réseau pour optimiser les performances et la sobriété énergétique. Un réseau d'objets connectés, de passerelles, et d'un serveur sera mis en place pour collecter, traiter, et évaluer les données environnementales.
Mise en œuvre du réseau
Description générale
Configuration de la Machine Virtuelle
Nous allons devoir créer une machine virtuelle sur Chassiron avec un accès internet IPv6.
Cette machine virtuelle sera déployée grâce à Xen et sera nommée "delgodVM".
La commande lancée pour créer la machine est la suivante :
xen-create-image --hostname delgodVM --force --dist bookworm --size 10G --memory 10G --dir /usr/local/xen --password glopglop --dhcp --bridge bridgeStudents
Nous allons par la suite devoir configurer son réseau, sa résolution DNS, et ses sources de paquets Debian.
Pour configurer le réseau de notre serveur, nous allons devoir modifier le fichier /etc/network/interfaces qui est un fichier de configuration réseau dans lequel les paramètres de l'interface sont spécifiés.
auto enX0
iface enX0 inet6 auto
Pour configurer la résolution DNS de notre serveur, nous allons modifier le fichier /etc/resolv.conf. Ce fichier permet de spécifier la configuration des serveurs de nom (DNS) pour résoudre les noms de domaine en adresses IP. Nous allons donc réaliser la configuration DNS suivante fournie dans le sujet :
domain plil.info
search plil.info
nameserver 2a01:c916:2047:c800:216:3eff:fe82:8a5c
Pour modifier les sources des paquets Debian, nous allons modifier le fichier /etc/apt/sources.list en rajoutant les paquets suivants :
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
Et nous allons aussi supprimer le fichier /etc/apt/apt.conf.d/01proxy.
Raspberry Pi
Image de la Raspberry Pi pour connexion avec le serveur via WiFi.
Nous allons tout d'abord devoir connecter la Raspberry Pi au WiFi nommé WIFI_IE_1. Pour configurer la Raspberry Pi, nous allons tout d'abord devoir la connecter en série à un ordinateur. Pour savoir quels pins il est nécessaire de connecter, il faut se fier à l'image ci-dessous. La partie alimentation n'est pas à connecter car trop faible pour alimenter la Raspberry Pi, nous allons donc devoir brancher sur secteur la carte grâce à une alimentation USB.
IMAGE RASP
Après avoir connecté la Raspberry Pi sur l'ordinateur, nous pouvons vérifier sur quelle interface la carte est connectée avec la commande
ls /dev
Par exemple, ici la carte était sur ttyUSB0. Nous pouvons ensuite lancer une liaison série avec minicom grâce à la commande
minicom -s
et les paramètres suivants ttyUSB0 et 115200 8N.
Puis, pouvons configurer le wifi, nous allons dans un terminal de la Raspberry Pi, taper les commandes suivantes afin d'accéder à la configuration du système :
raspi-config
Puis nous sommes allées dans ""System Options"" afin de pouvoir configurer les différentes informations qui vont nous permettre d'avoir le WiFi sur la carte.
Pour vérifier si nos modifications ont bien fonctionné, nous avons réalisé la commande ip a pour vérifier sir le wlan0 était bien Up, et nous avons aussi ping google.com pour vérifier si le WiFi fonctionnait. Tout cela était correct.
Informations concernant la Raspberry Pi :
Adresse ip : 172.26.145.129
User pour le SSH : pifou
Objets Connectés
Utilisation d'un STM32F401RE avec un capteur de distance (Nucleo-53L5A1).
Protocole de communication et acquisition des données.
Acquisition des données
Nous allons devoir développer un firmware embarqué afin collecter des données, nous allons pour cela utiliser un code STM32 Cube IDE qui va nous aider à collecter les données du capteur.
La première étape consiste alors a installer STM32 Cube IDE pour l'objet connecté (STM32F401RE) avec capteur de distance (Nucleo-53L5A1). Téléchargement de https://www.st.com/en/development-tools/stm32cubeide.html#documentation
Cependant, nous avons eu de nombreux problème pour installer ce logiciel sur les zabeths de l'école. Nous avons donc du utiliser un ordinateur personnel sous windows afin d'installer STM32CubeIDE. Afin de téléverser le programme sur notre objet connecté muni du capteur, nous allons devoir connecter celui-ci en série avec notre ordinnateur. Le code sera par la suite placé sur l'objet grâce à l'application.
Pour récupérer les données, nous allons utiliser un programme d'exemple fourni par --. Ce code est disponible en annexes. Pour vérifier le fonctionnement de ce code, nous avons lancé une liaison série sur l'objet connecté (grâce à Putty par exemple) et nous avons bien pu récupérer des données.
Cependant, ce code ne nous convenait pas, nous avons donc du le modifier afin d'obtenir des données brutes séparées par une virgule (ce qui n'était pas le cas sur le programme originel).
//CODE
Protocole de communication
- Mettre en œuvre un protocole de communication entre les quatre objets et la Raspberry Pi en garantissant que toutes les données sont bien reçues => Script python et liaison série qui permettent au capteur de communiquer ses données a la RaspberryPi.
- Mettre en œuvre un protocole de communication entre la Raspberry Pi et le serveur. Ce protocole doit facilement pouvoir être étendu à un grand nombre de Raspberry Pi => Protocole de communication HTTP initié avec un script python entre le serveur et la Raspberry Pi
Stockage des Données
Le côté serveur doit être capable de stocker les données reçues. Script python recevant les données et qui les stockes dans un fichier .csv sur le serveur afin de pouvoir par la suite utiliser les données du capteur
Entraînement du modèle d’apprentissage
Mise en place du modèle embarqué et des modèles hybrides
Séance du 04/12/2023
AU cours de cette première séance, nous avons pu prendre en main les outils nécessaires à la réalisation de notre projet. L’objectif était de construire un serveur Xen et de configurer la RaspberryPi.
- Machine virtuelle sur Chassiron avec un accès internet IPv6.
- Image de la Raspberry Pi pour connexion avec le serveur via WiFi : nous avons installé une image ** sur la rapsberry pi
Séance du 18/12/2023
Au cours de cette séance, nous allons tout d'abord
- Développer un firmware embarqué pour collecter les données, avec STM32 Cube IDE et donc un programme permettant d'acquérir les données du capteur.
- Mettre en œuvre un protocole de communication entre les quatre objets et la Raspberry Pi en garantissant que toutes les données sont bien reçues. Utilisation de la liaison série entre la carte et le capteur. Sur le port ttyACM0, avec un script python lancé de la rapsberry. Les données du capteur sont ensuite stockées dans un fichier .csv.
Séance du 19/12/2023
- Mise en place d'un serveur web http sur le serveur delgodVM pour permettre la communication grâce à des requêtes http entre la raspberry pi et le serveur. Tout ceci est réalisé grâce des scripts python.
Séance du 20/12/2023
- Transmission des datas récupérées par le capteur de la raspberry pi vers le serveur http.
- Vérfication de la réception de ces données brutes
- Début de l'apprentissage de notre AI, reconnaissance de la langue des signes