Particle Mesh

Particle Mesh

Antes de nada quiero agradecer a Particle.io el haberme hecho llegar su nueva tecnología Particle Mesh para que pueda descubrirla a fondo y realizar algún proyecto.

Particle Mesh

El paquete incluía varios componentes, entre ellos:

Mil gracias Particle.io, no sabéis la ilusión que me hace que confiéis en mi.

La nueva familia de Particle

El concepto de Particle Mesh o malla es muy sencillo y potente, vamos a entenderlo de forma sencilla con un ejemplo. Aunque si quieres enterarte de esta nueva tecnología con todo lujo de detalles te recomiendo que eches un vistazo en su web.

Particle Mesh = ♡

Para mi gusto Particle proporciona un entorno de trabajo online muy bueno. Entre otras cosas dentro de este entorno contamos con:

  • Editor de código con posibilidad de verificar el código, trabajar con librerías y subir el archivo a la placa.
  • Consola muy potente con la que puedes tener control de tus dispositivos instalados, Networks creadas, control de eventos, integraciones y algunas cosas más.

En este tutorial (básico) vamos a trabajar con varios elementos para irnos familiarizando con Particle Mesh.

  • 1 Argon
  • 2 Xenon
  • 1 Network creada desde el entorno de Particle.
  • Conexión a internet WIFI

Si estás aquí viendo este tutorial de Particle Mesh y quieres que me entere, dame un toque por Twitter o por Instagram, eso me anima a seguir escribiendo algunos más.

Tutorial Particle Mesh

Antes de nada y como siempre que trabajamos con los productos de Particle, lo primero será darlos de alta mediante su app. Para este tutorial he usado Particle para iOS.

Damos de alta Argon antes de nada
Primero vamos a dar de alta Argon ya que va a hacer las funciones de Gateway y así poder ir creando nuestra newtwork sobre la marcha.
Tanto el proceso de creación de network como dar de alta nuestro Argon es muy sencillo, viene bastante bien explicado desde la aplicación a medida que avanzamos paso a paso.

Una vez creada y configurada la network (se hace sobre la marcha dando de alta Argon) iremos dando de alta los Xenon que nos interesa que formen parte de esta red. En mi caso he dado de alta los tres que tengo.

Particle Argon

Quedando la network de esta forma (aunque para el tutorial sólo he utilizado 2 Xenon, tengo dado de alta los 3).

Particle network

¿Cómo funciona Particle Mesh?

Particle Mesh hace que todos nuestros dispositivos estén conectados entre si (malla) de forma sencilla y con un consumo mínimo de recursos. Para que se entienda mejor pongo un ejemplo de proyecto de robótica en un campo de cultivo.

Tenemos un campo de 2000 metros repleto de árboles frutales y cada 300 metros tenemos un sensor de humedad en la tierra que nos indica si la humedad es correcta o no para activar en esa zona el riego. Si mediante internet queremos recibir valores de estos sensores, habría que dar conexión a internet de forma directa, lo que supondría un gran incremento de consumo y de precio en nuestro proyecto. Alimenta cada sensor, hacerle llegar internet, procesar la información, enviarla, etc.

Con Particle Mesh, únicamente tendremos que tener conectado a internet una placa (en mi caso Argon), que es la que va a crear el gateway (Puerta de enlace), el resto estarán únicamente dadas de alta y conectadas a nuestra network.

Tutoriales Particle Mesh

Para que se entienda bien lo que estoy haciendo en este tutorial hay que tener en cuenta lo siguiente:

  • Desde Argon genero un número aleatorio (random 1,10) y lo publico en mis eventos.
  • Xenon 1 y Xenon 2 se suscriben a esta publicación para estar escuchando.
  • Si el número aleatorio es 1 una placa Xenon hace blink con su led integrado, si el valor de random es 3 el otro Xenon enciende un led externo durante 1 segundo.

Como podéis ver, el ejemplo es un Hola mundo en toda regla.

IDE Particle

No voy a explicar cómo hay que utilizar el IDE de Particle porque se iba a hacer esto infumable, pero si os pongo una captura de pantalla trabajando con el.

IDE Particle

Código argon.ino

Con este código voy a estar publicando en los eventos.

int numero1 = 0;

void setup() { 
}

void loop() {
    numero1 = random(1,10);
    String valorN1 = String(numero1);
    Particle.publish("valores", valorN1);
    delay(500);
}

Como veis el código es bien sencillo, genero el número aleatorio, lo transformo a string y lo publico en mis eventos mediante Particle.publish.

Código xenon.ino

Ahora desde los Xenon estamos escuchando los eventos.

void setup() {
    pinMode(7, OUTPUT);
    Particle.subscribe("valores", escuchando);
}

void loop() {
}

void escuchando(const char *event, const char *data) {
    if (strcmp(data,"1")==0) {
        digitalWrite(7,HIGH);
        delay(150);
        digitalWrite(7,LOW);
        delay(150);
        digitalWrite(7,HIGH);
        delay(150);
        digitalWrite(7,LOW);
        delay(150);
        digitalWrite(7,HIGH);
        delay(150);
        digitalWrite(7,LOW);
        delay(150);
    }
}

Muy sencillo también, nos subscribimos mediante Particle.subscribe, escuchamos qué valores publica Argon y si éste nos afecta de forma directa siendo 1 ó 3 actuamos en consecuencia. Haciendo blink si el valor es igual a 1 y encendiendo el led rojo durante un segundo si el valor es 3.

Obviamente el valor del IF hay que modificarlo antes de cargar el código en cada uno de los diferentes Xenon :)

Voy a poner el vídeo que acabo de subir a Instagram para que se entienda mejor. Los valores que aparecen en pantalla son las publicaciones que se hacen desde Argon, mientras que los 2 Xenon encienden los leds cuando les corresponde.

En estos días, para el siguiente tutorial estaré haciendo pruebas para ver cuántos metros puedo separar unas placas de otras, velocidad de respuesta, etc.

Espero que os sirva de ayuda, cualquier duda no dejéis de contármela.
Saludos.

Untitled.es está en Facebook