terrarium-web/README.md

79 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

2020-04-04 19:05:04 +02:00
Terrarium
=========
Application web qui met en graphiques les mesures de température
et d'hygrométrie ainsi que la vidéo surveillance d'un terrarium
munie d'un Raspberry PI.
Le Raspberry PI utilisé est le modèle 4 avec 2Go de RAM muni de
Raspbian Lite. La vidéo s'appuie sur la caméra fisheyes à vision
nocturne et le logiciel Motion combiné au frontend MotionEye.
Le capteur est un AM2302 et mesure la température et l'hygrométrie.
[Lire l'article de blog dédié à ce projet](https://www.deblan.io/post/580/monitoring-d-un-terrarium)
![](https://upload.deblan.org/u/2020-03/5e7aa73f.jpg)
Installation
------------
### Récupération du projet et installation des dépendances
Développé et testé avec PHP 7.4, [composer](https://getcomposer.org/) et [npm](https://www.npmjs.com/) requis.
```
git clone https://gitnet.fr/deblan/terrarium-web.git
cd terrarium-web
composer install
npm install
```
### Configuration
Éditer le fichier `.env` et renseigner [`DATABASE_URL`](https://symfony.com/doc/4.4/configuration.html#configuring-environment-variables-in-env-files). Indiquer également l'adresse web de la caméra (via motion).
```
php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:execute --up XXXXXXXXXXXXX
```
Exemples d'appels à l'API avec [httpie](https://httpie.org/)
------------------------------------------------------------
Ajouter une mesure de température :et une mesure d'hygrométrie :
```
http POST 'https://application/api/temperature/create' date='2020/04/04 18:40:02' value=30.200000762939453
```
Ajouter une mesure d'hygrométrie :
```
http POST 'https://application/api/hygrometry/create' date='2020/04/04 18:40:02' value=25.799999237060547
```
Videos
------
Les vidéos générées par Motion doivent être copiées dans `public/motion/snapshots`.
Voici le script qui réalise la copie depuis le serveur de l'application web :
```
#!/bin/sh
SNAPSHOTS_DIRECTORY="$HOME/web/motion/snapshots/"
2020-04-24 11:11:04 +02:00
rsync -avz --exclude lastsnap.jpg $1 --delete pi@terrarium:/var/lib/motioneye/Camera1/ "$SNAPSHOTS_DIRECTORY"
2020-04-04 19:05:04 +02:00
for PARENT in "$SNAPSHOTS_DIRECTORY"*; do
2020-04-24 11:11:04 +02:00
for MOVIE in "$PARENT"/*.mp4; do
THUMB="$(echo "$MOVIE" | sed 's/.mp4/.jpg/')"
MIDDLE=$(ffprobe "$MOVIE" 2>&1 | grep Duration: | egrep -o "[0-9]*:[0-9]*:[0-9]*.[0-9]*" | awk -F ':' '{print ($3+$2*60+$1*3600)/2}')
2020-04-04 19:05:04 +02:00
2020-04-24 11:11:04 +02:00
ffmpeg -i "$MOVIE" -vcodec mjpeg -vframes 1 -an -f rawvideo -s 300x168 -ss $MIDDLE "$THUMB"
done
2020-04-04 19:05:04 +02:00
done
```