# Initiation aux systèmes embarqués à travers la mise en œuvre de Réseaux de Capteurs Sans Fil (RCSF)

Mohamed Aymen Labiod¹, Noureddine Doghmane², Amira Boulmaiz², Mouhamadou Mansour Gueye².
ndoghmane@univ-annaba.org

¹ Université Polytechnique Hauts de France, IEMN UMR CNRS 8520

² Electronic Department, University of Badji Mokhtar, Annaba, Algeria

**RESUME** : Dans ce travail, une initiation aux systèmes embarqués est proposée à des étudiants de Master 1 en « Télé-communication » de l'Université d'Annaba, cela entre également dans le cadre d'une opération de vulgarisation de la recherche. Dans ce travail formulé sous forme d'un TP, nous proposons aux étudiants une partie applicative d'un projet de recherche-formation universitaire (PRFU) portant sur la surveillance d'un écosystème par des réseaux de capteurs sans fil (RCSF). Ces RCSF sont destinés à une application d'identification et de reconnaissance des oiseaux migrateurs dans leurs habitats naturels en l'occurrence des zones humides. A travers ce travail, les étudiants sont amenés à utiliser différents types de modules de captage, des modules de traitement numérique, que sont les microcontrôleurs, ainsi que des modules de transmissions. Une partie traitement numérique du signal et de programmation est également nécessaire dans le traitement appliqué sur des échantillons de sons de oiseaux (cris et/ou chants). Ce travail qui arrive à la fin de la première année de Master permet aux étudiants de revoir différents aspects abordés durant leur cursus et les initiés à un travail de recherche.

**Mots clés** : dispositif pédagogique, réseaux de capteurs sans fil (RCSF), traitement de signal, ordonnancement, programmation.

## 1 INTRODUCTION

Le département d'Electronique de l'Université d'Annaba en Algérie propose des formations en Liçence, après validation de deux années préparatoires, et également différentes filières Master dont la filière « Télécommunication ». Les étudiants de ce Master académique, sont ainsi formés à des compétences de traitement numérique du signal, à la communication numérique, aux réseaux de communication ainsi qu'aux technologies et aux protocoles pour le multimédia.

D'autre part, deux laboratoires de l'université dont les thématiques sont proches de ces Masters sont pleinement associés à la formation des étudiants. Ces deux laboratoires, le laboratoire d'Automatique et Signaux d'Annaba (LASA) et le laboratoire d'Etude et de Recherche en Instrumentation et en Communication d'Annaba (LERICA), accueillent les étudiants tout au long du cursus pour différents projets étudiants. Les étudiants sont également sollicités et associés à certaines thématiques des laboratoires permettant ainsi une vulgarisation de la recherche. Dans cet esprit, un TP est proposé aux étudiants, en fin de Master 1, qui se base sur un projet de recherche-formation universitaire (PRFU), équivalent ANR en France. Le présent projet consiste en la surveillance d'un écosystème par des réseaux de capteurs sans fil (WSN) pour l'identification et la reconnaissance des oiseaux migrateurs [1,2].

La surveillance d'oiseaux migrateurs, et autres types d'animaux, peut être assurée de nos jours grâce à des systèmes embarqués. Parmi les systèmes embarqués les plus simples et les plus utilisés nous avons les réseaux de capteurs sans fil appelés RCSF ou Wireless Sensor Network (WSN). Ces petits dispositifs contiennent :

* Un module de captage

* Un module de traitement numérique ou DSP

* Un module de transmission

* Une batterie d'alimentation.

Ces RCSF sont actuellement utilisés dans divers domaines et applications. Pour réaliser un nœud de capteurs sans fil, nous pouvons faire appel à plusieurs technologies différentes et bien sur des constructeurs différents. Les systèmes Arduino peuvent être utilisés à cette fin.

Dans ce travail, nous proposons aux étudiants de réaliser un prototype pratique expérimental basé sur un module Arduino permettant l'acquisition des cris et chants de certains types d'oiseaux migrateurs, rencontrés dans un lac d'étude du projet PRFU. Aussi, cet équipement est appelé à calculer, dans un premier temps, les coefficients MFCC (Mel-frequency cepstral coefficients) du signal acoustique capté afin de pouvoir caractériser les sons d'oiseaux. Les coefficients MFCC sont des paramètres de caractérisation très populaires souvent utilisés dans l'apprentissage automatique "machine learning". Dans un second temps, les coefficients extraits sont transmis à un PC serveur. Le PC serveur distant permet ainsi les opérations de classification et de reconnaissance des différents types d'oiseaux.

Les étudiants auront dans ce TP à revoir un ensemble de connaissances assimilées durant leur première année de Master, en traitement du signal, en programmation C/C++ et Matlab, sur les capteurs, les microcontrôleurs et en communication numérique.

## 2 FONDEMENTS TECHNIQUES ET TECHNOLOGIQUES

L'objectif proposé aux étudiants est de réaliser un réseau de capteurs sans fil pouvant :

* Capter et acquérir des sons d'oiseaux dans un milieu naturel,

* Effectuer un prétraitement comme le débruitage
* Extraire les caractéristiques des signaux acoustiques captés en l'occurrence les coefficients MFCC,

* Également mesurer et acquérir périodiquement, selon une cadence choisie, des paramètres climatiques en particulier la température et l'humidité au niveau du site surveillé,

* Ordonnancer dans le temps la réalisation des tâches, prenant en considération les contraintes temporelles et des ressources requises.

* Transmettre ces données, à savoir les coefficients MFCC et les paramètres climatiques, vers le PC serveur.

Compte tenu des exigences techniques et technologiques et compte tenu également des disponibilités et du prix nous avons choisi, pour réaliser les différents nœuds de capteurs sans fil, d'opter pour les équipements suivants :

* Des modules Arduino Mega 2560,

* Des modules de transmission Xbee pro,

* Des capteurs de sons pour Arduino de type KY-037,

* Des capteurs numériques de température et d'humidité de type AM2302.

Même si les étudiants ne sont pas forcément concertés dans cette phase de sélections des équipements, il leurs ai demandé, au début des séances de TP, de faire un état de l'art des différentes options du choix des modules.

## 2.1 Arduino Méga 2560

L'Arduino Méga 2560 est un microcontrôleur basé sur le microcontrôleur ATmega 2560. Il dispose de 54 entrées/sorties numériques, de 16 entrées analogiques et de 4 ports séries (TX, RX). Comme il dispose aussi d'une mémoire interne de 256 Ko notamment pour le stockage du code programme [5].

## 3.2 Module de transmission XBEE-PRO

Le module XBee-PRO est une solution embarquée qui permet une connexion sans fil à des terminaux bien déterminés. Ces modules exploitent le protocole IEEE 802.15.4 pour une mise en réseau point-à-multipoint ou point-à-point rapide. Ils conviennent aux applications hautes débits nécessitant une faible latence et des délais de communications prévisibles. Le module XBee-PRO fonctionne dans 12 canaux de la bande 2.4 GHz avec une puissance d'émission ajustable entre 10 mW et 60mW, alimenté entre 2.8 et 3.4 V et disposant d'une portée théorique de 150m à l'intérieur et 1500m à l'extérieur. Ce module est illustré sur la Fig 1.

<figure><img src="image_1.png" /><figcaption>Fig 1: Module Xbee pro</figcaption></figure>

## 3.3 Capteur son pour Arduino

Le capteur de son KY-037 est adapté pour Arduino avec une haute sensibilité réglable à l'aide d'un potentiomètre intégré. Il dispose de deux sorties dont l'une est analogique du microphone tamponné et une sortie numérique qui s'actionnera si le niveau de bruit ambiant dépasse un seuil fixé par le potentiomètre à bord. Son alimentation doit être de 5V DC.

## 3.4 Capteur AM2302

Le module AM2302 est un capteur numérique d'humidité et de température. Il utilise, pour l'envoi des mesures de température et d'humidité, une transmission série 8 bits très performante. Il a besoin pour son fonctionnement d'une alimentation 3.3V. Il utilise un capteur d'humidité capacitif et une thermistance pour mesurer la température. Il produit alors un signal numérique sur sa broche/pin data.

<figure><img src="image_2.png" /><figcaption>fig 2 : Nœud de capteur sans fil réalisé</figcaption></figure>

# 3 CARACTERISATION DES SONS D'OISEAUX PAR LES COEFFICIENTS MFCC

L'extraction de caractéristiques est un élément clé dans la reconnaissance des sons d'oiseaux (cris et/ou chants) par apprentissage automatique (machine learning). Il s'agit de la première étape de l'ensemble du processus de reconnaissance. En effet, les paramètres sur lesquels repose le système de reconnaissance sont produit lors de cette étape. Cette dernière étape de caractérisation est sensée être implémentée dans les nœuds de capteurs sans fil dotée d'une faible technologie. Les coefficients MFCC (Mel-frequency cepstral coefficients) souvent utilisés dans la caractérisation des signaux de parole doivent être bien adaptés aux cris et/ou chants d'oiseaux limités à un très petit vocabulaire sonore. Cependant, il existe d'autres paramètres acoustiques couramment cités dans la littérature, par exemple les LPC (Linear Predictive Coding) et les PLP (perceptual linear prediction). Comme il existe une différence dans le calcul de chaque méthode. Dans notre application nous avons choisi d'implémenter les coefficients MFCC classiques dans chacun des nœuds de capteurs sans fil réalisé.
<figure><img src="image_3.png" /><figcaption>Fig 3 : Schéma de principe de l'extraction des MFCC</figcaption></figure>

Le principe de calcul des MFCC est basé sur la recherche psycho-acoustique sur le terrain et la perception des différentes bandes de fréquences par l'oreille humaine. La correspondance entre l'échelle de fréquence physique (Hz) et l'échelle de fréquence de perception (Mel) sont approximativement linéaires au-dessous de 1000 Hz et logarithmique à des fréquences plus élevées. La relation entre le niveau de fréquence Mel physique et la fréquence d'échelle peut être décrite comme suit :

$$ \hat{f}_{mel} = 2595 * \log_{10} \left( 1 + \frac{f_{lin}}{700} \right) \quad (1) $$

Les sons d'oiseaux sont des signaux non-stationnaires nécessitant une analyse spectrale à courte durée. L'analyse du signal est obtenue en appliquant une fenêtre de Hamming à N points. Il est également appliqué dans le but de diminuer la distorsion spectrale créée par le chevauchement, et de minimiser les erreurs produites par DFT (Discret Fourier Transform). L'équation de la fenêtre de Hamming est appliquée comme suit :

$$ w(n) = \begin{cases} 0.54 - 0.46 * \cos\left(\frac{2\pi n}{N-1}\right), & 0 \le n \le N-1 \\ 0, & \text{Sinon} \end{cases} \quad (2) $$

Pour extraire les coefficients MFCC nous procédons comme suit :

### Etape 1 : La transformée de Fourier discrète TFD (ou DFT en anglais) est appliquée sur chaque segment du son obtenu à partir du fenêtrage de Hamming :

$$ X(k) = \sum_{n=0}^{N-1} x(n) * w(n) * \exp\left(\frac{-2j\pi nk}{N}\right), \quad k = 0,1,\dots,N-1, \quad (3) $$

### Etape 2 : Une bande de M filtres triangulaires est construite. Chacun de ces filtres de hauteur égales M est défini par :

$$ H_i(k) = \begin{cases} 0 & \text{for } k < f_{b_i-1} \\ \frac{(k-f_{b_i-1})}{(f_{b_i}-f_{b_i-1})} & \text{for } f_{b_i-1} \le k \le f_{b_i} \\ \frac{(f_{b_i+1}-k)}{(f_{b_i+1}-f_{b_i})} & \text{for } f_{b_i} \le k \le f_{b_i+1} \\ 0 & \text{for } k > f_{b_i+1} \end{cases} \quad (4) $$

### Etape 3 : La sortie log-énergie de la sortie de chaque filtre est alors calculée :

$$ X_i = \log_{10} \left( \sum_{k=0}^{N-1} |X(k)| * H_i(k) \right) \quad (5) \\ i = 1, 2, \dots, M $$

### Etape 4 : A partir de l'étape 3 et en utilisant la DCT (Discret Cosine Transform) on obtient alors les MFCC :

$$ C_j = \sum_{i=1}^{M} X_i \cdot \cos \left( j \left( i - \frac{1}{2} \right) + \frac{\pi}{M} \right) \quad (6) \\ j = 1, 2, \dots, J $$

Où J est le nombre de coefficients MFCC (généralement J<M)

## 4 LA REALISATION

La réalisation s'articule sur deux parties :

* Hardware

* Software

Dans la partie hardware ou matérielle, chaque sous-groupe d'étudiants doit mettre au point plusieurs nœuds de capteurs sans fil composé chacun d'un Arduino Mega, d'un module de captage de son, d'un module de captage de température/humidité et d'un module de transmission Xbee pro. Toujours dans la partie hardware, nous disposons d'un PC connecté, via son port USB, à un autre module Xbee lui permettant ainsi de communiquer avec tous les nœuds de capteurs sans fil.

<figure><img src="image_4.png" /><figcaption>Fig 4 : Schéma de principe de la communication entre Xbee maître et les trois autres modules Xbee</figcaption></figure>

Le module XBEE-PRO, utilisé dans notre application, permet entre autres deux types de communication. Il s'agit soit d'une communication point à point ou bien une communication point à multiple points. Dans ce travail nous avons proposé aux étudiants le deuxième cas mentionné. En effet, nous disposons d'un XBEE « maître », connecté au PC serveur, qui doit contrôler et recevoir simultanément les données des trois autres XBEE connecté chacun à un nœud de capteur sans fil en l'occurrence à un Arduino. A cet effet, le module XBEE « maître » va envoyer en broadcast (diffusion) vers les 3 autres XBEE les commandes et les instructions. De même, lui seul pourra recevoir les données captées et/ou prétraitées des trois nœuds de capteurs sans fil comme illustré sur le schéma sur la Fig 4.
Quant à la partie software elle est également partagée entre les nœuds de capteurs sans fil et le PC serveur. Au niveau de chaque nœud de capteur sans fil un programme a été implanté permettant entre autres de :

* Acquérir un son on-line à l'aide du microphone ou bien prendre en considération un son numérique de référence représentant un exemple de cri d'oiseau parmi les oiseaux références considérés,

* Acquérir périodiquement la température et l'humidité,

* Calculer et extraire les coefficients MFCC,

* Organiser la réalisation des tâches dans le temps,

* Transmettre toutes ces données vers le PC serveur.

<figure><img src="image_5.png" /><figcaption>Fig 5 : les nœuds de capteurs sans fil réalisés</figcaption></figure>

Au niveau du PC, à l'aide d'un programme en Matlab une interface a été créée avec la participation des étudiants. Elle permet entre autres de :

* Choisir le type d'exécution à réaliser par chaque nœud de capteur

* Récupérer toutes les données envoyées par les différents nœuds de capteurs sans fil

* Afficher les courbes et les figures correspondants aux signaux sonores, de leurs spectres et de leurs coefficients MFCC.

* Afficher la température et l'humidité envoyée par chaque capteur.

<figure><img src="image_6.png" /><figcaption>Fig 6 : Le PC serveur avec son module de transmission Xbee</figcaption></figure>

D'après les résultats de l'acquisition, de la transmission et de l'affichage au niveau du PC serveur comparés aux

résultats obtenus par un traitement local en utilisant des signaux tests et Matlab nous avons conclu aux bonnes performances de notre système. En effet, les données transmis par les nœuds de capteurs sans fil sont pratiquement identiques à ceux obtenus par un traitement local en utilisant Matlab et pour les mêmes signaux tests, représentant les exemples de sons d'oiseaux. Ces tests ont été menés avec plusieurs sons d'oiseaux de référence tirés de la base de données. Les résultats obtenus témoignent bien de la bonne performance de ce système.

<figure><img src="image_7.png" /><figcaption>Fig 7 : Interface modélisée au niveau du PC serveur</figcaption></figure>

## 5 CONCLUSION

Dans ce travail, des étudiants de Master ont eu à étudier et réaliser un système de surveillance d'oiseaux migrateurs à base de nœuds de capteurs sans fil. Ces capteurs sans fil peuvent capter et caractériser les sons d'oiseaux à surveiller. Comme ils peuvent également transmettre les coefficients calculés vers une station de base pour une opération de reconnaissance ultérieure. Le travail s'est effectué avec des modules Arduino pour le traitement et l'acquisition. Quant à la transmission nous avons utilisé des modules Xbee. Après la réalisation matérielle, les étudiants ont eu à mettre au point des softwares nécessaires aux nœuds de capteurs d'un côté et la station de base d'un autre côté. Les essais et les expérimentations effectués nous ont montré la relative efficacité du système malgré le prix modique de ces modules et la simplicité de la mise en œuvre. Evidemment, plusieurs contraintes ont dû être satisfaites pour arriver à notre objectif. Parmi ces contraintes la faible technologie de ces modules Arduino qui nous a poussés à adapter et à simplifier le code programme qui doit calculer et extraire les MFCC.

## Bibliographie

[1] Boulmaiz, A., Messadeg, D., Doghmane, N. et al. "Robust acoustic bird recognition for habitat monitoring with wireless sensor networks". Int J Speech Technol 19, 631-645 (2016).

[2] Boulmaiz, A., Messadeg, D., Doghmane, N. et al. "Design and Implementation of a Robust Acoustic Recognition System for Waterbird Species using TMS320C6713 DSK". International Journal of Ambient Computing and Intelligence (IJACI) 8(1)-21 (2017).

[3] Gros-Desormeaux, H., Vidot, N., et Hunel, P. "Wildlife assessment using wireless sensor networks". Rijeka: INTECH Open Access Publisher 2010.
[4] Jančovič, and M. Köküer. "Automatic detection and recognition of tonal bird sounds in noisy environments". EU-RASIP Journal on Advances in Signal Processing, 2011(1), 982936.

[5] Arduino Mega 2560, https://store.Arduino.cc/Arduino-mega-2560-rev3P.