Raspberry Pi con XBee y Teensy

En un artículo anterior escribimos sobre habilitar la puerta serial en el Raspberry Pi, en este artículo veremos como usar nuestro Raspberry Pi para aplicaciones inalámbricas a traves de XBee.

El ejemplo que veremos a continuación se basa en otro artículo publicado en este blog.

XBee es una familia de módulos de RF diseñados para su fácil implementación. Nosotros usamos la serie 2 que tiene más features de lo que necesitamos en esta prueba.

Rpi_Xbee_Teensy

Lo que haremos es tener dos módulos

  1. Módulo Remoto: Conectar el XBee remoto con Teensy y un sensor.
  2. Módulo Central: XBee conectado en la puerta serial al Raspberry Pi

Despues del salto, la información completa

Materiales

  • Teensy
  • Raspberry Pi
  • 2 x XBee Serie 2
  • Adaptador XBee
  • Conector Raspberry Pi
  • Cables
  • 2 x Protoboard
  • Sensor ADXL335

Objetivo

El objetivo es capturar información desde el  Teensy y enviar esa información via puerta serial a través de Xbee hacia la Raspberry Pi. Por el lado de la Raspberry Pi esa información se captura vía otro módulo Xbee y puede ser procesada posteriormente.

Para la implementación en el lado del Teensy usaremos una puerta  ADC , la puerta A3, para realizar muestreo. El sensor utilizado en este caso es medir un eje del sensor acelerómetro ADXL335. La información será recibida por la Raspberry Pi, se muestra por pantalla y se almacena en un archivo.

Procedimiento

Como primer paso se deben configurar los módulos XBee, esot se describe en varios tutoriales disponible en línea, como por ejemplo aquí artículo

Para realizar lo indicado, se carga el siguiente código  en el Teensy,

HardwareSerial Uart1 = HardwareSerial();

void setup()
{                
  Serial.begin(9600);
  Uart1.begin(9600);
}
int val;

void loop()                     
{
  val = analogRead(3);
  Uart1.print("analog 3 is: ");
  Uart1.println(val);
  delay(1000);
}

Para la Raspberry Pi debemos seguir las indicaciones que están aqui para habilitar la puerta serial

Por el lado de la unidad central en el Raspberry Pi usaremos Python

# website: www.iot.cl
# 
#
# Purpose : basic use of serial port
#
# Date : 2013–06–06

from serial import Serial

s = Serial('/dev/ttyAMA0', 9600, timeout=2)
f = open("data", "w")

while True:
        try:
            a = s.readline()
            print a
            f.writelines(a)
        except KeyboardInterrupt:
            break
s.close()
f.close()

Para conectar el Hardware se debe seguir usar los siguientes pines

XBee Teensy
Tx Rx Pin0
Rx Tx Pin1
3V 3,3V output

En el Teensy podemos conectar el sensor que queramos, nosotros usamos en un eje del acelerómetro ADXL335 conectado en la puerta A3 para medir. El acelerometro por su parte se alimenta desde la puerta Vin del Teensy 3. Todos los conectores de Tierra deben estar conectados entre si.

Las fotos muestran el setup, primero la unidad remota luego la unidad central

Foto 1. Se muestran los pines usados en la conexión
Foto 2. Se muestran los pines usados en la conexión
Foto 2. Detalle de los pines por el lado del adaptador XBee
Foto 1. Detalle de los pines por el lado del adaptador XBee

 

 

Foto 3. Se muestra la conexion entre XBee y Raspberry Pi con losnombres de los pines usados en ambos extremos
Foto 3. Se muestra la conexión entre XBee y Raspberry Pi con los nombres de los pines usados en ambos extremos. Notar que se cruza Tx con Rx

 

 

Bibliografía

Teensy 3.0 y Xbee
Raspberry y Teensy 3.0

Author: Manuel Carrasco

Ingeniero Eléctrico, Institutano, instructor certificado Cisco, en twitter @mcarrasco con comentarios y opiniones personales.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *