administration systÈme, dÉploiement
TRANSCRIPT
ADMINISTRATION SYSTÈME, DÉPLOIEMENT ET SURVEILLANCES DE LOGICIELS DANS UN RÉSEAU DE CAPTEURS
ROUILLÉ GUILLAUME – CAPRONNIER EYMERIC – AHOUASSOU LORIS – MERTZ THOMAS
CONTEXTERappels des semestres précédents
ANSIBLE & CRONDescription détaillée du fonctionnement
RPI & CAPTEURSExplications sur l’intégration des capteurs
SITE WEBDéveloppement du travail réalisé
02
01
04
03
02
CONTEXTE
Création du site et du serveur, envoi & test du
premier code sur un Raspberry Pi
S6
Réflexion sur le projet, commandes de matériel & communication entre Arduino UNO et Raspberry Pi
De nombreux objectifs pour réaliser le projet
S7
S8
0103
LES OBJECTIFS DU SEMESTRE 8
Intégrer les capteurs au reste du projet en les
connectant aux Raspberry Pi
Envoyer et recevoir des données puis les afficher sous différentes formes
Permettre la communication entre le site et les Raspberry Pi
RASPBERRY PI & CAPTEURS SITE WEBANSIBLE & CRON
0401 | CONTEXTE
RASPBERRY PI &
CAPTEURS LORIS AHOUASSOU
0205
SEMESTRES 6 & 7
Tentative d’utilisation d’une Banana Pi en
routeur
Test du code reçu sur des LEDs branchées
sur Arduino UNO
Communication entre le Raspberry Pi
et l’Arduino UNO
COMMUNICATION SPI
BANANA PI ESSAI SUR DES LEDS
02 | RASPBERRY PI & CAPTEURS 06
OBJECTIFS DU SEMESTRE 8
Intégration des capteurs
Récupération des données et envoi au serveur
Automatisation d’upload de code
Fixation des capteurs aux ports USB
02 | RASPBERRY PI & CAPTEURS 07
INTÉGRATION DES CAPTEURS
LIAISON SÉRIE
CODE DISTANCE
CODE TEMPÉRATURE
HC-SR04
IDUINO LM35
02 | RASPBERRY PI & CAPTEURS 08
ENVOI DES DONNÉES AU SERVEURREQUÊTE POST
PYTHON SCRIPT DE RÉCUPÉRATION ET D’ENVOI
Port série : valeur du capteur
Adresse IP du Raspberry
Date & Heure
Numéro du capteur
02 | RASPBERRY PI & CAPTEURS 09
UPLOADAUTOMATISÉ
MAKEFILE GÉNÉRIQUE
capteurX-0 capteurX-1 capteurX-2
Arduino USB Arduino SPI Nucléo USB
02 | RASPBERRY PI & CAPTEURS 10
FIXATION D’UN CAPTEUR A UN PORT USB
ATTRIBUTS
N° de série
idVendor
idProduct
BASH SCRIPT
02 | RASPBERRY PI & CAPTEURS 11
ANSIBLE& CRON
EYMERIC CAPRONNIER & THOMAS MERTZ
0312
SEMESTRES 6 & 7
Exécution d’un code pour faire clignoter les LEDs sur Raspberry Pi
Test du code reçu sur des LEDs branchées sur
Arduino UNO
Communication entre le Raspberry Pi
et l’Arduino UNO
COMMUNICATION SPI
EXÉCUTION DE CODE ESSAI SUR DES LEDS
03 | ANSIBLE & CRON 13
OBJECTIFS DU SEMESTRE 8
Administration système
Déploiement de code
Gestion d’un large réseau de capteurs
Utilisation de Cron pour lancer le script Python
1403 | ANSIBLE & CRON
PRÉREQUIS POUR ANSIBLE
Nœud de contrôle
Python 3
sshpass
Ansible
Fichier .ssh/config
Nœuds gérés
Raspbian
Connexion Internet
Connexion SSH
Clé SSH du serveur
1503 | ANSIBLE & CRON
PRÉREQUIS POUR ANSIBLE
ENVOI DE LA CLÉ SSH D’UN NŒUD AU SERVEUR
1 2
Remplir le fichier
inventaire-rasp.ini
Lancer le script
setupRPI.sh
1603 | ANSIBLE & CRON
ROLES & PLAYBOOKS
4 ROLES
arduino_Setup
nucleo_Setup
arduino
nucleo
1 FICHIER INVENTAIRE
[arduino_Setup]
192.168.1.49 capteur=1-0 setup=1
[arduino]
192.168.1.49 capteur=1-0 ordre=0
192.168.1.50 capteur=1-0 ordre=0
1703 | ANSIBLE & CRON
ROLES & PLAYBOOKS
1803 | ANSIBLE & CRON
ROLES & PLAYBOOKS
SETUP D’UN ARDUINO UNO
INSTALLATION MISE EN PLACE
Config. GPIO
Python3 & Pip3
avrdude
gcc-avr
avr-libc
lxml
requests
pyserial
1903 | ANSIBLE & CRON
ROLES & PLAYBOOKS
LES COMMANDES ARDUINO UNO
ORDRE COMMANDE DÉTAIL DE LA COMMANDE
0 Envoi du code et lancement
• Envoi du fichier C• Envoi temps de Crontab• Lancement script de
compilation
1 Arrêt d’exécution du code(suppression Crontab) Lancement script d’arrêt
2 Suppression du capteur Suppression du dossier du capteur
2003 | ANSIBLE & CRON
ROLES & PLAYBOOKS
SCRIPT DE LANCEMENT DE LA COMPILATION
#!/bin/sh
kill $(cat /var/run/script.pid)
basedirname $0`
nohup=` $base/script.sh
2103 | ANSIBLE & CRON
ROLES & PLAYBOOKS
COMMANDE DE LANCEMENT ANSIBLE
ansible-playbook /path/to/the/file/MainTask.yml -i /path/to/the/file/inventaire.ini
2203 | ANSIBLE & CRON
CRON
23
NOTATION SIGNIFICATION
* A chaque unité de temps
5,8 Aux unités de temps 5 & 8
2-5 De l’unité de temps 2 à 5
*/3 Toutes les 3 unités de temps
10-20/3 Toutes les 3 unités entre les unités 10 & 20
03 | ANSIBLE & CRON
CRON
24
*/5 * * * * /home/pi/capteur1-0/python.sh /home/pi/capteur1-0
LIGNE DE CRONTAB
crontab -l | grep -v $pwd | crontab -
SUPPRESSION D’UNE LIGNE
(crontab -l ; echo "*/$tps * * * *$pwd/python.sh $pwd") | crontab -
AJOUT D’UNE LIGNE
03 | ANSIBLE & CRON
SITE WEBGUILLAUME ROUILLÉ
0425
SEMESTRES 6 & 7
Création des premières pages
du site web
Création d’un système de connexion
Création d’une base de données
PostgreSQL
Affichage de données de débogage
Création d’un formulaire et de fonctions d’envoi
BASE DE DONNÉES ENVOI DES CODES
SITE WEB AFFICHAGESYSTÈME DE COMPTES
04 | SITE WEB 26
OBJECTIFS DU SEMESTRE 8
Réception des valeurs des capteurs
Affichage & Recherches
Gestion des Raspberry Pi & des capteurs
Gestion des comptes
Envoi des données
04 | SITE WEB 27
RÉCEPTION DES DONNÉES
REQUÊTE POST
BDD FONCTION MAJ PHP & SQL
SITE AFFICHAGE
Valeur du capteur
Adresse IP du Raspberry
Date & Heure
Numéro du capteur
04 | SITE WEB 28
AFFICHAGE BRUT
NOM RASPBERRY TYPE VALEUR UNITÉ ACTION
Fusion 172.26.145.112 Distance 12,7 cm
Atmos 172.26.145.113 Température 22,1 °C
Solaris 172.26.145.111 Distance 15,4 cm
SITE RAFFRAICHISSEMENT
Arrêter
Arrêter
Arrêter
04 | SITE WEB 29
AFFICHAGE GRAPHIQUE
Nom du capteur
Intervalle de dates
Nombre de résultats
Fonctions PHP & SQL
Bibliothèque JpGraphe
04 | SITE WEB 30
SYSTÈME DE RECHERCHES
REQUÊTE POST
BDD FONCTION PHP & SQL
SITE AFFICHAGE BRUT
SITE FORMULAIRE
Nom du capteur
Type de capteur
Raspberry Pi
Intervalle de dates
Nombre de résultats
04 | SITE WEB 31
GESTION DES RASPBERRY PI
REQUÊTE POST
BDD FONCTION PHP & SQL
SITE FORMULAIRES
Adresse IP
Génération du fichier .ini
Ajout ou suppression
Vérifications
Lancement d’AnsibleSITE AFFICHAGE PROTOCOLE
04 | SITE WEB 32
GESTION DES CAPTEURS
REQUÊTE POST
BDD FONCTION PHP & SQL
SITE FORMULAIRES
Nom
Type
Raspberry Pi
Unité de mesure
Mode de connexion
Génération du fichier .ini
Ajout ou suppression
Vérifications
Lancement d’Ansible
04 | SITE WEB 33
GESTION DES COMPTES
REQUÊTE POST
BDD FONCTION PHP & SQL
SITE FORMULAIRES
Nom & Prénom
Groupe
Identifiant
Mot de passe
Hachage du mot de passe
Ajout ou suppression
Vérifications
04 | SITE WEB 34
ENVOI DES DONNÉES
REQUÊTE POST
BDD FONCTION PHP & SQL
SITE FORMULAIRE
Sélection de capteurs
Fichier C Génération du fichier .ini
Upload du fichier C
Vérifications
Lancement d’AnsibleSITE AFFICHAGE DONNÉES DE DEBUG
04 | SITE WEB 35
AFFICHAGE DE L’ENSEMBLE DU RÉSEAU
Un tableau par Raspberry Pi
Affichage graphique
Visualisation du réseau complet
Fonctions PHP & SQL
04 | SITE WEB 36
CONCLUSION
MERCI !Avez-vous des questions ?