<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://projets-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zhoussai</id>
		<title>Wiki de Projets IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://projets-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zhoussai"/>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Zhoussai"/>
		<updated>2026-05-14T21:49:34Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77739</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77739"/>
				<updated>2019-06-04T22:11:30Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 11 - 04/06 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
*Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 2 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
&lt;br /&gt;
*Pour ce faire, on va utiliser une Banana pi sur laquelle sera installé OpenWRT(fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème est enfin résolu mais il faut vite rattraper le retard, donc aujourd'hui, on a consacré cette séance dans l'utilisation de l'Armbian&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au problème qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf&amp;lt;/code&amp;gt;les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez le nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, configurer un mot de passe pour notre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Au final, on va de nouveau changé l'OS et de recommencer toute la procédure. Donc le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77519</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77519"/>
				<updated>2019-06-04T07:55:08Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 11 - 04/06 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
*Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 2 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
&lt;br /&gt;
*Pour ce faire, on va utiliser une Banana pi sur laquelle sera installé OpenWRT(fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème est enfin résolu mais il faut vite rattraper le retard, donc aujourd'hui, on a consacré cette séance dans l'utilisation de l'Armbian&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au problème qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf&amp;lt;/code&amp;gt;les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez le nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, configurer un mot de passe pour notre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77518</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77518"/>
				<updated>2019-06-04T07:54:34Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 11 - 04/06 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
*Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 2 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
&lt;br /&gt;
*Pour ce faire, on va utiliser une Banana pi sur laquelle sera installé OpenWRT(fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème est enfin résolu mais il faut vite rattraper le retard, donc aujourd'hui, on a consacré cette séance dans l'utilisation de l'Armbian&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au problème qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez le nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, configurer un mot de passe pour notre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77517</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77517"/>
				<updated>2019-06-04T07:54:22Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 11 - 04/06 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
*Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 2 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
&lt;br /&gt;
*Pour ce faire, on va utiliser une Banana pi sur laquelle sera installé OpenWRT(fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème est enfin résolu mais il faut vite rattraper le retard, donc aujourd'hui, on a consacré cette séance dans l'utilisation de l'Armbian&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblème qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez le nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, configurer un mot de passe pour notre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77504</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77504"/>
				<updated>2019-06-03T23:50:56Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Cahier des charges des équipes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
*Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 2 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
&lt;br /&gt;
*Pour ce faire, on va utiliser une Banana pi sur laquelle sera installé OpenWRT(fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème est enfin résolu mais il faut vite rattraper le retard, donc aujourd'hui, on a consacré cette séance dans l'utilisation de l'Armbian&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez le nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, configurer un mot de passe pour notre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77201</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77201"/>
				<updated>2019-06-02T21:35:15Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 10 - 28/05 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème est enfin résolu mais il faut vite rattraper le retard, donc aujourd'hui, on a consacré cette séance dans l'utilisation de l'Armbian&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez le nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, configurer un mot de passe pour notre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77200</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77200"/>
				<updated>2019-06-02T21:34:58Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 10 - 28/05 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème est enfin résolu mais il faut vite rattraper le retard, donc aujourd'hui, on a consacré cette séance dans l'utilisation &amp;lt;br/&amp;gt;&lt;br /&gt;
Debian&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez le nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, configurer un mot de passe pour notre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77199</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77199"/>
				<updated>2019-06-02T21:32:42Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 11 - 04/06 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez le nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, configurer un mot de passe pour notre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77198</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77198"/>
				<updated>2019-06-02T21:31:22Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 13 - A RETIRER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77197</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77197"/>
				<updated>2019-06-02T21:29:49Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 9 - 14/05 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 - A RETIRER===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77196</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77196"/>
				<updated>2019-06-02T21:29:01Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 11 - 04/06 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 - A RETIRER===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77195</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77195"/>
				<updated>2019-06-02T21:27:56Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 - A RETIRER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 - A RETIRER===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77194</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77194"/>
				<updated>2019-06-02T21:27:11Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Equipe 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
|&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 - A RETIRER===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 - A RETIRER===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77193</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77193"/>
				<updated>2019-06-02T21:26:22Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Equipe 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 - A RETIRER===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 - A RETIRER===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77192</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77192"/>
				<updated>2019-06-02T21:25:10Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Equipe 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
|&lt;br /&gt;
*Configurer la carte en tant que routeur en utilisant cette fois l'OS Debian car la semaine dernière l'image &lt;br /&gt;
OpenWrt ne fonctionnait pas&lt;br /&gt;
&lt;br /&gt;
07/05&lt;br /&gt;
|&lt;br /&gt;
* Résoudre le problème de la carte car elle ne fonctionnait pas et demander à mes tuteurs &lt;br /&gt;
la raison pour laquelle elle ne marche pas.&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
* Mettre une nouvelle image(Armbian) et rattraper le retard pour le configurer en tant que routeur de wifi pour &lt;br /&gt;
la rasberry pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
*Faire en sorte que la BPI-R1 arrive à jouer le rôle d'un routeur de wifi pour que la Rasberry PI arrive à le capter&lt;br /&gt;
mais il y a un problème, le noyau a été détruit, donc essayer de faire marcher la carte sinon ça sera pour l'année &lt;br /&gt;
prochaine &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 - A RETIRER===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 - A RETIRER===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77191</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=77191"/>
				<updated>2019-06-02T20:43:10Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Equipe 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
===Site Web===&lt;br /&gt;
&lt;br /&gt;
Protocole XMLHttpRequest&lt;br /&gt;
 https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banana PI===&lt;br /&gt;
&lt;br /&gt;
DataSheet&lt;br /&gt;
 https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
OpenWRT&lt;br /&gt;
 https://openwrt.org/&lt;br /&gt;
&lt;br /&gt;
Wiki &lt;br /&gt;
 http://wiki.banana-pi.org/Banana_Pi_BPI-R1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Raspberry PI===&lt;br /&gt;
&lt;br /&gt;
Pin Raspberry &lt;br /&gt;
 https://pi4j.com/1.2/pins/model-3b-plus-rev1.html&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
 https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018&lt;br /&gt;
&lt;br /&gt;
Clignotement d’une LED&lt;br /&gt;
 https://www.framboise314.fr/la-saga-blink-un-raspberry-pour-faire-clignoter-une-led/&lt;br /&gt;
 http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Installation Raspbian&lt;br /&gt;
 https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et finalement, aux nœuds de capteurs sélectionnés. Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur. Le routeur (Banana Pi) va filtrer les informations reçues, et donner un accès internet aux différents nœuds représentés par des Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry récupèrent les fichiers C sur le serveur et les envoient correctement aux différents capteurs de leur nœud et puissent récupérer les informations à retourner. &lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Un clavier et une souris afin d'utiliser la Raspberry (interface graphique) ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Configuration de la Raspberry PI 3 ;&lt;br /&gt;
*Création du script afin de vérifier que le capteur sélectionné par le serveur se trouve bien dans la liste de capteur connecté à la Raspberry ;&lt;br /&gt;
*Création du script afin d'envoyer le code reçu aux différents capteurs ;&lt;br /&gt;
*Création du script permettant de créer le fichier résultat afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur ;&lt;br /&gt;
*Envoi du numéro de la demande sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Trouver l'open source me permettant de visuliser l'inteface de la BPI-R1, et en l'occurrence&lt;br /&gt;
l'OS OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Faire fonctionner la carte et comprendre les fonctionnalités qu'offrent l'OpenWrt&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur les différents outils : Raspberry et Ansible.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur l'allumage d'une LED et création des premiers scripts d'allumage de LED.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de Raspbian sur la Raspberry PI 3 et début de configuration de la Raspberry PI 3.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Configuration de la Raspberry PI 3.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation de la bibliotèque wiringPI permettant le lancement du script écrit en C permettant l'allumage des différentes LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Installation d'un premier cablage de LED afin de tester le script d'allumage des LED.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers ;&lt;br /&gt;
*Création du script permettant de lire le fichier XML envoyé par le serveur qui indique le nom et le numéro du capteur sélectionné.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme ;&lt;br /&gt;
*Création du script permettant le lancement automatique des différents scripts créés lorsque le serveur effectue une demande.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du serveur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 - 05/03===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
 &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
Concernant la Raspberry PI 3, la Raspberry PI 3 est un ordinateur miniature que l'on peut brancher à un écran et un clavier afin de l'utiliser comme un ordinateur normal. Le stockage des données s'effectue sur une carte SD ce qui permet à la Raspberry d'être très petite (l'utilisation d'un disque dur interne augmenterait grandement sa taille)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspberry2.jpg|500px|thumb|center|Raspberry PI 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 3 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe | identifiant de connexion&lt;br /&gt;
*verif : numéro de la demande&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table verif contient le numéro de la demande.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 - 19/03===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Au cours de cette séance, je me suis documenté sur l'allumage d'une LED. Cela m'a amené à créer un organigramme afin de réaliser le code plus simplement par la suite.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Organigramme1.png|150px|thumb|right|Organigramme]]&lt;br /&gt;
&lt;br /&gt;
Le câblage s'effectuera de façon très simple en connectant une LED puis une résistance à chaque sortie GPIO en fonction du nombre de capteurs souhaités par Raspberry (nous utilisons des LED pour cette année pour simuler et voir que le code envoyé par le serveur est bien traité et reçu par les LED s'allumant lorsque le capteur associé a été sélectionné).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cablage1.png|300px|thumb|center|Cablage LED]]&lt;br /&gt;
&lt;br /&gt;
Puis je me suis intéressé au code afin d'allumer la LED 500ms puis de l'éteindre 500ms grâce à une boucle while qui est toujours active tant que le programme tourne (control C par l'utilisateur pour stopper le programme). Pour se faire, il faut mettre le PIN connecté à la LED en mode sortie (OUTPUT) car sans cela la LED ne s'allume pas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:codeLED.png|500px|thumb|center|Script C LED]]&lt;br /&gt;
&lt;br /&gt;
Ce code nécessite l'installation de la bibliothèque WiringPi qui permet d'allumer et d’éteindre la LED. Nous verrons l'installation de cette bibliothèque une fois les configurations faites sur la Raspberry effectuées et une fois connecté à la Raspberry. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
*Création d'un formulaire de connexion ;&lt;br /&gt;
*Création d'un formulaire d'inscription ;&lt;br /&gt;
*Création des scripts Php de lancement de ces formulaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 - 02/04===&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut télécharger Raspbian sur la carte SD de la Raspberry Pi 3. Pour cela, j'ai sélectionné le fichier contenant Raspbian avec des interfaces graphiques (voir photo ci-dessous) sur le site internet :&lt;br /&gt;
 https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Raspbian.png|500px|thumb|center|Fichier Raspbian]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande dd : &lt;br /&gt;
 dd if=2019-04-08-raspbian-stretch-full.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Puis une fois tout ceci téléchargé, j'ai commencé à effectuer mes premiers pas sur la Raspberry. Une fois le clavier, la souris, l'écran et la carte SD branché et connecté à la Raspberry, j'ai pu connecter l'alimentation de la Raspberry. Le premier démarrage fut un peu long, car lors de celui-ci, la raspberry a installé le système Raspbian. Lors de ce premier démarrage, des premières configurations ont été effectué qui ont été très simplifié car étant sur une version de Raspbian avec une interface graphique. Ces quelques réglages consistaient principalement à régler la langue, l'heure, la connexion internet et le nouveau mot de passe. L'identifiant et le mot de passe ont été laissé comme initialement.&lt;br /&gt;
 le login par défaut est « pi », et le password est « raspberry »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du design du site, avec la création d'une barre de menu et l'utilisation de Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 - 16/04===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Durant cette séance, plusieurs autres configurations ont été effectuées. Pour accéder à la fenêtre de configuration, il a fallu rentrer la commande : &lt;br /&gt;
 sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre système Raspbian est un peu plus sécurisé, nous allons nous assurer que le SSH est bien activé afin que nous puissions prendre le contrôle de la Raspberry à distance. Pour cela, il faut sélectionner le huitième choix, « Advanced Options ». Cette fois, après validation nous arrivons sur un autre menu ou nous allons choisir la quatrième ligne, « SSH ». Puis « Enable », et enfin « Valider ». Le système lance quelques commandes puis nous ré-affiche une fenêtre nous indiquant le succès de l’opération.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 - 30/04===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Une fois la Raspberry configuré, il a fallu installer la bibliothèque wiringPi. Pour se faire : &lt;br /&gt;
&lt;br /&gt;
On installe GIT:&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
On met a jour le PI:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
On récupère la dernière version de WiringPi:&lt;br /&gt;
 git clone git://git.drogon.net/wiringPi&lt;br /&gt;
On se place dans le bon répertoire:&lt;br /&gt;
 cd wiringPi&lt;br /&gt;
On lance la compilation:&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Puis le lancement du code créé pour l'allumage des LED s'effectue de la manière suivante:&lt;br /&gt;
 gcc blink.c -o blink -lwiringPi&lt;br /&gt;
 ./blink&lt;br /&gt;
Le fichier blink étant notre fichier contenant le script permettant l'allumage d'une led toute les 0.5s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 &amp;lt;sensor&amp;gt;nom_num&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|400px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 - 14/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Installation d'un premier câblage pour réaliser l'allumage d'une des 4 LED en fonction de la LED sélectionné.&lt;br /&gt;
Il a fallu trouver grâce à différent test le bon schéma de pin de notre Raspberry car il en existait beaucoup de différent sur le numéro du pin à entrer pour allumer la led correspondante à ce numéro. &lt;br /&gt;
[[Fichier:Pin.png|200px|thumb|center|Différent PIN de sortie de notre Raspberry Pi 3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|right|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création du script permettant l'upload d'un fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Le script va d'abord vérifier que le fichier à uploader vérifie les conditions (pas d'erreur, taille inférieure à la taille maximale, bonne extension).&amp;lt;br/&amp;gt;&lt;br /&gt;
Ensuite, on normalise le nom du fichier qui s'appellera maintenant 'binaire', et on récupère son extension.&amp;lt;br/&amp;gt;&lt;br /&gt;
A l'aide de la fonction ''move_uploaded_file'', on délace le fichier de son répertoire temporaire vers le répertoire upload présent sur le serveur.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant un script pour récupérer les fichiers C et XML sur la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''La partie 3 étant terminée pour le résultat attendu au S6, les équipes 2 et 3 fusionnent pour terminer la création des scripts.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 - 28/05===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Création d'un script blink.c permettant la récupération du nom du capteur et de son numéro stockés dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du serveur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 - 04/06===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Pour l'équipe 2 &amp;amp; 3 :&lt;br /&gt;
&lt;br /&gt;
Nous avons créer le script de récupération de tous les fichiers nécessaires, à savoir :&lt;br /&gt;
*Le fichier binaire.c ;&lt;br /&gt;
*Le fichier sensor.xml ;&lt;br /&gt;
*le fichier demande.txt dont l'utilité sera expliqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Ce script permet aussi la compilation du fichier C et le lancement des exécutables du programme.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Load.png|500px|thumb|center|Script de récupération et lancement du programme]]&lt;br /&gt;
&lt;br /&gt;
La crontab n'étant pas fonctionnelle sur la Raspberry, nous avons choisi un autre moyen pour permettre la répétition du script.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nous avons crée le script ci-dessous, qui boucle toutes les 15 secondes (possibilité de modifier le temps).&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script.png|500px|thumb|center|Script d'exécution périodique de load.sh]]&lt;br /&gt;
&lt;br /&gt;
Pour que le code ne s'exécute que lorsqu'on envoie un nouveau fichier sur le serveur, et pas toutes les 15 secondes, on reçoit le fichier demande.txt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce fichier contient le numéro de la demande (stocké dans la base de données).&amp;lt;br/&amp;gt;&lt;br /&gt;
En récupérant le numéro et en le comparant à la dernière version reçue (stockée dans un autre fichier texte), on peut savoir si une nouvelle demande est réalisée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Si ce n'est pas le cas, le programme ne lance pas l'exécutable du fichier binaire.c.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ces différentes étapes se font dans le fichier blink.c.&lt;br /&gt;
&lt;br /&gt;
Il est possible de se demander pourquoi nous avons 2 exécutables, et pas un seul reçu directement du serveur. Voici les différentes raisons :&lt;br /&gt;
*L'exécutable blink nous permet de gérer l'exécution ou non de binaire.&lt;br /&gt;
*En supposant le projet plus avancé, il est préférable de séparer la partie récupération du capteur et le programme en lui même, car différents capteurs pourraient ne pas utiliser le même code et pourraient être placés sur différentes Raspberry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 - A RETIRER===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 - A RETIRER===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;br/&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
*Gitlab : [https://archives.plil.fr/grouille/IMA3_P10 Git IMA3 P10]&lt;br /&gt;
*Site web  : [http://houplin.studserv.deule.net/~grouille/PROJET/ Site]&lt;br /&gt;
*Rapport : [[media: Rapport_IMA3_P10.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76768</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76768"/>
				<updated>2019-05-30T00:41:02Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants : &lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais le problème, c'est que si on tape le même mot de Passe sur le smartphone, ça nous renvoie erreur d'authentification &amp;lt;br/&amp;gt;&lt;br /&gt;
au lieu de l'erreur détection IP. Sur le coup encore perdu, j'ai du demander de l'aide à mon tuteur et au final, il s'est avéré &amp;lt;br/&amp;gt;&lt;br /&gt;
que j'ai mis un mauvais OS et que j'ai détruit le noyau de la carte. Du coup, le problème du routeur sera résolu l'année prochaine.&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76767</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76767"/>
				<updated>2019-05-30T00:37:42Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants : &lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76766</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76766"/>
				<updated>2019-05-30T00:37:07Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg|thumb|100px|right|Configuration du routeur]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants : &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Exempled.jpg&amp;diff=76765</id>
		<title>Fichier:Exempled.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Exempled.jpg&amp;diff=76765"/>
				<updated>2019-05-30T00:36:10Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76764</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76764"/>
				<updated>2019-05-30T00:35:45Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.jpg]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants : &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76763</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76763"/>
				<updated>2019-05-30T00:35:19Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.pngjpg]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants : &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76762</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76762"/>
				<updated>2019-05-30T00:34:08Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Exempled.png]]&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants : &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76761</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76761"/>
				<updated>2019-05-30T00:33:28Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants : &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png|thumb|100px|right|Nom visible sur le smartphone]]&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Klkl.png&amp;diff=76760</id>
		<title>Fichier:Klkl.png</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Klkl.png&amp;diff=76760"/>
				<updated>2019-05-30T00:32:15Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76759</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76759"/>
				<updated>2019-05-30T00:31:55Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants : &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.png]]&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76758</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76758"/>
				<updated>2019-05-30T00:29:10Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants : &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Au final, on arrive à faire apparaître le nom du reseau de la banana sans fil &lt;br /&gt;
[[Fichier:klkl.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76757</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76757"/>
				<updated>2019-05-30T00:27:47Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
Et finalement avec l'éditeur de texte nano, on peut modfier le fichier &amp;lt;code&amp;gt; /etc/hostapd/hostapd.conf les mots-clefs suivants : &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin il faut definir le chemin du fichier de configuration à l'aide du fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt; : &lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
On relance le service avec la commande  :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76756</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76756"/>
				<updated>2019-05-30T00:10:48Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première chose était d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite d'utiliser l'éditeur de texte nano, afin de pouvoir mofidier le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt;  et le coller dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76755</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76755"/>
				<updated>2019-05-30T00:08:48Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine Extra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Sachant que je suis énormément en retard par rapport aux deux autres équipes, surtout celui de la &amp;lt;/br&amp;gt;&lt;br /&gt;
qui a presque terminé sa partie, mon objectif est finalement à ce que ma banana PI marche seulement &amp;lt;br/&amp;gt; &lt;br /&gt;
en tant que routeur Wifi. Et donc en partant de l'OS Armbian et que le principe de la programmation est à &amp;lt;br/&amp;gt;&lt;br /&gt;
peu près similaire que celle de la Rasberrie PI. Donc je me suis servi du même raisonnement que celui de ce lien :&amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019#Connexion_s.C3.A9rie &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première chose étai d'abord d'installer le packtage Hostapd, car c'est ce packtage qui contient tous les &amp;lt;br/&amp;gt;&lt;br /&gt;
fichiers me permettant d'activer le routeur Wifi : &lt;br /&gt;
 apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76754</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76754"/>
				<updated>2019-05-30T00:01:48Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
===Semaine Extra===&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76753</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76753"/>
				<updated>2019-05-30T00:01:24Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
------------------&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76752</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76752"/>
				<updated>2019-05-30T00:01:05Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76751</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76751"/>
				<updated>2019-05-30T00:00:39Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|thumb|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76750</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76750"/>
				<updated>2019-05-30T00:00:11Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|100 px|right|Interface Armbian|Différentes configuration de la BPI R1]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76749</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76749"/>
				<updated>2019-05-29T23:59:28Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|100 px|right|Interface Armbian]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76748</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76748"/>
				<updated>2019-05-29T23:59:07Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|100 px|RIGHT|Interface Armbian]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76747</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76747"/>
				<updated>2019-05-29T23:58:40Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|100 px|center|Interface Armbian]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76746</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76746"/>
				<updated>2019-05-29T23:58:22Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg|200 px|right|Interface Armbian]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Glopi.jpg&amp;diff=76745</id>
		<title>Fichier:Glopi.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Glopi.jpg&amp;diff=76745"/>
				<updated>2019-05-29T23:57:36Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76744</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76744"/>
				<updated>2019-05-29T23:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
[[Fichier:glopi.jpg]]&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76743</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76743"/>
				<updated>2019-05-29T23:56:18Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg|thumb|100 px|right|Interface Armbian]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Ahb.jpg&amp;diff=76742</id>
		<title>Fichier:Ahb.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Ahb.jpg&amp;diff=76742"/>
				<updated>2019-05-29T23:55:05Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76741</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76741"/>
				<updated>2019-05-29T23:54:27Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
[[Fichier:Ahb.jpg]]&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
Donc suite au porblèe qui ont eu lieu ces dernières séances, et après avoir reçu des conseils de &amp;lt;br/&amp;gt;&lt;br /&gt;
mes tuteurs, j'ai fait une nouvelle des recherches sur l'image la plus récente qui va me permettre &amp;lt;br/&amp;gt;&lt;br /&gt;
de faire marcher ma carte et visualiser l'interface de l'OS. Après avoir fait un tour sur le site (lien ci dessous)&amp;lt;br/&amp;gt;&lt;br /&gt;
http://wiki.banana-pi.org/Banana_Pi_BPI-R1&amp;lt;br/&amp;gt;&lt;br /&gt;
qui propose différentes images et ne sachant vraiment lequel choisir, j'ai choisi de mettre un Armbian 2016 et &amp;lt;br/&amp;gt; &lt;br /&gt;
et avec la même commande me permettant de copier sur carte SD que l'OpenWrt afin de le mettre sur la carte&amp;lt;br/&amp;gt;.&lt;br /&gt;
Au final, cela marche, et je me connecte avec &amp;quot;root&amp;quot; qui a pour mot de passe &amp;quot;1234&amp;quot;. Après s'être connecter &amp;lt;br/&amp;gt;&lt;br /&gt;
on obtient cette interface.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76740</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76740"/>
				<updated>2019-05-29T23:31:01Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 : &lt;br /&gt;
&lt;br /&gt;
N'ayant aucune idée après plusieurs séances de recherche, j'ai décidé de voir mes tuteurs afin de pouvoir &amp;lt;br/&amp;gt;&lt;br /&gt;
résoudre ce problème car je suis vraiment en retard par rapport à mon objectif fixé qui était &amp;lt;br/&amp;gt;&lt;br /&gt;
de configurer la BPI-R1 en routeur wifi pour qu'elle puisse donner les informations à la Rasberrie -PI.&amp;lt;br/&amp;gt;&lt;br /&gt;
Après plusieurs essaies, c'est à dire changer le courant d'Alimentation, mettre de nouveau l'image Debian &amp;lt;br/&amp;gt;&lt;br /&gt;
au final, mes tuteurs m'ont conseillé de changer l'image et d'en mettre un nouveau mais aussi il faut que &amp;lt;br/&amp;gt;&lt;br /&gt;
que cette image soit récente afin de ne pas avoir de problème au niveau du noyau de la carte.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76739</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76739"/>
				<updated>2019-05-29T23:10:40Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 10 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Le problème persiste toujours, ne sachant toujours pas les raisons de ce problème, cette séance sera consacrée aussi à&amp;lt;br/&amp;gt;&lt;br /&gt;
la recherche sachant que le retard commence à peser et que je n'ai toujours pas configurer la BPI-R1 en routeur &amp;lt;br/&amp;gt;&lt;br /&gt;
et que je sais que je suis en retard par rapport aux deux autres équipes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
!!! PHOTOS A MODIFIER !!!&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76738</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76738"/>
				<updated>2019-05-29T23:02:52Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
Dans cette séance, je peux enfin commencer à configurer la BPI-R1 en point d'accès Wifi. Après avoir branché au moniteur la carte&amp;lt;br/&amp;gt;&lt;br /&gt;
je remarque qu'il n'y a aucune visualisation sur le moniteur. Et c'est là où je commence à me perdre. En effet, n'ayant aucune idée de pourquoi&amp;lt;br/&amp;gt;&lt;br /&gt;
on ne voit plus l'interface, j'ai décidé de rechercher les causes de ce problème, en supposant que la carte a été court-circuiter. &amp;lt;br/&amp;gt;&lt;br /&gt;
Donc cette séance n'a été que la recherche de ce problème et surtout pouvoir le résoudre.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
!!! PHOTOS A MODIFIER !!!&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76737</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76737"/>
				<updated>2019-05-29T22:52:49Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte. &amp;lt;br/&amp;gt;&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
!!! PHOTOS A MODIFIER !!!&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76736</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76736"/>
				<updated>2019-05-29T22:52:24Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans la dernière séance, j'ai pas pu totalement assimiler l'ensemble du fonctionnement permettant de configurer &amp;lt;br/&amp;gt;&lt;br /&gt;
la BPI-R1 en tant que routeur de wifi. Donc toute cette séance s'est consacrés à la recherche des fonctionnalités de la carte &amp;lt;br/&amp;gt;.&lt;br /&gt;
Et aussi, j'ai pu énormément m'aider du site du bureau d'étude d'IMA (Robot Prédateur et Proie) de l'an dernier, surtout avec &amp;lt;br/&amp;gt;&lt;br /&gt;
la partie Rasberry Pi que j'ai remarqué qu'au final les fonctionnalités de la Banana PI est à peu près identique que celle de la Rasberry.&amp;lt;br/&amp;gt;&lt;br /&gt;
Voici le lien qui m'a principalement aidé à mieux comprendre et trouver les fonctionnalités du Debian : &amp;lt;br/&amp;gt;&lt;br /&gt;
https://peip-ima.plil.fr/mediawiki/index.php/BE_2018-2019&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
!!! PHOTOS A MODIFIER !!!&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76735</id>
		<title>IMA3/IMA4 2018/2020 P10</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA3/IMA4_2018/2020_P10&amp;diff=76735"/>
				<updated>2019-05-29T22:35:05Z</updated>
		
		<summary type="html">&lt;p&gt;Zhoussai : /* Semaine 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
Administration système, déploiement et surveillances de logiciels dans un réseau de capteurs &lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Dans le cadre de recherches dans le domaine des réseaux de capteurs et des objets connectés, notre projet consiste à développer une solution de maintenance et de reconfiguration à distance d'un ensemble de nœuds déployés dans un environnement réel. Afin de faciliter la vie de ces chercheurs sur le test de leurs hypothèses, ils pourront facilement et rapidement déployer leurs créations sur tout les nœuds souhaités grâce à un système de sélection ou au téléchargement du nouveau code sur tous les nœuds du réseau.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
L'objectif principal de notre projet est de créer une interface permettant de tester des programmes ou logiciels en les déployant sur le vaste réseau de capteurs. Nous devons rendre accessible chaque nœud indépendamment des autres, tout en permettant un lien entre tous, afin d'envoyer le contenu vers tout ou une partie des nœuds disponibles.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous allons permettre la mise à jour et l'adaptation du chemin d'envoi des données des nœuds, entre eux, et avec l'application de gestion.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FIT Logo.png|200px|thumb|right|Logo du Laboratoire]]&lt;br /&gt;
[[Fichier:Logo.jpg|100px|thumb|right|Logo du LRI]]&lt;br /&gt;
&lt;br /&gt;
Notre concurrent principal reste le FIT(Future Internet Testing Falicity)/IoT-Lab. Il s'agit d'un laboratoire dont les recherches se portent sur les différents domaines scientifiques tel que les adresses de communications sans fils, des réseaux de capteurs, des protocoles de routages basse consommation et applications embarquées. Ce laboratoire dispose de plus de 1500 de nœuds de capteurs sans fils propagés à travers les six sites différents en France qui sont : Inria Grenoble (640), Inria Lille (293), Inria Saclay (264), ICube Strasbourg (400), Institut Mines-Télécom Paris (160) and CITI Lab Lyon (29). Chaque site dispose de capacités matérielles et de nœuds différentes, mais tous les sites sont interconnectés et disponibles via le même portail Web,&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
Il y aussi une autre équipe au sein du laboratoire de recherches en informatique(LRI) qui est en train de faire un projet sur les capteurs de réseaux. Les questions abordées par l’équipe concernent les réseaux ad hoc sans fil et mobiles, les réseaux de capteurs et les réseaux fixes, et concernent la qualité de service, la sécurité, le contrôle d’admission, la réservation de ressources, le calcul des limites déterministes et la consommation d’énergie. L'analyse de la performance est donnée à la fois théoriquement, pour déterminer les limites, et par simulation, pour enrichir l'analyse et inclure un support pour un environnement dynamique.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
[[Fichier:SchemaIMAP10.JPG|400px|thumb|right|Schéma Complet]]&lt;br /&gt;
&lt;br /&gt;
De nombreux chercheurs et développeurs créent de nouveaux codes adaptés à l'utilisation d'un réseau de capteurs.&lt;br /&gt;
Ces codes doivent être facilement déployés sur le réseau afin de pouvoir y réaliser des essais rapides. &lt;br /&gt;
Cela permet de corriger rapidement les erreurs liées à leur mauvais fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Supposons que notre réseau est réparti sur une très grande surface. &lt;br /&gt;
Le chercheur voulant tester son code doit l'envoyer à partir de son ordinateur sur le réseau. &lt;br /&gt;
Notre projet va lui permettre de rester assis dans son bureau et de ne pas devoir charger le code sur chaque nœud de capteurs un par un.&lt;br /&gt;
&lt;br /&gt;
A travers notre projet, nous voulons rendre possible ces exports rapides de données.&lt;br /&gt;
Il nous faudra utiliser un routeur qui permettra la liaison entre chaque nœud et un serveur de données.&lt;br /&gt;
Dans chacun de ses nœuds, on trouve plusieurs nœuds de mesures comportant chacun un microcontrôleur associé à des capteurs.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir envoyer ses codes sur le réseau, le chercheur dispose d'une interface web graphique connectée au même serveur que les nœuds de collecte et le routeur.&lt;br /&gt;
Cette interface permettra la sélection de tout ou d'une partie du réseau sur laquelle il doit effectuer les modifications. Ceci se fera à l'aide des microcontrôleurs du réseau et de Raspberry Pi gérant chaque nœud.&lt;br /&gt;
Une fois la zone d'export choisie, il pourra envoyer ses codes et les mettre à jour en quelques clics.&lt;br /&gt;
Le code sera envoyé sur le serveur et distribué par le routeur sur les nœuds sélectionnés.&lt;br /&gt;
Les différents nœuds feront un retour sur la réception à travers le serveur via le routeur, et le chercheur pourra ainsi tester rapidement sa réalisation.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où le chercheur veut tester l'envoi de données par radio par exemple, il pourra placer un grand nombre de nœuds communiquant en filaire avec le routeur et par radio entre eux.&lt;br /&gt;
Les nœuds seront capables de transmettre l'information au suivant et de choisir un autre chemin (contourner un nœud par exemple) en cas de perturbations (présence de réseau Wi-Fi à proximité, etc...), pour envoyer l'information.&lt;br /&gt;
Ces nœuds seront capables de communiquer avec le serveur pour indiquer la bonne réception des données, les résultats obtenus ou éventuellement le mauvais fonctionnement d'un ou plusieurs capteurs.&lt;br /&gt;
&lt;br /&gt;
==Bibliographie et webographie==&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges du groupe==&lt;br /&gt;
&lt;br /&gt;
Nous allons devoir répondre à plusieurs problématiques.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous devons créer un site web dynamique permettant l'envoi des données au serveur et au final, aux nœuds de capteurs sélectionnés.&lt;br /&gt;
Pour cela, nous allons devoir implémenter un système d'envoi de fichiers vers un routeur.&lt;br /&gt;
Le routeur (Banana Pi) va filtrer les informations reçues, et envoyer les fichiers C aux différents nœuds représentés par des Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra que les Raspberry envoient correctement le code reçu aux différents capteurs de leur nœud et puissent récupérer les informations à retourner.&lt;br /&gt;
&lt;br /&gt;
Pour se faire, on utilise l'utilitaire Python Ansible, permettant la gestion et la configuration des nœuds de capteurs.&lt;br /&gt;
Celui-ci va récupérer les fichiers C et les distribuer sur les différents capteurs affectés.&lt;br /&gt;
Le retour d'information se fera par le chemin inverse jusqu'au serveur web sous forme de fichiers contenant les données issues des capteurs.&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges des équipes==&lt;br /&gt;
===Equipe 1 : Ziyad HOUSSAINI===&lt;br /&gt;
&lt;br /&gt;
Dans notre équipe, il faudra configurer le routeur afin de pouvoir assurer la communication entre la Rasberry Pi qui sera configurée par l'équipe 1 et le serveur web qui sera mise en place par l'équipe 3. &lt;br /&gt;
Pour ce faire, on va utiliser une banana pi sur laquelle sera installer OpenWRT (fonctionnement à revoir).&lt;br /&gt;
&lt;br /&gt;
===Equipe 2 : Eymeric CAPRONNIER===&lt;br /&gt;
&lt;br /&gt;
* Dans un premier temps, il faudra que les Raspberry Pi envoient correctement le code reçu aux différents capteurs sélectionnés.&lt;br /&gt;
&lt;br /&gt;
* Puis il faudra retourner le fichier contenant les différentes données générés par les capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3 : Guillaume ROUILLÉ===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, notre équipe devra réaliser une interface web utilisateur permettant la connexion au serveur de données.&lt;br /&gt;
Pour se faire, on va utiliser les langages HTML et CSS pour la forme du site, et les langages PhP et SQL pour lier le site à la base de données.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faudra créer un système de sélection des capteurs sur lesquels envoyer le ou les fichiers.&lt;br /&gt;
Il faudra faire correspondre chaque capteur des différents nœuds avec un type prédéfini et créer une page de sélection sur le site.&lt;br /&gt;
&lt;br /&gt;
Enfin, nous devrons envoyer les fichiers sur le serveur, où ils seront récupérés par le routeur pour être traiter.&lt;br /&gt;
Il faudra créer une page permettant la mise en ligne de fichiers. Cette page affichera la progression de l'envoi et sera capable de valider la bonne réception des données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:bobi.png|200px|thumb|right]]&lt;br /&gt;
[[Fichier:BananapiR1.jpg|150px|thumb|right|BPI_R1]]&lt;br /&gt;
*Une Banana Pi de type comme routeur ;&lt;br /&gt;
*Une image (OS) de type Debian ou OpenWrt afin de pouvoir utiliser la carte.&lt;br /&gt;
*Un carte SD à laquelle on va mettre l'image ;&lt;br /&gt;
*Un cable HDMI afin de pouvoir visualiser l'interface.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
*Une Raspberry Pi et son alimentation ;&lt;br /&gt;
*Un câble Ethernet ;&lt;br /&gt;
*4 diodes et résistances ;&lt;br /&gt;
*Un câble HMDI/VGA ;&lt;br /&gt;
*Ansible pour faciliter le déploiement des fichiers C sur les nœuds.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
*Une base de données PostgreSQL pour le stockage des données ;&lt;br /&gt;
*Un interpréteur PhP et un serveur web (Apache) ;&lt;br /&gt;
*Un site moderne basé sur les Frameworks CSS Bootstrap et Vue.js.&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un routeur à base de Banana Pi R1. &lt;br /&gt;
Ce routeur permettra l'accès internet aux différentes Raspberry Pi et il filtrera les accès. &lt;br /&gt;
Déploiement de OpenWRT sur ce routeur.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement du routeur Banana Pi ;&lt;br /&gt;
*Documentation sur le fonctionnement de OpenWRT ;&lt;br /&gt;
*Déploiement de OpenWRT sur le routeur et configuration ;&lt;br /&gt;
*Création d'un point d'accès filaire sur la carte routeur.&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
Déploiement des logiciels sur les Raspberry Pi avec la création de différents scripts pour faciliter ce déploiement, en utilisant notamment Ansible.&lt;br /&gt;
&lt;br /&gt;
*Documentation sur le fonctionnement des Raspberry pi ;&lt;br /&gt;
*Documentation sur Ansible ;&lt;br /&gt;
*Création du code afin d'envoyer le code reçu aux différents capteurs, et par la suite un ficher sera créé afin d'envoyer les données issus des capteurs.&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
Déploiement d'un serveur permettant de récupérer les différentes données issues des capteurs (création d'une base de données et d'un site web dynamique pour l'affichage).&lt;br /&gt;
&lt;br /&gt;
*Documentation sur les Frameworks Web Bootstrap.css et Vue.js ;&lt;br /&gt;
*Documentation sur PhP et Apache ;&lt;br /&gt;
*Création d'une interface web utilisateur ;&lt;br /&gt;
*Création d'une base de données relationnelle pour gérer les nœuds ;&lt;br /&gt;
*Envoi du fichier C sur le serveur ;&lt;br /&gt;
*Envoi du numéro du capteur sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.&lt;br /&gt;
===Equipe 1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche sur Internet sur quel type de carte on pourra utiliser pour configurer le routeur, qui sera un point d'accès wifi&lt;br /&gt;
pour le noeud de collecte qui sera la Rasberry Pi&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Recherche de la datasheet du routeur Banana PI-R1, afin de pouvoir comprendre les configurations de la carte&lt;br /&gt;
et aussi les branchements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
objectif&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Equipe 3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dates !! Objectifs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Analyse des concurrents ;&lt;br /&gt;
*Scénario d'usage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/02&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Cahier des charges ;&lt;br /&gt;
*Répartition du travail entre équipes.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
05/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la base de données associée au projet ;&lt;br /&gt;
*Documentation Php et lancement du site web.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
19/03&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création du système de connexion du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
02/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Mise en forme correcte du site : page de connexion, d'inscription et d'accueil.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
16/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de l'interface de sélection du capteur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
30/04&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Documentation sur la création d'un fichier XML à partir d'un site web ;&lt;br /&gt;
*Création du fichier XML permettant de regrouper les informations concernant le capteur choisi.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
14/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Création de la section de sélection du fichier à envoyer sur le serveur (fichier C) ;&lt;br /&gt;
*Documentation sur le protocole XMLHttpRequest qui permet l'envoi du fichier sur le serveur ;&lt;br /&gt;
*Envoi du fichier C sur le serveur.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
28/05&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Récupération du fichier C et XML envoyé sur le site ;&lt;br /&gt;
*Création des commandes de récupération de ces fichiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
04/06&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
*Permettre une récupération rapide des fichiers à partir du routeur ;&lt;br /&gt;
*Permettre une scrutation régulière du serveur sur la Raspberry ;&lt;br /&gt;
*Permettre l'exécution unique du programme.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
&lt;br /&gt;
==Projet S6==&lt;br /&gt;
&lt;br /&gt;
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la carte Banana PI, à l'aide de la datasheet, dont le lien est ci-dessous. &amp;lt;br/&amp;gt;&lt;br /&gt;
L'utilisation de la datasheet va nous permettre de voir l'intégralité des données de la carte BPI-R1 &amp;lt;br/&amp;gt;&lt;br /&gt;
c'est à dire les branchements, le courant d'alimentaion et les composants.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.electronicsdatasheets.com/datasheet/BPI-R1.pdf&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 : &lt;br /&gt;
Documentation sur l'utilisation d'Ansible et sur les Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Première recherche sur la création du site web. Recherche des ressources PhP, HTML, CSS nécessaires (Bootstrap). &amp;lt;br/&amp;gt;&lt;br /&gt;
J'ai laissé de côté la partie JavaScript et Vue.js car elles ne sont pas utiles pour commencer le site.&lt;br /&gt;
&lt;br /&gt;
Création de la base de données projetCapteurs sur Houplin et des fonctions de connexion du site à celle-ci.&amp;lt;br/&amp;gt;&lt;br /&gt;
La base contient 2 tables :&lt;br /&gt;
*capteurs : numéro du capteur | nom du capteur | Raspberry à laquelle le capteur est relié | type de capteur&lt;br /&gt;
*membres : numéro du membre | nom | prénom | mot de passe&lt;br /&gt;
&lt;br /&gt;
La table capteurs stocke les informations concernant les capteurs et permettra la sélection au moment de l'envoi du fichier C. &amp;lt;br/&amp;gt;&lt;br /&gt;
La table membres répertorie les informations concernant les membres et permettra la connexion sur le site web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches sur la carte BPI R1, cette séance va me permettre de faire des recherches sur l'image qui va  me permettre de faire visualiser l'interface de la BPI R1.&amp;lt;br/&amp;gt; D'après le cahier de charge imposé, il faut mettre l'image OpenWrt.&amp;lt;br/&amp;gt;Open Wrt est une distribution GNU/Linux minimaliste pour matériel embarqué. Après avoir fait des recherches, on a finalement retrouvé le site qui a l'image OpenWrt.&amp;lt;br/&amp;gt;&lt;br /&gt;
La première que je devais faire était d'installer un fichier OpenWrt dans une carte SD, et ce fichier servait à faire fonctionner la banana pi.&amp;lt;br/&amp;gt;Voici le lien qui nous a permis de trouver l'image: &amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/toh/view/toh_fwdownload?dataflt%5B0%5D=supported%20current%20rel_%3D18.06.2.&lt;br /&gt;
&lt;br /&gt;
Voici une image du site d'openwrt : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Openwrt.png|200px|thumb|left|Openwrt]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Début de la création du site : mise en place d'un système de connexion basique et d'un minimum de design pour rendre clair le site.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je me suis limité à des fonctions de connexion et déconnexion sans modifier le reste des pages en fonction de l'état de connexion, et sans créer de variables de session.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour cela, j'ai utilisé des fonctions Php telles que ''pg_connect'' et ''pg_close'', fonctions liées à une base de données PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
[[Fichier:Exemple.jpg|thumb|right|100px|Branchement de la carte Banana PI]]&lt;br /&gt;
Après avoir trouvé l'image permettant de visualiser l'interface BPI-R1, de la faire marcher et de le configurer en tant que routeur de wifi pour qu'il puisse emettre pour le noeud de collecte qui est la Rasberry PI.&lt;br /&gt;
La première étape est d'abord d'installer l'OpenWrt dans une carte SD et cette carte SD sera mis sur le port SD de la Banana PI R1. Voici les commandes qui &lt;br /&gt;
m'ont permis de mettre l'image OpenWrt dans la carte SD : &lt;br /&gt;
&lt;br /&gt;
* Il faut d'abord se connecter à su sur le terminal&lt;br /&gt;
* Mettre l'image avec la commande ci dessous : &lt;br /&gt;
 dd if=OpenWrtimage.img of=/dev/sdb&lt;br /&gt;
&lt;br /&gt;
Avec OpenWrtimage.img le nom du fichier télécharger.&lt;br /&gt;
Après avoir branchéle port HDMI de la carte avec l'entrée VGA du moniteur on pouvait voir l'interface mais on arrivait pas écrire.&lt;br /&gt;
Donc après avoir appeler mes tuteurs, ils m'avaient dit que la semaine prochaine, ils allaient mettre le système Debian, car il y aurait des problèmes avec le système OpenWrt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Afin d'installer Ansible, deux lignes de commande ont dû être lancé dans le terminal d'un pc en E306 ( car l'installation d'ansible n'était pas possible dans les autres salles) :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
puis&lt;br /&gt;
 export https_proxy=https://proxy.polytech-lille.fr:3128&lt;br /&gt;
L'utilisation d'ansible se fera ensuite de la manière suivante : Ecriture d'un fichier .yml contenant les différentes tâches à effectuer sur un serveur (réseau de capteur) spécifique puis le lancement s'effectuera ensuite en lanceant la commande ansible suivi du nom du serveur sur lequel on souhaite travailler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Adaptation du système de connexion avec création de variables de session. Ces variables permettent de maintenir une connexion ouverte en changeant de page et à structurer les pages afin qu'elles affichent les bonnes choses.&amp;lt;br/&amp;gt;&lt;br /&gt;
En effet, un individu connecté ne verra pas la page de connexion par exemple.&amp;lt;br/&amp;gt;&lt;br /&gt;
Amélioration du système de compte avec la mise en place du hachage des mots de passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:accueil_p10.png|center|500px|thumb|Page d'accueil en mode non connecté]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barre_p10.png|500px|thumb|center|Barre de menu en mode connecté]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
[[Fichier:Exemple.png|80px|right|thumb]]&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
Dans cette séance de projet, je vois que mon cahier de charge doit être changer. En effet, vu que la séance dernière, avec l'OpenWrt &amp;lt;br/&amp;gt;&lt;br /&gt;
qu'il y avait un problème de visualation de l'interface. Au final, j'ai reçu par mes tuteurs une carte SD, contenant cette fois &amp;lt;br/&amp;gt;&lt;br /&gt;
l'image Debian. Et cette fois ci, on voit bien l'interface. Maintenant le but est de pouvoir configurer la banana PI en routeur Wifi &amp;lt;br/&amp;gt;&lt;br /&gt;
afin que la Rasberry PI reçoit la wifi de ce dernier.&lt;br /&gt;
Et aussi dans cette séance, j'ai pu voir des tutoriels, afin de pouvoir comprendre le mécanisme de fonctionnement et de &amp;lt;br/&amp;gt;&lt;br /&gt;
programmation.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
Création du script de base d'allumage d'une led en fonction du fichier C envoyé par le serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Création de la page de sélection des capteurs sous forme d'un formulaire Php. La sélection n'est pas au point mais l'affichage est correct.&amp;lt;br/&amp;gt;&lt;br /&gt;
Je laisse toujours de côté la partie dynamique, en essayant de rendre possible la sélection multiple pour l'envoi du formulaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette page contiendra aussi une partie de chargement du fichier à envoyer (unique pour le moment).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors.png|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
Documentation sur le montage qui permet de contrôler une led grâce à une raspberry et à un code créé permettant d'allumer ou d'éteindre la led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Modification de la page principale (sélection d'un capteur possible). Possibilité de joindre un seul fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Un fichier XML est créé avec le numéro du capteur sélectionné. Ce fichier sera transmis avec le fichier C.&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation sur le protocole XMLHttpRequest : [https://openclassrooms.com/fr/courses/1085676-upload-de-fichiers-par-formulaire XMLHttpRequest]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier XML contient le code suivant :&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sensor&amp;gt;&amp;lt;numero&amp;gt;3&amp;lt;/numero&amp;gt;&amp;lt;/sensor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_sensors2.jpg|500px|thumb|center|Choix des capteurs et envoi du fichier]]&lt;br /&gt;
[[Fichier:Script_php_sensor.png|500px|thumb|center|Script de remplissage du fichier XML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Upload d'un fichier C sur le serveur.&lt;br /&gt;
[[Fichier:Envoi_fichier.png|500px|thumb|center|Script d'envoi du fichier C sur le serveur]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut normaliser le nom du fichier en ligne et récupérer les fichiers C et XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 1 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour l'équipe 3 :&lt;br /&gt;
&lt;br /&gt;
Récupération des données de localisation et du nom du fichier uploadé et stockage dans le fichier XML.&amp;lt;br/&amp;gt;&lt;br /&gt;
Création du script de récupération du fichier XML et du fichier C à partir du routeur.&lt;br /&gt;
&lt;br /&gt;
Pour télécharger le fichier C et le fichier XML stockés sur le serveur, on utilise la commande wget dans un script nommé script.sh :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Fichier:Script_download.png|500px|thumb|center|Script de téléchargement des fichiers]]&lt;br /&gt;
&lt;br /&gt;
Pour exécuter un script automatique : [https://itx-technologies.com/fr/blog/2259-executer-un-script-recurrent-avec-cron-exemples-sous-linux Règle Cron]&lt;br /&gt;
&lt;br /&gt;
Voici le script de téléchargement automatique des fichiers toutes les minutes :&lt;br /&gt;
[[Fichier:Crontab.png|500px|thumb|center|Crontab d'exécution périodique du script]]&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une crontab qui s’exécute toutes les minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette crontab va lancer le script de téléchargement à chaque exécution, permettant ainsi de garder le fichier C à jour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Semaine 11===&lt;br /&gt;
&lt;br /&gt;
!!! PHOTOS A MODIFIER !!!&lt;br /&gt;
&lt;br /&gt;
===Semaine 12===&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S7==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;br /&gt;
&lt;br /&gt;
==Projet S8==&lt;br /&gt;
&lt;br /&gt;
===Documents Rendus===&lt;/div&gt;</summary>
		<author><name>Zhoussai</name></author>	</entry>

	</feed>