Pepper peut faire de la Domotique

DEVELOPPER UN SERVEUR DE RELAIS SUR RASPBERRY PI ZERO  & UN MODULE DOMOTIQUE NAO/PEPPER

s20160925_142916_001

 

Le matériel nécessaire

  • Une carte Raspberry PI ZERO à moins de 10 EUR
  • Une alimentation pour le PiZéro d’au minimum 2A
  • Une carte d’interface 4 relais pour PiZero (voir lien en fin d’article
  • Des connecteurs
  • Une SD Card pour le système RASBIAN

Câblage de la carte relais sur le PiZero

Il convient d’avoir une alimentation de 2A pour votre raspberry pour éviter les pb avec l’alimentation des relais. Le +5V est pris sur la broche n°2 du raspberry.
Pour le neutre GND il est possible de prendre sur le Pins 6,9,14,20,25,30,34,39 du Raspberry PI.
Les entrées IN1 2 3 4 de la carte relais sont connectés sur PIN GPIO 4,5,6,13 de la carte PiZero.

Raspberry-Pi-Model-Zero-Mini-PC

712o-J5AgcL._SL1100_

s20160925_142937

s20160925_142926

s20160925_142916_001

 

Installation du système sur le Pi-Zero

On installe DEBIAN/RASPBIAN sur la la SD PI ZERO. Une fois booté, on met à jour le système par un

  • apt-get update
  • apt-get upgrade

On installe les librairies python pour contrôler les ports GPIO

  • apt-get install python-dev
  • apt-get install python-rpi.gpio

La suite consiste à installer le serveur python qui va écouter sur le port 1111 et analyser les ordres à passer à la carte des 4 relais. Le code source du serveur est ici. Il faut installer relay_server.py sur le PiZero, par exemple dans /home/pi , ne pas oublier le changer les droits pour permettre une execution du script. (chmod 755 relay_server.py par exemple).

Le script est multithreading, il peut donc ne pas attendre qu’une opération soit finie pour actionner un autre relai.

Le script de lance avec une commande : python relay_server.py , ou en nohup ou peut aussi être lancée en daemon au démarrage du PiZero (C’est même conseillé).

s20160925_121936

 

Module pour pepper

Le module pour Pepper est une box Python relativement simple. Avec 2 paramètres

box2

  • Le port de communication
  • L’adresse IP du serveur = IP du raspberry pi-zero

Le code source de la box est très épuré. On fait appel à la librairie Socket de python.

box2x1

 

Développement du Script Pepper

Le script d’exemple montre le pilotage d’outils de la maison. Il est, bien évidemment, perfectible mais donne les bases de la domotique avec Nao ou Pepper.
Les grandes étapes de la construction du script sont :

  • La définition du langage Français
  • Les SAY pour informer l’usager que le robot attend un ordre
  • Le paramétrage des phrases clés pour déclencher chaque action domotique
  • Une box Switch Case pour orienter vers chaque action domotique spécifique
  • Le codage de l’instruction à envoyer au serveur, par l’intermédiaire d’une boite textEdit
  • L’utilisation de la boite python RelayCMD pour envoyer l’information au server PiZero
  • Enfin le traitement en post exécution de la commande du relais.

scriptbox2x1

 

Sources utiles :

http://apprendre-python.com/page-reseaux-sockets-python-port
https://www.raspberrypi.org/blog/raspberry-pi-zero/

Où commander la carte relais ?

https://www.amazon.com/dp/B00KTEN3TM?ref_=pe_621110_204385130_shiptrack_e_304_dt_1