El próximo tutorial explicará como establecer una conexión inalámbrica con el Arduino Yún, por medio de SSH, a través del cual se controlará el encendido y el apagado de un LED conectado al pin 13 del microcontrolador.
El Arduino Yún posee una serie de características que lo hacen uno de los más poderosos modelos de la casa Arduino que ha visto la luz. Entre estas características destaca la comunicación inalámbrica por medio de WIFI. Hoy les voy a explicar cómo encender un LED conectado al Arduino Yún, de forma inalámbrica, por medio del protocolo SSH.
Pero, ¿qué es SSH?
Según la Wikipedia…
SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos ejecutando un Servidor X(en sistemas Unix y Windows).
SSH trabaja de forma similar a como se hace con telnet. La diferencia principal es que SSH usa técnicas de cifrado que hacen que la información que viaja por el medio de comunicación vaya de manera no legible, evitando que terceras personas puedan descubrir el usuario y contraseña de la conexión lo que se escribe durante toda la sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de REPLAY y manipular así la información entre destinos.
Básicamente se trata de un protocolo de comunicación entre equipos a distancia, conectados entre sí a través de una red. Arduino Yún es capaz de establecer comunicación inalámbrica por medio de SSH, con una computadora.
Para este ejemplo vamos a considerar que nuestra computadora está conectada a la misma red que nuestro Arduino Yún. Es necesario tener nuestro Arduino Yún previamente configurado.
Para poder comunicarnos por medio de SSH será necesario utilizar un software que funcione como terminal para establecer la comunicación. El software que yo utilizaré para este ejemplo será Putty. Este software gratuito, especialmente diseñado para Windows, puede ser descargado desde su sitio oficial.
Para hacer las pruebas necesarias y determinar si este procedimiento funciona o no es necesario que nuestro Arduino Yún contenga un código, que mostraré a continuación:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#include <Console.h> const int ledPin = 13; // se declara el pin donde se conectará el LED int incomingByte; // la variable que contendrá la información de entrada void setup() { // Se inicia la comunicación Bridge.begin(); Console.begin(); while (!Console){ ; // Se espera hasta que se conecte la consola } Console.println("Se ha conectado a la consola!!!!"); // Se establece el pin donde se conecta el LED como salida pinMode(ledPin, OUTPUT); } void loop() { // Se verifica si hay información entrante if (Console.available() > 0) { // Se lee la información entrante incomingByte = Console.read(); // Se hace la comparación. Si la entrada es una H (mayúscula) se enciende el LED if (incomingByte == 'H') { digitalWrite(ledPin, HIGH); } // Si la entrada es una L (mayúscula), se apaga el LED if (incomingByte == 'L') { digitalWrite(ledPin, LOW); } } delay(100); } |
El código mostrado hará que un LED conectado al pin 13 se encienda cuando, por medio de la consola en Putty, enviemos una H. Al enviar una L, el led se apagará.
El circuito para esta prueba es sumamente sencillo:
NOTA: Recordar por favor que el LED tiene un ánodo (+) y un cátodo (-). Verifique que los electrodos internos coincidan con los mostrados en la ilustración, y que el electrodo mayor vaya conectado al GND y el menor al pin 13.
Cuando hayamos subido el código a nuestro Arduino Yún, nos aseguramos de que esté conectado a la misma red WIFI en la cual se encuentra conectada nuestra computadora. Necesitamos conocer la IP de nuestro Arduino Yún, por lo que es recomendable entrar a la consola de nuestro dispositivo. Para ello, vamos a un navegador y escribimos http://nombre_de_tu_arduino.local
En mi caso, mi arduino Yún se llama juppongatana. Para acceder a mi consola, escribo http://juppongatana.local
Me aparece una ventana como esta:
Dentro, voy a encontrar información sobre mi dispositivo. Lo que necesito saber es mi dirección IP Wireless.
Ahora salgo de esta ventana y voy al software Putty. Coloco mi dirección IP y le doy clic en Open.
Nos aparece una ventana tipo consola, similar a MS-DOS. Nos solicitará un nombre de usuario y una contraseña.
El usuario por defecto es root y la contaseña es la que establecimos en la configuración del Arduino Yún.
Cuando obtengamos el acceso, la ventana que nos aparecerá será la siguiente:
Ahora necesitamos enviarle un comando a nuestro Arduino Yún para iniciar la consola. Tecleamos el comando telnet localhost 6571 en Putty y debemos obtener el siguiente resultado.
Ahora que estamos conectados a la consola, es fácil trabajar con nuestro Arduino Yún. Si enviamos una H, el LED encenderá. Con una L, el LED se apagará.
Podemos también lograr que nuestro Arduino Yún nos responda cada vez que le enviamos un comando. Modifiquemos el código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
if (Console.available() > 0) { // Se lee la información entrante incomingByte = Console.read(); // Se hace la comparación. Si la entrada es una H (mayúscula) se enciende el LED if (incomingByte == 'H') { digitalWrite(ledPin, HIGH); Console.println("Se ha encendido el LED"); } // Si la entrada es una L (mayúscula), se apaga el LED if (incomingByte == 'L') { digitalWrite(ledPin, LOW); Console.println("Se ha apagado el LED"); } } |
Con esto, el resultado que obtendremos cuando decidamos encender o apagar el LED será el siguiente.
Eso es todo por ahora. Espero que esta información sea de su completo agrado y utilidad. Saludos.