Projet

Général

Profil

Actions

Structure des programmes » Historique » Révision 2

« Précédent | Révision 2/5 (diff) | Suivant »
Alexis ANGLADE, 02/02/2025 16:58


Structure des programmes


Contenu de la section

Vous trouverez dans cette section la structure des programmes utilisés durant le projet.

1. passerelle.ino

Section Fonction Description
Bibliothèques #include <SPI.h>
#include <LoRa.h>
Importation des
bibliothèques nécessaires
Définition des broches #define LORA_SS 18
etc...
Définition des broches
pour le module LoRa
Variables globales int counter = 0;
const int maxPackets = 30;
Compteur de paquets
envoyés et limite
Initialisation setup() - SPI et LoRa
- Paramètres LoRa
- Vérification du module
Transmission loop() - Vérification du compteur
- Envoi du message LoRa
- Attente 3s
- Arrêt après 30 paquets

2. point_em.ino

Section Fonction Description
Bibliothèques #include <SPI.h>
#include <LoRa.h>
Importation des bibliothèques nécessaires
pour l’affichage OLED et la communication LoRa
Définition des broches #define LORA_SS 18
#define LORA_RST 14
#define LORA_DIO0 26
Définition des broches pour le module LoRa
Variables globales int counter = 0;
const int maxcount = 1000;
Compteur de paquets envoyés et limite d’envoi
Initialisation setup() - SPI et LoRaConfiguration des paramètres LoRa
(Fréquence, Spreading Factor, Preamble)
- Vérification du module LoRa
- Initialisation de l’affichage OLED
Transmission loop() - Vérification du compteur
- Envoi du message LoRa avec entête et compteur
- Mise à jour de l’affichage OLED
- Pause de 1 seconde entre chaque envoi
- Arrêt de l’émission après 1000 paquets

3. point_rec.ino

Section Fonction Description
Bibliothèques #include <SPI.h>
#include <LoRa.h>
#include "SSD1306Wire.h"
Importation des bibliothèques nécessaires
pour l’affichage OLED et la communication LoRa
Définition des broches #define LORA_SS 18
#define LORA_RST 14
#define LORA_DIO0 26
Définition des broches pour le module LoRa
Variables globales String receivedData
;int packetSize;
Stockage des données reçues et
vérification de la taille des paquets
Initialisation setup() - Configuration du port série pour le débogage
- Initialisation de l’affichage OLED
- Configuration et démarrage du module LoRa
(Fréquence, Spreading Factor, Preamble, etc.)
- Vérification de l’initialisation LoRa
Réception et affichage des données loop() - Vérification de la réception d’un paquet LoRa
- Lecture du message reçu et extraction des informations
- Vérification de l’en-tête du paquet
- Affichage du message et du compteur sur l’écran OLED
- Affichage du RSSI (puissance du signal reçu) pour évaluer
la qualité de la transmission

4. ml_cfo.m

Section Fonction Description
Importation des données data = readtable('base_de_donne_sans_cfonode.xlsx') Chargement des données à partir d’un fichier Excel
Prétraitement des données rmmissing(data), data.N_D = categorical(data.N_D) Suppression des valeurs manquantes et conversion
des étiquettes en variables catégorielles
Sélection des caractéristiques features = {'CFO_total', 'SF'} Définition des variables utilisées pour la classification
Normalisation des données data.CFO_total = (data.CFO_total - mean) / std Mise à l’échelle des valeurs CFO_total pour
améliorer la performance du modèle
Visualisation des données boxplot(data.CFO_total, data.N_D),
gscatter(data.SF, data.CFO_total, data.N_D)
Tracé de graphiques pour analyser la distribution
des données
Séparation des ensembles d’entraînement et de test train_idx, test_idx = false(height(data),1) Création d’ensembles d’entraînement et de test
avec échantillonnage stratifié
Création du modèle KNN Mdl_KNN = fitcknn(X_train, y_train, 'NumNeighbors', 5, 'Standardize', true) Entraînement du modèle KNN avec 5
voisins et normalisation des données
Prédiction sur l’ensemble de test y_pred = predict(Mdl_KNN, X_test) Prédiction des étiquettes pour les données de test
Évaluation de la précision accuracy = sum(y_pred == y_test) / length(y_test) Calcul de la précision du modèle
Affichage de la matrice de confusion confusionchart(y_test, y_pred) Visualisation des erreurs de classification
Analyse des prédictions correctes par SF sf7_correct_blanc, sf8_correct_blanc, sf9_correct_blanc Comptage des classifications correctes pour chaque
SF (7,8,9) et chaque classe (Blanc, Noir)

Mis à jour par Alexis ANGLADE il y a 4 mois · 2 révisions