Enviar datos directamente a Google Docs desde un PicMicro


Controlar la temperatura (o el tamaño que sea) desde cualquier lugar del planeta y compartir datos en la nube de Google gracias  a una simple  hoja de cálculo ya es posible  .Ademas  también muy sencillo gracias a FTPmicro y algunas implementaciones de la pila TCP / IP de Microchip.

¿Te gustaría ser capaz de controlar la temperatura de la cámara frigorífica o cualquier otro dispositivo repartidos por todo el mundo y enviar los datos en tiempo real a una hoja de cálculo de documento estándar? Y si este documento tuvo siempre en línea y de fácil acceso desde cualquier lugar del planeta? Todo es posible si usted tiene una conexión a Internet, una cuenta de Google y un PICmicro mano 🙂

Enviar a mis documentos de Google Docs con PICmicro

Primero usted tiene que crear  un  documento  de Google (que pronto pasará a Google Drive)  creando  un  nuevo formulario . A continuación, aparecerá una pantalla en la que puede configurar los “titulares de las preguntas” que no son más que los títulos de las columnas que organizarán nuestros datos.
En el ejemplo    insertaron Device en Roma y luego en Milán.
Una vez que haya guardado (automáticamente)  esto , debe volver a la página principal de Google Drive (anteriormente Documentos) y nos encontramos con nuestro documento a la que puede asignar un nombre, en nuestro ejemplo, controlar la temperatura, y luego modificar la primera línea de la primera columna de “información histórica” ​​para Marca de tiempo que nos dará la hora exacta de la actualización de la célula.
Así que vamos a tener nuestra primera línea que corre 3 columnas:
Fecha y hora – Dispositivo de Roma – Dispositivo de Milán

Por supuesto, todos estos nombres se pueden personalizarse de acuerdo a sus necesidades,asi como  también puede aumentar el número de columnas para controlar un mayor número de dispositivos.

A continuación, debe compartir el documento para que sea público y   visible
,(puede compartirse sólo con algunas personas).

El formulario también será un enlace para compartir, consistentente en  un acceso rápido que  puede  difundir  a sus amigos para que acceso directo, en tiempo real, los datos actualizados sobre el documento:
https://docs.google.com/spreadsheet/ccc?key=0Ail81YGXRx8XdFVJMDBVYS02YjZ …

En este punto tenemos que ir a averiguar el nombre de las cajas, estamos hablando de el nombre asignado por el software para reconocer las diferentes columnas, que es diferente del nombre asignado por nosotros 😉

Para ello, basta con echar un vistazo a la fuente de su página web de nuestra hoja de cálculo, formulario que se encuentra en el menú-> editar, compruebe el nombre de los campos de entrada utilizados como encabezados. It ‘s sólo una confirmación, ya que Google designe el formulario de entrada con entry.NumeroProgressivo.single

a continuación:

entry.0.single (En la columna Device en Roma)
y
entry.1.single (En la columna Device en Milán)

al final de la misma página web, usted encontrará también el enlace con el formkey

“Usted puede ver el formulario publicado a continuación: https://docs.google.com/spreadsheet/viewform?formkey=dFVJMDBVYS02YjZwNFl …

Por favor, anótelo, servirá como acceso remoto clave para el formulario!

Ahora usted tiene todos los parámetros que se incluirán en la configuración de la carga de firmware en PICmicro (FTPmicro)

Sabemos que con el fin de acceder al documento se utiliza el formkey
y escribir en filas en la columna de ROMA entry.0.single que tenemos que utilizar, en lugar de entry.1.single MILAN

Estos parámetros se pueden programar a continuación, ya sea en FTPmicro ROMA (0) y que de Milano (1)

Encabezado HTTP

La cadena de actualizar los datos de las celdas, se puede verificar a través del navegador, de hecho, sólo tienes que escribir en la url compuesta formkey y las células y sus valores en su navegador para ver los datos que se envían a la hoja de cálculo de Google relevantes.
Para transformar estos datos en código legible, debe pasar a través de un visor de encabezado http como
http://web-sniffer.net/
De esta manera usted puede tener los datos exactos que se deben incluir en el firmware.

 

El firmware de FTPmicro (PICmicro 18F67J60)

En el codigo se utilizó la pila tcp / ip  version 5:41 de Microchip   las siguientes configuraciones e implementaciones:

en el archivo de TCPIP ETH97.h permiten los siguientes módulos:

# Definir el protocolo de configuración STACK_USE_DHCP_CLIENT / / dinámica de host para obtener la dirección IP del cliente y otros parámetros
# Definir STACK_USE_GENERIC_TCP_CLIENT_EXAMPLE / / Ejemplo de cliente HTTP en GenericTCPClient.c
# Definir STACK_USE_DNS / / Domain Name Service Client para resolver las cadenas de nombre de host en direcciones IP

en GenericTCPClient.c archivo realice los siguientes implementaciones:

estática BYTE ServerName [] = “spreadsheets.google.com”;
estática ServerPort WORD = 80;RemoteURL1 BYTE ROM estática [] = “formkey =”;
Formkey BYTE ROM estática [] = “dFVJMDBVYS02YjZwNFlPVXp4Q1dHMXc6MQ”;
RemoteURL2 BYTE ROM estática [] = “& IFQ &”;
ROM / / Static BYTE Entry0 [] = “entry.0.single =” / / Número del cambio Coloumn AQUÍ para actualizar (0 = dispositivo en Roma)
Entry0 BYTE ROM estática [] = “entry.1.single =” / / Número del cambio Coloumn AQUÍ para actualizar (1 = Dispositivo de Milán)Temperaturas BYTE extern [2];

y luego

TCPPutROMString (MySocket, (BYTE ROM *) “POST / formResponse HTTP/1.1 \ r \ n”);
TCPPutROMString (MySocket, (BYTE ROM *) “Anfitrión:”);
TCPPutString (MySocket, ServerName);
TCPPutROMString (MySocket, (BYTE ROM *) “\ r \ n”);
TCPPutROMString (MySocket, (BYTE ROM *) “Connection: close \ r \ n”);
TCPPutROMString (MySocket, (BYTE ROM *) “Content-Type: application /-www-form-urlencoded x \ r \ n”);
TCPPutROMString (MySocket, (BYTE ROM *) “Content-Length: 83 \ r \ n”);
TCPPutROMString (MySocket, (BYTE ROM *) “\ r \ n”);
TCPPutROMString (MySocket, RemoteURL1);
TCPPutROMString (MySocket, formkey);
TCPPutROMString (MySocket, RemoteURL2);
TCPPutROMString (MySocket, Entry0);
TCPPutString (MySocket, temperatura);
TCPPutROMString (MySocket, (BYTE ROM *) “& # B0C y submit = Enviar”);

A continuación, en el archivo principal, luego MainDemo.c inserta:

/ /
/ / Aplicación principal punto de entrada.
/ /Temperaturas sin firmar char [2];void main (void){
estática DWORD t = 0;
DWORD estática dwLastIP = 0;/ / Inicializa el hardware específico de la aplicación
InitializeBoard ();

TickInit ();

/ / Inicializar Stack y aplicaciones relacionadas con las variables NV en AppConfig.
InitAppConfig ();

/ / Inicializar capas de la pila de núcleo (MAC, ARP, TCP, UDP) y
/ / Módulos de aplicación (HTTP, SNMP, etc.)
StackInit ();

mientras que (1)
{
/ / Si (TickGet () – t> = TICK_SECOND) / / about 5 seg. – >> Dispositivo de Roma REFRESCO
if (TickGet () – t> = TICK_MINUTE/8ul) / / about 30 seg. – >> Dispositivo de Milán REFRESCO
{
t = TickGet ();
GenericTCPClient ();
}

/ / Esta tarea realiza la tarea normal de pila, incluida la comprobación
/ / Para los paquetes entrantes, el tipo de paquete y llamar
/ / Entidad pila adecuada para procesarla.
StackTask ();

/ / Esta tarea Invoca cada una de las tareas fundamentales de la aplicación de la pila
StackApplications ();

/ / Procesar las tareas específicas de la aplicación aquí.
Processio ();

}
}

Lo ‘sólo la parte que se ocupa de la gestión de los tiempos de actualización. De hecho los dos FTPmicro se han programado con diferentes tiempos de actualización. El dispositivo en Roma envía datos a Google hoja de cálculo cada 5 segundos, mientras que en Milán cada 30 segundos. Las temperaturas se van a actualizar en relación con estos tiempos.

En la llamada a processio habrá los resultados de la conversión analógica a digital se volvieron a representar numéricamente la temperatura medida con el sensor de temperatura de a bordo dell’FTPmicro.

Gracias siempre a la forma de Google Drive, usted puede convertir los datos de la tabla en un gráfico. Este es un resultado para controlar la temperatura de los dos dispositivos en dos lugares diferentes.

Todo el firmware es software libre tan fácilmente personalizable, también puede utilizar los comentarios de este artículo para reportar mejoras y / o implementaciones.

Aquí está el enlace al código de Google para descargar la fuente y todo el proyecto listo para MPLAB IDE de Microchip.
http://code.google.com/p/from-picmicro-to-google/downloads/list

Fuente  aqui