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

Acceso web de Sensores Analogicos para Raspberry Pi (parte 3)


En un post anterior veíamos algunas de las posibilidades de  conexión de sensores digitales  a nuestra Raspberry Pi como puede ser añadir sensores I2C con el CI DS1820 , sensores de Co2 basados en el Mq4, sensores genéricos,sensores de presión con el BMP180,sensores de temperatura basados en el TMP102, sensores de proximidad basados en el VCNL 4000o  o los sensores de luminosidad basados en el  TSL2561.

Como todos sabemos  existen también una cantidad muy alta de sensores cuya salida no es digital , los cuales en principio no se podrían conectar directamente a nuestra Raspberry, pero esto no es exactamente así porque si podemos conectarlos por medio de convertidores A/D y D/A y otros circuitos  como empezamos a  ver en  post anteriores

Hoy acabamos la entrega de conexiones analógicas  a nuestra Raspberry Pi  usando  algunos de los circuitos que se  explicaron viendo precisamente  conectándolos por fin  aun un un mundo infinitos de posibilidades.

Vemos a continuación algunos de ellos:

Termistor

 

Un termistor es un sensor de temperatura por resistencia basandose su funcionamiento en la variación de la resistividad que presenta un semiconductor con la temperatura. El término termistor proviene de Thermally Sensitive Resistor. Existen dos tipos de termistores:

  • NTC (Negative Temperature Coefficient) – coeficiente de temperatura negativo  .
  • PTC (Positive Temperature Coefficient) – coeficiente de temperatura positivo (también llamado posistor).

Cuando la temperatura aumenta, los tipo PTC aumentan su resistencia y los NTC la disminuyen, razon por la cual lo mas habitual es usar NTC’s  en todas las aplicaciones.

Un par de notas antes de comenzar:

  • Para poder utilizar un sensor análogo con la tenemos que utilizar un convertidor de analógico a Digital .Para este ejemplo vamos a utilizar el MCP3008 para esta tarea.
  • Asegúrese de que Raspberry Pi está apagado al conectar los cables.
  • Cuando utilice un cable de cinta GPIO, asegúrese de que está conectado el cable (es un color diferente que los otros) en la esquina de la Raspberry Pi y la parte superior de tu pastel de Pi.
  • El diagrama proporcionado es sólo un ejemplo de cómo conectar el sensor. Hay muchas maneras para conectar sensores y extensiones, así que trate de lo que funciona mejor para usted!
  • Algunas  placas de prototipos (usados en los diagramas a continuación) tienen una linea de alimentación que se separa en el medio. Si este es el caso, asegúrese de que sus sensores están conectados en la misma mitad de la placa como su  Pi.

Use el siguiente diagrama para conectar un termistor.

Paso 1

Conecte la línea de alimentación para el termistor a través de la resistencia  de 10K.

Paso 2

Conecte la línea de tierra para el termistor.

Paso 3

Conectar el termistor a uno de los 8 canales de la MCP3008. Para este ejemplo, CH0.

Paso 4

¡Listo! Ahora puede Agregar el termistor a su panel de control de Cayenne  usando canal del MCP3008

 

VCNL4000

Hablamos de un doble sensor de  proximidad y sensor de luminosidad integrado en una sola placa  y cuya salida puede ser procesada directamente por nuestra Pi.

Un par de notas antes de comenzar:

  • Asegúrese de que Raspberry Pi está apagado al conectar los cables.
  • Cuando utilice un cable de cinta GPIO, asegúrese de que está conectado el cable (es un color diferente que los otros) en la esquina de la Raspberry Pi y la parte superior de tu pastel de Pi.
  • El diagrama proporcionado es sólo un ejemplo de cómo conectar el sensor. Hay muchas maneras para conectar sensores y extensiones, así que trate de lo que funciona mejor para usted!
  • Algunas  placas de prototipos (usados en los diagramas a continuación) tienen una linea de alimentación que se separa en el medio. Si este es el caso, asegúrese de que sus sensores están conectados en la misma mitad de la placa como su  Pi.

 

Use el siguiente diagrama para conectar un VCNL4000 de proximidad y sensor de luminosidad.

Paso 1

Conecte las líneas de energía. Conecte el 3.3V 3.3V encendido el VCNL4000 perno de la fuente (3.3) y 5V al pin emisor de IR (IR +).

Paso 2

Conectar toma de tierra de laPi a VCNL4000 (GND).

Paso 3

Conecte las clavijas SDA de la VCNL4000  a la Pi.

Paso 4

Conecte los pines SCL de la VCNL4000  a la Pi.

Paso 5

¡Listo! Ahora puede agregar el sensor de VCNL4000 en el panel de Cayenne

Fotoresistor

 

Una fotorresistencia también llamada LDR  por ssu siglas en ingles inglés light-dependent resistor  es un componente electrónico cuya resistencia disminuye con el aumento de intensidad de luz incidente. Puede también ser llamado fotorresistor, fotoconductor, célula fotoeléctrica o resistor dependiente de la luz.

Su cuerpo está formado por una célula fotorreceptora y dos patillas siendo el valor de resistencia eléctrica  bajo cuando hay luz incidiendo en él (puede descender hasta 50 ohms) y muy alto cuando está a oscuras (varios megaohmios).

Un par de notas antes de comenzar:

  • Para poder utilizar un sensor análogo con la frambuesa Pi tenemos que utilizar un convertidor de analógico a Digital. Para este ejemplo utilizaremos el MCP3008 para esta tarea. Este tutorial asume que usted ya tiene el MCP3008 conectado. Consulte el Tutorial de MCP3008 si necesita ayuda con la parte.
  • Asegúrese de que Raspberry Pi está apagado al conectar los cables.
  • Cuando utilice un cable de cinta GPIO, asegúrese de que está conectado el cable (es un color diferente que los otros) en la esquina de la Raspberry Pi y la parte superior de tu pastel de Pi.
  • El diagrama proporcionado es sólo un ejemplo de cómo conectar el sensor. Hay muchas maneras para conectar sensores y extensiones, así que trate de lo que funciona mejor para usted!
  • Algunas  placas de prototipos (usados en los diagramas a continuación) tienen una lienea de alimentación que se separa en el medio. Si este es el caso, asegúrese de que sus sensores están conectados en la misma mitad de la placa como su  Pi.

 

Use el siguiente diagrama para conectar el fotoresistor.

Paso 1

Desde el pastel de Pi para alimentar la fotorresistencia.

Paso 2

Conecte la fotorresistencia a tierra a través de un resistor de pull-down de 10K.

Paso 3

Conecte la fotorresistencia a uno de los 8 canales de la MCP3008. Para este ejemplo, CH0.

Paso 4

¡Listo! Ahora puede agregar  la fotorresistencia a tu panel de control, utilizando el canal de MCP3008 0 para leer valores desde el sensor.

Carga analógica

 

 

Vamos  a a ver como procesar  la salida analógico  de los sensores de fuerza resistivo circular (fsr)

Un par de notas antes de comenzar:

  • Para poder utilizar un sensor análogo con la frambuesa Pi tenemos que utilizar un convertidor de analógico a Digital. Para este ejemplo utilizaremos el MCP3008 para esta tarea. Este tutorial asume que usted ya tiene el MCP3008 conectado. Consulte el Tutorial de MCP3008 si necesita ayuda con esa parte.
  • Dependiendo del sensor de presión utilizado, se requiera componentes adicionales para calibrar correctamente el sensor. Un ejemplo de utilizar amplificadores operacionales para calibrar un sensor de fuerza flexibles vea el siguiente video.
  • Asegúrese de que Raspberry Pi está apagado al conectar los cables.
  • Cuando utilice un cable de cinta GPIO, asegúrese de que está conectado el cable (es un color diferente que los otros) en la esquina de la Raspberry Pi y la parte superior de tu pastel de Pi.
  • El diagrama proporcionado es sólo un ejemplo de cómo conectar el sensor. Hay muchas maneras para conectar sensores y extensiones, así que trate de lo que funciona mejor para usted!
  • Algunas  placas de prototipos (usados en los diagramas a continuación) tienen una linea de alimentación que se separa en el medio. Si este es el caso, asegúrese de que sus sensores están conectados en la misma mitad de la placa como su  Pi.

 

Use el siguiente diagrama para conectar el Sensor de presión analógico.

Paso 1

Alimentar al sensor de presión.

Paso 2

Conectar toma de tierra para el sensor de presión, a través de la resistencia.

Paso 3

Conecte el sensor de presión a uno de los canales de entrada en el MCP3008, el canal 0 para este ejemplo.

Paso 4

¡Listo! Ahora puede añadir el sensor de presión analógico a su tablero de instrumentos, usando el  canal o de MCP3008  para leer el sensor.

 

GP2Y0A21YK

 

Hablamos ahora del   Sensor de proximidad por infrarrojos de Sharp (GP2Y0A21YK).

Este dispone de un conector JST de 3 pines y proporciona un valor analógico (voltaje) según la distancia del objeto detectado.
La salida proporciona 3,1V a 10cm hasta 0,4V a 80cm por lo que cualquier microcontrolador con una entrada ADC disponible puede fácilmente interpretar su señal sin necesidad de componentes externos como vamos a ver .

Un par de notas antes de comenzar:

  • Para poder utilizar un sensor análogo con la frambuesa Pi tenemos que utilizar un convertidor de analógico a Digital. Para este ejemplo utilizaremos el MCP3008 para esta tarea. Este tutorial asume que usted ya tiene el MCP3008 conectado. Consulte el Tutorial de MCP3008 si necesita ayuda con la parte.
  • Asegúrese de que Raspberry Pi está apagado al conectar los cables.
  • Cuando utilice un cable de cinta GPIO, asegúrese de que está conectado el cable (es un color diferente que los otros) en la esquina de la Raspberry Pi y la parte superior de tu pastel de Pi.
  • El diagrama proporcionado es sólo un ejemplo de cómo conectar el sensor. Hay muchas maneras para conectar sensores y extensiones, así que trate de lo que funciona mejor para usted!
  • Algunas  placas de prototipos (usados en los diagramas a continuación) tienen una lienea de alimentación que se separa en el medio. Si este es el caso, asegúrese de que sus sensores están conectados en la misma mitad de la placa como su  Pi.

 

Use el siguiente diagrama para conectar el Sensor de proximidad analógico.

Paso 1

Desde el Pi alimentar el sensor de proximidad (rojo).

Paso 2

Conectar la tierra del  Pi en el sensor de proximidad (negro).

Paso 3

Conecte la salida del Sensor de proximidad (amarillo) a uno de los canales de entrada en el MCP3008, el canal 0 para este ejemplo.

Paso 4

¡Listo! Ahora puede añadir el Sensor de proximidad analógicos a su tablero de instrumentos, usando canal o de MCP3008  para leer el sensor.

 

 

!!Y eso  es  todo amigos!!

Con este ultimo post  sobre el tema ,  hemos intentado cubrir  toda la serie de posibilidades que nos ofrecen  algunos circuitos Integrados para poder conectar a nuestra Raspbbery Pi un infinito abanico de sensores analógicos,,,