|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Tutorial del Internet de las Cosas y Bluetooth con el ESP32
Juan Antonio Villalpando

Volver al índice del tutorial

____________________________

117F.- Cayenne.

- Vamos a conectar nuestra tarjeta con un broker MQTT llamado Cayenne y le enviaremos datos para que cualquiera pueda consultarlo a través de Internet.

___________________________________________
1.- Nos damos de alta en Cayenne myDevices.

https://mydevices.com/cayenne/signup/

- Pulsamos en Cayenne API

- Se pone correo y contraseña, pero no pide confirmación.

- Anotamos nuestras claves de API.

- Bajamos la librería y la instalamos en nuestro IDE de Arduino ...\Arduino\libraries

https://github.com/myDevicesIoT/Cayenne-MQTT-ESP (o bien de aquí: Cayenne-MQTT-ESP)

- También podríamos haber instalado la librería mediante: Programa / Incluir Libería / Gestionar Liberías

- Copiamos este código en el IDE del Arduino.

cayenne.ino

// Juan Antonio Villalpando.
// kio4.com

#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>
#define LED4 D4

// Nombre y contraseña de tu red WiFi.
const char* ssid = "Nombre_de_tu_Red_WiFi";
const char* password = "Clave_WiFi";

// Autentificación. API del Cayenne.
char username[] = "56395930-557e-11e9-8da4-359d3972629e";
char password[] = "d8c9fad4868e3e3807da7338536a79608c28814e";
char clientID[] = "fab5d960-557f-11e9-89d2-4b372b367592";

void setup() {
  Serial.begin(115200);
  Cayenne.begin(username, password, clientID, ssid, wifiPassword);
  pinMode(LED4, OUTPUT);
}

void loop() {
  Cayenne.loop();
}

// Enviar datos al servidor de Cayenne.
CAYENNE_OUT_DEFAULT()
{
  // Envio de un número aleatorio al canal 0 de Cayenne.
  int aleatorio = random(1,90);
  Cayenne.virtualWrite(0, aleatorio);
}

// Recibo de respuesta de Cayenne.
CAYENNE_IN_DEFAULT()
{
  // Obtenemos el Canal y el valor que ha variado mediante Botón, Deslizador,...
  CAYENNE_LOG("Channel %u, value %s", request.channel, getValue.asString());
  // Ponemos un Botón en el Cayenna (Channel 1), cuando lo pulsemos enviará un valor "1" y 
  // encenderá el LED4. Cuando no lo  pulsemos enviará un valor "0" y apagará el LED4.
  int canal = request.channel;
  String valor = getValue.asString();
  if(canal == 1 && valor == "1"){digitalWrite(LED4, LOW);}
  else {digitalWrite(LED4, HIGH);}
  }

- Comentarios al código anterior.

- Cuando pulsamos el Botón que estableceremos en el Channel1, el Cayenne enviará el valor "1", si el cualquier momento se recibe la llegada del Channel 1 y además el valor 1, el programa enviará al Cayenne el número 1 para que se active el icono del LED del Cayenne.

- Observa el Monitor Serie.

___________________________________________________________________________

- Cayenne.

- Vamos a la web de Cayenne y veremos aparecer los números aleatorios que se van generando, en este caso por el Channel 0.

- Previamente debes haber cargado el sketch de Arduino con la Key de Cayenne, y conectar mediante tu WiFi.

- Vamos a la parte derecha de la zona azul, cambiamos el nombre a "Nuestro ESP8266".

- También debemos darle un nombre al proyecto, por ejemplo NuevoProyecto.

- En la zona verde (a la izquierda) desde Device/Widget añadimos (baja al fin de página) un Gauge, State, Button y un Slider.

- Debemos establecer los canales. Esto lo hacemos en modo edición, pulsando el icono de tornillo.

- Quedará así:

__________________________________________________________

- Aplicación del Cayenne en el móvil.

- Bajamos desde nuestro móvil de la Play de Google Cayenne: https://play.google.com/store/apps/details?id=com.mydevices.cayenne&hl=es

- Podemos observar los valores de los elementos y desde el mísmo móvil mediante el Botón y el Deslizador podemos cambiar los valores.

- Esta aplicación gratuita presenta publicidad mediante notificaciones.

__________________________________________________________

- Notificaciones.

- Esto consiste en enviar un mensaje de correo o un SMS cuando ocurra cierta condición.

- Vamos a configurar nuestra aplicación para recibir un mensaje de correo cada vez que pulsemos el Botón alternativamente.

- Pulsamos en Trigger.

- Arrastramos "Nuestro ESP8266" a la derecha del if, como se indica en la imagen.

- Ponemos el Botón, marcamos On (1) y escribimos un correo.

- Cada vez que pulsemos el Botón y enviemos se asigne el 1, se enviará un correo a la dirección indicada.

- Si pulsas muchas veces, obtendrás un correo cada vez que el Botón envíe un 1.

- Leer: Notification trigger (SMS and email) are currently limited to 300 per day.

https://community.mydevices.com/t/sending-mqtt-messages-within-notification-limit/11569

- También tenemos la limitación de enviar 60 mensajes por minuto y de 50 conexiones cada 10 minutos.

- Para que las notificaciones no se repitieran contínuamente, habría que modificar el código del IDE, del ESP8266.

- Por ejemplo, podríamos modificar el código para que una vez superado un valor, no se vuelva a enviar notificación hasta que no pase una hora.

___________________________
- Propuesta.

- Modifica el código anterior para que solo podemos enviar una notificación al pulsar un Botón, una vez cada minuto.

cayenne.ino

// Juan Antonio Villalpando.
// kio4.com

#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>

// Nombre y contraseña de tu red WiFi.
const char* ssid = "Nombre_de_tu_Red_WiFi";
const char* password = "Clave_WiFi";

// Autentificación. API del Cayenne.
char username[] = "56395930-557e-11e9-8da4-359d3972629e";
char password[] = "d8c9fad4868e3e3807da7338536a79608c28814e";
char clientID[] = "fab5d960-557f-11e9-89d2-4b372b367592";

void setup() {
  Serial.begin(115200);
  Cayenne.begin(username, password, clientID, ssid, wifiPassword);
}

void loop() {
  Cayenne.loop();
}

// Enviar datos al servidor de Cayenne.
CAYENNE_OUT_DEFAULT()
{
  // Envio de un número aleatorio al canal 0 de Cayenne.
  int aleatorio = random(1,90);
  Cayenne.virtualWrite(0, aleatorio);
}

// Recibo de respuesta de Cayenne.
CAYENNE_IN_DEFAULT()
{
  // Obtenemos el Canal y el valor que ha variado mediante Botón, Deslizador,...
  CAYENNE_LOG("Channel %u, value %s", request.channel, getValue.asString());
  // Cuando pulsemos el Botón (Channel 1), recibiremos su número de canal y su valor.
  // En caso que llege el canal 1 y el valor 1, enviará al Cayenne un 1 por el Channel 2
  // Para que se encienda el icono Statud_LED del Cayenne.
  int canal = request.channel;
  String valor = getValue.asString();
  if(canal == 1 && valor == "1"){Cayenne.virtualWrite(2, 1);}
  else {Cayenne.virtualWrite(2, 0);}
  }

 

_______________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información