Acceso web a Sensores conectados a una 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 muliproposito 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 lineas 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 vias 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

Envia  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

 

Anuncios

Construyen un Pancreas artificial con una Raspberry Pi


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


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


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


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

Monitorizacion consumo de agua con Netduino


Dejan Levec  necesitaba una manera de medir el agua utilizada fuera de la casa. Hay algunos productos comerciales, como Gardena inteligente Medidor de flujo de agua, pero  no son baratos y no pueden dibujar gráficos con buen aspecto.

Esto parecía un buen proyecto de fin de semana y al final optó  por  utilizar módulos inalámbricos XRF  que basicamente son radios Xbee con un montón de características:

  • Trabajan fuera de la caja,
  • Tienen  Xbee-como patillas,
  • Compatible con el cifrado AES de 128 bits
Cuestan 15 € cada uno, pero porque necesitan tensión de alimentación de 3,3 V y tienen el diseño paso de 2 mm, pero  tambien necesita algunas placas de interfaz activa. Lamentablemente, no hay mucha documentación al respecto en Internet, ya que hay para los módulos Xbee.
De todos modos, tienen un modo de configuración muy fácil. Para acceder al mismo tiene que enviar + + + y espere 1 segundo antes y después de enviarl , por ejemplo el autor usa la siguiente configuración:

ATEA contraseña
ATEE 1
ATID 0000
ATAC
ATDn

Esta cadena  permite el cifrado AES, establece la contraseña para ‘password’ y especifica  el ID de red, 0000. Las nuevas líneas se representan como \ r char, y comandos devuelven bien si tiene éxito.

Decidió  usar la siguiente configuración:

Medidor de flujo en intervalos regulares envían datos sobre el consumo de agua a la puerta de enlace Netduino Plus.Netduino Plus escucha red XRF y envía cada mensaje recibido a aplicación web alojada por Google App Engine.

El autor tiene  la intención de actualizar la puerta de enlace para apoyar la comunicación de dos vías, sin embargo, en primer lugar tiene  que hacer un interfaz GUI web para visualizar los datos del medidor de flujo muy bien, ya que los números sin gráficos son poco atractivos.

Medidor de caudal

Dispositivo medidor de flujo compuesto por una sonda de Seeedstudio Caudal de agua, módulo de XRF, Atmega8 microcontrolador, y actualmente está construido en placa. Voy a moverlo a PCB, cuando encuentro tiempo suficiente (próximo fin de semana de sonido bueno). El sensor de flujo de agua contiene el sensor de efecto Hall y envía un pulso por cada giro del rotor. Después de algunas pruebas esta es e fórmula que uso:

flujo de agua [dcl] = pulsos / 3,2 por período medido

Ejemplo: Si envía 3,2 pulsos en uno de segundos, esto significa que el flujo de agua es 1 DCL por segundo.
El autor se decidió  a probar el flujo de agua durante un periodo diez segundos y enviar suma de esos valores a la aplicación web cada cinco minutos.

Gateway Netduino

Netduino Plus escucha inalámbrica los  datos XRF y envía todos los recibidos de comandos para aplicación web con una petición  HTTP GET .
Los comandos se componen de los siguientes datos: iniciar carácter, dos Identificación del receptor dígito, dos dígitos Identificación del emisor, los datos y el carácter extremo.
Ejemplo de comando:

! 0102hello mundo $

que envía hola string mundo desde el dispositivo n º 02 al dispositivo con el id # 01. La Aplicación Web guarda esta información incluyendo fecha y hora actual a la base de datos.

Google App Engine
El autor uso  GAE  con  Python. Documentación y ejemplos son muy buenos y la comunidad web de Python es bastante grande, así que no es difícil de encontrar diferentes bibliotecas. Las bases de datoses muy flexible , ya que no es necesario especificar las columnas de avanzada, así que es como MongoDB, Tristemente, marcos web como Django mayoría esperan base de datos relacional.
De todos modos, la única cosa que el autor tubo problemas  con e GAE son sus cuotas libres fue las actualizaciones  y la cuota gratuita (en 1 hora de prueba le  enviaron hasta 10 actualizaciones por minuto y ya ha usado 10% de la cuota de base de datos en aproximadamente 1 hora).

Fuente aqui

 

El mercado de los gadgets de vestir


 

 

El mercado mundial de dispositivos tecnológicos de vestir, comúnmente llamados wearables, finalmente se está expandiendo gracias al lanzamiento de accesorios cada vez más funcionales y estilosos, de hecho  la consultora IDC prevé que los wearables darán un paso significativo este año, alcanzando un volumen de ventas superior a los 19 millones de unidades, triplicando las ventas del año pasado. Lejos de detenerse, la demanda mundial de wearables aumentará hasta los 111,9 millones de unidades en 2018, lo que se traduce en un crecimiento anual del 78,4 por ciento.

Los denominados accesorios complejos, diseñados para funcionar parcialmente independientes de cualquier otro dispositivo, pero con pleno funcionamiento cuando se conectan con ordenadores con capacidad IP, como un smartphone, tablet o un PC, liderarán el mercado de wearables hasta el año 2018, a medida que los usuarios los sigan adoptando debido a su simplicidad y sus precios bajos. “Los accesorios complejos han logrado atraer el interés y la atención que tanto necesita el mercado de wearables, el cual ha tenido algunas dificultades para ir ganando terreno”, afirma Ramón Llamas, director de investigación de dispositivos móviles en IDC. “El creciente interés ha llevado a cada vez más proveedores a hacer su entrada en este mercado”. Entre los accesorios complejos disponibles figuran los dispositivos Fitbit, Nike+ FuelBand y Jawbone UP.

Otro segmento del mercado, el de accesorios inteligentes, ganará impulso llegando a superar las ventas de accesorios complejos en 2018. Al igual que los accesorios complejos, con su dependencia de la conexión con dispositivos IP, los accesorios inteligentes permiten a los usuarios añadir aplicaciones de terceros con funciones y características que ofrecen una mejor experiencia de uso. Este segmento continuará madurando a medida que los usuarios comprendan y acepten la propuesta de valor y los fabricantes refinen sus ofertas.

El tercer gran segmento del mercado de wearables es el de los wearables inteligentes, tales como las Google Glass, que funcionan con plena autonomía, con independencia de cualquier otro dispositivo  excepto para acceder a Internet. Para tener éxito, los proveedores deben convencer a los usuarios para que cambien a una nueva experiencia de usuario, al tiempo que les ofrecen una robusta selección de aplicaciones de terceros. No es una cuestión de “si” los wearables en su conjunto se extenderán en la empresa, sino “cuándo” lo harán.

Finalmente, el informe de IDC señala a Samsung, que ya ha lanzado múltiples dispositivos wearables, como la marca que más confianza genera entre los usuarios, por delante de Apple, Sony y Google.

 

Fuente  aqui