1
0
Fork 0
Datei suchen
Simon Vieille f31b916230
add xtics
2021-01-17 18:58:55 +01:00
bin Add initial set of files 2020-03-09 12:01:10 +01:00
config add lights chart 2020-11-29 17:05:35 +01:00
lib add command line to print charts 2021-01-17 18:03:18 +01:00
public add video title 2020-04-29 20:14:23 +02:00
src add xtics 2021-01-17 18:58:55 +01:00
templates add lights in datas 2020-11-29 17:27:14 +01:00
tests Add initial set of files 2020-03-09 12:01:10 +01:00
translations Add initial set of files 2020-03-09 12:01:10 +01:00
.env clean code and add PSR compliance 2020-03-24 23:47:46 +01:00
.env.test Add initial set of files 2020-03-09 12:01:10 +01:00
.gitignore add Temperature/Hygrometry API 2020-03-16 14:19:25 +01:00
README.md add documentation 2020-04-24 11:11:04 +02:00
composer.json add video title 2020-04-29 20:14:23 +02:00
package-lock.json add documentation 2020-04-04 19:05:04 +02:00
package.json add command line to print charts 2021-01-17 18:03:18 +01:00
phpunit.xml.dist Add initial set of files 2020-03-09 12:01:10 +01:00
symfony.lock add video title 2020-04-29 20:14:23 +02:00
yarn.lock add command line to print charts 2021-01-17 18:03:18 +01:00

README.md

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

Installation

Récupération du projet et installation des dépendances

Développé et testé avec PHP 7.4, composer et npm 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. 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

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 $1 --delete 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/')"
    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}')

    ffmpeg -i "$MOVIE" -vcodec mjpeg -vframes 1 -an -f rawvideo -s 300x168 -ss $MIDDLE "$THUMB"
  done
done