Primeros Pasos con Omega Onion

Sumario

  1. Primeros Pasos con Omega Onion.
  2. Conexión a Omega Onion por ssh.
  3. Control de pines mediante Python.
    1. Control de salidas.
    2. Lectura de pines.
  4. Control de omega-onion desde una nube propia

1. Primeros Pasos con Omega Onion

Existe mucha información de cómo comenzar con la Omega Onion, no vamos a repetirlo. La documentación, ejemplos y tutoriales se pueden encontrar en:

https://docs.onion.io/omega2-docs/

Fig.9. Omega Onion desde la red local
Fig.10. Conexión a la nube

Básicamente los pasos a seguir son los siguientes:

  • Onion en la placa Expansion Dock.
  • Alimentamos mediante alimentación estándar microUSB.
  • Desde un ordenador que disponga de Wifi nos conectamos al punto de acceso creado por Omega Onion con la contraseña 123456.
  • Abrimos el navegador de nuestro ordenador y tecleamos en la dirección 192.168.3.1 y nos identificamos con usuario: root y contraseña: onioneer.
  • Seguimos los pasos para conectarnos a nuestra propia red y registrarnos en la nube oficial.
  • Tomaremos nota de la IP que ha cogido de nuestra red

A partir de aquí podremos conectarnos a nuestra Omega Onion por los siguientes medios:

  • Por la página oficial http://cloud.onion.io/ con la misma identificación con la que se haya realizado el registro. Fig. 10.
  • Si nos conectamos a nuestra red, desde un navegador tecleamos la IP que hemos anotado. Fig. 9.
  • Si nos conectamos a la red creada por Omega Onion, con la IP 192.168.3.1. Fig 9.
  • Si usamos la Extension Dock, a través del puerto serie.

Por el protocolo ssh (este será el que vamos a usar principalmente), para ello desde cualquier linux teclearemos en la consola ssh root@192.168.3.1 suponiendo que 192.168.3.1 sea la ip de nuestra Onion, la contraseña por defecto es “onioneer”. Existen programas en Windows para la comunicación mediante el protocolo ssh. Fig. 11.

2. Conexión a Omega Onion por ssh

Como hemos indicado anteriormente, son muchas las formas de realizar la misma tarea, pero sólo vamos a cubrir una forma de hacerla. En este artículo se van a utilizar los siguientes programas, protocolos y lenguajes de programación:

  • Entorno de texto de linux en el ordenador desde el que trabajamos.
  • Protocolo seguro ssh para comunicación con terminal remoto de texto.
  • Lenguaje de programación interpretado Python.
  • Editor de texto nano.

Para empezar debemos instalar las librerías y programas necesarios, para ello realizamos una conexión ssh. Mi red es 192.168.100.0 y en el paso anterior tomé nota de la IP de mi Omega, 192.168.100.105 por lo que abriré un terminal en mi sistema operativo linux con ctrl-alt-T o seleccionándolo desde mis aplicaciones. A continuación tecleo :

ssh root@192.168.100.105

Me pedirá “clave = onioneer” y entraremos en la onion por terminal de texto remoto. Fig11.

Fig. 11. Conexión mediante protocolo ssh.

Llegados a este punto tecleamos o copiamos los siguientes comandos

opkg update

que nos actualizará la unidad

opkg install python-light pyOnionGpio

que instalará las librerías necesarias

opkg install nano

que instalará el programa de edición de archivos de texto. Este programa es el que normalmente utilizo aunque se puede utilizar cualquier otro como vi, mcedit, etc.

opkg install nano

3. Control de pines mediante  Python

El hardware de la omega onion es el mostrado la siguiente página:

https://docs.onion.io/omega2-docs/omega2p.html

En ella podemos ver que dispone de pines específicos como 3.3 Vin, GND, USB y Ethernet y 12 pines que pueden configurarse de forma independiente para lectura o escritura digital.

Además, algunos pines de entrada y salida disponen de otras funcionalidades. Es importante observar que la omega onion trabaja a 3.3 v, y que 5 V puede causar daños en el pin aplicado.

El control de pines mediante el lenguaje interpretado de programación Python se explica en la documentación oficial (https://docs.onion.io/omega2-docs/gpio-python-module.html) y en el presente artículo vamos a hacer un resumen.

3.1 Control de salidas

Partiendo de la conexión realizada en el apartado 3 tecleamos en el terminal

nano rojo.py

y se nos abrirá el programa nano; en este editor copiaremos el siguiente programa. No debemos introducir caracteres con tilde ni siquiera en los comentarios.

import time #libreria de control del tiempo

import onionGpio #libreria de control de pines

gpioNum = 17 #el pin 17 esta conectado al led rojo

gpioObj = onionGpio.OnionGpio(gpioNum) #creamos el objeto

status  = gpioObj.setOutputDirection(0) #Pin 17 como salida

status  = gpioObj.setValue(0) #pin 17 a 0, se activa el led

time.sleep(1) #Esperamos un segundo

status  = gpioObj.setValue(1) #pin 17 a 1, se desactiva el led

Una vez terminada la edición tecleamos ctrl-o y aceptamos el nombre con <enter> y finalmente ctrl-x para salir del editor

En el editor de comandos tecleamos

python rojo.py

para ejecutar el programa creado

Como resultado el led rojo se nos activará durante un segundo y luego se desactivará volviendo el control al terminal de comandos.

Fig 12. Led rojo activo.

3.2. Lectura de pines

Creamos un archivo entrada.py de igual forma al apartado anterior

nano entrada.py

Copiamos el siguiente programa

import time#libreria de control de tiempo

import onionGpio#libreria de control de pines

pin = 0

gpioObj = onionGpio.OnionGpio(pin)#creamos objeto

# Configuracion del pin 0 como salida

status  = gpioObj.setInputDirection()

iteracion = 0

while iteracion < 15:#bucle de 15 ciclos de un segundo

    valor = gpioObj.getValue()#leemos el pin 0 y lo guardamos en valor

    print ‘GPIO%d lectura: %d’%(pin, int(valor))#mostramos lectura en pantalla

    time.sleep(1)#esperamos 1 segundo

    iteracion +=1#sumamos 1 a la variable iteracion

Guardamos el programa con ctrl-o, aceptar, y salimos del editor ctrl-x. Para probar el programa tecleamos

python entrada.py

Y con un cable de pin macho-macho conectamos el pin 0 a 3.3 v ó GND según deseemos poner la entrada a nivel alto o bajo. Fig. 13.

Fig 13. Puesta a “1” de entrada.

En el próximo artículo realizaremos un programa en python capaz de enviar y recibir datos desde la omega onion como cliente html, y la web de dónde tomará las órdenes y a dónde enviará los datos.

4. Control de omega-onion desde una nube propia

En este artículo vamos a describir como crear las herramientas necesarias para poder hacer lanzar aplicaciones en la Omega y enviar información al usuario.

Para ello necesitaremos:

  • Instalar apache y php en nuestra máquina o servidor elegido.
  • Acceder a la nube oficial para tomar los datos necesarios para la comunicación remota.
  • Crear una página web en nuestra máquina que lance script.
  • Crear los programas en python en la Omega Onion para que activen las salidas (diodo tricolor de la placa “Extension Dock”.

Deja un comentario

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