Plateforme Agir Low-Tech

Commit 79e8258c authored by davidmercereau's avatar davidmercereau
Browse files

Avec interface web

parent 432b322a
......@@ -22,6 +22,8 @@ Par défaut le Wifi tentera de se connecter à
Pour modifier ces paramètres, déposer un fichier wpa_supplicant.conf dans la partition “boot” de la carte SD. Au démarrage celui-ci sera lu / déplacé dans le système avant un reboot.
*/!\ Bug sur la version 1.0 de la carte SD, [ce tips ne fonctionne pas.](https://gitlab.lowtech.fr/pdm/projets/labo/pub/banc-tempsurf-ds18b20/-/issues/8)*
Ce fichier wpa_supplicant.conf doit ressembler à ceci :
```
......
......@@ -64,7 +64,7 @@ Pour faire simple :
Une carte SD prêt à l'emploi : https://cloud.lowtech.fr/index.php/s/62eKRc929fJZpYH
La notice pour l'usage de cette carte SD est dans le fichier **ployer_l_image_de_la_carte_SD_prêt_à_l_emploi.md**
La notice pour l'usage de cette carte SD est dans le fichier **[Deployer_image_carte_SD.md](Deployer_image_carte_SD.md)**
## Sinon : installation
......@@ -96,6 +96,62 @@ git clone https://gitlab.lowtech.fr/pdm/projets/labo/bancs-acqusition/banc-mesur
cd banc-mesure-temp-surface-DS18B20
```
### Installation de l'interface web (option)
Option pratique pour les "non geek"
Rendre le fichier de configuration accessible en écriture pour l'interface web :
```bash
chmod 777 /opt/banc/config.ini
chmod 777 /opt/banc/releves -R
# ou
chown www-data:www-data /opt/banc/config.ini
chown www-data:www-data /opt/banc/releves -R
```
Installation des dépendances :
```
aptitude install lighttpd php-cgi php-xml php7.3-json
lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php
```
On change la configuration de lighttpd :
```
service lighttpd stop
```
Configuration du serveur http, avec le fichier /etc/lighttpd/lighttpd.conf :
```diff
- server.document-root = "/var/www/html/"
+ server.document-root = "/opt/banc/"
```
On applique la configuration :
```
service lighttpd start
```
Télécharger la dernière version de [ttyd](https://github.com/tsl0922/ttyd/releases) (pour un raspberry pi c'est la version ARM) pour la placer dans le /opt :
```bash
wget -O /opt/ttyd https://github.com/tsl0922/ttyd/releases/download/1.6.3/ttyd.arm
chmod +x /opt/ttyd
```
Dans le fichier rc.local il faut ensuite ajouter le ttyd au démarrage du raspberry pi. Ajouter ceci avant "exit 0" :
```
/opt/ttyd -p 8022 /opt/banc/start-menu.sh > /tmp/ttyd.log 2>/tmp/ttyd-error.log &
```
C'est prêt, rdv sur http://IPdeVotrePi ou http://pi.local
## Configuration
Toute la configuration se trouve dans le fichier config.ini
......@@ -142,7 +198,19 @@ nb_mesure=500
# Note : la durée du test est donc = delai * nb_mesure
```
## Lancement
## Test des sondes
Des scripts de tests se trouve dans le répertoire "tools"
## Lancement de l’acquisition
### Depuis l'interface web
Choix 1
Pour stopper : CTRL + C
### En ligne de commande
Pour lancer l’acquisition :
......@@ -238,6 +306,8 @@ Vous devriez obtenir un fichier CSV de ce type :
Voir dossier doc/ExempleMiseEnOeuvre
![doc/ExempleMiseEnOeuvre/P1060979.JPG](doc/ExempleMiseEnOeuvre/P1060979.JPG "Banc sur le poêle d'agir lowtech")
## Auteur
David Mercereau : https://david.mercereau.info/contact/
......
<?php
$page = null;
if (isset($_GET['p'])) {
$page = $_GET['p'];
}
if (isset($_POST['configfile'])) {
file_put_contents('config.ini', $_POST['configfile']);
header('Location: http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Banc Test</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 1.36" />
<style>
a {
color: #3E3E7C;
text-decoration: none;
}
#footer {
position: fixed;
bottom:0;
right:0;
}
#menu li,
#footer li {
margin: 10px;
display:inline;
}
.error {
color: #B21E1E;
}
</style>
</head>
<body>
<?php
$config_rw=true;
$config = parse_ini_file('config.ini', true);
if ($config == false) {
echo '<div class="error">Erreur : Votre fichier config.ini n\'exsite pas ou comporte des erreurs/commentaires non lu par se programme.</div>';
$page='config';
} elseif (is_writeable('config.ini')) {
echo '<div class="error">Erreur : Votre fichier config.ini n\'est pas accessible en écriture, vous ne pourez donc pas l\'éditer par cette interface.</div>';
$config_rw=false;
}
?>
<h1 id="title">banc-tempsurf-ds18b20</h1>
<div id="menu">
<ul>
<li><a href="http://<?= $_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'] ?>">Aquisition</a></li>
<li><a href="http://<?= $_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'] ?>?p=config">Editer la configuration</a></li>
<li><a href="http://<?= $_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'] ?>?p=dl">Téléchargement des relevés</a></li>
</ul>
</div>
<?php
switch ($page) {
case 'config':
$content = file_get_contents('config.ini');
echo '<form action="#" method="post">';
echo '<p>Avant tout changement de configuration, bien <a href="https://gitlab.lowtech.fr/pdm/projets/labo/pub/banc-tempsurf-ds18b20#configuration">lire la documentation</a> : </p>';
echo '<p><textarea name="configfile" id="configfile" rows="15" cols="70">'.$content.'</textarea></p>';
if ($config_rw == true) {
echo '<p><input type="submit" value="Enregistrer" /></p>';
} else {
echo '<p>Le fichier n\'est pas accessible en écriture, il ne peut être enregistré par cette interface.</p>';
}
echo '</form>';
break;
case 'dl':
$cdir = scandir($config['general']['csv_dir']);
echo '<p>Liste le répertoire <i>'.$config['general']['csv_dir'].'</i> : </p>';
echo '<ul>';
foreach ($cdir as $value) {
if (!in_array($value,array(".",".."))) {
echo '<li><a href="'.$config['general']['csv_dir'].'/'.$value.'">'.$value.'</a></li>';
}
}
echo '</ul>';
break;
default:
?>
<iframe id="" allowtransparency="true" scrolling="auto" src="http://<?= $_SERVER['SERVER_NAME'] ?>:8022/" style="width:100%;height:300px;border:none;"></iframe>
<?php
}
?>
<div id="footer">
<ul>
<li><a href="https://gitlab.lowtech.fr/pdm/projets/labo/pub/banc-tempsurf-ds18b20">Code source</a></li>
<li>Auteur: <a href="https://david.mercereau.info/contact/">David Mercereau</a></li>
<li>Licence <a href="https://www.gnu.org/licenses/agpl-3.0.fr.html">AGPL v3</a></li>
</ul>
</div>
</body>
</html>
#!/bin/bash
clear
echo "Que voulez vous faire ?"
echo " 1 - Lancer une aquisition"
echo " 2 - Tester ds18b20"
#~ echo " 3 - Tester max31855"
echo " 9 - Lancer l'invité de commande (bash) "
read -p "Enter votre choix : " menu
if ! [[ "$menu" =~ ^[1-2]$ ]] && ! [[ "$menu" == "9" ]] ; then
echo "*** Erreur : Choix invalide *** "
sleep 3
exit 1
fi
if [ "$menu" == "1" ]; then
clear
cd /opt/banc
python3 aquisition.py
elif [ "$menu" == "2" ]; then
clear
bash /opt/banc/tools/ds18b20-list.sh
#~ elif [ "$menu" == "3" ]; then
#~ clear
#~ python3 /opt/banc/tools/test-max31855.py
elif [ "$menu" == "9" ]; then
clear
/bin/bash
else
echo "Erreur choix inconnu"
fi
sleep 3
exit 0
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment