Accéder au contenu principal

Wio Link, une carte ESP8266 avec des connecteurs Grove

Wio Link de SeeedStudio

Connaissez vous la Wio Link? C'est une nouvelle carte basée sur l'ESP8266 et qui intègre 6 connecteurs Grove. Ainsi, (presque) fini les bricolages hasardeux nécessitant l'utilisation d'une platine d'essai, l'utilisation d'un convertisseur USB/série, etc. La carte coûte 14 $ et à été créée à partir d'un financement sur KickStarter en janvier 2016. Les 50 000 $ demandés au lancement de la campagne en décembre 2015 ont été récoltés en 5 heures. Les caractéristiques de la carte sont les suivantes :
- 3 ports Digitaux
- 1 port Analogique
- 1 port UART
- 1 port I2C
- 1 port d'alimentation Lipo
- 1 port USB

Deux petits bémols : 
- pas d'interrupteur pour la batterie (il est préférable d'utiliser un batterie de secours externe avec interrupteur)
- pas d'antenne externe, ce qui limite un peu la portée.
Basé sur l'ESP8266, la carte supporte les différents firmware Nodemcu (Lua, Basic, IDE Arduino, etc), mais dispose surtout d'une implémentation qui permet de tester à peu près tous les senseurs Grove existants sans avoir à programmer la moindre ligne de code et sans allumer de PC. Il faut simplement disposer d'une connexion Internet et d'un téléphone (ou tablette) sous Android ou IOS.

Déballage

 La carte est livrée dans une petite boite en carton avec un câble micro USB. Sans aucune notice d'utilisation. Il y a tout juste un lien http://iot.seeed.cc/start sur lequel il faut se connecter depuis un téléphone ou une tablette.


A cette adresse, vous trouverez la plupart des informations nécessaires pour une première utilisation de la carte.

Première utilisation sous Android

Pour la première utilisation, j'ai téléchargé l'application sous Android disponible dans Google Play à l'adresse https://play.google.com/store/apps/details?id=cc.seeed.iot.ap&hl=fr ou en faisant une recherche avec Wio Link. Utilisez de préférence la tablette en mode Horizontal
Une fois la carte branchée sur une alimentation quelconque (PC, batterie, etc), appuyez sur le bouton "Configure" jusqu'à ce que le bouton bleu reste allumé en permanence. Depuis l'application, faites une recherche des stations Wifi. Si vous êtes en mode configuration, vous devriez voir une station WioLink_xxx apparaître. Sélectionnez la, puis entrez sélectionnez la borne Wifi à laquelle la station Wio Link va se connecter. Pour une utilisation statique, à la maison, cette manière de procéder convient parfaitement. Pour une utilisation "itinérante", il n'est pas simple d'utiliser le téléphone à la fois comme Hotspot Wifi et comme client Wifi. Une fois la connexion Wifi établie, il vous faudra créer un compte sur le serveur IoT de SeeedStudio. C'est là l'une des particularités du système : la carte reçoit ses données et est mise à jour depuis Internet.


Une fois connecté, la carte apparaît avec ses 6 connecteurs, ainsi qu'une liste de connecteurs Grove en dessous. sur la tablette, sélectionnez le senseur Grove correspondant. Dans l'image ci-dessus, j'ai pris un senseur Grove analogique. Lorsque l'objet est déplacé, les connecteurs sur lesquels le senseur peut être connecté s'affichent en blanc. 
Connectez ensuite physiquement le connecteur Grove sur la carte au même emplacement que celui représenté sur l'écran. Cliquez sur le menu "Update" en haut à gauche pour télécharger les modifications dans la carte.
Pour lire les données du senseur, sélectionnez le bouton "API". Vous verrez une ou plusieurs séries d'URLs que vous pourrez déclencher pour interagir avec le senseur. Pour le potentiomètre, par exemple, vous pourrez uniquement lire sa valeur. Tournez le bouton et appuyez sur le bouton Get. La valeur du senseur sera renvoyée au format JSON. Vous verrez également l'URL complète correspondante pour effectuer l'action. Vous pourrez copier cette URL dans une application HTML, Java, Javascript, etc pour lire, une valeur ou effectuer une action.
C'est bien là toute la beauté de l'opération. J'ai ainsi pu tester plusieurs capteurs en quelques minutes sans avoir à écrire le moindre driver ou la moindre ligne de code :
- afficheur de barographe
- ruban de leds
- capteur de température
- servomoteur
- potentiomètre
- écran oled
...



Solutions concurrentes

 Des solutions similaires existaient déjà, mais sans le même confort que le Wio Link. Je vais en lister quelques unes :

1. XBee Carrier de SeeeStudio (environ 20 € chez HackSpark ou Lextronic)

Cette carte permet normalement de connecter un récepteur XBee à l'emplacement correspondant. Elle offre 2 sorties Groves. Cette carte est également livrée avec le Wireless Solar kit qui inclut un boîtier transparent, une batterie Lipo et un petit panneau solaire. Pour des senseurs qui consomment un peu de courant, il est préférable de choisir une alimentation séparée.

A la place d'un récepteur XBee standard, j'utilise un récepteur Wee d'IteadStudio (il coûte maintenant 3 €). Les pins de ce récepteur correspondent aux mêmes pins que celles d'un récepteur XBee, mais il faut trouver la correspondance avec les GPIO utilisées en Lua.

Ces sorties ne sont cependant pas activées électriquement par défaut (les fils + et - ne fournissent pas de courant). Il faut connecter les 2 dernières pins Power_control 1 et Power control 2 pour fournir le courant.

Cette carte est une carte de développement vendue uniquement en kit avec des récepteurs XBee. Elle permet de disposer de 6 connecteurs Grove comme la Wio Link. Je ne l'ai pas essayée à cause du coût que je trouve un peu élevé, mais avec un peu de chance, elle devrait également marcher avec la carte Wee ESP8266 présentée précédemment.

Il en existe quelques autres comme les DevDuino sensor nodes, mais ces dernières incluent un micro-contrôleur ATMega 328 qui ferait double emploi avec l'ESP8266.

Conclusions

Le prix de cette carte à 13 $ est certes un peu plus élevé que l'ESP8266 à 3 $, mais les connecteurs Groves et le firmware graphique natif permettent de donner toute leur puissance à cette carte. L’absence d’interrupteur est un peu gênante comparée à la carte XBee Carrier du même constructeur. Cette carte s'interface également sans aucune programmation avec le site IFTTT (IF This Then That), ce qui permet de déclencher une action lorsqu'un senseur atteint une limite fixée. Ce n'est pas toujours très simple d'usage.
L'application Android est assez bien faite. J'ai quand même eu un peu de mal à comprendre au début à quoi servait le bouton "Update", ainsi qu'à comprendre comment supprimer un senseur (en cliquant en le déplaçant sur la croix "X" . Sur ma tablette, l'application n'affichait la carte complète qu'en mode Paysage. En mode portrait, seul un senseur était visible et il m'était également impossible de supprimer un senseur déjà connecté.
Si vous souhaitez aller plus loin, installez un firmware Lua customisé (http://famory-toure.blogspot.fr/2015/07/custom-build-pour-esp8266.html). Vous pouvez également vous laisser tenter par une installation de ZBasic pour Esp8266 (http://www.zbasic.net/doc/ZBasicESP8266.html).
Un environnement nommé Cayenne assez similaire existe également pour le Raspberry. Je le présenterai dans un autre billet.

Commentaires

Posts les plus consultés de ce blog

Supprimer les partitions Raspberry sur une carte SD sous Windows 7 avec Diskpart

Si vous souhaitez récupérer une ancienne carte SD utilisée pour démarrer un Raspberry pour un autre usage (appareil photo, etc), il vous faudra supprimer les deux partitions créées au moment de l'écriture de l'image sur la carte SD. Vous pouvez voir les partition en sélectionnant Menu Windows/Ordinateur/bouton droit "Gérer". Voici un exemple du résultat final. Vous pouvez supprimer la partition Unix de 7 Gb (ou 4Gb en fonction de la taille de votre carte) en sélectionnant la partition puis en faisant "bouton droit Supprimer". Laissez juste une partition pour pouvoir faire les autres manipulations avec DISKPART. Démarrez l'outil DISKPART en ligne de commande. Une nouvelle fenêtre s'ouvrira. Microsoft DiskPart version 6.1.7601 Copyright (C) 1999-2008 Microsoft Corporation. Sur l'ordinateur : FRVILN0H305806 DISKPART> list disk   N° disque  Statut         Taille   Libre    Dyn  GPT   ---------  -------------  -------  -------  ---  ---   D

Comment lire son écran de téléphone Android sur PC (2)

Voici une nouvelle manière d'accéder à votre téléphone depuis votre PC. Cette méthode utilise le câble USB et Google Chrome. Elle fonctionne donc sur Windows, Mac et Linux. Les pré-requis sont les mêmes que ceux du billet précédent : Téléphone configuré en mode Développement Drivers USB installés sur le PC Google Chrome installé L'application Vysor s'installe comme une extension de Google Chrome. Cherchez dans le Webstore et lancez l'installation. Une fois installée, l'application apparaît dans les extensions. Vous pouvez la lancer de différentes manières. La manière la plus simple est d'ouvrir la fenêtre des applications : chrome://apps/ Une autre manière est de créer un raccourci en cliquant sur « Détails ». Ensuite créez un raccourci sur le bureau, le menu démarrer et/ou la barre de tâche. Vous pouvez également cliquer sur afficher dans la boutique et lancer l'application depuis la boutique. Une fois

Serveur d'impression CUPS sur Raspberry Pi

Je possède une très vieille imprimante laser HP Laserjet 6L noir et blanc de 12 ans d'age qui a survécu à plusieurs imprimantes jet d'encre couleurs tombées en désuétude pour obsolescence programmée. J'envisage tout de même sérieusement de les démanteler pour les recycler en CNC, graveur ou autre.   Je continue donc a utiliser cette bonne petite imprimante parallèle qui me rend bien des services (en 12 ans, j'ai changé le toner 3 fois pour un coût de 20 € la cartouche). J'ai donc dû m'équiper d'une adaptateur USB/Parallèle pour pouvoir la connecter sur un PC récent. Le problème principal est que le driver de cette imprimate n'est reconnu que par un seul de mes PC sous Windows 7. Les autres PC sous Windows 8 ou Windows 10 reconnaissent bien l'imprimante, mais sortent des feuilles avec le code Postscript. L'impression depuis une tablette ou un téléphone Androïd est également tout simplement impossible. Pour remédier à ce problème, j'ai don