VORSurv

De VoWiki
Aller à la navigation Aller à la recherche
La version imprimable n’est plus prise en charge et peut comporter des erreurs de génération. Veuillez mettre à jour les signets de votre navigateur et utiliser à la place la fonction d’impression par défaut de celui-ci.
Projet VORSurv
VORSurv-distant.JPG

VoLAB

Association VoRoBoTics

Volab.JPG

Date : 25/01/2015

Auteur : D.Mebarki, djamel@vorobotics.com

Relecteur : J.Soranzo

Thème: Vidéo surveillance, GPIO, Commande d'un relais, shell, awk

Projet : VORSurv




Problématique

VORSurv est l'un des projets VoLAB. Il fait partie d'une grande liste, collée sur l'une des portes du lab, pour quelle soit visible et lisible pour tous les adhérents : les jeunes et les vieux.


Liste-Projets-Volab.JPG

Le cahier des charges

La version initiale du cahier des charges se résume comme suit:

Conception et réalisation d'un système, Made in VoLAB, capable de répondre aux principaux besoins suivants :

  • Superviser, en temps réel, l'entrée principale du VoLAB, depuis n'importe quel poste du réseau local
  • Détecter et signaler toute intrusion au VoLAB et être capable de conserver les traces (images, date et heure) d'une éventuelle infraction dans un endroit sécurisé physiquement éloigné.
  • Envoyer des messages d'alarme, par SMS, à une liste prédéfinie d'adhérents, en cas d'intrusion durant les heures de fermeture du VoLAB


Made in VoLAB ?

  • Réalisation d'un projet, l'un de la liste des projets inscrits sur le tableau, et de le personnaliser, en s’appuyant sur les outils, les ressources internes et les compétences des adhérents de VoLAB
  • Echanger et partager le savoir et faire participer le maximum d’adhérents

Comme c'est le cas pour tout nouveau adhérent, la fameuse liste de projets de VoLAB m'a été présentée dès le premier jour par Joel et Pierre, en me proposant, si j'étais intéressé, de prendre la responsabilité de l'un des projets.


Analyse du cahier des charges:

D'après l'analyse préliminaire du cahier des charges, le travail demandé consiste à concevoir et réaliser un système capable d'assurer les fonctionnalités suivantes

  • Supervision de la porte d'entrée du VoLAB depuis n'importe quel poste du réseau
  • Signaler toute éventuelle intrusion, uniquement, durant les heures de fermeture du VoLAB
  • Envoyer des SMS d'alerte uniquement au numéros de portables d'une liste prédéfinie facilement modifiable, à télécharger depuis un site sécurisé.
  • Sauvegarder une copie des traces (Images, date et heure) sur un serveur distant et sécurisé.

Important

Vous pouvez réaliser le même système chez vous, par vous même, toutefois, nous attirons l'attention sur l'éventuel risque lors des tests de la partie commande.

Electricite.JPG


Dans notre cas, les deux fils, phase et neutre, du câble d'alimentation 230V du projecteur sont commandés par le relais piloté par la carte Raspiberry.

Vous devez s'assurer de la conformité de votre câblage avant d'entamer les tests de cette partie.

Matériel utilisé

    • Un Raspberry Pi modèle B
    • Une carte SD 8GO
    • Module caméra PI
    • Modem 3/4G avec une carte SIM (SMS illimité de préference)
    • Leds : couleur rouge & verte
    • Résistances: 1K
    • Relais 5V
    • Detecteur de mouvement (IR)
    • Bouton poussoir
    • Transitor BC337
    • Diode 1N4000Boitier (conçu et fabrique par VoLAB)

Configuration du système

Preparation de la carte Raspberry

Etape 1: Préparation de la carte SD

La première étape consiste à la préparation de la carte SD et l’installation de l’image du système d’exploitation

Cette procédure est destinée pour l'environnement Windows.

1 – Télécharger et installer le logiciel Sdformater    

SD-logo.JPG

2 – Télécharger et installer le logiciel Win32DiskImager 

Win32.JPG

3 – Télécharger l’image de votre OS depuis  http://www.raspberrypi.org


Raspbian.JPG

4 - Lancer le logiciel Sdformater et procéder au formatage de la card SD en fonction des paramètres détectés

SDF.JPG

5 - Lancer le logiciel Win32DiskImager, selectionner l'image OS téléchargée précédemment et appuyer sur "Write"

Win32menu.JPG

Etape 2: Configuration du système

Dès l'insertation de la carte SD et le premier démarrage du système sur le Raspberry, il faut passer à sa configuration en utilisant la commande raspi-config :

sudo raspi-config

- Selection de vos parametres régionales:

  • Langue,
  • Clavier
  • Fuseau horaire

- Activation de l'utilisation du caméra RP

Raspi-config.JPG

Pensez è redémarrer le système pour s'assurer de la bonne prise en compte de votre nouvelle configuration.

Depuis l'interface Raspi-config

Raspi-reboot.JPG

ou

Depuis la ligne de commande:

sudo reboot


Important: Le fonctionnement du système dépendra de la bonne prise en compte de l'utilisation de l'interface du caméra

Installation des logiciels necessaires

Motion:

Motion-logiciel.JPG

C'est un logiciel de surveillance pour rasbian, simple à utiliser, qui offre la possibilité de faire de la védio-surveillance et la diffusion en ligne, en temps réel, des images prises par le système.

En comparent la toute dernière images avec la nouvelle image prise, Motion est capable de détecter tout éventuel mouvement.

On trouve plusieurs sites internet qui expliquent très bien l'installation et la configuration de Motion.

Parmi ces sites, on peut citer: http://www.pihomeserver.fr/2013/05/29/raspberry-pi-home-server-video-surveillance-avec-motion/

Le paragraphe suivant décrit la démarche suivie lors de la réalisation de VORSurv

          • sudo apt-get update
          • sudo apt-get upgrade
          • sudo apt-get install motion

Après, on diot télecharger et installer les librairies necessaires

          • sudo apt-get install -y libjpeg62 libjpeg62-dev libavformat53 libavformat-dev libavcodec53 libavcodec-dev libavutil51 libavutil-dev libc6-dev zlib1g-dev libmysqlclient18 libmysqlclient-dev libpq5 libpq-dev'

Comme nous allons utiliser la caméra RPI, on doit telecharger la version de Motion compatible avec ce type de caméra

Remarque: Pour l’exécution de certaines commandes, il faut être "root" ou utiliser la commande "sudo"

A l'issue de cette étape, on doit attribuer les bons droits d'accès pour éviter les erreurs lors du lancement du programme.


    • sudo chmod 664 /etc/motion.conf
    • sudo chmod 755 /usr/bin/motion
    • sudo touch /tmp/motion.log
    • sudo chmod 775 /tmp/motion.log

Avant le lancement du programme, on doit revoir le fichier de configuration, en fonction de la configuration souhaiter et s'assurer que le module Camera RPI est bien installé.

RPI+Camera.JPG

Installation du module caméra RPI

Une excellente video résume bien les étapes d'installation du module caméra de Raspberry, ainsi que les précautions à prendre en considération, lors de cette opération, se trouve sur le lien suivant:

https://www.raspberrypi.org/help/camera-module-setup/

Paramétrage de Motion

Pour le cas du système de VORSurv, nous avons procèdé ainsi:

A) – Activation de l'option start_motion_daemon pour autoriser la lancement de motion dès le démarrage du système sans aucune intervention. Pour faire, il suffut d'éditer le fichier /etc/default/motion et décommenter la ligne : start_motion_daemon=yes

B) Mise à jour du fichier de configuration /etc/motion.conf comme suit:

daemon on

logfile /tmp/motion.log

width 1280

height 720

framerate 2

pre_capture 2

post_capture 2

ffmpeg_video_codec msmpeg4

stream_localhost off


A la fin de cette étape, il faut rebooter le système pour s'assurer du lancement automatique de Motion ou procèder comme suit pour lancer son éxecution manuellement:

sudo service motion start

En cas d'erreur, il faut vérifier le fichier:

/tmp/motion.log


Pour pouvoir diffuser les images, les images prises doivent être accessibles depuis un serveur web ou installer son propre serveur web.

Dans le cas de VORSur, nous avons préféré l'installation un serveur web sur le Raspberry et développer nos propres interfaces pour sécuriser l'accès aux cameras et d'autres fonctionnalités telles que la désactivation ou l'activation d'envoi d'alertes via une interface web, changement du mot de passe administrateur, etc..

Pour ça, nous avons installer un serveur web très light ainsi que le langage PHP

Serveur Web et PHP:

Pour pouvoir diffuser, en temps réel, les images prises par VORSurv, nous avons opté pour l'installation d'un serveur web capable de diffuser le flux d'images à n'importe quel poste de notre réseau local. Un mot de passe sera demandé bien évidement..!

Aussi, nous avons développé des interfaces, accécibles depuis le serveur web, en utilisant le langage PHP, pour le paremétrage et la configuration de VORSURv.

Le but essentiel est de donner la main aux personnes autorisées, de changer le mode de fonctionnement, consulter les logs et visualiser les images depuis n'importe qu'elle lieu.


Serveur WEB Lighttpd:

Comme le besoin se limite à la diffusion des images pour quelques postes de travail, nous avons installé Lighttpd qui est un serveur web très légèr qui s'adapte parfaitement à notre besoin.

sudo apt-get install lighttpd

Installation de PHP

sudo apt-get install php5-common php5-cgi php5

Vérifier la configuration du serveur web, en particulier le répertoire racine "root", des documments accessibles depuis les postes clients


Configuration pour la prise en compte des script php et droits d'accès au répertoire

sudo lighty-enable-mod fastcgi-php

sudo chown www-data:www-data /var/www

sudo chmod 775 /var/www

Attribution des droits du groupe www-data et pi

sudo usermod -a -G www-data pi


A la fin de ces étapes, il faut relancer lighttpd pour s'assurer de la prise en compte de ces nouvelles modifications et tester le bon fonctionnement du serveur web. Pour effectuer un test, il suffit de taper:

http://127.0.0.1/ ou http://localhost/.


http://@IP/ où @IP est l'adresse IP du serveur web


Aussi, il faut s'assurer du fonctionnement du PHP : Il suffit d'éditer le simple fichier texte suivant, à placer dans le répertoire racine du serveur web: /var/www/test.php

  <?PHP

  phpinfo()

  ?>

Envoi de messages d'alerte sur telephone mobile:

Gammu-smsd:

Selon le cahier des charges de VORSurv, l'envoi de messages d'alerte, suite à une intrusion durant la fermeture du VoLAB, se fait par SMS.

Les destinataires sont les adhérents qui font d'une liste variable de numéros de mobiles disponible sur un serveur internet bien évidement sécurisé..

Pour pouvoir envoyer un SMS, VORSurv utilise le logiciel libre gammu.

Installation & configuration de GAMMU:

Etape 1: Inserer la carte SIM dans le dongle 3G

Etape 2: Inserer le dongle 3G dans l'un des ports USB du Raspberry

Installer gammu et gammu-smsd

sudo apt-get install gammu gammu-smsd

Déterminer le port USB utilisé par le modem 3G en utilisant la commande

dmesg

Le numéro du port usb utilisé, ttyUSB0 ou ttyUSB1, sera utilisé pour la mise à jour du fichier de configuration /etc/gammu-smsd

[gammu]
#Please configure this!
port = /dev/ttyUSB0
connection = at19200
# Debugging
#logformat = textall


Si un code pin de la carte SIM est utilisé, il faut le préciser aussi

pin = XXXX

Après la sauvegarde de vos modification, il faut relancer le service

sudo gammu-smsd restart

Afin de s'assurer que le modem est bien installé et que la configuration a été bien prise en compte, on doit faire un test comme suit:

gammu-smsd-inject TEXT NUMERO -text "MESSAGE"

A noter que VORSur utilise une clef USB (Modem 3G), initialement son utilisation est bloquée avec un seul opérateur et pour laquelle Pierre a réussi à lui redonner sa liberté . Du fait, ce modem peut utiliser n'importe quel opérateur mobile.

Modem-3G.JPG

Vérification :

Avant de passer aux étapes suivantes, on doit faire le Check-list pour s'assurer du bon fonctionnement de tous les logiciels installés.

Fonctionnement du serveur web :

Tapez l'adresse http://@IP/ depuis un navigateur d'un poste du réseau local où @IP est l'adresse IP du serveur (utiliser la commande ifconfig pour connaître l'adresse IP de l'interface réseau du serveur

Si tout va bien on aura la base web suivante :

Itworks.JPG

Test du fonctionnement du PHP

Tapez le lien http://@ip/test.php depuis le navigateur d'un poste connecté au réseau local.

Si tout va bien, on aura la page suivante :


Phptest.JPG

Motion et diffusion des images en temps réel

Tapez le lien http:[mailto://@ip:8081/ depuis le navigateur d'un poste connecté au réseau local.

Si tout va bien, une image de l'objet, en face de la camera, sera affichée dans le navigateur, probablement, avec un petit décalage (latence) dans le temps qui dépendra de la qualité de la liaison réseau et le temps de traitement de l'image.

Pour le cas de VORSurv :

PorteVolab.JPG

Test du fonctionnement de gammu-smsd

Depuis la ligne de commande, localement, ou depuis l'interface ssh, lancée depuis un autre poste, envoyez un simple message à un numéro de portable comme suit :

gammu-smsd-inject TEXT NUMERO -text "MESSAGE"

Si tout va bien, le message envoyé sera réceptionné, après quelques secondes ou peut-être plus, tout dépend des opérateurs mobile.. !

Si tous les tests sont concluants, à partir de cette étape on peut commencer la configuration du système et répondre aux exigences du cahier des charges de VORSur

Interfaces GPIO

Afin de satisfaire les conditions du cahier des charges, nous aurons besoin de certaines Entrées/Sorties.

Pour assurer ses fonctionnalités, VORSurv utilise quelques Entrées/ Sorites GPIO du Raspberry pour :

Lire le mode souhaité (Bouton poussoir)

Indiqué le mode de fonctionnement : Local ou Distant (Allumer des Leds rouge & verte)

Acquisition du signal envoyé par le détecteur IR

Actionner le relais de sortie pour allumer le projecteur LED de 20W/220V pour obtenir des images de meilleure qualité

Pour cela, nous allons paramétrer le système afin de pouvoir utiliser ces entrées/sorties en mode ligne de commande. Le lien suivant http://wiringpi.com/download-and-install/ est un site complet qui explique, en détails avec des exemples, l'utilisation des GPIO d'un Raspberry

On commande par l'installation de l'utilitaire git

sudo apt-get install git-core

sudo apt-get install git-core

sudo apt-get install git-core

git clone git://git.drogon.net/wiringPi

cd wiringPi

git pull origin

cd wiringPi

sudo ./build


A partir de cette étape, il est possible d'utiliser les GPIO de la carte Raspberry pour lire les entrées ou écrire des sorties

Il est conseillé de faire quelques exemples pour bien maitriser l'affectation des pins GPIO qui ne sont pas tous des entrées/sorties et les différentes sources de tension disponibles: 3,3V et 5V

GPIO-affectation.JPG

A noter que dans le but de ne pas limiter l’utilisation du Raspberry Pi de VoLAB  uniquement à l’application  VORSurv,  nous avons décidé d’optimiser la conception du système afin permettre la réalisation d’autres applications et de les faire tourner sur le même système.


Parmi les applications déjà identifies pour qu’elles soient installées sur  le même Raspberry PI :

VORSms : Une application pour l’envoi des SMS à une liste d’adhérents (depuis un fichier) ou des SMS « prédéfinis » tel que l’ouverture du VoLAB, etc

Architecture du système

Petite mise en jambes

Sans aucun doute, notre génération a beaucoup de chance...

Aujourd’hui, pour quelques euros, nous pouvons avoir un ordinateur de la taille de la carte bancaire, plus puissant qu'un PDP11 utilisé par Ken Thompson et Dennis Ritchie pour développer le langage C,

Ken et Dennis.JPG

Remarque: Un PDP 11 avait 24KO: 16KO utilisé par l'Operating System et 8KO à partager entre tous les utilisateurs..!VORSurv utilise un Raspberry, model B, d'une CPU de 700GHz et une RAM de 512MO.

Denis-ke.JPG
PDP 11 : Ken & Dennis

Toutefois, afin de garantir une meilleure disponibilité du système, nous avons opté pour l’utilisation de langages de programmation « basique », non exigeants en terme de ressources CPU, RAM etc ..

La configuration et le paramétrage du système sera fait uniquement en utilisant des scripts shell (bash), les langages AWK, Perl et PHP pour la programmation des interfaces web (Administration du système, accès à distance, etc..).

Dans un souci d’optimisation du temps CPU, le système sera composé d’un ensemble de processus qui s’exécutent en  parallèle, en interaction permanente via de simples pipes de communication, fichiers texte, pour échanger et partager l’information des ressources communes.

Programme principal.JPG

Tel que décrit dans ce schéma, le concept du système est basé sur un programme principal qui contrôle et synchronise un ensemble de sous-programmes qui s'exécutent d'une manière autonome. En fonction des contenus des différents pipes d'échanges inter-processus (simple fichiers textes partagés dans notre cas) le programme principale prendra la décision qui s'impose en fonction de la situation: allumer le projecteur, générer une alarme, envoyer un SMS, déplacer le contenu du répertoire de travail, etc..

Programme principal

Il s'agit d'un script shell Linux qui initialise les variables, lance les processus et assure leur synchronisation.

############################################################################################################################

# Nom du script : control.sh

# Utilité: le role principal de ce script est d'initialiser des differents variables communes entre les differents pocessus

# et de gerer la synchronisation entre ces processus (voir http://www.vorobotics.com/wiki/index.php?title=VORSurv).

# Aussi, il se charge de l'execution des commandes reçues depuis le web

# Usage: Ce script se lance, en arriere plan, par rc.local lors du demarrage du systeme.

# Auteur: Djamel MEBARKI <djamel_at_vorobotics.com>

# Mise à jour le: 02/02/2016

############################################################################################################################

Il utilise également :

  • lan_drive.sh : crée le point de montage pour les images
  • status.sh : autre nom : scan GPIO voir ci-dessous
  • verif_sms.sh : le role de ce script est d'envoyer les sms

Le rôle du programme principal est de synchroniser les différents processus ainsi que l’exécution des actions suivantes en fonction des conditions prédéfinies :

1 - Allumer le projecteur, sauvegarder les traces sur le serveur sécurisé, indiqué dans les fichiers de configuration et envoyer un message d’alerte intrusion, à tous les membres de VoLAB de la liste si les conditions suivantes sont vérifiées :

- Mode de fonctionnement = Distant

- Mouvement signalé simultanément par Motion et Détecteur IR

2 – Après l’envoi de message d’alerte, maintenir l’alimentation du projecteur pendant toute la durée du mouvement afin d’assurer une meilleure qualité des images

3 – Initialisation des variables et fichiers partagés entre tous les programmes

4 - Gestion de l'espace mémoire utilisé comme répertoire de travail par Motion

Processus  1 : Motion

Motion est un logiciel puissant capable de prendre des images, de les traiter et de  signaler tout changement aux différences constatées entre deux prises successives.

L’action est prise en fonction du point de consigne fixé dans le fichier de configuration. Dans notre cas, le nombre de 1500 pixels, valeur par défaut, a été conservé.

Une différence de plus de 1500 pixels entre deux images sera considérée comme un événement à signaler  Pour la configuration : voir ici

Fichiers pipe utiles : "/var/www/Log/sms.tmp", "/var/www/Log/log.log", /var/www/Log/mov.txt"

Processus 2 : Scan GPIO

VORSur a été conçu pour un fonctionnement permanent : Les messages d’alerte à envoyer par SMS seront générés et envoyés  uniquement pendant  les heures de fermeture du VoLAB si le mode Distant est activé.


Afin de déterminer le mode sélectionné, le système est équipé d’un bouton poussoir qui permet de sélectionner le mode de fonctionnement : Si le bouton poussoir , connecté aux entrées GPIO du Raspberry, est  actionné pendant une période de 3 secondes, le système bascule d’un mode de fonctionnement à l’autre (Local vers Distant ou Distant vers Local).


Un bouton poussoir est raccordé à l'une des pins du GPIO du Raspberry scannée en permanenece par le script pour informer le programme principal de tout éventuel changement d'état.


VORSurv-distant.JPG
VORSurv – Mode "Distant"


Le programme Scan GPIO s’exécute en permanence pour surveiller la position du bouton poussoir et mettre à jour le fichier « mode.txt » en fonction du mode sélectionné.

Si le mode Local est sélectionné, le système désactive l’envoi de message d’alerte et  un témoin est allumé pour attirer l’attention.

Vorsur-local.jpg
VORSurv – Mode "Local"

Cette Led verte est l'une des pins GPIO déclarée comme sortie et raccordée à travers une petite résistance comme illustré dans le schéma suivant:

Resistance.JPG

A noter que la sélection du mode de fonctionnement du système se fait soit manuellement par l’utilisation du bouton poussoir, décrit ci-dessus, ou via l’interface web protégée par un mot de passe réservée uniquement aux personnes autorisées (décrite plus loin).

Sensibilité de VORSurv

L'une des premières difficultés rencontrée lors de la réalisation du système est sa sensibilité: Comme l’entrée

principale du VoLAB se trouve du coté de la façade vitrée, tout mouvement ou passage à proximité de l’entrée principale, coté extérieur, a été signalé par le système.

Photo-passage-1.JPG

Plusieurs messages d'alertes ont été envoyés très tôt ou durant la nuit dès qu'un passage devant la porte est détecté.

Photo-passage-2.JPG

Solution

Pour palier à ce problème de fausse détection d'intrusion, un détecteur Infra-Rouge a été installé. Comme les rayons IR ne traversent pas la vitre, ce capteur ne détecte que les intrusions réelles. Un mouvement détecté ne peut être déclaré comme intrusion que s'il est signalé par les deux systèmes en même temps (Motion ET capture infra-rouge).

Le détecteur infra rouge a été installé et connecté à l’une des entrées GPIO du Raspberry PI qui sera scannée en permanence par le programme principal du système.


Detecteur IR-2.JPG
Détecteur de mouvement – Ifra Rouge


Seulement la sortie TOR du module a été raccordée à l’une des entrées GPIO du raspberry PI après un ajustement manuel pour limiter la sensibilité du détecteur en fonction de la distance de proximité.

La génération d’une alerte se fait uniquement dans le cas où le mouvement détecté est  signalé par les deux systèmes au même temps : Motion & Détecteur infrarouges

L'acquisition du signal du capteur de mouvement InfraRouge se fait via l'une des pin GPIO selon le principe suivant:

Detddddecteur IR-2.JPG
Raccordement du capteur de mouvement

Le signal Data a été raccordé à l'une des entrées/sorties GPIO qui sera scrutée en permanence par le programme principal

Le programme Scan GPIO surveille en permanence les entrées GPIO et mis à jour les deux  fichiers suivants :

- mode.txt : Msie à jour en cas de changement de mode via le bouton poussoir

- mouv.txt : Mise à jour en cas de mouvement détecté par le système infrarouges 

Ces deux fichiers sont utilisés aussi par d’autres processus pour décider l’action à prendre en fonction de la situation comme suit :


A - Mouvement signalé par Motion seulement 

Actions :

Sauvegarder l’image

Envoi via ftp

Mise à jour du fichier VORSur.log

B - Mouvement signalé par Motion et le détecteur d’infrarouges 

Actions :

Allumer le projecteur pour avoir une image de meilleure qualité

Sauvegarder l’image

Envoi via ftp

Mise à jour du fichier mouv.txt

Mise à jour du fichier VORSur.log

Génération d’une alerte et mise à jour du fichier SMS. A noter que l’envoi de SMS sera décidé par le programme principal en fonction de d’autres conditions, principalement, la position actuelle ou le mode de fonctionnement sélectionné par l’administrateur système via l’interface web


Pour des raisons pratiques, pour éviter le réglage du position du caméra lors d'utilisation du bouton de changement de mode de fonctionnement ainsi pour faciliter l'orientation du détecteur de mouvement, une partie de VORSurv a été assemblé dans un deuxième boitier avec une liaison d'extension utilisant un cable DB9 récupéré.

Detecteddddur IR-2.JPG
Détecteur IR + Bouton "Mode de fonctionnement"
DetecteurdddR-2.JPG
Extension de la liaison entre les deux boitiers

Physiquement, la liaison entre les deux boîtiers a été réalisée en utilisant un câble RS232 pour avoir plus de souplesse lors de la fixation des boîtiers et les tests de mise au point.


Aussi, nous avons préparé une extension qui sera dévoilée dans l'un de nos prochains articles ... A suivre ..!

Detecteur IddddR-2.JPG
RFID - Extension

Qualité d’image 

Comme nous utilisons un simple module de camera RPI (voir photo), dans le souci d'avoir des images de meuilleure quality, un projecteur LED 220V d'une puissance de 20W est raccordé au système. Il sera commandé par l'une des sortie GPIO du système via un relais électomécanique qui sera actionnée par le programme principal si les conditions sont vérifiées.

Projecteur LED - 20W.JPG

Le montage suivant a été réalisé pour actionner ce projecteur :


Relais-sortie 220V.JPG
Raccordement Terre-Phase-Neutre du projecteur


Le montage a été réalisé selon le schéma de principe suivant :

Deteeecteur IR-2.JPG

Remarque: Nous avons adapté le montage en utilisant un relais qui possède deux sorties au lieu d'une pour éviter tout risque lors de câblage du câble 230VAc Le montage final est le suivant:

Dezzztecteur IR-2.JPG

Rappel

Attention: Tension 230VAc!!!

Si vous comptez réaliser ce montage, par vous même, il faut faire très attention au risque électrocution lors de vos tests

Electrocute.JPG

Vérifiez bien qu'il n'y a pas de court-circuit ou de retour vers les pins GPIO de la carte Raspberry

Interface web de configuration et de paramétrage

Pour la gestion du mode de fonctionnement ainsi que la diffusion des images en temps réel nous avons développé nos propres interfaces, très simples et pratiques, en utilisant le langage PHP avec des scripts shell intégrant des commandes Awk pour effectuer quelques opérations de recherches, comparaison et remplacement dans des fichiers textes.


Interface web - 1.JPG
Interface Web – Accès au système VORSur


Interface web - 2.JPG
Interface Web – Menu VORSurv


Interface web - 4.JPG
Interface Web – Diffusion des images en temps réel
Interface web - 3.JPG
Interface Web – Mode de fonctionnement

Remarque: la même tâche peut être accomplie grâce aux boutons des faces avant de l'unité principale ou de l'extension. Un appuie de 3s au moins est nécessaire pour changer de mode. Pendant l'appuie la LED rouge est allumée. Laisser le doigt appuyé jusqu'à ce que la LED verte change. LED verte allumé = mode local, LED verte éteinte mode distant (démarre réellement dès que l'opérateur quitte la zone de détection).

Interface.JPG
Interface Web – Gestion du mot de passe

Bonnus !!

Initialement, l'interface d'envoi de SMS (VORSms) ne fait pas partie du cahier des charges de VORSurv. Durant la phase test, nous avons développé cette interface pour l'envoi de SMS qui offre les trois possibilités suivantes pour envoyer un ou des SMS

- Envoi individuel : Un numéro de portable et le message à envoyer seront demandés

- Envoi groupé: Le Message à envoyer ainsi que le chemin du fichier textes contenant la liste des portables de destinataires seront demandés

- Envoi d'un message prédéfinie: Fonctionnalité propre à VoLAB

Le sujet fera l'objet d'un autre article. Si le sujet vous intéresse envoyer moi un petit email

Interface web - 6.JPG
Interface Web – Plate-forme d'envoi de SMS

Conception et fabrication des boîtiers:

Au début, l'exercice était très difficile, pour la simple raison, personnellement, je n'avais aucune expérience dans le monde de la CAD et l'impression 3D.

Grace à un super tuto du wiki de l'association, qui se trouver à l'adresse suivante :

Cliquez ici

Et une excellente vidéo « Made in VoLAB » , qui se trouve sur la chaine du VoLAB que je recommande fortement à tous les débutants dans ce domaine: https://www.youtube.com/watch?v=X2Ydloyc3xM


Et avec l'aide de Pierre et Joël, j'ai réussi à réaliser mes premières impressions des deux boîtiers celui de la caméra et du détecteur IR et le bouton de sélection du mode de fonctionnement en utilisant l'imprimante 3D du VoLAB

J'ai utilisé le logiciel FreeCad téléchargeable depuis le lien suivant: http://www.freecadweb.org/wiki/?title=Download/fr

Imprimante-3D.JPG

Performances

Ressources: CPU & RAM

Après plusieurs jours de fonctionnement permanent, VORSur exploite peu de ressources du système du Raspberry ce qui va nous permettre de le faire cohabiter avec d'autres nouveaux projets.

En plein traitement, l'ensemble des programmes de VORSur occupe 15 % des ressources CPU et moins de 110MOctet de RAM de la carte Raspberry

Imrefffprimante-3D.JPG

Durée de vie de la carte SD :

La durée de vie d'une carte SD est limitée en fonction des nombres d'écritures. Pour garantir une longue durée de vie, la conception de VORSurv tient compte de ce paramètre :

Le répertoire de travail, utilisé par le logiciel Motion pour effectuer le traitement des images, en temps réel, est monté dans une partie de la mémoire vive. Un gain de temps d'accès considérable constaté lors de nos tests.


Comme indiqué dans cette image, le répertoire /var/www/Images est monté dans « tmpfs » une partie de la mémoire vive du Raspberry. Le programme principal contrôle le volume de cette partie, dès l'atteint d'un volume indiqué dans les paramètres de configuration, le programme principal vide cette partie de la mémoire en transférant les images vers le NAS.

En cas d'intrusion détectée, les images seront envoyée aussi vers un autre serveur sécurisé.

Pour pouvoir effectuer ce genre de manipulation, il faut éditer le fichier « fstab », comme suit, pour indiquer au système d'utiliser une partie de sa RAM pour un répertoire ordinaire.

ImrefffpriLLLLmante-3D.JPG
Fichier fstab


Attention : Pour effectuer ce genre de manipulations, il faut faire très attention, car une erreur de frappe ou un caractère en plus qui traîne dans ce fichier, risque de bloquer votre complètement votre système sans pouvoir le redémarrer. Pensez à faire une sauvegarde de l'image de votre carte SD.

Conclusion

C'est une petite belle expérience que je recommande fortement à tous les nouveaux et les anciens adhérents . Il reste plusieurs items dans la liste des projets du VoLAB.

Nous allons mettre en ligne les programmes sources, pour téléchargement libre, exceptés quelques fichiers contenant des paramètres sensibles.

Pour toute demande de renseignement sur le fonctionnement du VoLAB, envoyez votre email à contact@vorobotics.com

Pour une question ou un commentaire concernant ce sujet, envoyez votre email à djamel@vorobotics.com

Fichiers sources

source des scripts shell

Sources serveur web

fichiers Freecad

Licence

Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.

CC88x31.jpgPaternité 'by' :L'œuvre peut être librement utilisée, à la condition de l'attribuer à l'auteur en citant son nom.


Note aux auteurs de documents du VoLAB, Vous avez la possibilité de changer de licence. Mais ce serait bien de rester libre et ouvert. Encore une fois ceci est une recommandation et pas une obligation.

Bibliographie

webographie

http://fr.wikipedia.org/wiki/Licence_Creative_Commons

http://wiringpi.com/download-and-install/

Rédaction en langue française

Partant du constat de terrain qu'une énorme masse d'information concernant les sujets qui nous intéressent comme entre autres l'impression 3D n'étaient disponibles que dans la langue de Shakespeare et que de nombreuses personnes dans notre entourage ne maîtrisaient pas la dite langue et soucieux de diffuser encore plus l'information, nous avons pris le parti, au VoLAB, de rédiger nos documents de préférence en langue française.

VoLAB

Un mot sur le VoLAB. VoLAB est un fablab implanté à environ 30km au nord-ouest de Paris dans la commune de Vauréal dans l'agglomération de Cergy Pontoise. Il est animé par l'association VoRoBoTics.

Site internet www.vorobotics.com