[Pause Tech] Créer un boîtier IOT piloter en C++

Écrit par Florian Dordain, Publié le 21 avril 2021

Avant de commencer

Avant propos

Pourquoi créer un boîtier IOT embarquant sur C++ ?

  1. Récupérer des données de façon distante.
  2. Créer des applications C++ pour des systèmes embarqués.
  3. Gérer ces processus de production au plus proche de la réalité.

Ce tutoriel va nous permettre de configurer un IDE sous windows qui compilera des applications pour un boîter embarquant l'OS raspbian stretch (linux). 

Le matériel 

Le matériel utilisé est le suivant :

Le framework QT 

Qt_logo_2016.svg

Installer Qt 

https://doc.qt.io/qt-5/gettingstarted.html

Configurer la version de Qt 

Copier la version de Qt 

Aller dans le dossier d'installation de QT puis dans le dossier => [version de Qt]\[version de compilateur]\mkspecs\devices 

Copier le dossier linux-rasp-pi2-g++ et le renommer en linux-bb400-g++

Compiler la version de Qt
Vous pouvez maintenant configurer la version de Qt. 
 
Différentes options de configuration sont possibles => https://doc.qt.io/qt-5/configure-options.html
 
 
Règler la variable d'environnement suivante => $ROOTFS cette variable indique le chemin d'installation de la version.
 
Pour cela ouvrez, un terminal ou powershell :
 
$Env:ROOTFS += ";c:\"
 
Toujours dans votre terminal, déplacez-vous grâce à la commande "cd" dans votre répertoire d'installation Qt, puis dans le dossier correspondant à la version à configurer. Puis exécuter la commande suivante :  
 
./configure -release -opengl es2 -device linux-bb400-g++ -device-option CROSS_COMPILE=$TOOLCHAIN/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot $ROOTFS -prefix /usr/local/qt5
 
Après avoir lancé cette commande le module de configuration vous demandera différentes informations concernant votre licence d'utilisation du framework Qt.

 

Créer un Device Linux 

Installer Qt sur le BB400 

Ouvrez, un terminal ou powershell, placez grâce  à la commande "cd" dans le répertoire de build de votre  version (dans notre exemple C:\arm-linux-gnueabihf\sysroot\usr\local\qt5), puis exécuter les commandes de transfère suivante : 

Dans le terminal du BB400 :

cd /usr/local 

sudo mkdir qt5

Dans le terminal de votre ordinateur :

scp -r C:\arm-linux-gnueabihf\sysroot\usr\local\qt5 /usr/local/qt5

Configurer QtCreator 

Pour configurer votre kit de compilation pour le BB400, allez dans "outils" puis "option"

Allez dans l'onglet "Appareils mobiles", puis "ajouter", puis "Generic Device Linux" 

 

Entrez les informations relatives  à votre machine : 

  • Adresse IP du bb400
  • username, par défaut bb 

Maintenant nous devons créer une clé de connexion afin de sécuriser les échanges entre le BB400 et QtCreator. 

Cliquez sur "suivant", puis "Create new pair", sélectionnez RSA | 1024. Puis "Générer et sauvegarder la paire de clés". 

En revenant maintenant sur la fenêtre de l'assistant, cliquez sur "Deploy public key", il faudra entrer le username (bb) et le password par défaut (4 derniers caractères de l'adresse mac).

Bravo ! 🎉👏 Vous avez terminé la configuration permettant le déploiement d'application Qt depuis votre PC vers le BB400. 

Paramétrer le compilateur

Pour configurer votre kit de compilation pour le BB400, allez dans "outils" puis "option"

Allez dans l'onglet "Kits", puis "ajouter"

Détaillons les différents paramètres : 

  • Nom : Nom de votre kit 
  • Device type : Votre appareil 
  • Sysroot : le chemin de la variable$ROOTFS
  • Compiler : Ici, j'ai choisi un compilateur cross-platform MinGW pour compiler depuis windows vers linux, mais cela dépends de votre OS et de votre application.
  • Debbugger : J'ai choisi GDB
  • Qt version : Correspond à votre version de Qt, celle que l'on a compilée précédemment
  • CMake tool : choisissiez la version qui correspond à votre version de Qt.

Dans le menu tout  à gauche allez dans "Projects" puis ajouter le nouveau kit à votre projet. 

Vous pouvez désormais compiler votre application Qt pour le BB400 et la déployer au travers de QtCreator. 

Le boîter BB400

BB400

Installer un pare-feu logiciel 

Installer le pare-feu ufw 

Pour ouvrir le terminal, dans le menu tout à gauche, cliquez sur l'icône disque dur puis dans le menu contextuel naviguer dans l'onglet "terminal". 

Pour installer le pare-feu entrez la commande suivante : 

sudo apt-get install ufw 

Paramétrer le pare-feu ufw 

Pour se faire un certain nombres de paramètres peuvent être règler. Vous pouvez également définir des politiques par défaut 

sudo ufw default deny incoming => permet d'interdire les entrées
sudo ufw default allow outgoing => permet d'autoriser les sorties 

Si vous souhaitez piloter le BB400 à distance le paramètre suivant permet d'autoriser les connexions SSH : 

sudo ufw allow ssh

Si vous utilisez des ports de connexion spécifique vous pouvez les ouvrir grâce  à la commande suivante : 

sudo ufw allow [VOTRE_PORT]  

Une fois vos paramétrages fini vous pouvez démarrer UFW : 

sudo ufw enable

Sources : How to set up a firewall with UFW

Créer une application node red 

Pour ouvrir node red, dans le menu tout à gauche, cliquez sur l'icône "Apps" puis cliquez sur open. 

Les identifiants de connexion par défaut sont : 

id : bb

mdp :[4_DERNIERS_CARACTERES_ADRESSE_MAC]

A partir de node red, il est possible de gérer l'ensemble des composants du BB400 : 

  • Entrées / sorties 
  • Communication série RS422/485
  • Script linux
  • Envoi/réception de données vers/depuis le cloud (Azure, GCloud, AWS, ...) 
  • Node red comprend également des fonctions de programmation avancées (trigger, switch, ...).

Paramétrer les IOs 

Pour ouvrir la fenêtre de configuration des IOs, dans le menu tout à gauche, cliquez sur l'icône "IO". 

Vous pourrez ensuite, sélectionner le mode output / Input / not set /unsed. Il est également possible de compter le nombre d'activation ou de désactivation de la DIO. Pour cela il faudra paramètrer les compteurs sur Falling edge (désactivation) ou sur Rising edge (activation).

Cela permet de sortir rapidement et presque sans aucune configuration des statistiques.  

 

🎉👏 BRAVO🎉👏

Vous êtes prêt à déployer votre solution à plus grande échelle !

Contacts 

logo_atemation

Qt_logo_2016.svg

https://www.qt.io/pricing



Sources 

https://www.qt.io/

https://wiki.qt.io/Main

http://fr.brainboxes.com/product/bb-400/industrial-edge-controller-powered-by-pi-dio-serial-bt-wifi-nfc-usb-ethernet

Aucun commentaire pour l'instant

Dites-nous ce que vous en pensez