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

Ultima entrega de como conectar sensores analógicos a nuestra raspberry Pi


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

Thermistor
 

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
Thermistor

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

Paso 2
Thermistor

Conecte la línea de tierra para el termistor.

Paso 3
Thermistor

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
VCNL4000

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
VCNL4000

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

Paso 3
VCNL4000

Conecte las clavijas SDA de la VCNL4000  a la Pi.

Paso 4
VCNL4000

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

Photoresistor

 

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
Photoresistor

Desde el pastel de Pi para alimentar la fotorresistencia.

Paso 2
Photoresistor

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

Paso 3
Photoresistor

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

Analog Load

 

 

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
Analog Load

Alimentar al sensor de presión.

Paso 2
Analog Load

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

Paso 3
Analog Load

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

Analog Distance

 

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
Analog Distance

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

Paso 2
Analog Distance

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

Paso 3
Analog Distance

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,,,

 

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

Veremos diferentes circuitos para procesar señales analogicas con nuestra raspberry Pi


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 , lo cual 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  como vamos a ver a continuación

 

PCA9685 PWM

pca9685.png

En efecto con este CI  que podemos comprar por unos 12€  en Amazon podemos ajustar el brillo por ejemplo de 12 leds mediante PWM o por supuesto también controlar hasta 12 servos con esta placa

El  circuito contiene un controlador PWM controlado por I2C con un reloj incorporado. A diferencia de la familia TLC5940, no es necesario enviar continuamente señales pues es gestionado  utilizando sólo dos pines para controlar 16 salidas PWM de funcionamiento libre e  incluso puede encadenar 62 salidas para controlar hasta 992 salidas PWM

Funciona a 5V, lo que significa que puede controlarlo desde 3,3V y seguir con seguridad hasta 6V salidas (esto es bueno cuando se desea controlar LEDs blancos o azules con 3,4+ voltajes hacia adelante)

Lleva 3 conectores de clavija en grupos de 4, así que usted puede enchufar 16 servos a la vez (los enchufes del servo son levemente más anchos de 0.1 “por lo que usted puede apilar solamente 4 al lado de uno a en 0.1”)
La  resolución es de 12 bits para cada salida – para servos, lo que significa una resolución de 4us a 60Hz

 

Un par de notas antes de comenzar:
  • Para agregar un actuador de luminosidad necesita un controlador PWM. Para este ejemplo vamos a utilizar un regulador de la entrada-salida de PCA9685 PWM. Este tutorial asume que usted ya tiene el PCA9685 conectado. Consulte el Tutorial de PCA9685 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!
  • Algunos placas de prototipos tamaño completo (usados en los diagramas a continuación) tienen una linea de alimntació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 tu pastel de Pi.

Use el siguiente diagrama para conectar un LED a su frambuesa Pi y ajustar su brillo mediante PWM.

Paso 1

Conecte uno de los pines PWM de la PCA9685 a lo LED, a través de un resistor conectado al cable (positivo) más. En este caso, utilizaremos canal 0 en el PCA9685.
Luminosity

Paso 2

Conecte tierra del canal 0 de la PCA9685 de los LEDs más corto (negativo).
Luminosity

Paso 3

¡Listo! Ahora puede Agregar el actuador de luminosidad a su panel de control, utilizando el canal 0 en el PCA9685 para ajustar el brillo de los LEDs.

TMP36

TMP36

Antes de comenzar,para poder utilizar un sensor análogo del tipo  TMP36  con la RP 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.

Use el siguiente diagrama para conectar un sensor de temperatura de analógico TMP36.

 

Paso 1

Conecte la energía eléctrica desde el  Pi al TMP36 pin 1 (+ VS).
TMP36

Paso 2

Conectar la tierra de la Pi al TMP36 pin 3 (GND).
TMP36

Paso 3

Conectar la clavija de TMP36 2 (VOUT) en uno de los 8 canales de la MCP3008. Para este ejemplo, CH0.
TMP36

Paso 4

¡Listo! Ahora puede añadir el sensor TMP36 al tablero de Cayenne, usando canal de la MCP3008  para leer el valor del sensor.

 

MCP3004

MCP3004

El  MCP3004  es  un conversor A/D de canales de 10 bits de resolución

Use el siguiente diagrama para conectar su Convertidor A/D de MCP3004 con interfaz en serie SPI.

Paso 1

Desde el pastel de Pi para alimentar el pin MCP3004 14 (VDD) y 13 (VREF).
MCP3004

Paso 2

Conectar la tierra de la Pi al MCP3004 pin 7 (DGND) y 12 (AGND).
MCP3004

Paso 3

Conectar patillas SCLK de la Pi y el MCP3004 11 (CLK).
MCP3004

Paso 4

Conectar patillas MISO de la  Pi y el MCP3004 10 (DUDA).
MCP3004

Paso 5

Conectar patillas MOSI de la Pi y el MCP3004 9 (DIN).
MCP3004

Paso 6

Conecte la clavija de la entrada de la selección de chip MCP3004 8 (CS/SHDN) a uno de los pines del chip select Pi, CE0 en este ejemplo
MCP3004

Paso 7

¡Listo! Ahora puede Agregar el convertidor de MCP3004 a tu panel de control usando el chip-select 0.

MCP3204

MCP3204

Use el siguiente diagrama para conectar su Convertidor de A/D MCP3204 con interfaz en serie SPI.

Paso 1

Desde  Pi puede alimentar el pin MCP3204 14 (VDD) y 13 (VREF).
MCP3204

Paso 2

Conectar la tierra del  Pi al MCP3204 pin 7 (DGND) y 12 (AGND).
MCP3204

Paso 3

Conectar patillas SCLK del Pi y la MCP3204 11 (CLK).
MCP3204

Paso 4

Conectar patillas MISO del Pi y la MCP3204 10 (MOSI).
MCP3204

Paso 5

Conectar patillas MOSI del Pi y la MCP3204 9 (DIN).
MCP3204

Paso 6

Conecte la clavija de la entrada de la selección de chip MCP3204 8 (CS/SHDN) a uno de los pines del chip select del Pi , CE0 en este ejemplo.
MCP3204

Paso 7

¡Listo! Ahora puede Agregar el convertidor MCP3204 a su panel de control usando el chip-select 0.

MCP3208

MCP3208

El  MCP3008  es  un conversor A/D de 8 canales de 10 bits de resolución

Use el siguiente diagrama para conectar su Convertidor A/D de MCP3208 con interfaz en serie SPI.

 

Paso 1

Desde el  Pi alimentar el pin MCP3208 16 (VDD) y 15 (VREF).
MCP3208

Paso 2

Conectar la tierra del pastel de Pi al MCP3208 pin 9 (DGND) y 14 (AGND).
MCP3208

Paso 3

Conectar patillas SCLK del  Pi y el MCP3208 13 (CLK).
MCP3208

Paso 4

Conectar patillas MISO del  Pi y el MCP3208 12 (MOSI).
MCP3208

Paso 5

Conectar patillas MOSI del Pi y el MCP3208 11 (DIN).
MCP3208

Paso 6

Conecte la clavija de entrada MCP3208 chip select (CS/SHDN) de 10 a uno de los pines del chip select del Pi , CE0 en este ejemplo.
MCP3208

Paso 7

¡Listo! Ahora puede Agregar el convertidor de MCP3208 a su panel de control usando el chip-select 0.

MCP3008

MCP3008

El  MCP3008  es  un conversor A/D de 8 canales de 10 bits de resolución  de bajo coste (6€)

Use el siguiente diagrama para conectar su convertidor A/D de MCP3008 con interfaz en serie SPI.

Paso 1

Desde el Pi alimentar el pin MCP3008 16 (VDD) y 15 (VREF).
MCP3008

Paso 2

Conectar la tierra del Pi al MCP3008 pin 9 (DGND) y 14 (AGND).
MCP3008

Paso 3

Conectar patillas SCLK del Pi y el MCP3008 13 (CLK).
MCP3008

Paso 4

Conectar patillas MISO del  Pi y el MCP3008 12 (MOSI).
MCP3008

Paso 5

Conectar patillas MOSI del  Pi y el MCP3008 11 (DIN).
MCP3008

Paso 6

Conecte la clavija de entrada MCP3008 chip select (CS/SHDN) de 10 a uno de los pines del chip select Pi Zapatero, CE0 en este ejemplo.
MCP3008

Paso 7

¡Listo! Ahora puede Agregar el convertidor de MCP3008 a su panel de control, usando el chip-select 0.

ADS1115

ADS1115

El  ADS1115 es un convertidor A/D de alta resolucion de 16 bits de 4 canales de un coste muy contenido (unos 4,25€).

El ADS1115 le permite seleccionar esclavo diferentes direcciones para el convertidor. Para este ejemplo usaremos 0x48.

Use el siguiente diagrama para conectar su convertidor A/D de ADS1115.

 

Paso 1

Desde el Pi para alimentar el ADS1115.
ADS1115

Paso 2

Conectar la tierra del  Pi a la ADS1115.
ADS1115

Paso 3

Conecte los pines SCL de la ADS1115   a la  Pi.
ADS1115

Paso 4

Conecte las clavijas SDA de la ADS1115 de  la Pi.
ADS1115

Paso 5

Conecte los pines GND y ADDR en la ADS1115. Esto resultará en una dirección de I2C del 0x48.
ADS1115

Paso 6

¡Listo! Ahora puede Agregar el convertidor de ADS1115 en el tablero de Cayenne, con dirección por defecto de 0x48.

ADS1015

ADS1015

Hablamos del ADS1015  un conversor  A/D de 12 bits  de 5 canales .El ADS1015 le permite seleccionar esclavo diferentes direcciones para el convertidor. Para este ejemplo usaremos 0x48.

Use el siguiente diagrama para conectar su convertidor A/D de ADS1015.

 

Paso 1

Desde el pastel de Pi para alimentar el ADS1015.
ADS1015

Paso 2

Conectar la tierra del  Pi a la ADS1015.
ADS1015

Paso 3

Conecte los pines SCL de la ADS1015 a la Pi.
ADS1015

Paso 4

Conecte las clavijas SDA de la ADS1015 a la  Pi.
ADS1015

Paso 5

Conecte los pines GND y ADDR en la ADS1015. Esto resultará en una dirección de I2C del 0x48.
ADS1015

¡Listo! Ahora puede Agregar el convertidor de ADS1015 en el panel de Cayenne, con dirección por defecto de 0x48.

 

MCP23018

MCP23018

El MCP23018 es un convesor A/D de 12bits de 4 canales  de alta precisión .Use el siguiente diagrama para conectar su MCP23018 IO expansor.

Paso 1

Alimentar 5V desde el zapatero de Pi a VDD (pin 11) en el MCP23018.
MCP23018

Paso 2

Conectarse tierra del Pi el VSS (pin 1) en el MCP23018.
MCP23018

Paso 3

Conectar los pines SCL de la MCP23018 (pin 12)  de su Pi.
MCP23018

Paso 4

Conecte las clavijas SDA de la MCP23018 (pin 13)  a la  Pi.
MCP23018

Paso 5

Alimentar el reset (pin 16) en el MCP23018. Tira de alta Reset es necesario para el funcionamiento normal.
MCP23018

Paso 6

Conectar toma de tierra al pin de dirección (pin 15) en el MCP23018. Esto le dará el expansor de una dirección predeterminada de 0 x 20.
MCP23018

Paso 7

¡Listo! Ahora puede Agregar el MCP23018 en el panel de Cayenne, con dirección por defecto de 0 x 20.

No se preocupe  hay muchos mas posibilidades  que hablaremos en proximos post

Acceso web a Sensores conectados a una Raspberry Pi

Cayenne trabaja con temperatura, luminosidad, presión/distancia, movimiento y genéricos sensores conectados a los dispositivos de la Raspberry Pi.


Aunque  efectivamente  cualquier  Raspeberry  PI  no puede procesar directamente señales analógicas al no contar  en su electronica interna con convertidores  A/D  y D/A multiproposito como otras placas (Arduino,Netduino,Edison,etc), todavía es posible procesar gran cantidad de información,  pues cuenta  con 14  entradas/salidas digitales que pueden usarse para cualquier propósito como vamos a ver a  continuación, usando como referencia la plataforma Cayenne ,la cual nos permite rápidamente obtener lecturas en tiempo real  de cualquier sensor que conectemos a nuestra Raspberry Pi

Aunque es posible conectar múltiples sensores analógicos  usando CI auxiliares, vamos a  ver en primer lugar  todas las posibilidades   de usar las entradas/salidas digitales para conectar diferentes tipos de sensores.

Un par de notas antes de comenzar:

  • Los diagramas proporcionados son sólo 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!
  • Asegúrese de que Raspberry Pi está apagada 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 su RP Pi.
  • Algunas placas de prototipos  (usados en los diagramas a continuación) tienen unas líneas de alimentación  que se separan en el medio. Si este es el caso, asegúrese de que sus sensores están conectados en la misma mitad de la placa en su Raspberry Pi.

 

 SENSORES DIGITALES

Es muy sencillo leer el estado  de cualquier interruptor conectado a la Raspberry Pi .Por extraño  que pueda parecer usar sensores basados en  interruptores es unas de las vías de sensorización mas fiables que existen pues al no haber apenas electronica los hace inmunes  a interferencias, averías, sabotaje,etc

Ademas el abanico de sensores de este tipo  no se limita a interruptores mecánicos pues , también existen sensores magnéticos , sensores de líquidos, sensores conductivos,etc , todos ellos  funcionando de una manera muy similar cerrando o abriendo el circuito en función de una determinada característica

Utilice el diagrama siguiente para conectar un sensor a una de las Entradas digitales de Raspberry Pi.

Paso 1

Conecte alimentación de  3v de la  RP Pi (pin 1 ) para alimentar el pulsador, a través de una resistencia de 10k.
Digital Input

Paso 2

Conectar la tierra de la RP Pi al pulsador(pin 9).
Digital Input

Paso 3

Conectar el pulsador (utilizando el mismo pin como la resistencia) a uno de los pines GPIO en la RP  Pi, en este caso 17 de GPIO(pin 11).
Digital Input

Paso 4

Ahora finalmente  entre en su cuenta de Cayenne , acceda  a la RP  y agregue la entrada Digital a su escritorio  de Cayyene  para poder  leer el estado del botón usando 17 GPIO.

 

g17

BMP180

BMP180

Este sensor de precisión de Bosch es la mejor solución de detección de bajo costo para medir la presión barométrica y la temperatura. Dado que la presión cambia con la altitud también se puede utilizar como un altímetro! El sensor está soldado a una placa con un regulador de 3.3V, un cambiador de nivel I2C y resistencias de pull-up en los pines I2C.

Esta placa es compatible con 5V pues lleva un regulador de 3.3V y un circuito cambiador de nivel I2C  incluidos para que pueda utilizar este sensor de manera segura con la lógica de 5V y la alimentación.

En el ejemplo  vamos a agregar un sensor de temperatura y presión de BMP180 para ver lo fácil que es empezar.

Paso 1

Conectar al linea  de 3.3V de energía desde la RP Pi a BMP180 (VIN).
BMP180

Paso 2

Conectar toma de tierra de la RP(pin 9)  Pi a BMP180 (GND).
BMP180

Paso 3

Conectar los pins el SCL (pin 5) en el zapatero de Pi y BMP180.
BMP180

Paso 4

Conecte un hilo de la SDA (pin 3) en la RP Pi y BMP180.
BMP180

Paso 5

¡Listo! Ahora puede Agregar el BMP180 a su tablero de instrumentos.

Ahora finalmente  entre en su cuenta de Cayenne , acceda  a la RP  y  haga clic en Agregar nuevo > dispositivo / Widget.

Add New Device

  1. Seleccione sensores, temperatura, y BMP180.
  2. Haga clic en Add Sensor.

Add Sensor

Los widgets de temperatura y presión de BMP180 se agregan a su tablero de instrumentos.

Vamos a probarlo! Coloque su mano sobre el sensor de BMP180. Las actualizaciones de valor de la temperatura tan pronto como se recibe un cambio de temperatura.

Puede comprobar el estado actual de su sensor en cualquier momento visitando el tablero de instrumentos.
Added Sensor

TMP102

TMP102
Se trata de un tablero del desbloqueo de accesorios para el pequeño sensor de temperatura digital TMP102. El TMP102 es un sensor digital (I2C alias TWI), tiene una resolución de 0,0625 ° C, y tiene una precisión de hasta 0,5 ° C. Este es un sensor muy práctico que requiere una muy baja corriente.

La comunicación con el TMP102 se logra a través de una interfaz serie de dos hilos. No existe regulador de tensión de a bordo, por lo que el voltaje suministrado debe estar entre 1,4 a 3.6VDC. Los condensadores de filtrado y resistencias de pull-up se incluyen een la placa .

Use el siguiente diagrama para conectar el sensor de temperatura TMP102.

Una  nota antes de comenzar: Algunos sensores de TMP102 le permiten cambiar la dirección predeterminada conectando  un puente sobre el pin de dirección. Algunas versiones, como la utilizada en este ejemplo, están conectados a una dirección predeterminada de 0x48. Consulte las especificaciones de su ficha para obtener más detalles.

 

Paso 1

Alimentar desde la RP  Pi a TMP102 mediante el pin 1 de 3.3V  (VCC).
TMP102

Paso 2

Conectar la masa   de la RP Pi a TMP102 (GND).
TMP102

Paso 3

Conecte la  toma de SDA(pin 3)  de la RP  Pi hacia a TMP102  .
TMP102

Paso 4

Conecte los pines SCL de la TMP102 a la RP Pi(pin 5).
TMP102

Paso 5

¡Listo! Ahora puede Agregar el sensor de TMP102 en el panel de Cayenne, con dirección por defecto de 0x48.

DS18B20

DS18B20

Este es el último sensor digital de temperatura DS18B20 1-Wire de Maxim IC  y  es un componente muy usado en muchos proyectos de registro de datos y control de temperatura

Envía  al bus I2C la información de la temperatura exterior en  grados C con precisión 9-12 bits, -55C a 125C (+/- 0.5C).a.

Cada sensor tiene un número de serie único de 64 bits grabado en él lo cual permite un gran número de sensores que se utilizarán en un bus de datos.

Use el siguiente diagrama para conectar el sensor de temperatura DS18B20 “1-Wire”.

Un nota antes de comenzar:Para aprovechar las ventajas de la detección automática de cayenne  de sensores 1-wire, conecte a 4 GPIO.

Paso 1

Desde la RP Pi para alimentar el pin VDD del DS18B20, use el pin1 de 3.3V. Asegúrese de que usa una resistencia de pull-up de 4k7  entre la alimentación (VDD) y la salida (DQ) en ambos pines del DS18B20.
DS18B20

Paso 2

Conectar la tierra de la RP Pi con el conector de tierra (GND) del DS18B20.
DS18B20

Paso 3

Conectar la  salida del DS18B20 (DQ) en GPIO  4 (pin 7) en la RP Pi. La Conexión a 4 GPIO permite la detección automática del dispositivo 1-wire en Cayenne.
DS18B20

Paso 4

¡Listo! Encienda su RP Pi y Cayenne automáticamente detectará el sensor DS18B20 y añadirá este  a su panel de control.

VCNL 4000

vcnl4000

El VCNL4000 puede detectar su proximidad a un objeto utilizando IR dentro de un rango de aproximadamente 20 cm. Los datos de proximidad, así como los datos del nivel de luz ambiental, se pueden recoger en una interfaz I2C.

La placa la acceso a los pines I2C, el pin Vcc, GND y el pin IR + (fuente de alimentación para el emisor IR incorporado). Simplemente necesita alimentación  de 3.3Vy dé al emisor de IR en cualquier lugar de 2.5-5V y usted será capaz de decir lo lejos que está de un objeto de hasta 20 cm.

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 pin de 3.3V de la RP Pi  al pin de  3.3V de  VCNL4000  y al alimentación de 5V(pin 5)  al pin emisor de IR (IR +).
VCNL4000

Paso 2

Conectar toma de tierra de la raspberry Pi a VCNL4000 (GND).
VCNL4000

Paso 3

Conecte las clavijas SDA de la VCNL4000 a la raspberry Pi(pin3).
VCNL4000

Paso 4

Conecte los pines SCL de la VCNL4000  a la RP Pi(Pin 5).
VCNL4000

Paso 5

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

TSL2561

TSL2561

 

TSL2561 es un sensor de luz digital avanzado, ideal para su uso en una amplia gama de situaciones de luz. En comparación con las células bajo coste CdS , este sensor es más preciso, lo que permite cálculos exactos de lux y se puede configurar para diferentes ganancia / tiempo rangos para detectar rangos de luz de hasta 0,1 – 40.000+ Lux sobre la marcha.

La mejor parte de este sensor es que contiene dos diodos infrarrojos y espectro completo! Esto significa que puede medir por separado de infrarrojos, y  el espectro completo o humano luz visible (la mayoría de los sensores sólo pueden detectar uno o el otro, lo que no representa con exactitud lo que ven los ojos humanos ya que no podemos percibir la luz infrarroja que es detectado por la mayoría de los fotodiodos)

El sensor tiene una interfaz digital (I2C). Puede seleccionar una de las tres direcciones por lo que puede tener hasta tres sensores en una placa (cada uno con una dirección I2C diferente). El qeu incluya el ADC significa que usted puede utilizar esto con cualquier microcontrolador, incluso si no tiene entradas analógicas. El consumo de corriente es extremadamente baja, así que es genial para los sistemas de registro de datos de baja potencia. sobre 0,5 mA al detectar activamente, y menos de 15 uA cuando está en modo powerdown.

Use el siguiente diagrama para conectar un sensor de luminosidad TSL2561.

Una nota antes de comenzar:El sensor de TSL2561 le permite cambiar la dirección predeterminada  tendiendo un puente sobre el pinde dirección. Dejando el pin de dirección flotante (desconectado) le dará la dirección por defecto, 0 x 39 en este ejemplo. Consulte las especificaciones de su ficha para obtener más detalles.

 

Paso 1

Alimentar desde la RP  Pi con 3.3 V (pin1)  a TSL2561 (VIN).
TSL2561

Paso 2

Conectar toma de tierra de la Rp Pi a TSL2561 (GND).
TSL2561

Paso 3

Conecte las clavijas SDA de la TSL2561  a la RP Pi(pin 3).
TSL2561

Paso 4

Conecte los pines SCL de la TSL2561 a la RP Pi(pin 5).
TSL2561

Paso 5

¡Listo! Ahora puede Agregar el sensor de TSL2561 en el panel de control de Cayenne  con dirección por defecto de 0 x 39.

 

Aunque existen muchos mas sensores y actuadores que podemos conectar a  nuestra Raspberry Pi , una vez conectados  y configurados en el panel de control de Cayenne  aparte de poder visualizar el historial , una gran utilidad es generar alertas antes determinados cambios en los valores transmitidos a la plataforma Cayenne.

Sin duda dos de las grandes utilidades es enviar alertas o notificaciones de correo ante cambios en los valores  registrados de los sensores que hemos conectado

 

Recibir alertas  SMS

Cayyene  le enviará alertas de notificación por mensaje de texto si selecciona.
Notification Alert

Correo electrónico

Cayenne le enviará alertas de notificación por correo electrónico si ha seleccionado.
Email Alert

Fuente aqui

 

Construyen un Pancreas artificial con una Raspberry Pi

Dana Lewis ,  una de los creadores originales de un páncreas artificial de código abierto , examina cómo las comunidades de código abierto permiten la innovación en la asistencia sanitaria en lugares inesperados .


Dana Lewis tiene diabetes tipo 1,  enfermedad  que ha tenido que hacer frente desde que tenía 14años . En la diabetes tipo 1, el páncreas no produce suficiente insulina – la hormona que hacen que la glucosa disponible para que las células del cuerpo para utilizar como combustible – o, a veces, el páncreas no funciona en absoluto.

El páncreas es responsable, entre otras funciones de producir y segregar hormonas importantes como la insulina (disminuye los niveles de glucosa sanguínea) y el glucagón (eleva los niveles de glucosa en la sangre),así que su falta o mal funcionamiento puede poner en peligro nuestras vidas excepto que puedas conectarte a un páncreas artificial.

La gente como Dana tienen que controlar los niveles de azúcar en la sangre muy de cerca con el uso de un monitor continuo de glucosa (CGM) bajo la piel de su abdomen, o pincharse un dedo 12 veces al día y medirse la glucosa en la gota de sangre resultante. La dosis de insulina se calcula entonces para que se corresponda con los niveles de azúcar en la sangre de la persona diabética. Este proceso es incómodo y puede ser difícil en algunas circunstancias: en particular, Dana encontró que la alarma era tan débil que no la oia al dormir en toda la noche. Si una persona diabética no corrige sus niveles los resultados pueden ser muy peligrosos. Así que Dana y su novio (ahora marido) de Scott Leibrand decidieron iniciar un proyecto para hacer que la alarma de CGM fuera suficientemente fuerte como para despertar a ella en la noche.
DIY Páncreas , es finalmente su dispositivo basado en una Raspberry Pi . La Raspberry Pi recibe los datos del CGM, controla un algoritmo de aprendizaje y provee de los comandos a su bomba de insulina. Ese algoritmo de aprendizaje significa que después de observarlo Dana presionando el botón que controla la bomba de insulina, el páncreas artificial a aprendido de sus hábitos, y obtiene su dosis correcta 100% del tiempo, incluso cuando está durmiendo.

pancreas

 

Desgraciadamente las normas de la FDA significa que Dana y Scott no pueden publicar instrucciones completas de como han construido su páncreas artificial   así  que  están trabajando en la fabricación de páncreas de forma casera de código abierto ( se puede encontrar más información aquí )  y de forma que haya  suficiente información disponible para que el sistema pueda ser replicado, para que otras personas con diabetes pueden beneficiarse de su trabajo. Necesitan voluntarios con todo tipo de habilidades: si usted está interesado en ayudar, se puede obtener más información sobre el proyecto aquí.

Para saber mas del proyecto Dana podemos ver en el video compartiendo la experiencia de la vida real de lo que sucede cuando una comunidad de código abierto se acopla con ambos fabricantes de dispositivos y los organismos reguladores como la FDA los EE.UU. , y lo que esto significa para el futuro de la innovación .

El vídeo está en inglés aunque es posible activar los subtítulos para seguir mejor la presentación e incluso activar la traducción simultanea al español.

 

 

Sencillamente es fascinante todo lo que se puede llegar a hacer gracias a la voluntad de una  comunidad y al uso de tecnología que nos acerca cada vez más  a tratamientos accesibles a todas las personas que lo necesiten aunque no dispongan de un presupuesto elevado que les posibilite acceder a esta tecnología a un coste mucho mayor.

Más información:
http://fossforce.com/2016/05/artificial-pancreas-raspberry-pi/
https://www.raspberrypi.org/blog/artificial-raspberry-pi-pancreas/
https://ourhealthandenvironment.wordpress.com/2015/11/13/i-am-now-a-bionic-woman/

Accionar mecanismos con el pensamiento

Con ingenieria inversa y algunas herramientas podemos procesar nuestro pensamiento para comandar acciones sencillas , como por ejemplo activar un pequeño ventilador o cualquier cosa qeu se nos ocurra


Las personas con discapacidades graves no pueden interactuar con su entorno como la gente normal. Ellos siempre necesitan ayuda para hacer pequeñas tareas como encender un ventilador o un televisor. Para cerrar esta brecha entre un paciente y un interruptor es necesario que haya alguna manera que no requiera movimientos musculares. La mejor manera que podía imaginar era la tecnología EEG. Esto significa que uno puede controlar un dispositivo por el uso de sus / sus ondas cerebrales sin realizar ningún movimiento físico.

 

Para ello   ha usado un juguete disponible comercialmente denominado Mindflex ,el cual utiliza el mismo chip Neurosky EEG. El autor integró un módulo Bluetooth HC-05   con  el auricular NeuroSky MyndWave para  por medio de ingeniería inversa  asi  como con  la ayuda de un Arduino y Processing    fue capaz de controlar un ventilador.

 

Los componente usados son:

  • Un auricular EEG
    Solía ​​Mindflex el auricular del juguete, ya que puede funcionar de la misma en comparación con otros auriculares a un precio razonable muy bajo. Usted puede conseguir uno en Ebay por un precio tan bajo como $ 15.
  • Un HC-05 o HC-06 del módulo del bluetooth
    Se utiliza para ajustar el auricular Mindflex – $ 6.
  • Arduino Uno – $ 12
  • Un pequeño ventilador
    Usé un pequeño ventilador del equipo de 12V para la demostración, ya que estaba mintiendo alrededor y satisfacer la necesidad.
  • Tres pequeños cables de puente.

Hay dos partes en el auricular. Un lado contiene las baterías y el otro que contiene del interruptor   contiene tambien la electrónica necesaria

  • Abra el lado que tiene un interruptor en él.
  • Retire los 4 tornillos para acceder a la placa de circuito.
  • Una vez dentro, quite los 2 tornillos que sujetan la placa de circuito a la carcasa.

Ahora tiene que soldar tres pequeños cables al circuito dentro de la caja.

  1. “T” (de transmisión) pines en el chip
  2. Uno con el GND (tierra).
  3. En tercer lugar, con el VCC (Power).

Espero que su módulo bluetooth venga on cables de puente hembra-hembra. Ahora,

  • conectar el cable soldado al pin T del circuito con el RXD
  • GND a GND
  • y el VCC a la VCC del módulo Bluetooth.

Ahora aislar todo y fijar el módulo Bluetooth con el auricular. Coloque las baterías en el otro lado del auricular y encenderlo. Una luz roja en el auricular y una luz en el módulo Bluetooth muestra que esta funcionando

El siguiente paso será el de establecer comunicación entre el auricular y el ordenador para leer los datos de EEG de ella,para lo cual primero debeemparejar el módulo Bluetooth a la computadora (puede seguir los pasos que se indican en este enlace ).

Imagen de Lea sus ondas cerebrales usando BrainWaveOSC.

Ahora, Descargue BrainWaveOSC para su plataforma y descomprimirlo en una carpeta.

Antes de ejecutar la aplicación, tendrá que identificar cómo el sistema ve su dispositivo bluetooth.
Usuarios de Windows:
Usted necesita encontrar el puerto COM que el dispositivo Bluetooth está conectado. Este enlace le ayudará a encontrar el puerto COM al que está conectado el dispositivo Bluetooth.

Una vez que encuentre el dispositivo, abra el archivo settings.xml ubicado en la carpeta de datos de BrainWaveOSC.
La cuarta línea debe decir algo así como COM6 entre las etiquetas. Cambiar eso a su cadena de dispositivo que ha encontrado antes.

Después de abrir la aplicación, se debe comenzar con un panel rojo a la izquierda y se pone verde una vez que se inicia la recepción de datos. Eso es todo, usted está leyendo sus ondas cerebrales de la corteza prefrontal del cerebro, que por lo general se ocupa de la lógica.

 

Ahora nuestro siguiente paso será utilizar estos datos para controlar un ventilador utilizando Procesamiento y Arduino

Processing es un lenguaje de programación de código abierto que está diseñado para ser fácil de usar y es ideal para principiantes. Se basa en Java, por lo que si usted está familiarizado con eso, verás algunas de las similitudes. Descárgalo aquí e instalarlo antes de empezar.

Ahora tenemos que analizar los datos (mensajes OSC) recibida a través BrainWaveOSC.

Comience abriendo procesamiento y la creación de un nuevo boceto.

Importe la Biblioteca OSC

A partir de un boceto en blanco, tendrá que importar la biblioteca de la OSC.Puede hacerlo escribiendo:

 

import oscP5.*;

or

Go to Sketch->Import Library->oscP5.

Si usted no puede encontrar oscP5, puede que tenga que añadir primero yendo a bosquejos> Importar Library-> Añadir Biblioteca … y la búsqueda de oscP5.Una vez hecho esto, tendrá que crear un objeto vacío para que en la siguiente línea escribiendo:

Oscp5 OscP5;

Crear su configuración y dibujar funciones

Esta es fácil. Sólo tienes que escribir lo siguiente:

void setup () {

}

void draw () {

}

Acaba de crear el esqueleto.

Ahora que usted tiene su esqueleto, vamos a rellenarlo y comenzar a leer los mensajes OSC difundidos por BrainWaveOSC. Asegúrese BrainWaveOSC se está ejecutando y el auricular está conectado. Usted puede decir por el color del panel de la izquierda. Si es verde, entonces estás bien.

Encontrar a su puerto de OSC
En BrainWaveOSC, busque el puerto OSC. En la esquina superior izquierda, debería ver algo como:

OSC – 127.0.0.1:7771

El 127.0.0.1 es la dirección ip localhost y 7771 es el número de puerto. Tendrá que guardar este número de puerto para después.

Configuración de procesamiento para recibir mensajes OSC

Ahora usted querrá añadir esta línea dentro de su función de configuración () entre las llaves. Consulte las imágenes como una referencia.

Su función setup () debería tener este aspecto:

void setup () {

oscp5 = new OscP5 (esto, 7771);

}

¡Genial! Sólo ha contado la aplicación para empezar a escuchar en el puerto 7771 para mensajes OSC entrantes. Ya que está en la función de configuración, sólo va a correr una vez al principio.

Recibir los mensajes OSC

A continuación vamos a crear una función para recibir los mensajes OSC.Mientras setup () sólo se ejecuta una vez, y dibujar () funciona todo el tiempo, la función crearemos sólo se ejecuta cuando se recibe un mensaje OSC.

Crear una función que tiene este aspecto:

anular oscEvent (OscMessage theMessage) {

// Imprimir la dirección y typetag del mensaje a la consola

println (“Mensaje recibido OSC El patrón de dirección es!” + theMessage.addrPattern (+) “La typetag es:”. + theMessage.typetag ());

}

 

Analizamos  el código  hacia abajo:

void oscEvent (OscMessage theMessage) dice que esta función se llamaoscEvent, y se necesita un objeto OscMessage como un parámetro llamado theMessage. Ignorar el vacío de momento, significa que no se espera que la función para devolver un valor.

La segunda línea es println, que es la abreviatura de impresión Line. Esto escribe mensajes en el área de color negro debajo de su editor de texto cuando se ejecuta la aplicación (llamada la consola). El contenido de println dicen que imprimir “OSC Mensaje recibido!” y utiliza dos métodos de OscMessage:

  • Patrón Dirección – Esto es como el tema de un correo electrónico. Es el nombre del mensaje
  • Typetag – Esto le indica lo que los contenidos del mensaje son
    • Por ejemplo, un typetag de iii significa que hay 3 números enteros dentro del mensaje

Ejecutar la aplicación

Lo que tenemos que hacer ahora es extraer los números de los mensajes que hemos estado recibiendo y hacer algo útil con él.Para esto, yo sólo voy a centrar en el valor Atención procedentes de BrainWaveOSC. Así que todo lo que tenemos que hacer es comprobar los mensajes entrantes para él y sáquelo.Dentro de su función oscEvent, tendrá que añadir:

if ( theMessage.checkAddrPattern(“/attention”) == true ) {

println (“Su atención está en:” + theMessage.get (0) .floatValue ());

}

Impresionante. Así que ahora estamos recibiendo sólo los valores de atención e imprimirlas a la pantalla. Necesitamos una manera de pasar esta información a otra función para que podamos hacer algo con él. La forma más fácil de hacerlo es con una variable global. Añadir esta línea debajo

Oscp5 OscP5;

float currentAttention;

Cambie su función oscEvent a tener este aspecto:

if (theMessage.checkAddrPattern (“/ atención”) == true) {currentAttention = theMessage.get (0) .floatValue (); println (“Su atención está en:” + currentAttention); }

Ahora, usted ha creado una variable que se puede acceder desde cualquier función y es actualizado cuando oscEvent ve un mensaje de OSC con el patrón de dirección “/ atención”.POR TANTO AHORA  USTED ES CAPAZ DE EXTRAER LOS VALORES DE ATENCIÓN A PARTIR DE LSO DATOS EEG, el siguiente paso seria enviar este valor a su Arduino Uno:

  • Conecte el Arduino al ordenador.
  • Compruebe el número de puerto al que esté conectada al.
  • Enviar valores de la transformación de este puerto.
  • Escribir un boceto que lee los valores enviados desde el procesamiento.
  • Conecte el ventilador a cualquiera de los pines de Arduino.
  • Establezca un valor de umbral de la atención y hacer un disparador para el ventilador para encender y apagar.

 

 

Fuente  aqui

Un termómetro muy prometedor

El objetivo de Oblumi es proporcionar a un termómetro más funcionalidades como la consulta de temperatura desde el smartphone o un navegador web, registro histórico de mediciones, ajuste automático de la dosis de medicina conforme variemos peso del niño, y también seguimiento de la evolución de la enfermedad con gráficas de temperatura. También se pueden configurar alarmas según las necesidades.


Hoy presentamos una propuesta, esta vez española, que debería ser una realidad   en 2015 para implementar  un termómetro por infrarrojos sin contacto usando  un  smartphone  a un precio que podría rondar los 30 euros.

El proyecto  que debería llegar al mercado a mediados del año que viene, se centra especialmente en el valor asociado a  la  temperatura gestionado  con una aplicación,  viendo lógicamente a los más pequeños de la casa como uno de  sus potenciales motivaciones para usarlo.

La idea es que sea pequeño  preciso y cómodo, para lo cual  tendrá un reducido tamaño ,gracias  a que se conectará  al jack de 2 1/2″ de auriculares y micrófono  del teléfono. El dispositivo permitirá conocer la temperatura corporal de manera rápida y precisa, tanto en la frente como en el oído gracias a que incorpora un sensor de infrarrojos sin contacto de muy alta precisión y rápida respuesta, especialmente indicado para aplicaciones médicas.

Otro aspecto que han  cuidado es el tema de la Seguridad, permitiendo a  la app calcular la dosis de medicamentos de modo que informará de la dosis recomendada de diferentes medicamentos para cada uno de los perfiles configurados en la aplicación.

Además nos permitirá hacer un seguimiento vía notificaciones y alarmas de modo que se podrás configurar alarmas que le ayuden a realizar un correcto seguimiento. También puede recibir notificaciones al móvil asignado al perfil de la temperatura que le han tomado a un familiar  y si le han suministrado algún tipo de medicamento.

Por ultimo se  podrá  tener acceso a todos los datos on-line: esté donde esté y a cualquier hora podrá acceder al historial de su familiar a través de la plataforma . Estos datos también podrá compartirlos fácilmente con su facultativo (por ejemplo en caso de niños con su pediatra) para facilitar el diagnóstico y tratamiento.

Se ve claramente una orientación clara en el cuidado de los mas pequeños pero eso no descarta que pueda usarse para otras franjas de edad pues lo queramos o no la salud o no deberia ser una de las prioridades en nuestra vida

 

Más información aqui

Conexion de un modulo Xbee a Netduino

Conexión de un modulo Xbee a Netduino usando un pc


Como usted probablemente sabe, es bastante posible usar un Netduino Plus , o un Netduino normal  con un escudo Ethernet , para conectar un Netduino directamente a Internet. De hecho, O’Reilly ha publicado recientemente un libro protagonizado por el Netduino Plus , que le muestra básicamente como salvar medidas en la plataforma M2M cosm.com  antes Pachube y luego Xively.

 

En lugar de Ethernet, el autor usó  un Xbee  con conexión a un PC que actúa como intermediario, en parte porque el autor ya tenía esa configuración  para apoyar el monitoreo Tweet-A-Watt , pero también debido a ciertas ventajas evidentes:

  • Conexiones Ethernet con cable no son prácticos para la mayoría de las partes de una casa pues es dificultoso tener red cableada   por todas partes ( auque sabemos que esta dificultad se puede minimizar con PLC’s o inlcuso con repetidores WIFI con salida  ethernet
  • XBee es más barato que el Wi-Fi, especialmente si usted planea usar múltiples Netduinos en varias partes de la casa (que lo haremos, una vez que añadimos monitoreo de sensores a la mezcla)
  • El Netduino es una plataforma de desarrollo relativamente limitada en comparación con un PC. Por lo tanto, esta perspectiva ayuda a limitar el papel del Netduino para  las “líneas del frente”gracias a que  tienen gran parte del código que se ejecuta en un PC que actúa como “comando y control”. Esto, también, se convertirá en una ventaja más grande cuando haya múltiples Netduinos involucrados.

La gran desventaja de este enfoque es que necesita  un PC encendido 24/7.Eso  supone  una gran cantidad de electricidad desperdiciada, considerando qué  su carga de trabajo va a ser muy baja . Dedicando un 120W + PC para este proyecto es  claramente  excesivo,pero afortunadamente, hay un número creciente de dispositivos de ultra baja potencia que son capaces de actuar como el PC para este propósito. Como siempre esto es cierto siempre que tenga un puerto USB, conexión a Internet y se puede ejecutar Python, 

 BeagleBoard puede ser un alternativa cuando se ejecuta la secuencia de comandos de Linux y Python en este proyecto, un BeagleBoard XM utiliza sobre 3W (medida por un medidor Kill A Watt).

En comparación, la “eficiencia energética”  con 2 años de uso es mucho mayor que usando un PC ,pues los promedios de PC de Windows  consumen cerca de 200W. Teniendo en cuenta que es capaz de servir como un servidor principal de pleno derecho, la BeagleBoard es increíble, y es de esperar una indicación de la dirección futura de PCs para el hogar.

Por cierto, la combinación Netduino / Arduino / LCD utilizado en este proyecto consume  menos de 1W, así que usar * duinos en sus proyectos en el hogar es definitivamente una alternativa de energía respetuosa.

TonidoPlug ordenador

TonidoPlug ordenador

Una opción menos costosa, y que usa este  proyecto, es el $ 99 TonidoPlug . Viene con Ubuntu ya instalado, y un puerto  Ethernet y puerto USB. Puede conectar el XBee al puerto USB directamente si lo desea, y que va a funcionar bien para los fines de este proyecto. Sin embargo, si desea ejecutar el software Tonido entonces usted necesitará un concentrador USB con alimentación – el software Tonido requiere una unidad USB, y no sólo el 1 puerto integrado.

 

Al igual que los Beagleboards,el TonidoPlug es un dispositivo muy fiable, y es igual de eficiente de la energía. No es fácil de actualizar o reemplazar el sistema operativo, pero la versión incorporada de Ubuntu es más que suficiente para los proyectos normales.

Si usted decide ir con un BeagleBoard, uno de los últimos artículos cubre la instalación de Angstrom y Python , y esta página eLinux es la guia ideal  si está instalando Ubuntu.

En cuanto aTonidoPlug, viene con Ubuntu 9.04 (Jaunty Jack), Python 2.5 y un servidor SSH  incluidos . Todo lo que necesita para agregar a este proyecto es la biblioteca de serie Python y la utilidad de la pantalla de GNU para el funcionamiento de la aplicación Python en una sesión de terminal de fondo.

Para instalarlos, entrar como root a través de SSH, cree entonces directorio utilizado por el gestor de paquetes apt, a continuación, instalar un par de paquetes:

  mkdir-p / var / cache / apt / archives / partial
 apt-get update
 apt-get install python-serial
 apt-get pantalla de instalación

 

 

 

La conexión de hardware a la Netduino es relativamente simple, porque el Netduino utiliza el mismo nivel de tensión de 3,3 V como el XBee y pins de serie del Netduino hablar el mismo idioma que el XBee.

La única complicación es que el XBee utiliza un espaciamiento generalmente apretado para sus pines, sólo 2 mm de separación. Esto hace que sea difícil de conectar los cables de puente a los pines, y imposible enchufar el XBee en un tablero. La mayoría de la gente utiliza un tablero del desbloqueo de resolver este problema, como la de Sparkfun XBee Breakout Junta o de Adafruit adaptador XBee PCB (que es el PCB utilizados en su kit de adaptador – que funciona bien como un tablero del desbloqueo).

Como se muestra en la foto de abajo, se ha conectado el XBee en una placa protoboard usando un adaptador XBee Adafruit. Esto hace que sea fácil compartir pin 3.3V del Netduino con otros dispositivos, además de la XBee, y le permite conectar un LED para algunos de los pines del XBee para la solución de problemas:

XBee Pin Conexión
1 3.3V
2 Netduino RX (por ejemplo D0)
3 Netduino TX (por ejemplo, D1)
6 LED (encendido cuando se recibe, opcional)
10 Suelo

 

XBee Para Netduino Conexiones

XBee Para Netduino Conexiones

Ejecución del software Python

Una vez que el hardware está en su lugar, el siguiente paso es iniciar el software Python en ejecución.

Usted tendrá que tener pySerial instalado. Si has seguido las  instrucciones para configurar Angstrom Linux en un BeagleBoard , o configurar Ubuntu en un TonidoPlug , entonces ya está todo listo. De lo contrario, consulte lasinstrucciones de instalación que aparecen en la pySerial pag e.

Descargue el código Python del proyecto en Google Code. Guarde el archivo en cualquier carpeta del PC host – si usted está usando un TonidoPlug o BeagleBoard ejecutando Linux, a continuación, la carpeta de inicio está bien.

Si utiliza Linux, es probable que necesite para ejecutar el código Python como root para poder acceder al puerto serie:

es decir,

  sudo python TimeServer.py

Los parámetros de línea de comandos para el programa son todos opcionales:

  TimeServer.py [nl] [-d] [-port xxxx]
  • -Nl – Desactiva el registro. De lo contrario, cualquier error se escriben en el directorio actual en un archivo llamado controller.txt. Esperemos que este archivo no obtendrá grandes, pero desactivando el registro es necesario si está ejecutando el código de un directorio de sólo lectura.
  • -D – enciende los mensajes de depuración por escrito a la consola.
  • -Port – Especifica el puerto serie que el XBee está conectado. El valor predeterminado es / dev/ttyUSB0. En un TonidoPlug o BeagleBoard, que debe ser el puerto correcto.En un PC con Windows, el puerto tendrá un nombre totalmente diferente, como COM3 – comprobar el Administrador de dispositivos si usted no sabe cuál usar. Si está utilizando Windows, consulte la sección “Windows Weirdness” a continuación.

Si inicia el programa cuando se conecta a través de SSH, debe utilizar primero la GNU Screen utilidad para abrir un símbolo del sistema virtual, y ejecutar el programa desde allí. De lo contrario, el programa dejará de funcionar cuando se desconecta de SSH.

Para ejecutar la pantalla, sólo tiene que escribir “pantalla”. Usted será llevado a un nuevo símbolo del sistema, en el que se ejecuta TimeServer.py que el anterior.

Cuando TimeRelay está en funcionamiento, puede desconectarse de la sesión de pantalla pulsando CTRL-A, a continuación, D. Esto deja el código Python funcionando en segundo plano. Para volver a conectar a la sesión de la pantalla, introduzca screen-r-d.

GNU Screen es muy útil para el funcionamiento de un proceso de fondo como éste, porque se puede volver a conectar en cualquier momento, desde cualquier lugar, y ejecutar screen-r-d para ver la salida de corriente del programa TimeServer.py. Esto es realmente útil para la depuración, y para reiniciar el código Python 

Al ejecutar el código Python en Windows presenta un par de otras complicaciones,

Si Python lanza una excepción “El sistema no puede encontrar el archivo especificado” cuando intenta abrir el puerto serie, puede que se han topado con el problema descrito en StackOverflow aquí . Trate de especificar el puerto COM como “\. COMxx” por ejemplo,

  Puertos \. COM10

Además, la apertura de un puerto serie a veces se traduce en un “acceso denegado” excepción en Windows si no lo cierre antes de abrirlo. Como he dicho, no me preguntes.Desde el cierre del puerto serie antes de abrirlo no parece causar ningún problema, he actualizado el código Python con esta revisión.

Ejecutar el código Netduino

Puede obtener el código Netduino en una de 2 maneras:

  1. Si está familiarizado con Subversion, usted utiliza cualquier cliente SVN (mi favorito es TortoiseSVN ) para obtener una copia de todos los archivos del proyecto. La URL SVN es https://gigamega-micro.googlecode.com/svn/trunk . Si desea que la versión anterior del código para que coincida con uno de los últimos artículos, obtener la revisión correspondiente. (Vea la lista de revisión aquí )
  2. O bien, descargue el buen viejo. Zip desde la sección de descargas del proyecto en Google Code. Aquí hay un enlace directo al código para este artículo .

Si el programa de Python está funcionando, entonces sabrá dentro de un minuto de encender el Netduino si todo funciona correctamente: la fecha y la hora se ajustarán automáticamente correctamente a través de la conexión y , eso no es todo: el LED conectado a la XBee recibira por pin se encenderá una vez por minuto.

 

Sobre el único otro cambio en el software Netduino esta vez es que finalmente he añadido un ajuste de horario de verano para el menú del Netduino: puede activar o desactivar el horario de verano en el menú “Fecha”.

 Se utiliza en el cálculo de la “Sun Up” y tiempos “Sun Down”, si usted está basando el temporizador de luz de la planta en aquellos tiempos. Los puristas señalarna que un Netduino conectado a Internet no debería tener que depender de un ajuste manual para saber cuando el horario de verano está en vigor, pero vamos a hacer caso omiso de esos puristas por ahora.

Se ha encontrado el XBee para ser un complemento muy fiable a la Netduino. Hecho, el autor escribió el código utilizado en este artículo y han estado funcionando continuamente desde entonces, y todavía tiene  algún caso donde la conexión XBee cae permanente o deja de responder. En suexperiencia, esto es una gran ventaja sobre el uso de una conexión Ethernet – cuando la conexión Ethernet del Netduino cae tiende a quedarse abajo.

Así que, si tan grande del Xbee, ¿por qué estoy usando sólo para ajustar el tiempo?  Si usted navega a través de la clase principal Program.cs en el código fuente, verá que hay un nuevo método llamado uploadSensorData, que no apuntal a un posible envios desde Netduino a  Nimbits.

Código en pyton

El código Python es ciertamente muy simple: todo lo mejor para aprender programación Python desde, ¿verdad?

Conexión de puerto serie del XBee se abre durante el inicio. Si la conexión no se puede abrir, el programa mostrará un mensaje de error y terminara llamando a la función sys.exit Python. Si tuviera algunos problemas para conseguir el puerto serie de trabajo antes, sin duda usted estará bien familiarizado con este mensaje de error.

1
2
3
4
5
6
7
try:
    ser = serial.Serial(SERIALPORT, BAUDRATE, timeout=TIMEOUT)
    ser.close() # workaround for known problem when running on Windows
    ser.open()
except:
    print "Unable to open serial port ", SERIALPORT, ". See ya."
    sys.exit(1)

 

Los principales controles de bucle si el tiempo ha cambiado (sólo el minuto, en realidad – lo dejaremos la Netduino manejar los segundos). Si es así, se llama a la función sendDateTime (). A continuación, tiene capacidad para un rato antes de repetir el ciclo.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def displayTime():
    lastMin = -1
    while 1==1:
        try:
            currTime = datetime.datetime.now()
            if DEBUG:
                print "in displayTime, currTime = " + currTime.strftime("%Y-%m-%d %H:%M:%S")
            currMin = currTime.minute
            if lastMin != currMin:
                lastMin = currMin
                sendDateTime()
            time.sleep(15);
        except Exception:
            LogMsg("Error in displayTime")
            print sys.exc_info()[0]

Tenga en cuenta que que el controlador de excepciones es diferente de la utilizada cuando se abre el puerto serie : se registra el error , muestra alguna información sobre el error en la consola ( usando la función de Python sys.exc_info ) , a continuación, con optimismo sigue adelante . Si no hay controlador de excepciones , ninguna excepción en este bucle , o en las funciones llamadas por este bucle, que causaría la aplicación termine.

Este enfoque de ” iniciar y seguir adelante ” es generalmente mal visto en el diseño de software, pero lo recomendaría para un programa tan simple como este que se ejecuta en segundo plano. Debes encontrar que este código de la aplicación , y Python que se comunica a través de XBee , en general , es muy poco mantenimiento : sólo puede iniciarlo, luego olvidarse de él . De vez en cuando se puede comprobar en el código usando GNU Screen o mirando el contenido del registro de errores controller.txt .

La función sendDateTime sólo convierte la fecha y la hora en el formato que el Netduino lo espera , entonces lo escribe en el puerto serie. Tenga en cuenta que el ” ser.flush ()” función se utiliza para asegurarse de que los datos se envían de inmediato en lugar de ser amortiguada – esto es, literalmente, los datos sensibles al tiempo.

 

 

1
2
3
4
5
6
7
8
def sendCommand(strPrefix, strCommand):
    if ser:
        ser.write(strPrefix + ":" + strCommand + chr(0))
        ser.flush()
def sendDateTime():
    timeStr = time.strftime("%Y-%m-%d %H:%M")
    sendCommand("D", timeStr)

 

En el lado Netduino, se requiere muy poco código nuevo para hablar con el XBee. Estamos usando el XBee como un dispositivo de puerto serie, en lugar de hacer uso de la API de la XBee (una opción más versátil que podría explorar en un próximo artículo). Desde la perspectiva del Netduino, el XBee podría ser un tipo sentado en una terminal de serie, de vez en cuando escribiendo un comando “set time”. Ya hemos implementado ese apoyo, de vuelta en el “Netduino: Tiempo y Clima” artículo.

 

La conexión XBee se abre durante el inicio, usando casi exactamente el mismo código que se utilizó para abrir una conexión serie a un terminal de PC:
1
2
3
// last parm should be true for UART terminal (to send
//   user confirmation), but false for UART XBee
uart = new clsUART(strUARTPort, 9600, 512, false);
El controlador de eventos es el mismo que se utilizó para el terminal de PC: el evento se produce cuando nuestra clase genérica de puerto serie, clsUART, recibe algunos datos. De hecho, si usted está utilizando el Kit LCD serie SparkFun, este controlador de eventos todavía se utiliza cuando el Netduino recibe datos desde el Arduino, como se explica en el “A Little ayuda de sus amigos” artículo.Compartir un controlador de eventos de comandos serie entre Arduino y el XBee funciona bien, y es fácil de implementar en. Net. El Netduino no lo sabe, o la necesidad de conocer, que ha de enviar el comando, y el. NET Micro Framework asegura que no hay ningún conflicto entre los 2 puertos serie.Lo único que ha cambiado es que el XBee envía la fecha y hora en el mismo comando:
D: 2011-07-25 18:01

Entonces,se puede  modificar   clsUART para comprobar para ver si la cadena está en este formato, y plantea tanto una “fecha fijada” y “Set Time” caso si lo es.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (strDateParts.Length == 5)
{
    intHours = Int32.Parse(strDateParts[3]);
    intMinutes = Int32.Parse(strDateParts[4]);
    intSeconds = 0;
    blnTimeSet = true;
}
...
// tell rest of application that the date has been set
raiseCommand(strCommand);
if (blnTimeSet)
{
    // raise the time event too
    raiseCommand("T:" + Program.Int_ToZeroPrefixedString(intHours, 2) + ":" + Program.Int_ToZeroPrefixedString(intMinutes, 2));
}

El controlador de eventos ya sabía cómo manejar los cambios de fecha y los cambios de tiempo, por lo que no se requería ningún cambio en el código allí.

El único otro cambio significativo fue modificando el menú para añadir un interruptor de “horario de verano”. Dado que el código de menú ha sido diseñado para ser fácilmente extendida – como se explica en la Expulsión del artículo de menú – esto requiere sólo 1 nueva línea a la matriz strMenuItems:

1
2
3
"2-1", "Hour `HH`", "_UD-`HH`",
"2-1", "Min `mm`", "_UD-`mm`",
"2-1", "DST `DS`", "_DST", // NEW - Daylight Savings Time setting

El formato se ve bastante críptico, pero tendrá más sentido si usted lee el “Programador Show and Tell” de pedir a la carta.

El código en clsLCDMenu pasa el “DS` `” de palabras clave para su método de devolución de llamada para obtener el ajuste DST actual y pasa a la palabra clave “_DST” para el método de devolución de llamada para el manejo de un nuevo ajuste introducido por el usuario.

Por ejemplo, el código agrega al método de devolución de llamada setValueFromMenu () para la palabra clave “_DST” es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
else if (menuCode == "_DST")
{
    // toggle DST
    blnUseDaylightSavingsTime = !blnUseDaylightSavingsTime;
    calculateSunriseAndSunset(DateTime.Now);
    if (blnUseDaylightSavingsTime)
    {
        SaveSettingToEEPROM(ADDR_DST, 2);
    }
    else
    {
        SaveSettingToEEPROM(ADDR_DST, 1);
    }
}

Esto vuelve a calcular la salida del sol y puesta del sol (y actualiza los temporizadores de luz la planta si se basan en estos tiempos), a continuación, pasa a la nueva configuración para el Arduino en el Kit LCD Sparkfun para guardarla en la memoria EEPROM.

 

 

 

 

 

Conexión de un XBee a un PC

La comunicación punto a punto no es ninguna diversión con un solo punto, por lo que tendrá que conectar un XBee tanto a la PC y el Netduino.

Al final PC, ya sea que use un BeagleBoard, TonidoPlug, o una PC completa, necesitará un adaptador USB para el XBee.

Hay muchas opciones que hay. El autor usa un adaptador XBee Adafruit y un cable USB TTL-232 . Sin embargo, a menos que le sucede que tiene un cable de repuesto se trata de una opción relativamente costosa, puesto que el adaptador cuesta $ 10 y el cable cuesta $ 20. Otras opciones son  $ 20 Adaptador XBee Parallax , y versátil $ 20 de Seeedstudio UartSBee .

Antes de conectar el XBee al Netduino, debe configurar los 2 XBees para que puedan hablar entre sí.

Por defecto, los adaptadores XBee están configurados como adaptador de 0 en PAN (ID de red) 3332, y van a enviar sus datos a otros 0s adaptador. Aunque esto funciona bien si uno XBee sólo envía, y el otro XBee sólo recibe, pronto tendremos la Netduino y PC charlando alegremente de distancia entre sí. Por lo tanto, usted debe asignar una de las XBees tener un adaptador de ID diferente (número 1 funciona bien), a continuación, establecer la dirección de destino del otro XBee ser el mismo ID.

Esta página en Adafruit cubre las 2 opciones para configurar un XBee: el sólo para Windows del programa X-CTU, y entrar los comandos AT desde una terminal serie.

Sea cual sea el método de configuración que utilice, es necesario cambiar la configuración de “MI” en la primera XBee a 1, y la del “DL” ajuste en el otro XBee a 1 Eso es:. Los demás valores predeterminados están bien.

Me gustaría recomendar el uso del programa X-CTU si estás empezando con XBees: es mucho más fácil de usar ya prueba de tontos que un terminal serie. Mientras que usted está allí, usted debe actualizar el firmware de los XBees, algo que no se puede hacer desde un terminal serie.

Si usted es incondicional sobre el uso de un TonidoPlug o BeagleBoard como un PC, o quiere evitar encontrarse con X-CTU por otras razones, de un terminal serie es el camino a seguir.

El autor ha utilizado minicom en un BeagleBoard y TonidoPlug para esto. Con el fin de hablar con el XBee tendrá que ejecutar minicom como root y cambiar algunos de los ajustes por defecto. Conecte un XBee en su adaptador al puerto USB, entonces:

  1. En la línea de comandos de Linux, escriba “minicom-s”. Si va a guardar la configuración en un perfil (una buena idea), se debe ejecutar como root: “sudo minicom-s”
  2. Seleccione “Configuración del puerto serie”
  3. La configuración del puerto serie deben ser como se muestra en la siguiente imagen.Pulse el botón “E” para cambiar el BPS en 9600, y presione “F” para configurar hardware de control de flujo en “No”. También puede ser que tenga que cambiar la configuración de dispositivos de serie: el general “/ dev/ttyUSB0”, pero si hay otros dispositivos USB conectados: podría ser / dev/ttyUSB1 o / dev/ttyUSB2, etc
  4. Pulse Intro para volver al menú de configuración de Minicom, a continuación, seleccione “Pantalla y teclado”
  5. Pulse el botón “P” para activar la función de salto de línea Add, y pulse “Q” para activar el eco local.
  6. Pulse Intro para volver al menú de configuración de nuevo. Para guardar esta configuración, seleccione una de las opciones “Guardar configuración”. Para mostrar la terminal serie, seleccione “Salir”.
  7. El XBee está inicialmente preparado para recibir y enviar datos. Usted tendrá que ponerlo en modo de comandos. Para entrar en modo comando, presione la tecla “+” 3 veces (es decir, + + +), pero no pulse Intro. El XBee debe aparecer en Aceptar.

 

Valores de Minicom para la configuración XBee

Valores de Minicom para la configuración XBee

Los comandos de terminal correctas para la primera XBee son:

  + + +
 ATMY 1
 ATWR

Y por segunda XBee

  + + +
 ATDL 1
 ATWR

El XBee debería devolver “OK” después de cada comando.

Si usted no es capaz de ver lo que está escribiendo, intente encender de nuevo el eco local: pulse Ctrl-A continuación, Z para mostrar el menú, y luego presione E.

Tenga en cuenta que el XBee automáticamente (y silenciosamente) el modo de configuración de salida si usted espera demasiado tiempo entre los comandos, así que si usted no está recibiendo bien después de un comando AT, intente introducir + + + de nuevo.

Fuente aqui