Les modules Yoctopuce se prêtent bien à fabriquer des systèmes de mesure ou d'automatisation dédiés à une application spécifique. L'utilisateur final du système n'a même pas besoin de savoir que son système est basé sur des modules Yoctopuce, puisque ceux-ci fonctionnent sans driver et que notre librairie de communication peut être entièrement intégrée au logiciel de mesure et de contrôle. Aujourd'hui, nous allons vous montrer comment créer un petit outil personnalisable et facile d'utilisation permettant au client final de configurer un système pour s'adapter à son environnement réseau.
La problématique
Si vous distribuez un système à base de modules Yoctopuce, votre logiciel n'aura pas de difficulté à accéder aux modules lorsqu'ils sont branchés directement par USB. Mais si vous offrez la possibilité de les contacter par un réseau Wi-Fi, il faudra que l'utilisateur puisse configurer le YoctoHub-Wireless-n pour se connecter à son réseau. Pour cela vous avez plusieurs solutions:
- Vous pouvez intégrer l'interface de configuration à votre logiciel comme indiqué dans cet article, mais ça vous fait un peu de travail en plus.
- Vous pouvez documenter l'utilisation de VirtualHub pour cette tâche, comme indiqué dans cet autre article, mais cela rend la chose un moins transparente pour l'utilisateur.
- Vous pouvez fournir un petit outil de configuration dédié, et c'est la solution que nous allons vous démontrer.
Un outil de configuration dédié
L'outil fenêtré que nous vous proposons peut être utilisé tel quel si vous n'avez besoin que de configurer un YoctoHub-Wireless-n, mais vous pouvez facilement le modifier pour changer les textes, rajouter des paramètres à configurer, ou le traduire dans une autre langue. Il est écrit en Python et fonctionne sous Windows, Linux et macOS. L'interface est très simple, elle ne comporte que deux fenêtres:
Ce programme offre plus ou moins la même fonction que la fenêtre de configuration du réseau Wi-Fi disponible à travers VirtualHub, mais sans que l'utilisateur n'ait besoin de rechercher cette fenêtre de configuration, ni même de lancer notre VirtualHub.
Vous trouverez le code source de l'outil sur notre repository d'exemples sur GitHub.
Configuration du "nom réseau" du module
Vous aurez peut-être noté que dans l'interface ci-dessus, le seul autre paramètre du module que nous permettons de configurer est le nom du module. Il est sauvegardé comme nom logique de la fonction network du module, et est particulièrement important car c'est l'identité sous laquelle l'interface Wi-Fi du YoctoHub-Wireless-n va s'annoncer sur le réseau local pour tous les protocoles de discovery, soit NBNS pour les machines Windows, et mDNS pour les machines Linux et macOS.
Il y a un intérêt particulier à configurer ce nom, car il est dès lors utilisable par n'importe quelle machine sur le même sous-réseau pour contacter le module. La seule subtilité est qu'avec mDNS, il faut rajouter le suffixe de domaine ".local". Par exemple, si vous donnez le nom "FlyingToaster" à votre hub, vous pouvez dans votre application le contacter sous Windows à l'aide de l'instruction
et sous Linux/macOS à l'aide de l'instruction
Distribution sous forme d'exécutable
Pour simplifier encore l'utilisation de cet outil, vous pouvez facilement en faire un exécutable stand-alone grâce à l'outil PyInstaller dont nous vous avons parlé il y a quelques semaines. Comme les fichiers de la librairie Yoctopuce sont présents dans le même répertoire que le programme, il suffit de lancer les commandes suivantes (la première n'est à faire qu'un seule fois, elle sert à installer PyInstaller lui-même):
pyinstaller --onefile --add-data cdll:cdll configurator.py
L'exécutable résultant se trouvera dans le sous-répertoire dist. Notez que vous devrez exécuter cette commande sur chaque plateforme que vous souhaitez prendre en charge afin de créer un exécutable spécifique à cette plateforme.