Cayenne IoT + ESP8266 : piloter un mini kit Pan-Tilt FPV SG90 en WiFi avec un smartphone ou tablette

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

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.

Kit robotique 4DOF (4 degrés de liberté)

Circuit

Le circuit est parfaitement identique à la version Blynk.

 

 

mini kit pan tilt servo wemos d1 mini wifi cayenne iot mydevices

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.

cayenne mydevices add device raspberry arduino

Vous pouvez récupérer par email un petit exemple de code pour Arduino

 cayenne mydevices add arduino device

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.

cayenne mydevices esp8266 wemos d1 mini nodemcu

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.

ide arduino install cayenne mydevices library

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.

 cayenne iot mydevices authenticate

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.

cayenne mydevices add motor

Puis Servo Motor

cayenne mydevices 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.

cayenne mydevices pan virtual v0

Voici ce qu’on obtient

cayenne mydevices sliders pan tilt

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

cayenne mydevices device offline

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 ?).

Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

Ressources utiles
quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?
Nous serions ravis de connaître votre avis

      Laisser un commentaire

      Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

      Domotique et objets connectés à faire soi-même