Primeros pasos en IoT con Raspberry Pi


La Raspberry Pi es una  plataforma muy popular para la creación de prototipos, lo que hacen que sea  también sea una  plataformas interesante para el Internet de las Cosas (IOT) gracias a su potencia  y bajo coste.  Pero la construcción de un dispositivo IoT no  es simplemente crear una aplicación ya que  realmente se necesita  una gran cantidad de infraestructura de apoyo a la  solución de la IoT.

MyDevices es una empresa de orientación al IoT  que  desarrolla plataformas de  IoT  creando  soluciones de aplicaciones que simplifican el mundo conectado,  siendo  la primera en crear una solución basada en arrastrar y soltar del mundo IoT llamada Cayenne.

Resumidamente algunas  características clave de esta novedosa  plataforma son las siguientes:

  •  Una aplicación móvil para configurar, el monitor y los dispositivos de control y sensores desde cualquier lugar.
  • Fácil instalación que conecta rápidamente los dispositivos, sensores, actuadores, y las extensiones en cuestión de minutos.
  • Motor de reglas para desencadenar acciones a través de dispositivos.
  • Panel personalizable con widgets de visualización de arrastrar y soltar.
  • Programación de las luces, motores y actuadores
  •  Control de GPIO que se pueden configurar desde una aplicación móvil o en el salpicadero.
  • Acceso remoto instantáneo desde el teléfono o la computadora.
  • Para construir un proyecto de la IO a partir de cero se ha logrado el objetivo de proporcionar  un Proyecto Generador de IO que reduce el tiempo de desarrollo de horas en lugar de meses.

 

Como veremos , hablamos de un constructor de sitio web fácil de usar, pero para proyectos de IOT, así que veamos  los pasos para crear un proyecto de IoT con esta potente herramienta usando  su Raspberry Pi

Paso1

En primer lugar , si no  tiene instalado Raspbian en su Raspberry Pi,  tendrá que crearse una nueva imagen  con esa distribución .

Para instalar Raspbian vaya a esta url . Verá que hay  dos versiones:

  • RASPBIAN JESSIE :Imagen de escritorio completo basado en Debian Jessie
    Versión: mayo de 2016
    Fecha de publicación: 27/05/2016
    Versión de kernel: 4.4
  • RASPBIAN JESSIE LITE:versión  mínima de la imagen basada en Debian Jessie
    Versión: mayo de 2016
    Fecha de publicación: 27/05/2016
    Versión de kernel: 4.4

Obviamente si la SD es suficiente grande , lo interesante es descargar la primera  en lugar de la versión mínima

Una vez decidida,  descargue la imagen correspondiente  en su ordenador y siga los siguientes pasos:

  • Inserte la tarjeta SD en el lector de tarjetas SD  de su ordenador comprobando cual es la letra de unidad asignada. Se puede ver fácilmente la letra de la unidad, tal como G :, mirando en la columna izquierda del Explorador de Windows.
  • Puede utilizar la ranura para tarjetas SD, si usted tiene uno, o un adaptador SD barato en un puerto USB.
  • Descargar la utilidad Win32DiskImager desde la página del proyecto en SourceForge como un archivo zip; puede ejecutar esto desde una unidad USB.
  • Extraer el ejecutable desde el archivo zip y ejecutar la utilidad Win32DiskImager; puede que tenga que ejecutar esto como administrador. Haga clic derecho en el archivo y seleccione Ejecutar como administrador.
  • Seleccione el archivo de imagen que ha extraído anteriormente de Raspbian.
  • Seleccione la letra de la unidad de la tarjeta SD en la caja del dispositivo. Tenga cuidado de seleccionar la unidad correcta; si usted consigue el incorrecto puede destruir los datos en el disco duro de su ordenador! Si está utilizando una ranura para tarjetas SD en su ordenador y no puede ver la unidad en la ventana Win32DiskImager, intente utilizar un adaptador SD externa.
  • Haga clic en Escribir y esperar a que la escritura se complete.
  • Salir del administrador de archivos  y expulsar la tarjeta SD.
  • Ya puede insertar la SD en su Raspberry Pi en el adaptador de micro-sd , conectar un monitor por el hdmi , conectar un teclado y ratón en los  conectores USB, conectar la  con un cable ethernet  al router  conectividad a Internet y finalmente conectar la alimentación  para comprobar que la Raspeberry arranca con la nueva imagen

 

Paso 2:

Para comenzar la configuración de su Raspberry   ,lo primero es crear una cuenta gratuita en cayenne-mydevices.com que servirá tanto para entrar en la consola web como en la aplicación movil.

Para ello, vaya a la siguiente url  e introduzca simplemente su nombre ,dirección de correo y una clave de acceso  que  utilizara para validarse.

paso1.png

 

 

Paso 2

Una vez registrado , solamente tendrá que elegir la plataforma  para avanzar en el asistente. Obviamente   seleccionamos  en nuestro caso   Raspberry Pi.

paso2.png

Paso 3

Para  avanzar  en el asistente deberemos  tener instalado   Raspbian en nuestra Raspberry Pi que instalamos en el paso 1  .

Esta versión trae pre-instalado con un montón de software para la educación,  programación y uso general contando con  Python, Scratch, Sonic Pi, Java

Es interesante destacar  que Raspbian  se puede instalar con NOOBS o descargando  la imagen   siguiendo la  guía de instalación explicada en el paso 1.

 

 

 

paso3

 

 

paso 4

paso4

 

Ahora lo siguiente es instalar la aplicación móvil   , que esta disponible tanto para IOS como Android.

En caso de Android este es el enlace para su descarga en Google Play

Es muy interesante destacar que  desde la aplicación para el  smartphone  se puede automáticamente  localizar e instalar el software  myDevices Cayenne en su Raspberry Pi, para lo cual ambos ( smarphone y Raspberry Pi )  han de estar conectados a la misma red,por ejemplo la  Raspberry Pi al router con un cable ethernet  y su samartphone a la wifi de su hogar ( no funcionara si esta conectada por 3G o 4G)

Una vez instalada la app , cuando hayamos introducido nuestras credenciales , si esta la Raspberry en la misma red  y no tiene instalado el agente instalara automáticamente este   como podemos ver en el siguiente video

Hay otra opción de instalar  myDevices Cayenne en su Raspberry  Pi, usando el  Terminal en su  Pi o bien pr SSH.

Ejecute tan sólo los dos siguientes comandos ::

wget https://cayenne.mydevices.com/dl/rpi_f0p65dl4fs.sh
sudo bash rpi_f0p65dl4fs.sh -v

 

 

!Ya esta listo! Ya sólo tiene que empezar a conectar dispositivos y sensores a sus raspberry Pi por medio del conector  GPIO  y  por supuesto  también añadirlos en la consola de Cayenne  ,  y con esto ya podrá ver el hw  que añada  en tiempo real tanto en el interfaz web como en su smartphone.

Por supuesto podrá ver el historial , programar eventos , etc, pero toda esa configuración la reservamos para un nuevo post

 

Por ultimo mencionar que estan  ofreciendo 50 dólares a través de PayPal a cualquier usuario para cada proyecto que se suaba a  Cayyene con el objetivo de mostrar que muchos, muchos usuarios vean a Cayyenne como uan aplicación práctica.

Todos los  lectores de este sitio son bienvenidos a entrar, !Ademas  se puede enviar varios proyectos  por cada participante!

Puede consultar  mas detalles de esta oportunidad en la siguinte url: http://community.mydevices.com/t/submit-your-cayenne-projects-50-just-for-participating/1158

Sensor de movimiento en Orange pi y Raspberry Pi


Desde 2012 la Raspberry Pi ha ido creciendo de gran popularidad, estando hoy en día posicionada como una de las placas de desarrollo de referencia. Uno de sus rivales clásicos en los últimos tiempos están siendo las Orange Pi, una placa fabricada por Shenzhen Xunlong ,con un diseño similar pero basado en procesadores de Allwinne y con un precio bastante inferior a falta de 1 conector USB

Esta placa  de desarrollo  «low cost» es ademas abierta y hackeable compitiendo abiertamente con otras tantas existentes donde la mas destacable es también la Banana Pi , pretendiendo todas ellas competir con la Raspberry Pi.

Hablando de esta versión, la Orange Pi ,se vende en dos versiones, una básica de bajo coste y otra denominada Orange Pi Plus.

orange_pi

Como ejemplo de uso de GPIO ,vamos a conectar un sensor PIR HC-SR501  a una OrangePi, pero la idea y concepto es aplicable también a una Raspberry Pi utilizando por ejemplo la librería Python RPi.GPIO

 

hcsr501.PNG

 

 

El  modelo HC-SR501HC-SR501 es  un Sensor infrarrojo de bajo coste (menos de 2€  por modulo en Amazon) con placa de circuito de control donde se pueden ajustar la sensibilidad y el tiempo de retención gracias a dos resistencias ajustables que dispone en un lateral.

La gama de voltaje de trabajo es  DC 5V-20V  con un consumo de corriente de  menos de 60uA. La salida  es binaria digital  siendo el voltaje de salida de  3,3 V para un nivel alto o «1» logico  y  0V para el cero lógico (no detección de movimiento).

Lo primero que hacemos es conocer el pinout del HC-SR501, pero rápidamente al ver la serigrafía  de la placa, queda perfectamente claro :GND  para la masa , VCC para la alimentación (que tomaremos desde la Orange Pi ) y un pin de salida (OUT) que será el que nos indique si ha detectado algún movimiento.

Luego lleva un par de resistencia variables o potenciómetros que nos permiten ajustar los parámetros de sensibilidad y duración de la señal, es decir, durante cuanto tiempo vamos a querer que en pin OUT tener la salida informada.

sensor

 

El primer potenciómetro hacia la derecha sirve para ajustar la distancia de modo que el , rango de detección aumenta (unos 7 metros), por el contrario, la gama de detección disminuye (unos 3 metros).
El otro potenciómetro rotándolo a la derecha sirve para retrasar  el  retardo de sensor a  tiempos más largos (sobre 300s).Si se gira la contrario el retardo sera corto (sobre 5).

En cuanto a las conexiones del sensor a la placa no pueden ser mas sencillas:

  • El sensor HC-SR501 funciona a 5v, por lo buscamos los pines que nos proporcionan la alimentación ,los cuales  corresponden a los pines 4 y 6 de la referencia CONN de la Orange Pi.
  • El pin de salida del  HC-SR501 con el estado del sensor se puede  conectar por ejemplo  al puerto 7 de GPIO ( al conector número 7)

Primero y si no lo tenemos instalado,teniendo conectado la Orange pi  a Internet  via cable etherenet, debemos  instalar el acceso al repositorio de código  git  usando el siguiente comando:

orangepi@OrangePI:~$ sudo apt-get install git

Vamos a utilizar la librería en Python orangepiPCgpio_pyH3 para acceder los puerto de conexión GPIO’s. Ésta librería la podéis encontrar en el GitHub del usuario duxingkei33 seidno resumidamentes una adaptación de la librería pyA20 0.2.1 que se utiliza en la placa A20-OLinuXino-MICRO.

Vamos a clonar primero el repositorio:

git clone https://github.com/duxingkei33/orangepi_PC_gpio_pyH3.git

Y ahora para instalar ejecutamos:

cd orangepi_PC_gpio_pyH3
sudo python setup.py install

Una vez tenemos conectado nuestro sensor HC-SR501 a nuestra placa OrangePi, vamos a generar un pequeño script    de ejemplo para leer el valor del conector GPIO 7 tal y como lo veremos en el código el port.PA6:

from pyA20.gpio import gpio
from pyA20.gpio import port
from pyA20.gpio import connector

gpio.init() 

gpio.setcfg(port.PA6, gpio.INPUT) 

while True:
if gpio.input(port.PA6) == 1:
print «PA6/PIN 7 = 1»
else:
print «PA6/PIN 7 = 0»

 

El código es muy sencillo y pasamos a describir:

  • Mediante  gpio.init()  inicializamos  el modulo,acción que siempre haremos los  primero cuando usemos el Gpio.
  • La linea gpio.setcfg(port.PA6, gpio.INPUT) configura PA6 como entrada.Cómo información adicional, si miramos dentro del código de la librería orangepiPCgpio_pyH3 el fichero mapping.h tiene la relación entre PUERTO y CONECTOR. Por ejemplo, el  pin utilizado en el ejemplo lo encontraremos definido así («PA6» cómo 7): «PA6», SUNXI_GPA(6), 7 }.Como curiosidad  puede sorprender que el pinout del conector GPIO 7 corresponda al nombre del puerto PA6 . La librería pyA20 utiliza esta nomenclatura de puertos ya que la placa a la que está orientada originariamente (no ésta modificación/adaptación) tiene diferentes fuentes de GPIO’s y es una forma de darles un nombre único dentro de todas las conexiones.
  • Por ultimo tenemos un bucle while desde el que nunca saldemos y en el que constantemente se  esta mirando el estado del pin pintando en pantalla en función del estado, obteniendo un mensaje u otro.

Para ejecutar el script ,observe que la inicialización del módulo requiere root, por lo que el script de Python lo tenemos que ejecutar con sudo

El ejemplo es muy sencillo y únicamente lo que hace es leer el valor del sensor, que puede ser «0» (no detecta movimiento) o «1» (se detecta movimiento) y pintar en pantalla el resultado ,pero obviamente se puede mejorar  mucho mas , dentro del bucle while por ejemplo añadiendo código para enviar un correo al detectar movimiento o por ejemplo enviar el dato a un repositorio de IoT como Cosm.com . 

 

Fuente aqui