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 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

Utilisez votre tablette Android comme second écran pour Linux (Raspberry Pi, MK908II)

Les tablettes Android atteignent désormais des prix qui défient toute concurrence. On trouve désormais des modèles à 39 € TTC en super marché, soit à peine plus cher que le Raspberry PI, mais avec un écran. Ces modèles souvent mono-core 1Ghz ou 1,4 Ghz avec 512 ou 1Go de mémoire ne sont très probablement pas utilisables pour une utilisation régulière sur Internet et ne sont en aucun point comparables à leur équivalent de marque (Samsung, Sony, LG, HTC, Lenovo, etc). Plusieurs tutoriels indiquent comment connecter utiliser une tablette Android comme second écran ( http://www.linux-magazine.com/Online/Blogs/Productivity-Sauce/Use-an-Android-Device-as-Screen-and-Input-for-Raspberry-Pi ). Ces méthodes utilisent généralement l'USB Tethering qui n'est malheureusement disponible que sur les téléphones ou tablettes avec un accès mobile (3G ou 4G) inclus. Dans ce billet, je vais vous montrer comment se connecter à une tablette en utilisant le mode Debug adb (Android Debug Bridge...

Ardublock ou S4A pour développer graphiquement

Si vous n'aimez pas le développement en C, ou C# sur les micro-contrôleurs, vous pouvez vous essayer au développement graphique avec Ardublock. Historique Cet environnement de développement est issu d' OpenBlocks développé par le MIT qui se positionne lui même dans la suite du langage Logo de Seymour Papert . Le langage Logo est un langage issu de l'Intelligence Artificielle dans les années 1970 dont l'objectif était de faciliter l'apprentissage de la programmation à de jeunes enfants par le biais du pilotage d'une tortue munie d'un crayon. Les ordres étaient relativement simples : avance de 90 cm, tourne à droite de 90°, etc. Ceci, permettait de réaliser des dessins assez simple, de piloter un petit robot et d'apprendre la programmation. C'était cependant un langage textuel. Exemple pour tracer un carré : POUR CARRE REPETE 4 [AV 100 TD 90] FIN   Son digne successeur, le langage Scratch désormais intégré à l'image Raspbian du Raspberry Pi...

Hack du RoboSapien en Infra-Rouge

Mon fils a eu un RoboSapien V1 il y a une dizaine d'années. Il prenait la poussière sur le haut d'une armoire, jusqu'à ce que j'ai envie de le ramener à la vie. Il était temps, les piles étaient en train de commencer à couler et vu le nombre de servo moteurs qu'il contient, ses jours étaient comptés. Mais non, j'ai réussi à contenir mon irrésistible envie de tout démonter et j'ai décidé de passer par la télécommande Infrarouge pour le piloter. Le protocole est assez similaire de celui d'une télécommande infrarouge classique avec cependant quelques petites différences. Il est correctement expliqué sur les sites http://www.aibohack.com/robosap/ir_codes.htm et http://www.markcra.com/robot/ir_codes.php . Je vais traduire en français pour ceux qui auraient un peu de difficulté. Il existe des librairies Arduino, mais comme d'habitude, pas toujours de librairie en C#. Voici les choses importantes à connaitre sur le protocole : Le protocole envoie...