Académique Documents
Professionnel Documents
Culture Documents
(FR-SP23- MSC-ISN6120)
DEVOIR-1
MEDÈLES DE DÉVELOPPEMENT LOGICIEL
Rédigé par :
1. KOUOKAM KOUTCHOUANG Ubald
2. Bilong joseph Hermann
3. HELENE MILENE NGAH NGAH
4. MERVEILLE ILLONA SIGNE FONGANG
5. Levy Daryl MVOM MBEYO'O
6. Arnaud KAMDEM NONO
Mai 2023
Devoir 1 : Modèles de développement logiciel
SOMMAIRE
I. INTRODUCTION ....................................................................................................................................................... 4
II. PRÉSENTATION DU RASPBERRY PI ........................................................................................................................... 4
A. Définition ...................................................................................................................................................... 4
B. Composants d'un Raspberry Pi ..................................................................................................................... 5
III. CONCEPTION DU SYSTÈME ........................................................................................................................................ 8
A. Architecture du système ............................................................................................................................... 8
B. Code java de fonctionnement ....................................................................................................................... 8
1. Interface de description d’un capteur : Sensor .........................................................................................................9
2. Classes pour capteurs .............................................................................................................................................10
a. PM25Sensor......................................................................................................................................................10
b. CO2Sensor ........................................................................................................................................................11
3. Classe Air Quality Monitor ......................................................................................................................................12
4. Classe Main .............................................................................................................................................................13
IV. CONCLUSION........................................................................................................................................................ 14
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
2
Devoir 1 : Modèles de développement logiciel
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
3
Devoir 1 : Modèles de développement logiciel
I. INTRODUCTION
La pollution de l’air est un problème environnemental et sanitaire majeur qui concerne
l’ensemble de la population mondiale, notamment dans les grandes villes et les zones fortement
peuplées. Les sources peuvent être naturelles, mais sont surtout liées aux activités humaines
émettent de nombreux polluants gazeux. Une fois émis, ces derniers seront distribués dans
l’atmosphère, où ils peuvent subir des réactions physico-chimiques. Il est donc important de
suivre ces polluants, en les mesurant et à l’aide d’outils, tels que des indicateurs.
Les progrès prodigieux, de ces dernières années, dans l’électronique embarquée, ont
permis le déploiement à grande échelle des technologies touchant plusieurs domaines
d’applications dans l’environnement du réseau informatique et de l’électronique. Un système
embarqué présente une intégration entre deux parties, logicielle et matérielle, qui sont conçues
conjointement pour répondre à des fonctionnalités spécifiques.
Dans ce projet, nous nous sommes intéressés à la conception d’un système de
surveillance et de contrôle de la qualité de l’air, architecturé autour d’un Raspberry PI dont les
performances sont nombreuses.
Notre travail est organisé comme suit :
Dans la première partie, nous avons présenté le Raspberry, comment on le configure et
son utilisation. Dans la deuxième, nous avons implémenté une des utilisations du Raspberry
avec la mise en place d’un système de surveillance de la qualité de l’air.
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
4
Devoir 1 : Modèles de développement logiciel
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
5
Devoir 1 : Modèles de développement logiciel
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
6
Devoir 1 : Modèles de développement logiciel
▪ Une autre puce noire, visible sur le bord inférieur de la carte juste derrière les ports
USB du milieu et derrière le connecteur d'alimentation USB de type C. Il s'agit du
contrôleur USB, qui est responsable du fonctionnement des quatre ports USB.
▪ Les ports USB (Universal Serial Bus) (Figure 1-6) qui permettent de connecter
n'importe quel périphérique compatible USB à Raspberry Pi, des claviers et souris
aux appareils photo numériques et clés USB. D'un point de vue technique, il existe
deux types de ports USB : ceux qui comportent des parties noires sont des ports
USB 2.0, basés sur la deuxième version de la norme Universal Serial Bus ; ceux
qui comportent des parties bleues, les ports USB 3.0, plus rapides, basés sur la
troisième version, plus récente.
▪ À droite des ports USB se trouve un port Ethernet, utilisé pour connecter le
Raspberry Pi à un réseau informatique câblé à l'aide d'un câble muni d'un
connecteur RJ45 à son extrémité.
▪ Une prise audio-visuelle (AV) de 3,5 mm, désignée par le terme prise casque pour
y brancher un casque.
▪ Au-dessus de la prise AV 3,5 mm se trouve un connecteur d'apparence étrange
avec un rabat en plastique qui peut être tiré vers le haut ; il s'agit du connecteur de
caméra, connu sous le nom d’Interface série de la caméra (CSI).
▪ Les micro ports d'interface multimédia haute définition (micro-HDMI).
▪ Au-dessus des ports HDMI se trouve un port d'alimentation USB de type C , utilisé
pour connecter le Raspberry Pi à une source d'énergie.
▪ Un connecteur d'affichage ou Interface série d'affichage (DSI) conçu pour être
utilisé avec un écran tactile Raspberry Pi.
▪ 40 broches métalliques, réparties en deux rangées de 20 points. Il s'agit du
connecteur GPIO (general-purpose input/output), une fonctionnalité qui permet à
Raspberry Pi de communiquer avec du matériel supplémentaire, qu'il s'agisse de
LED et de boutons jusqu'aux capteurs de température, aux joysticks ou aux
moniteurs de fréquence cardiaque.
▪ Un tout dernier port, mais il n'est pas visible sur la partie supérieure : un connecteur
de carte microSD sur l'envers. Il s'agit du stockage de Raspberry Pi : la carte
microSD insérée ici contient tous les fichiers, tous les logiciels installés et le
système d'exploitation qui assure le fonctionnement du Raspberry Pi.
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
7
Devoir 1 : Modèles de développement logiciel
Dans le nouveau système à mettre en place, nous avons deux capteurs : un capteur de
détection de la présence de la poussière (PM25 Sensor) et un autre pour la détection du
dioxyde de carbone (CO2 Sensor). Ces deux équipements sont connectés à notre Raspberry
Pi, lequel dispose d’un écran pour la visualisation des événements.
B. CODE JAVA DE FONCTIONNEMENT
Nous avons, dans cette section, supposé que le Raspberry Pi soit opérationnel dans lequel
la version 20 du Java Development Kit (JDK) est installé. Notre code est structuré ainsi
qu’il suit :
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
8
Devoir 1 : Modèles de développement logiciel
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
9
Devoir 1 : Modèles de développement logiciel
a. PM25Sensor
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
/**
* @author Ubald KOUOKAM
* Capteur de poussière
*/
public class PM25Sensor implements Sensor {
private boolean polluted;
private final Random rand;
private final Timer timer;
public PM25Sensor() {
this.rand = new Random();
this.timer = new Timer();
}
@Override
public boolean isPolluted() {
return this.polluted;
}
@Override
public void setPolluted(boolean polluted) {
this.polluted = polluted;
}
@Override
public void startSendingData() {
this.timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
setPolluted(rand.nextBoolean());
}
}, 1000, 1000);
}
@Override
public void stopSendingData() {
//Arrête le timer
this.timer.cancel();
this.timer.purge();
}
}
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
10
Devoir 1 : Modèles de développement logiciel
b. CO2Sensor
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
/**
* @author Ubald KOUOKAM
* Capteur de dioxyde de carbone
*/
public class CO2Sensor implements Sensor {
private boolean polluted;
private final Random rand;
private final Timer timer;
public CO2Sensor() {
this.rand = new Random();
this.timer = new Timer();
}
@Override
public boolean isPolluted() {
return this.polluted;
}
@Override
public void setPolluted(boolean polluted) {
this.polluted = polluted;
}
@Override
public void startSendingData() {
this.timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
setPolluted(rand.nextBoolean());
}
}, 1000, 1000);
}
@Override
public void stopSendingData() {
//Arrête le timer
this.timer.cancel();
this.timer.purge();
}
}
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
11
Devoir 1 : Modèles de développement logiciel
public AirQualityMonitor() {
this.sensors = new ArrayList<>();
this.alertService = new AlertService();
this.stopThread = false; //Le thread est en marche
}
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
12
Devoir 1 : Modèles de développement logiciel
4. CLASSE MAIN
import java.util.Scanner;
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
13
Devoir 1 : Modèles de développement logiciel
IV. CONCLUSION
Dans ce document, nous avons mis en place grâce à l’équipement Raspberry Pi, un
système qui permet de montrer la qualité d’air dans un environnement donné.
Rédigé par KOUOKAM K. U, BILONG J. H., NGAH NGAH, MBEYO’O MVOM, KAMDEM NONO, SIGNE FONGANG
14