Dans ce nouveau tutoriel sur Cayenne IoT, nous allons apprendre comment piloter en WiFi un système articulé Pan-Tilt PTZ SG90. Dans le tutoriel précédent, nous avons vu comment faire avec la librairie et l’application Blynk.
Cayenne IoT se programme de manière assez similaire. Il faut obligatoirement passer par les serveurs de myDevices.com ce qui peut provoquer un petit délai de latence (qualité de la connexion internet, charge serveur…).
De quoi avez vous besoin ?
Contrairement à Blynk, Cayenne IoT ne propose pas (encore ?) de serveur local. Il faut donc posséder un compte utilisateur. Vous pouvez en créer un directement sur le site mydevices.com ou depuis l’application iOS ou Android.
Si vous venez de faire l’acquisition d’un kit Pan-Tilt PTZ SG90, suivez le tutoriel précédent pour le montage.
Matériel utilisé pour piloter le bras robotique
Nous allons piloter en WiFi le mini kit Pan/Tilt. Vous pouvez utiliser n’importe quel ESP8266.
LoLin D1 Mini ou carte ESP8266 générique | |
Alimentation 5V/3A micro-usb | |
Mini Kit FPV Pan Tilt avec 2 servos SG90 | |
Jumper Dupont | |
Breadboard |
Kit robotique 4DOF (4 degrés de liberté)


Circuit
Le circuit est parfaitement identique à la version Blynk.
Préparer le Device
Tout d’abord, nous devons ajouter un Device. Contrairement à Blynk, Cayenne a besoin d’être connecté à l’objet à tout moment durant la configuration.
Cayenne propose de créer un Device de type Raspberry ou Arduino. Ce n’est pas un problème, l’ESP8266 est très bien géré même s’il n’est pas dans la liste.
Vous pouvez récupérer par email un petit exemple de code pour Arduino
Sélectionnez Arduino Uno puis WiFi Shield. Un Token est généré. A partir de maintenant, Cayenne attend que l’Arduino (ou l’ESP8266 dans le cas présent) se connecte aux serveurs mydevices.com avant de pouvoir continuer. C’est un peu frustrant, mais c’est le mode de fonctionnement actuel.
Préparer l’IDE Arduino
Lancez l’IDE Arduino et ouvrez le gestionnaire de bibliothèques. Dans le champ de recherche, faites une recherche sur le mot clé Cayenne. Installez la librairie Cayenne by myDevices. Installez également la librairie servo.
Code Arduino
Collez le Token du Device dans le code suivant et modifiez les paramètres de connexion (ssid, pass) à votre réseau WiFi. Téléversez le code et ouvrez le moniteur série pour vérifier que tout se passe bien.
/* * Mini Kit Pan/Tilt SG90 + Wemos + Cayenne IoT (mydevices.com) * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * Licence : MIT * Copyright (C) 2017 : www.projetsdiy.fr and www.diyprojects.io */ #define CAYENNE_PRINT Serial #include "CayenneDefines.h" #include "BlynkSimpleEsp8266.h" #include "CayenneWiFiClient.h" #include <Servo.h> // Vos paramètres de connexion WiFi - Your WiFi credentials. char ssid[] = "yourSSID"; char pass[] = "yourPASSWORD"; // Cayenne authentication token. This should be obtained from the Cayenne Dashboard. char token[] = "yourTOKEN"; Servo pan; Servo tilt; CAYENNE_IN(0) { Serial.print("move Pan to "); double currentValue = getValue.asInt(); int position = currentValue ; Serial.println(position); pan.write(position); } CAYENNE_IN(1) { Serial.print("move Tilt to "); double currentValue = getValue.asInt(); int position = currentValue ; Serial.println(position); tilt.write(position); } void setup() { Serial.begin(115200); // See the connection status in Serial Monitor Cayenne.begin(token, ssid, pass); pan.attach(D5); tilt.attach(D6); } void loop() { Cayenne.run(); }
Configuration des commandes d’axe sur l’application Cayenne
Retournez sur l’application Cayenne. Dès que l’ESP8266 se sera authentifié sur les serveurs de Cayenne, l’application passera automatiquement à l’écran suivant.
Cliquez sur ADD au centre de l’écran pour ajouter les commandes des axes. Contrairement à Blynk, il n’existe pas de widget joystick. Il faudra se contenter de 2 sliders (ce qui n’est pas vraiment un problème, ce n’est pas si simple de contrôler les axes précisément avec le joystick 😕 ). Ajoutez un Device de type Motor.
Puis Servo Motor
Configurez le comme ceci
- Name : Pan ou Tilt
- I/O : Virtual
- Pin : V0 pour Pan, V1 pour Tilt (par exemple)
- Widget : slider
- Activer min/max et attribuez 0..180 (degrés)
- Terminez par Save
Faites la même chose pour le 2ème axe.
Voici ce qu’on obtient
Comme Cayenne n’accepte de configurer les Devices que s’il est connecté à l’Arduino/ESP8266, le contrôle des axes est immédiatement fonctionnel.
Si vous perdez la connexion avec votre appareil, voici le type de message qui s’affichera en haut de l’écran
Avec une petite vidéo, c’est plus simple 😉
Sur la vidéo, vous pourrez remarquer un légers décalage entre le déplacement d’un slider et l’execution de la commande par l’ESP8266. Cayenne est un projet récent qui présente encore des défauts de jeunesse mais on lui pardonnera assez facilement car il est proposé totalement gratuitement (jusqu’à quand ?).
- Cayenne IoT + ESP8266 : piloter un mini kit Pan-Tilt FPV SG90 en WiFi avec un smartphone ou tablette
- Cayenne : Installer la librairie sur un Orange Pi sous Armbian Jessie