Empezamos por conectar nuestro photon a internet. Estos pasos que muestra la documentación de particle te ayudarán a hacerlo.
Por ahora, utilizaremos un ejemplo básico: prender un led, el mismo que viene en el photon. Después mandaremos el estado en que se encuentra el photon a nuestro proyecto de firebase y después leeremos esos datos a través de una web.
Copia el siguiente código que es el código de ejemplo que trae particle para prender el led.
// ------------
// Blink an LED
// ------------
/*-------------
We've heavily commented this code for you. If you're a pro, feel free to ignore it.
Comments start with two slashes or are blocked off by a slash and a star.
You can read them, but your device can't.
It's like a secret message just for you.
Every program based on Wiring (programming language used by Arduino, and Particle devices) has two essential parts:
setup - runs once at the beginning of your program
loop - runs continuously over and over
You'll see how we use these in a second.
This program will blink an led on and off every second.
It blinks the D7 LED on your Particle device. If you have an LED wired to D0, it will blink that LED as well.
-------------*/
// First, we're going to make some variables.
// This is our "shorthand" that we'll use throughout the program:
int led1 = D0; // Instead of writing D0 over and over again, we'll write led1
// You'll need to wire an LED to this one to see it blink.
int led2 = D7; // Instead of writing D7 over and over again, we'll write led2
// This one is the little blue LED on your board. On the Photon it is next to D7, and on the Core it is next to the USB jack.
// Having declared these variables, let's move on to the setup function.
// The setup function is a standard part of any microcontroller program.
// It runs only once when the device boots up or is reset.
void setup() {
// We are going to tell our device that D0 and D7 (which we named led1 and led2 respectively) are going to be output
// (That means that we will be sending voltage to them, rather than monitoring voltage that comes from them)
// It's important you do this here, inside the setup() function rather than outside it or in the loop function.
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
// Next we have the loop function, the other essential part of a microcontroller program.
// This routine gets repeated over and over, as quickly as possible and as many times as possible, after the setup function is called.
// Note: Code that blocks for too long (like more than 5 seconds), can make weird things happen (like dropping the network connection). The built-in delay function shown below safely interleaves required background activity, so arbitrarily long delays can safely be done if you need them.
void loop() {
// To blink the LED, first we'll turn it on...
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
// We'll leave it on for 1 second...
Particle.publish("ledstate", String(digitalRead(led2)));
delay(3000);
// Then we'll turn it off...
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
Particle.publish("ledstate", String(digitalRead(led2)));
// Wait 1 second...
delay(3000);
// And repeat!
}
Lo único diferente que le agregamos fue la función Particle.publish()
, en donde el primer parámetro es el nombre del evento que declararemos más adelante en nuestro webhook
para poder conectarnos a firebase, y el segundo parámetro es el valor que le queremos mandar. Lo convertimos a string
por que al parecer se tienen problemas al mandarlo sin convertirlo.
Ahora iremos a firebase y crearemos un nuevo proyecto. Al crear el proyecto, los mandará al overview.
De aquí los datos importantes a guardar son el acceso a nuestra base de datos.
Es importante agregar un secreto en nuestra base de datos para conectarnos desde particle. Para esto vamos al engrane que esta enseguida de overview y seleccionamos configuración del proyecto.
De aquí vamos al apartado de cuentas de servicio y abajo veremos los secretos de nuestra base de datos. Guarden esta información por que la ocuparemos más adelante.
Ahora se dirigen hacia la consola de particle una vez que hayan logueado en su cuenta. Aquí seleccionaremos del menú de la izquierda el que dice Integrations. Seleccionamos New integration y después damos click en Webhook.
Una vez hecho esto nos pedirá los datos para conectarnos a otro servicio en este caso firebase. En el event name pondremos ledstate, que es con lo que particle identifica que usaremos ese webhook. En URL vamos a tomar el link que nos proporciona firebase en nuestro apartado de base de datos el cual comienza con https://nombreDeSuProyecto.firebaseio.com y agregaremos un json al final.
https://my-first-project-2eb32.firebaseio.com/ledstate.json quedando asi nuestro resultado final. Al momento de recibir los datos firebase nos creara en nuestra base de datos, algo como un arbol de directorios en donde ledstate tomado de ledstate.json
, será nuestra referencia y de ahí partirán los datos almacenados.
En request type seleccionaremos POST, y en el Device seleccionaremos el nombre que la hayamos puesto a nuestro dispositivo al momento de conectarlo a internet y conectarlo con nuestra cuenta de Particle.
Clickamos en Advanced Settings y Send Custom Data seleccionamos JSON. Mandaremos el siguiente formato:
{
"ledstate": "{{PARTICLE_EVENT_VALUE}}",
"ts": "{{PARTICLE_PUBLISHED_AT}}"
}
En donde utilizamos variables de Particle en el cual el primero mandamos el estado de nuestro led y en el segundo es el time stamp, la fecha y hora en que mandamos el dato.
En query parameters escribimos en el primer parámetro
auth : secreto de nuestra base de datos
Este código es obtenido en firebase en configuración de proyecto, cuentas de servicio, secretos de base de datos tal como se explicó en el apartado de arriba.
Lo demás lo dejamos como está y damos en save. Ahora flasheamos el código a nuestro photon, teniendo conectado el dispositivo y que esté respirando en color cyan significa que está conectado a internet correctamente. Para flashear vamos a build.particle.io , seleccionan el código que quieren flashear o el proyecto, después van a devices y aquí aparecerán todos los dispositivos que ustedes tienen vinculados a su cuenta. Seleccionen sus dispositivo y damos click en el icono del rayito.
Ahora empezará a mandar datos a firebase. Podemos ver esto en tiempo real en nuestra cuenta de firebase en el apartado de nuestra base de datos.
Debería de verse de la siguiente manera.
Y eso es todo, una manera muy básica de conectarse a firebase usando el photon de particle.io. En otro tutorial mostraremos como leer estos datos desde una web usando p5.js una librería de Javascript.
Comments