Ce système sera utilisé dans le cadre de l’épreuve de CCF E5.2.
Le système « Supervision de salles » permet un affichage de l’état de salles équipées de sonde ESP32-Weather.
Ce système est composé :
La sonde ESP32-Weather est une carte construite autour d’un ESP32 et équipée d’un capteur d’éclairement lumineux TSL 2591, d’un capteur DHT22 de température et d’humidité et d’une Led bicolore. Les mesures sont affichées périodiquement sur l’écran OLED de la carte.
Le carte embarque aussi un serveur TCP multi-clients via un réseau WiFi. Les clients connectés reçevront périodiquement les mesures de la sonde ainsi que l’état de la Led bicolore. Ils peuvent aussi envoyer une requête pour commander la Led.
La configuration du WiFi se fait par une interface Web :
En utilisant un navigateur Web, on accède à l’application à partir de l’URL : Lien : http://<serveur>/monitoring/.
On sélectionne la salle à superviser :
L’état de la salle est ensuite affichée dans le navigateur :
Ressource | Version |
---|---|
OS | GNU Linux (Ubuntu 16.04 LTS minimum) |
API | HTML5/CSS, jQuery, >= PHP 5 |
Télécharger et installer le paquet monitoring.deb :
$ wget -c http://tvaira.free.fr/bts-sn/activites/preparation-ccf-e52/installateurs/monitoring/monitoring.deb
$ sudo dpkg -i ./monitoring.deb
# Si besoin :
$ sudo apt -f install
Remarque : Il vous faudra redémarrer le serveur Web. Les bases de données MySQL et SQLite n’ont pas été installés. Vous pouvez le faire manuellement en suivant cette activité.
Vérifications post-installation :
$ cd /var/www/html
$ ls -l
drwxrwxr-x 7 www-data www-data 4096 oct. 25 13:51 monitoring
$ cd /var/www/html/monitoring
$ ls -l
drwxrwxr-x 2 www-data www-data 4,0K oct. 23 17:38 fonts/
drwxrwxr-x 2 www-data www-data 4,0K oct. 25 14:06 include/
-rw-r--r-- 1 www-data www-data 22K oct. 25 13:43 index.php
drwxr-xr-x 4 www-data www-data 4,0K oct. 24 18:21 jquery-ui/
drwxrwxr-x 2 www-data www-data 4,0K oct. 24 10:11 js/
-rw-r--r-- 1 www-data www-data 20K oct. 24 11:51 monitoring
-rw-r--r-- 1 www-data www-data 0 oct. 25 14:40 monitoring.log
-rw-r--r-- 1 www-data www-data 6,0K oct. 25 10:50 monitoring.php
-rw-r--r-- 1 www-data www-data 2,6K oct. 25 13:51 salles.php
drwxrwxr-x 2 www-data www-data 4,0K oct. 24 10:11 sql/
$ cat include/config.inc.php
...
$ apache2 -v
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2019-08-26T13:41:23
$ systemctl status apache2
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
apache2-systemd.conf
Active: active (running) since Thu 2019-10-24 09:09:02 CEST; 1 day 5h ago
Main PID: 24291 (apache2)
$ systemctl status ufw
$ sudo ufw status verbose
État : inactif
$ sudo ufw app list
Applications disponibles :
Apache
Apache Full
Apache Secure
Les paquets nécessaires sont :
$ sudo apt-get install apache2 libapache2-mod-php7.2
$ sudo apt-get install mysql-server php7.2-mysql
$ sudo apt-get install sqlite3 php7.2-sqlite3
L’application gère ses paramètres de configuration à partir d’un fichier config.inc.php
:
<?php
define("HOME_PATH", "/var/www/html/monitoring/");
$config['nom'] = 'MONITORING';
$config['description'] = 'Surpervision de salles';
$config['signature'] = '© 2019 v0.1 La Salle Avignon';
$config['charset'] = 'utf-8';
$config['refresh'] = 10000; // en ms
$config['logfile'] = HOME_PATH."monitoring.log";
$config['bd'] = "array"; // Choix possible : "sqlite" ou "mysql" ou "array"
$config['dbname'] = "monitoring"; // pour "sqlite" ou "mysql"
$config['host'] = "localhost"; // seulement pour "mysql"
$config['username'] = "root"; // seulement pour "mysql"
$config['passwd'] = "password"; // seulement pour "mysql"
// Si $config['bd'] == "array"
$config['salles'] = array (
0 => array('idSalle' => 1,'nom' => "B20",'description' => "salle BTS SN",'ip' => "192.168.52.30",'port' => 5000, 'etat' => 1),
1 => array('idSalle' => 2,'nom' => "B22",'description' => "salle BTS SN",'ip' => "192.168.52.31",'port' => 5000,'etat' => 1),
2 => array('idSalle' => 3,'nom' => "C12",'description' => "salle",'ip' => "192.168.52.34",'port' => 5000,'etat' => 1)
);
?>
Le fichier config.inc.php
est stocké dans /var/www/html/monotoring/include
.
Pour désinstaller le paquet, il suffit de faire :
$ sudo dpkg -P monitoring
Un pare-feu est installé en configuration close-config
. L’administration du serveur se fait via ssh.
Une tâche cron archive les logs d’une semaine chaque dimanche à 23h59.
Utiliser un client web (navigateur) et accéder au site web du système Supervision de salles.
Les procédures de diagnostic sont décrites dans ce document. Le fichier de journalisation (log) de l’application se situe dans le répertoire /var/www/html/monotoring/
.
$ sudo tail -f /var/www/html/monotoring/monitoring.log
Il est possible d’effectuer des tests de communications avec les sondes installées : http://<serveur>/monitoring/maintenance.php
La configuration du système installé est décrite dans ce document.