Introduction

Bienvenue dans ce premier Tuto du Lab’oo, le but de cette série de Tutoriels sera de vous présenter ce que nous testons dans le Lab’oo et qui sait peut-être de vous donner envie d’y venir tester de nouvelles choses. Les thèmes seront divers : Systèmes embarqués / Raspberry Pi / Arduino / XComponent / etc … La seule limite sera l’imagination de l’auteur.

Donc pour ce premier Tuto le thème sera XComponent (Suite logicielle développée par Invivoo Software que vous connaissez surement, au moins de nom) sur Raspberry Pi, nous allons voir comment préparer un Raspberry Pi pour y installer XComponent et tester un premier Hello World.

Matériel nécessaire :

  • Un Raspberry Pi (Ce tutoriel est réalisé sur la version 3)
  • Une alimentation 5V
  • Une Carte Micro SD avec un minimum de 16 Go (Avec un lecteur de carte pour la connecter à votre PC)
  • Un câble réseau RJ45

Téléchargement à  faire (Vous pouvez les lancer à l’avance) :

 

Installation de Raspbian

Nous allons en effet tester XComponent sur la distribution Linux la plus utilisée sur Raspberry, à savoir Raspbian (Version de Debian adaptée pour Raspberry Pi). Vous pouvez télécharger la dernière version de Raspbian ici (La version testée dans ce tutoriel est Jessie-May-2016) : Télécharger Raspbian

Une fois Raspbian téléchargé, il suffit d’écrire l’image sur votre carte Micro SD. Un des nombreux utilitaires pour faire ça est Win32 Disk Imager : Télécharger Win32DiskImager

Win32DiskImager

L’utilitaire installé et démarré, il ne vous reste plus qu’a sélectionner l’image de Raspbian ainsi que la carte sur laquelle vous voulez écrire (Que vous avez connecté à votre PC grâce à un lecteur de carte) et d’appuyer sur le bouton “Write”.

Win32DiskImager_WriteSuccessful

Et voilà, Raspbian est sur votre carte Micro SD. Vous pouvez maintenant l’insérer dans le Raspberry Pi et le démarrer.

Préparation du Raspberry

Avant d’installer les dépendances nous allons devoir nous connecter au Raspberry. Vous allez donc devoir le connecter sur votre réseau et réussir à obtenir son adresse IP (Nous supposons que vous êtes branché sur un réseau qui dispose d’un DHCP). Pour cela plusieurs techniques :

  • Première solution vous disposez d’un accès à l’interface de votre Box ou du serveur qui vous sert de DHCP, dans ce cas il vous suffira de repérer la dernière adresse attribuée par celui-ci.
  • Deuxième solution si vous n’avez pas de moyen externe pour connaitre l’adresse IP, branchez un écran et un clavier sur la Raspberry. Après un redémarrage vous devriez avoir l’interface de debian sur l’écran. Pour trouver l’adresse IP, il suffira de démarrer un terminal et d’utiliser la commande : ifconfig 

Maintenant que nous avons récupéré l’adresse IP, nous allons pouvoir nous connecter en SSH sur la Raspberry. Un utilitaire connu pour faire ça depuis Windows est Putty : Télécharger Putty

Putty

Dans l’interface de Putty vous devez renseigner l’adresse IP (dans mon cas 192.168.1.19) et le port 22, vous pouvez sauvegarder cette configuration pour ne pas avoir à la retaper à chaque fois, enfin appuyez sur la bouton “Open”. Répondez “Oui” à l’alerte de sécurité et tapez le login et mdp du raspberry pour vous connecter. Par défaut le login est “pi” et la mdp “raspberry”. Une fois la connexion réussie vous devriez avoir un terminal comme celui-ci :

Putty_Connected

Vous pouvez maintenant mettre le gestionnaire de paquets à jour et effectuer les mise-à-jour disponibles :

 

sudo apt-get update
sudo apt-get upgrade

Ça peut prendre plus ou moins de temps suivant le nombre de mise-à-jour a effectuer. Cette étape permet par la même occasion de vérifier la connexion internet depuis votre Raspberry Pi.

Installation des dépendances de XComponent

Nous allons maintenant pouvoir installer les dépendances de XComponent (Mono et RabbitMQ).

sudo apt-get install mono-complete

Pour tester que mono est installé correctement vous pouvez tenter la commande suivante qui doit retourner la version de mono :

mono --version

C’est terminé pour l’installation de Mono, maintenant c’est le tour de RabbitMQ.

wget http://www.rabbitmq.com/releases/rabbitmq-server/current/rabbitmq-server_3.6.5-1_all.deb
sudo apt-get install -y erlang logrotate erlang-nox socat
sudo dpkg -i rabbitmq-server_3.6.5-1_all.deb
sudo apt-get -f install
sudo dpkg -i rabbitmq-server_3.6.5-1_all.deb

L’installation de RabbitMQ est terminée, on va juste ajouter le plugin de gestion (ça sera bien plus pratique) :

sudo rabbitmq-plugins enable rabbitmq_management
sudo service rabbitmq-server restart

Ajout d’un utilisateur à RabbitMQ (normalement l’utilisateur guest/guest existe par défaut mais je n’arrive pas à l’utiliser) :

sudo rabbitmqctl add_user test test
sudo rabbitmqctl set_user_tags test administrator
sudo rabbitmqctl set_permissions -p / test ".*" ".*" ".*"

Une fois tout ça fait, vous devriez pouvoir accéder a l’interface de gestion à l’adresse “http://AdressIpDeVotreRaspberryPi:15672” et en vous connectant grâce à l’utilisateur que nous avons créé : “test” et le mot de passe : “test”.

RabbitMQ

Installation de XComponent et “Hello World”

Voilà maintenant toutes les dépendances de XComponent sont prêtes, il ne reste plus qu’à passer à l’installation de XComponent justement. XComponent est une suite logicielle, elle contient un éditeur “XCStudio”, un moteur d’exécution “XCRuntime” et un ensemble d’outils d’aide au développement “XCTools”. Nous allons donc installer la solution complète sur notre poste et copier le moteur sur le Raspberry Pi. La version Community de XComponent est disponible gratuitement ici : Télécharger XComponent Community

Quand l’installation sera terminée vous trouverez dans “C:\Program Files\XComponentCommunity” trois dossiers. Nous allons copier le dossier “XCRuntime” sur la Raspberry Pi en utilisant le protocole SFTP. FileZilla est un des outils qui permet de faire ça : Télécharger FileZilla

Dans FileZilla vous devez renseigner l’adresse IP du Raspberry Pi dans “Hôte”, le nom d’utilisateur “pi”dans “Identifiant”, le mot de passe “raspberry” et le port “22” à ne pas oublier pour préciser qu’on fait du SFTP, ensuite vous pouvez cliquer sur “Connexion rapide” et vous devriez voir l’arborescence du Raspberry apparaître dans la partie “Site distant”.

FileZilla

Maintenant pour copier le dossier “XCRuntime” sur le Raspberry Pi, un simple glisser/déposer suffit. Il faut également copier sur le Raspberry Pi l’archive “HelloWorld-microservice1.xcr”, c’est à dire le microservice qui contient le composant de HelloWorld : Télécharger HelloWorld. Ce composant est très simple, il affiche dans la console “Hello World Component Initialized :)” quand la transition automatique “Init” se déclenche et il affiche dans la console “Hello World !!!” toutes les 15 secondes quand la transition automatique “Auto” se déclenche.

HelloWorld_Image

cd XCRuntime
sudo mono xcruntime.exe /home/pi/HelloWorld-microservice1.xcr

Si tout se passe bien vous devriez voir apparaître les lignes dans la console juste après l’initialisation du XCRuntime. Et voilà le premier composant sur Raspberry Pi fonctionne 🙂

Conclusion

Même si ce tutoriel n’est finalement qu’un Hello World, il permet de préparer les suivants … oui oui il y en aura d’autres. D’ailleurs le prochain est déjà en préparation et il parlera de l’utilisation des entrées/sorties du Raspberry Pi dans XComponent grâce à un composant générique. Mais vous en saurez plus prochainement. En attendant comme je suis gentil, je vous fournis l’image du Raspberry Pi après l’installation de XComponent et de ces dépendances, vous n’aurez qu’à l’installer avec Win32DiskImager pour pouvoir tester : Télécharger le résultat

Comme vous l’imaginez facilement je n’ai pas inventé tout ce que j’ai écrit dans ce tutoriel, oui google est aussi mon ami et comme il faut rendre à césar ce qui est à césar, voici la liste des liens utilisés pour réaliser ce tutoriel  :

https://www.raspberrypi.org/documentation/installation/installing-images/README.md

http://logicalgenetics.com/raspberry-pi-and-mono-hello-world/

http://www.pihomeserver.fr/2013/10/02/raspberry-pi-home-server-installer-gestionnaire-messages-rabbitmq/

@Bientôt pour un nouveau Tuto