---
# System prepended metadata

title: Présentation ADS

---

# Présentation ADS 

## SLIDE 

### CAPTEURS

Capteurs sont des rapsberry pi avec module Bluetooth.
- paquet ADSsensor.deb à installer (dpkg -i)
- répertoire principal : /etc/ADS2021/
- fichier man adssensor pour savoir comment ca marche (très léger car pas de paramètre dans le script)
- lancement du script : ./adssensor

Le script : 
- Créer un fichier csv au nom du capteur
- Un fichier "mac.txt" pour stocker les adresses mac scannées lors "d'un tour" (car le coeur du script est dans une boucle)
- Une boucle while true --> 
    - Utilise l'outil "hcitool". On stock le résultat dans le fichier mac.txt pour ensuite traiter les données.
- Mise en forme du fichier <hostname>.csv : 
    - nom du capteur; date (2020-12-10T23:54:28-08:00); adresse mac bluetooth


Rsync : 
- Avant tout : partage de clef pour tunnel SSH
-- sur chaque capteur --> ssh-keygen pour générer une paire de clef.
-- partager la clef publique au serveur pour une connexion sécurisé et sans intervention humaine (sans demande de mot de passe)
- rsync <hostname>.csv USERserveur@IPserveur:/home/lucas/ADS/Serveur/sensor_manager/reception_log/<hostname>.csv

Crontab : 
- Crontask pour envoyer les données par rsync au serveur
- réinitialisation du fichier hostname.csv à la fin de la journée (car archive sur serveur)
### Application mobile

4 onglets : 
- Règles
- Logs
- Whitelist
- Blacklist
![](https://i.imgur.com/WyuC0uZ.png)


#### Règles 

Quand tu cliques sur l'onglet règle :
- Appel un module Web d'Appinventor.
- Module web --> gérer l'API Json.
- Dans le module web --> l'url de la page de l'API.

Automatiquement, comme il y a un appel --> On a fait en sorte que ca affiche les données de la page.
--> dans une liste (comme ca, on peut sélectionner le capteur qu'on veut dans la liste "séleciton du capteur").

Dans sélection du capteur : on sélectionne à partir du nom.

Quand on clic sur un capteur : 
- Ca rempli automatiquement les champs Nom/AdresseMAC/Priorité par les données déjà présentes.

SI on veut ajouter : 
- On saisie juste les données dans les champs et ca fait un post dans le module web --> API JSON
SI on veut modifier : 
- on sélectionne le capteur
    - On modifie l'adresse mac ou la priorité, 
    - on peut pas modifier le nom (statique car hostname du capteur raspberry)
- --> Ca fait un put

Si on veut supprimer : 
- On sélectionne le capteur
- --> ca fait un delete à partir de l'url (exemple : urlDeLapi/capteur1)

![](https://i.imgur.com/eB0Dtia.png)



#### Logs

![](https://i.imgur.com/0aYo5JZ.png)


- Quand on clic sur l'onglet -> module web "log" qui pointe sur URL API afficheLogs --> "Call" = GET
- Sélectionner juste la date (interface pour la sélectionner qui demande le jour,mois et année)
- affiche automatiquement les données S'IL Y EN A !
    - Sinon : affiche un message d'avertissement comme quoi il n'y a aucunne données



#### Whitelist / Blacklist

![](https://i.imgur.com/Ndc2r85.png)

Deux onglets différents mais l'interface est similaire.

- Quand on clic sur l'onglet --> appel module web whitelist/blacklist pour afficher les appareils mobiles (juste l'adresse mac bluetooth des appareils mobiles = téléphones).
- Pour supprimer --> delete en passant l'adresse mac des appareils déjà ajoutés.
- Pour Ajouter --> Post comme pour les règles




GESTION DES TRY CATCH POUR TOUTE L'APPLICATION
- SI un champ n'est pas rempli = message d'erreur
- SI aucun log = message d'erreur


CAPTEUR : WASSIM
R5 : LUCAS MOI
API : THOMAS
SERVEUR : LUCAS
APPLI : CORENTIN