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

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é

Je vous propose donc ici de piloter en WiFi le mini kit Pan/Tilt. Vous pouvez utiliser n’importe quel ESP8266.

esp8266 Wemos D1 mini Wemos D1 Mini
chargeur raspbery pi 3 5v 3000ma Alimentation 5/3A micro-usb
mini kit fpv pan tilt sg90 Mini Kit FPV Pan Tilt avec 2 servos SG90
jumper dupont Jumper Dupont
breadboard Breadboard

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

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Promos à ne pas louper

Poster un Commentaire

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.

  S’abonner  
Notifier de
Domotique et objets connectés à faire soi-même