Revista 100% Verde

Primeros pasos con ESP8266 y Cayenne

Por Soloelectronicos @soloelectronico

Node MCU es una plataforma para el desarrollo de proyectos IoT que integra el famoso chip ESP8266, el cual se ha extendido enormemente debido a su facilidad para desarrollar proyectos open source a los que indudablemente se une su bajisimo precio comparado con otras opciones.
De este componente destaca integra capacidades de comunicación via WiFi , conteniendo en su interior microprocesador que puede ser programado fácilmente usando en conocido lenguaje de programación Lua o vía Arduino IDE.

¿Se pregunta cómo controlar su económico ESP8266 d e forma remota desde cualquier lugar del mundo?

En este post repasaremos precisamente el proceso, paso a paso, de cómo escribir código en el IDE de Arduino y programar s u ESP8266 permitiendo que el código escrito para el ESP8266 se comunique con la plataforma myDevices Cayenne ( https://cayenne.mydevices.com) la cual nos va permitir monitorear y controlar el ESP8266 a través de un tablero muy intuitivo.

Primeros pasos con ESP8266 y Cayenne

De Cayenne hemos hablado en este humilde blog, en muchisimas ocasiones pero resumidamente es una solución innovadora para la construcción de aplicaciones IoT basada en la mayoría de las plataformas conocidas como son Arduino, Raspberry pi, ESP8266 y dispositivos Seriales, Wifi y dispositivos Lora

Ademas también incluye una API Mqtt para conectar cualquier cliente MQTT la cual utilizaremos en este caso

Después de configurar una cuenta en Cayenne, utilizamos el Tablero para configurar un cualquier puerto del GPIO al que conectemos una entrada o una salida . La comunicación entre el ESP8266 y Cayenne se realiza utilizando un protocolo muy ligero llamado MQTT ( http://mqtt.org/).

Una vez que todo esté hecho, podemos monitorear y controlar el ESP8266 desde cualquier parte del mundo simplemente accediendo a Cayenne.

Los pasos a seguir para conectar un ESP8266 a la nube de Cayenne son los siguientes:

  • Instalación del IDE de Arduino .Si aun no lo tiene instalado ,se puede hacer desde aqui
  • Instalación del paquete de la placa ESP8266 en Arduino IDE siguiendo las instrucciones del sitio : https://github.com/esp8266/Arduino
Primeros pasos con ESP8266 y Cayenne
    Instalación de los controladores USB

Es necesario instalar el controlador USB requerido en su ordenador para que pueda programar el ESP8266. Independientemente de la opción de firmware que elijamos, primero necesitamos comunicarnos con la placa de desarrollo ESP-12E utilizando la interfaz USB de la computadora.

El módulo USB a Serial UART incluido en la placa es Silicon Labs 'CP2012, para lo cual generalmente necesitamos instalar los controladores de puerto COM virtual (VCP) fácilmente disponibles para su sistema operativo específico.Una vez instalado, debemos verificar que el CP2102 sea reconocido por su ordenador

Una vez que el controlador está instalado, podemos conectar el cable USB al puerto USB de la computadora y la placa. Después de hacerlo, deberíamos ver el mensaje: software del controlador del dispositivo instalado correctamente.

Además, podemos verificar manualmente que todo funcione correctamente siguiendo estos pasos:

Abra el Administrador de dispositivos (disponible a través del P anel de control → Sistema y seguridad → Administrador de dispositivos en la sección Sistema)
Debajo de la entrada Puertos (COM & LPT), debe haber un puerto abierto llamado USB-SERIAL CP2102 (COM) donde hay un número típicamente mayor o igual a 3.

Ahora que estamos listos para comunicarnos con nuestro ESP8266 a través del CP2102, podemos explorar algunas de las diferentes opciones de firmware disponibles.

  • Agregue la biblioteca de Cayenne MQTT a Arduino IDE desde aqui como un fuchero zip
  • Instale la biblioteca zip descargada en el paso anterior desde Programa -> Incluir biblioteca -> Añadi libreria ZIP. y selecionar ahorael fichero descargado con anterioridad Cayenne-MQTT-ESP-master.zip
  • Conecte el ESP8266 a su PC / Mac a través de un cable USB con capacidad de datos.
  • En el IDE de Arduino, vaya al menú de herramientas, seleccione su placa y el puerto al que está conectado su ESP8266.
  • Ya puede crear una cuenta Starter en cayenne ( si aun no la tiene ya creada)
  • Una vez ya validado vaya a la esquina superior izquierda y pulse sobre el botón verde add new
Primeros pasos con ESP8266 y Cayenne
  • Ahora seleccione Generic ESP8266 como la placa y tome nota ahora de los siguintes paraetros ofrecidos por la pagina:
    • MQTT USERNAME:
    • MQTT PASSWORD:
    • CLIENT ID:
    • MQTT SERVER:
    • MQTT PORT:
    • NAME YOUR DEVICE (optional):
  • Abra el boceto de ejemplo incluido desde Archivo -> Ejemplos -> Cayenne-MQTT-ESP. Modifique el boceto incluido con su información de red y la información de autenticación de Cayenne que recibió al agregar su dispositivo.
.// This example shows how to connect to Cayenne using an ESP8266 and send/receive sample data
.// Make sure you install the ESP8266 Board Package via the Arduino IDE Board Manager and select the correct ESP8266 board before compiling.
//#define CAYENNE_DEBUG
#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>
// WiFi network info.
char ssid[] = "ssid";
char wifiPassword[] = "wifiPassword";
// Cayenne authentication info. This should be obtained from the Cayenne Dashboard
char username[] = "MQTT_USERNAME";
char password[] = "MQTT_PASSWORD";
char clientID[] = "CLIENT_ID";
unsigned long lastMillis = 0;
void setup()
{ serial.begin(9600);
Cayenne.begin(username, password, clientID, ssid, wifiPassword);
}
void loop()
{
Cayenne.loop();
//Publish data every 10 seconds (10000 milliseconds). Change this value to publish at a different interval.
if (millis() - lastMillis > 10000)
{ lastMillis = millis();
//Write data to Cayenne here. This example just sends the current uptime in milliseconds.
Cayenne.virtualWrite(0, lastMillis);
//Some examples of other functions you can use to send data.
//Cayenne.celsiusWrite(1, 22.0);
//Cayenne.luxWrite(2, 700);
//Cayenne.virtualWrite(3, 50, TYPE_PROXIMITY, UNIT_CENTIMETER);
}
}
//Default function for processing actuator commands from the Cayenne Dashboard.
//You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands.
CAYENNE_IN_DEFAULT()
{ CAYENNE_LOG("CAYENNE_IN_DEFAULT(%u) - %s, %s", request.channel, getValue.getId(), getValue.asString());
//Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError("Error message");
}
    Compile y sube el programa a su dispositivo. La carga puede requerir configurar el dispositivo en modo de carga de arranque. Para el módulo Adafruit HUZZAH ESP8266, esto se hace siguiendo los siguientes pasos:
    • Mantenga presionado el botón GPIO0.
    • Haga clic en el botón Restablecer.
    • Suelta el botón GPIO0.
    • El LED rojo debería encenderse, lo que indica que el dispositivo está listo para cargar.
    • Cargue su boceto.
    • Compruebe el tablero de Cayenne para asegurarse de que está recibiendo datos de muestra de su dispositivo.

Hay mas ejemplos desde el interfaz de Arduino en File → Examples → Cayenne-MQTT-ESP8266 → ESP8266


Volver a la Portada de Logo Paperblog