80 lines
2.3 KiB
Markdown
80 lines
2.3 KiB
Markdown
|
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/"
|
||
|
|
||
|
rsync -avz --exclude lastsnap.jpg pi@terrarium:/var/lib/motioneye/Camera1/ "$SNAPSHOTS_DIRECTORY"
|
||
|
|
||
|
for PARENT in "$SNAPSHOTS_DIRECTORY"*; do
|
||
|
for MOVIE in "$PARENT"/*.mp4; do
|
||
|
THUMB="$(echo "$MOVIE" | sed 's/.mp4/.jpg/')"
|
||
|
|
||
|
if [ ! -f "$THUMB" ]; then
|
||
|
ffmpeg -i "$MOVIE" -vcodec mjpeg -vframes 1 -an -f rawvideo -s 300x168 -ss 1 "$THUMB"
|
||
|
fi
|
||
|
done
|
||
|
done
|
||
|
```
|