Actions
Structure des programmes » Historique » Révision 3
« Précédent |
Révision 3/5
(diff)
| Suivant »
Alexis ANGLADE, 02/02/2025 17:06
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 · 3 révisions