SE5 ECEAI/eceai 2023/2024/GodardDelcourt
Edge Computing and Embedded AI
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".
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 réseaux 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 l'a 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 .
- Image de la Raspberry Pi pour connexion avec le serveur via WiFi
- Objet connecté (STM32F401RE) avec capteur de distance (Nucleo-53L5A1).
Protocole de communication et acquisition des données
- Développer un firmware embarqué pour collecter les données => code STM32 Cube IDE pour collecter 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 => 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
- Stocker les données reçues côté serveur => 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.
Mise en œuvre du réseau
Machine virtuelle sur chassiron avec un accès internet IPv6.
- Configuration OK
fichier /etc/network/interfaces auto enX0 iface enX0 inet6 auto fichier /etc/resolv.conf domain plil.info search plil.info nameserver 2a01:c916:2047:c800:216:3eff:fe82:8a5c
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
Protocole de communication et acquisition des données
- Développer un firmware embarqué pour collecter les données
Nous avons utilisé STM32 Cube IDE
Avec un programme permettant d'acquérir les données du capteur.
Que nous avons choisi de séparer avec une virgule.
- 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.
- 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
- Stocker les données reçues côté serveur