Modifications

Sauter à la navigation Sauter à la recherche
3 858 octets ajoutés ,  9 mai 2017 à 20:26
Ligne 1 : Ligne 1 :  
{{Rasp-Node-Red-NAV}}
 
{{Rasp-Node-Red-NAV}}
  −
{{traduction}}
      
== PiCamRED - Envoi périodique de photos par email avec PiCam et NodeRED ==
 
== PiCamRED - Envoi périodique de photos par email avec PiCam et NodeRED ==
    
[[fichier:Rasp-Node-Red-picam-mail-01.png|900px]]
 
[[fichier:Rasp-Node-Red-picam-mail-01.png|900px]]
 +
 +
{{ambox|text="Les blocs (noeuds) sont liés entre-eux en cliquant et en maintenant le clic du point du bloc précédent (en réalité ils sont carrés ;) ) et en glissant sur le point du bloc suivant que l'on souhaite relier/connecter. Seules des entrées et des sorties peuvent être reliées, NodeRED refusera des liaisons incompatibles du type "entrée sur entrée ou sortie sur sortie."}}
    
=== Description du projet ===
 
=== Description du projet ===
Ligne 67 : Ligne 67 :  
Ainsi nous retrouvons les "types" suivants:
 
Ainsi nous retrouvons les "types" suivants:
   −
* Input qui contient tous les blocs d'entrées
+
* '''Input''' qui contient tous les blocs d'entrées
* Ouput qui contient tous les blocs de sortie
+
* '''Ouput''' qui contient tous les blocs de sortie
* Function qui contient des blocs de fonctions javascript etc...
+
* '''Function''' qui contient des blocs de fonctions javascript etc...
* Social qui sont des blocs d'entrée ou sorties depuis ou vers les réseaux sociaux
+
* '''Social''' qui sont des blocs d'entrée ou sorties depuis ou vers les réseaux sociaux
* Storage qui sont des fonctions de lecture ou d'écriture de fichiers
+
* '''Storage''' qui sont des fonctions de lecture ou d'écriture de fichiers
* Analysis ->> Sentiment interprète du texte et détermine un score sur base d'un dictionnaire anglais, renvoie le texte avec ce score de -5 à +5, déterminant ainsi l'émotion susceptible d'être procuré par ce texte
+
* '''Analysis''' ->> Sentiment interprète du texte et détermine un score sur base d'un dictionnaire anglais, renvoie le texte avec ce score de -5 à +5, déterminant ainsi l'émotion susceptible d'être procuré par ce texte
* Advanced possède des outils permettant de détecter des changements dans des fichiers ou dossiers, de lire des flux RSS ou encore EXEC qui permet d'exécuter directement des commandes sous linux !
+
* '''Advanced''' possède des outils permettant de détecter des changements dans des fichiers ou dossiers, de lire des flux RSS ou encore EXEC qui permet d'exécuter directement des commandes sous linux !
* Raspberry Pi contient des outils pour piloter/lire le GPIO du raspberry Pi
+
* '''Raspberry Pi''' contient des outils pour piloter/lire le GPIO du raspberry Pi
* Network qui contient un outil réseau de Ping
+
* '''Network''' qui contient un outil réseau de Ping
 
   
 
   
Nous allons créer une action périodique, c'est à dire paramétrer un bloc "INJECT" de manière à déclencher régulièrement une chaine d'actions que nous allons accrocher à la suite les unes après les autres.
+
Nous allons créer une action périodique, c'est à dire paramétrer un bloc '''"INJECT"''' de manière à déclencher régulièrement une chaine d'actions que nous allons accrocher à la suite les unes après les autres.
Nous allons donc cliquer sur le bloc "Inject" dans la liste "Input" et maintenir ce clic pour le déplacer vers la zone de travail.
+
Nous allons donc cliquer sur le bloc '''"Inject"''' dans la liste "Input" et maintenir ce clic pour le déplacer vers la zone de travail.
    
[[fichier:Rasp-Node-Red-picam-mail-02.png]]
 
[[fichier:Rasp-Node-Red-picam-mail-02.png]]
   −
Nous obtiendrons donc une nouvelle instance "inject" qui portera le nom "Timestamp" (ce nom est attribué par défaut par NodeRED) comme dans la capture ci-dessous
+
Nous obtiendrons donc une nouvelle instance "inject" qui portera le nom '''"Timestamp"''' (ce nom est attribué par défaut par NodeRED) comme dans la capture ci-dessous
    
[[fichier:Rasp-Node-Red-picam-mail-03.png]]
 
[[fichier:Rasp-Node-Red-picam-mail-03.png]]
Ligne 95 : Ligne 95 :     
Le champs PayLoad est en fait le champ de données qui sera suivi d'un noeud à l'autre jusque à la fin de la chaine.
 
Le champs PayLoad est en fait le champ de données qui sera suivi d'un noeud à l'autre jusque à la fin de la chaine.
Dans ce module "inject", nous allons donc déterminer quel type de données contiendra le "PayLoad" jusqu'à la fin de la chaine que l'on va réaliser.
+
Dans ce module '''"inject"''', nous allons donc déterminer quel type de données contiendra le '''"PayLoad"''' jusqu'à la fin de la chaine que l'on va réaliser.
   −
Dans notre cas, nous souhaitons construire un email, donc du contenu textuel, nous allons donc choisir "String" ce qui correspond à une chaine de caractères (du texte).
+
Dans notre cas, nous souhaitons construire un email, donc du contenu textuel, nous allons donc choisir '''"String"''' ce qui correspond à une chaine de caractères (du texte).
    
[[fichier:Rasp-Node-Red-picam-mail-05.png]]
 
[[fichier:Rasp-Node-Red-picam-mail-05.png]]
Ligne 113 : Ligne 113 :  
Nous allons ensuite choisir l'intervalle de déclenchement de notre action, sachant que nous avons le choix entre:  
 
Nous allons ensuite choisir l'intervalle de déclenchement de notre action, sachant que nous avons le choix entre:  
   −
* none  : pas de déclenchement périodique programmé
+
* '''none''' : pas de déclenchement périodique programmé
* interval : nous fixons un temps de déclenchement à partir du lancement du programme, l'action se réalisera à chaque fois que ce temps sera écoulé de manière répétée jusqu'à l'interruption manuelle du programme
+
* '''interval''' : nous fixons un temps de déclenchement à partir du lancement du programme, l'action se réalisera à chaque fois que ce temps sera écoulé de manière répétée jusqu'à l'interruption manuelle du programme
* interval between times : nous fixons ici le déclenchement par interval, mais nous fixons aussi une fourchette d'heures et des jours pendant lesquels nous exécutons cet interval
+
* '''interval between times''' : nous fixons ici le déclenchement par interval, mais nous fixons aussi une fourchette d'heures et des jours pendant lesquels nous exécutons cet interval
* at a specific time : nous fixons une heure d'exécution, et un ou plusieurs jours d'exécution. Dans ce cas l'action n'est pas répétée en continu mais éxécutée une seule fois par jour à l'heure programmée
+
* '''at a specific time''' : nous fixons une heure d'exécution, et un ou plusieurs jours d'exécution. Dans ce cas l'action n'est pas répétée en continu mais éxécutée une seule fois par jour à l'heure programmée
    
Dans notre exemple, nous allons fixer un intervalle de 15 secondes pour commencer. Nous pourrons ensuite augmenter cette valeur pour éviter de recevoir trop d'emails avec des photos :D
 
Dans notre exemple, nous allons fixer un intervalle de 15 secondes pour commencer. Nous pourrons ensuite augmenter cette valeur pour éviter de recevoir trop d'emails avec des photos :D
Ligne 122 : Ligne 122 :  
[[fichier:Rasp-Node-Red-picam-mail-07.png]]
 
[[fichier:Rasp-Node-Red-picam-mail-07.png]]
   −
La case "inject once at start" permet de ne pas attendre le premier cycle avant d'exécuter une première fois l'action. Elle se lancera dès le lancement du programme, puis périodiquement selon les cycles déterminés par l'intervalle.
+
La case '''"inject once at start"''' permet de ne pas attendre le premier cycle avant d'exécuter une première fois l'action. Elle se lancera dès le lancement du programme, puis périodiquement selon les cycles déterminés par l'intervalle.
    
[[fichier:Rasp-Node-Red-picam-mail-08.png]]
 
[[fichier:Rasp-Node-Red-picam-mail-08.png]]
Ligne 137 : Ligne 137 :  
Nous allons aller à l'essentiel en ce qui concerne la capture photo en utilisant une commande simple pour prendre un cliché et renvoyer celui-ci dans le flux NodeRED grâce à un bloc permettant d'exécuter des commandes bash.
 
Nous allons aller à l'essentiel en ce qui concerne la capture photo en utilisant une commande simple pour prendre un cliché et renvoyer celui-ci dans le flux NodeRED grâce à un bloc permettant d'exécuter des commandes bash.
   −
{{ambox | text = Vous trouverez un TUTO détaillé sur la PiCam vous permettant de prendre la main, ou de la paramétrer si vous n'avez pas encore utilisé celle-ci auparavant: ....___TUTO___...}}  
+
{{ambox | text = Vous trouverez un TUTO détaillé sur la PiCam vous permettant de prendre la main, ou de la paramétrer si vous n'avez pas encore utilisé celle-ci auparavant: [https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspistill.md tutoriel RaspiStill pour contrôler la caméra en ligne de commande] ''RaspberryPi.org, anglais'' }}  
    
Nous allons tout d'abord cliquer sur le bloc "Exec" dans la section "Advanced" de la colonne de gauche et glisser l'élément dans la zone de travail.
 
Nous allons tout d'abord cliquer sur le bloc "Exec" dans la section "Advanced" de la colonne de gauche et glisser l'élément dans la zone de travail.
Ligne 393 : Ligne 393 :     
[[fichier:Rasp-Node-Red-picam-mail-42.png]]
 
[[fichier:Rasp-Node-Red-picam-mail-42.png]]
 +
 +
=== Création du bloc d'envoi d'email ===
 +
 +
==== To : destinataire ====
 +
 +
Simplement, l'adresse email du destinataire du message.
 +
 +
[[fichier:Rasp-Node-Red-picam-mail-43.png]]
 +
 +
==== Server, port, secure connection ====
 +
 +
Dans ce champ, nous allons mettre un serveur SMTP (serveur email) pour permettre l'envoi de l'email. Dans la plupart des cas, le SMTP de votre FAI (fournisseur d'accès à internet) pourra servir d'intermédiaire.
 +
Nous vous invitons à consulter les paramètres propres à votre fournisseur d'accès pour paramétrer ce bloc.
 +
 +
[[fichier:Rasp-Node-Red-picam-mail-44.png]]
 +
 +
==== UserID et Password ====
 +
 +
Ces champs resteront vides si votre FAI ne nécessite pas d'authentification pour envoyer des emails.
 +
Si vous utilisez un autre fournisseur, tel que GMAIL par exemple, il faudra mettre votre adresse email et votre mot de passe pour vous identifier.
 +
 +
{{ambox-stop|text="Attention: votre compte gmail devra être configuré au préalable afin d'autoriser un "client email" à utiliser votre compte pour envoyer/recevoir des emails par ce biais. Nous vous invitons à consulter la documentation de Gmail pour en savoir plus."}}
 +
 +
[[fichier:Rasp-Node-Red-picam-mail-45.png]]
 +
 +
==== Name ====
 +
 +
Enfin, le champ "Name" qui vous permet de donner un nom au bloc d'envoi d'email.
 +
 +
[[fichier:Rasp-Node-Red-picam-mail-46.png]]
 +
 +
=== Déploiement et premiers tests ===
 +
 +
Afin de "lancer le programme" que nous venons de créer, il suffit de cliquer sur le bouton "Deploy" en haut à droite de la page.
 +
 +
===== La photo ne se réalise pas =====
 +
 +
Si la photo ne se réalise pas, il faut commencer par vérifier la commande dans le bloc de prise de photo.
 +
Nous vous invitons vivement à tester la commande directement dans le terminal afin de vous assurer que celle-ci soit d'une syntaxe correcte et ne rencontre pas de problème d'exécution.
 +
Les problèmes d'exécution de commandes externes dans le bloc '''"command"''' peuvent amener à des blocages dans l'exécution et empêcher NodeRED de continuer à exécuter le '''"Schéma"'''.
 +
 +
===== La photo se réalise mais l'encodage en base64 bloque =====
 +
 +
Si le programme bloque à l'encodage, comme précédemment, nous vous invitons à vérifier votre commande en l'exécutant directement dans le terminal.
 +
Vous pourrez identifier directement le problème et le résoudre le cas échéant.
 +
 +
===== L'encodage fonctionne, mais le PayLoad reste vide =====
 +
 +
N'auriez-vous pas oublié de cocher la case '''"+ Append : msg.payload"''' dans le bloc qui lance la commande de conversion en base64 ?
 +
 +
===== Mon email arrive vide =====
 +
 +
Retournez à l'étape de mise en forme du message afin de vérifier si vous n'avez pas omis un paramètre ou une fonctionnalité.
 +
 +
===== L'image ne s'affiche pas dans l'email reçu  =====
 +
 +
Si l'image ne s'affiche pas, il faudrait vérifier si vous avez bien lié vos blocs sur la première sortie des blocs '''"Exec"'''.
 +
Les deux autres sorties étant destinées à d'autres états d'exécution/erreur.
 +
 +
===== Le sujet de l'email est vide =====
 +
 +
Dans notre cas, le sujet est fixé dans le premier bloc dans le champ '''"Topic"'''.
 +
Vous pouvez-donc ré-éditer ce bloc afin de vérifier si celui-ci n'est pas resté vide.
 +
    
{{Rasp-Node-Red-TRAILER}}
 
{{Rasp-Node-Red-TRAILER}}
29 917

modifications

Menu de navigation