Como actualizar una hoja de calculo con un botón externo


 Ted Benson  queria  diseñar un botón simple que pueda pegarse a la pared y pulsar para registrar ciertos eventos asociados a la crianza de su hijo . Por suerte , Amazon acababa de empezar a enviar sus nuevos botones Dash , los cuales se pueden transformar en exactamente eso con sólo unos minutos, pero obviamente esa no pretende ser la utilidad de este dispositivo.

Los botones son pequeños, de plástico  y de un coste ínfimo (  5€) ,pero ahí no va mas pues ademas incluye  una batería y una conexión WiFi dentro. Amazon quiere que usted los pegue en el interior de sus puertase y utilizarlos para volver a pedir productos de uso cotidiano  como pueden ser los pañales o papel higiénico ( por ejemplo simplemente pulsando el botón, obtener un nuevo paquete de pañales  por medio del mensajero  en dos días).

Vamos a mostrarle cómo secuestrar y utilizar estos botones para casi cualquier cosa que desee. Aquí está una vista previa de vídeo corto de los resultados. Siga leyendo para ver cómo puede construir esto usted mismo en sólo unos minutos.

Video del resultado final. Puede conectar tantos botones como desee para grabar cosas alrededor de su casa. El retardo entre la pulsación del botón y el cambio de la hoja de cálculo se debe al proceso de arranque del hardware Dash.

Aquí está el truco: escuchar el botón para despertar y conectarse a la red.

Nuestro objetivo es detectar cuando uno de estos botones Dash se empuja y luego hacer algo más que ordenar más pañales en Amazon. El hack impresionante sería abrir el botón y reprogramarlo (personalmente me lo apunto)  pero  vamos a tomar la ruta fácil: sólo vamos a escribir un programa simple que rastrea nuestra red wifi para buscar  la evidencia de que el botón fue pulsado  y luego registra un punto de datos cuando escucha estos.

Resulta que Amazon nos dio una manera muy fácil de hacer esto porque estaban tan preocupados con el ahorro de energía pues estos  botones  se desactivan la mayor parte del tiempo para conservar la batería dentro. Sólo se encienden cuando son pulsados. Y eso significa que tienen que volver a conectarse a su red Wifi cada vez que son pulsados. Eso es fácil de detectar.

Los dispositivos de Internet no solo se conectan a una red Wifi y empiezan a hablar con Amazon: se presentan primero a la red local . Esta introducción se hace con algo llamado una sonda ARP , y es esencialmente una comprobación de seguridad para asegurarse de que la dirección MAC que el dispositivo va a utilizar como identificador ya no está siendo utilizada por otra persona.

Cada vez que pulsas un botón Dash, se vuelve a conectar a la red, causando una transmisión predecible  de llamada una sonda ARP que podemos detectar y actuar.

Eso es una gran noticia para nosotros: cada vez que se pulsa un botón Dash, se enciende su radio y transmite rápidamente el mensaje, «Hola! Mi nombre es [Dirección MAC]! «

Así, que conceptualmente, el problema esta resuelto pues sólo tenemos que:

  1. Evitar que el botón realice cualquier pedido
  2. Escuche las sondas ARP del botón Dash y
  3. Traducir esas sondas a actualizaciones de hojas de cálculo

 

 

Paso 1: Evite que el botón  lance una compra

 

Lo primero que debe hacer es configurar los botones para enviar mensajes cuando los pulse , pero en realidad no termines el proceso de  compre  . Cuando obtiene un botón Dash, Amazon le da una lista de instrucciones de configuración para empezar. Simplemente siga esta lista de instrucciones, pero no complete el paso final – no seleccione el producto particular que desea ordenar.

El último paso para el botón Huggies, por ejemplo, es seleccionar cuál de los varios productos Huggies desea. Simplemente no responda a esta pregunta y no tendrá que preocuparse de comprar nada.

 

Paso 2: Detectar cuando un botón se pulsa por  monitorizacion de sondas ARP

 Así que ahora su botón está enviando mensajes a la red cada vez que se empuja. El siguiente paso es oler la red WiFi para estos mensajes. Recuerde, estamos buscando algo llamado una sonda ARP. Para hacer eso, vamos a escribir un pequeño programa de Python usando una bibliotecallamada Scapy .

Solo copie y pegue el siguiente código:

from scapy.all import *

def arp_display(pkt):
   if pkt[ARP].op == 1: #who-has (request)
       if pkt[ARP].psrc == ‘0.0.0.0’: # ARP Probe
              print «ARP Probe from: » + pkt[ARP].hwsrc

print sniff(prn=arp_display, filter=»arp», store=0, count=10)

Con ese programa en ejecución – aquí está la parte de baja tecnología – se rastrea  un botón cuando es presionado. Aparecerá un mensaje después de unos segundos (¡los botones tardan un tiempo en encenderse!). Esa es la dirección MAC que identifica de forma exclusiva ese botón.

Cada vez que presiona el botón Dash, se despierta y emite una solicitud ARP. Al observar la salida de sniffer de estas solicitudes en tiempo real, puede aprender la dirección MAC de cada botón.

Ahora que conocemos las direcciones MAC, vamos a codificarlas en nuestro programa python  .

En este caso el código y las capturas de pantalla a continuación son para un ejemplo de boton. Sus direcciones se verán diferentes.

Aquí está el código modificado:

from scapy.all import *
def arp_display(pkt):
      if pkt[ARP].op == 1: #who-has (request)
          if pkt[ARP].psrc == ‘0.0.0.0’: # ARP Probe
            if pkt[ARP].hwsrc == ’74:75:48:5f:99:30′: # Huggies
                     print «Pushed Huggies»
            elif pkt[ARP].hwsrc == ’10:ae:60:00:4d:f3′: # Elements
                   print «Pushed Elements»
            else:
                   print «ARP Probe from unknown device: » + pkt[ARP].hwsrcprint sniff(prn=arp_display, filter=»arp», store=0, count=10)

Y aquí está la salida de la consola cuando presionamos un  botón mientras este programa se está ejecutando:

Ya casi terminamos! Nuestro código identifica cada pulsación de botón correctamente. Ahora sólo tenemos que registrar un punto de datos en respuesta.

Paso 3: Grabe los datos de pulsaciones de botones en una hoja de cálculo de Google

Ahora todo lo que tenemos que hacer es grabar datos cada vez que se pulsa un botón. Para ello, usaremos un Magic Form , una herramienta que Cloudsttch , que  permite enviar datos desde  cualquier lugar  a una Hoja de Google.

Simplemente visite Cloudstitch, cree un formulario mágico y se le dará una URL que agregará filas a su hoja de cálculo cuando publique los datos del formulario.

Así que todas las piezas están en su lugar ahora: antes teníamos un poco de código que imprime un mensaje cada vez que se pulsa un botón Dash. Ahora solo agregamos unas cuantas líneas de código para enviar datos a nuestro Formulario Mágico. En lugar de pegar en todo el ejemplo actualizado nuevamente, solo enlazarémos con la versión completa y en su lugar mostrarle la parte que registra una entrada de pañales Poopy en nuestro formulario mágico. Justo después de imprimir «Huggies empujado» a la pantalla, se agrego este código, que envía dos campos, un Timestamp y el mensaje «Poopy Diaper» a la URL del formulario.

¡Eso es! Vuelva a ejecutar el programa, presione los botones, y verá las filas agregadas a su hoja de cálculo como lo hace!

 

Conclusión: El IoT ya está aquí para quedarse 

Mucha gente se burlaba de Dash Buttons cuando Amazon los lanzó el día antes del Día de los Inocentes . Sin embargo, independientemente de lo que usted piense acerca de Dash como un producto de consumo, es un prototipo sin duda  convincente de lo que  Internet de las cosas va a parecer.

Fuente https://blog.cloudstitch.com

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.