SecLearn

SecLearn

Raspberry y Arduino , La domotica barata



Resultado de imaxes para arduino En esta entrada del blog nos saldremos un poco del tema de la seguridad, para jugar con la  Raspberry Pi y el Arduino . Raspberry Pi es un computador de placa reducida, de bajo costo desarrollado en Reino Unido por la Fundación Raspberry, con el objetivo de estimular la enseñanza de ciencias de la computación en las escuelas. ,y si! es open source!.
 Arduino es una compañía de hardware libre y una comunidad tecnológica que diseña y manufactura placas de desarrollo de hardware, compuestas por Micro controlado las placas son programadas a través de un entorno de desarrollo Arduino se enfoca en acercar y facilitar el uso de la electrónica y programación de sistemas embebidos .El hardware consiste en una placa de circuito impreso con un micro controlador, puertos digitales y analógicos. Entrada/salidaResultado de imaxes para raspberry
Ahora que nos conocemos todos, Haremos una declaracion de intenciones ,la idea es que atraves de un dispositivo movil tengamos la posibilidad hacer una medicion de temperatura con un sensor intalado en el arduino,el cual debera estar comunicado con la raspberry que sera la que de la orden de medir y enviarnos el valor,complementariamente se instalara dos luces led que simulara bombillas de  estancias de la casa y una pantalla que monstrara datos como el estado de las luces ,sensor de temperatura con minimas y maximas.

Con esta practica debemos dejar claros algunos conecptos como:
-¿Que tipo de SO para Raspberry es adecuado para este fin?
 -¿Como se comunicaran la raspberry y el arduino?
-¿En que lenguaje se entenderan?
-¿Existe posibilidad de control desde fuera de la red local? 
-¿Hasta que punto es escalable?

Configuracion y aspectos principales de Raspberry

Respondiendo a una de las preguntas  formuladas anteriormente la Raspberry PI utiliza como sistema operativo principal diseñado para ella una distribucion de Linux llamada Raspbian, aunque hay muchisimas distribuciones compatibles para distintos fines,incluso algunos sistemas preparados para comvertirla en una estacion multimedia  de lo mas completa.

La instalacion de Raspbian es sencilla , tenemos dos opciones una version completa con entorno grafico y otra sin entorno grafico denominada lite, en mi caso por limitaciones de espacio en la tarjeta SD  me dacanto por la lite.El enlace de descarga : https://www.raspberrypi.org/downloads/raspbian/
Descargando el archivo comprimido con la distribucion elejida, lo descomprimimos en una tarjeta sd la cual conectaremos introduciremos a la Raspberry que ya tenemos conectada mediante hdmi a una pantalla  y a la alimentacion mediante usb. La instalacion es sencilla , seguir los pasos hasta estar en el SO , ya sea en modo comando o en modo grafico si hemos instalado la version con GUI.

El primer paso de que realizaremos sera la con figuracion de red,puesto que en mi caso no puedo disponer de dos pantallas al mismo tiempo ,veo imprescindible el interactuar con la raspberry en remoto. -Vale,¿Y como lo hacemos?, no nos apresuremos,primero configuraremos la red.
 Necesitaremos una IP fija para Raspberry ,no nos interesa que sea el servidor DHCP el que nos asigne una ip,mas adelante veremos por que.
Editaremos el siguiente archivo mediante nano, este contiene la configuracion de red , se encuentra en la siguiente ruta .

  

El archivo debe quedar de la siguiente manera, a la hora de elejir la ip o Adress debemos tener en cuenta que no este siendo utilizada  por otro dispositivo de la red, podemos hacer un scaneo de la red con alguna herramienta tipo N-map o simplemente haciendo un ping a la direcion que hemos escojido
 y comprobando que la ruta es inacesible ,lo cual delatara que no tiene ningun dispositivo vinculado ,por lo menos ahora.


En esta imagen podemos observar la reacion de un  ping a una ip con dispositivo conectado (.125) y una ip sin dispositivo vinculado (.124) . La sintaxis de este comando es comun en Windows y Linux
ping + (IP) . ej " ping 192.168.1.1" lo cual hara un ping a la puerta de enlace o router.

¡Ya tenemos configurada la red ! Ahora configuraremos la Raspberry para que acepte conexiones mediante SSH , El cual nos proporcionara una terminal en remoto desde cualquier dispositivo o punto de la red para poder trabajar sin necesidad de pantalla conectada a la raspberry.Para ello ejecutaremos el sigiente comando : raspi-config ,que nos llevara a un menu de configuracion con distintos aspectos entre los cuales podemos aprobechar para extender el sistema de ficheros y asi poder utilizar toda la memoria de la SD o hacer Overclock y asi aumentar la velocidad del procesador que como efecto secundario conllevara acortar la vida util del mismo ,exponiendose a mayor trabajo y temperatura,en mi caso no tengo disipador ni ventilador adicinal para la Raspberry ,asique ni me lo planteo.
Como ibamos diciendo para que la raspberry acepte conexion SSH, iremos a la opcion 8 Advanced Options .
Resultado de imaxes para raspi-config

 La opcion numero 4 es la encargada del SSH, una vez pulsada , daremos a "YES" para activarlo.Resultado de imaxes para raspi-config ssh

 ¡BIEN!. En este punto debemos tener la Raspberry con Ip fija y el SSH activo ,vamos a comprobarlo pues...

Teniendo ya conectada la Raspberry en el router mediante el cable de red convencional (RJ-45) y conectada a la corriente proseguimos.

Necesitamos un cliente de SSH para interactuar con la raspberry ,podemos hacerlo desde un movil Android o IOS, o con un pc Windows o Linux. Los sistemas operativos tienen aplicaciones propietarias para tales efectos,pero veo muy recomendable hacer uso del tan prestigioso PUTTY por la amigabilidad que nos proporciona para realizar configuraciones posteriores (resolucion,teclado,etc...). Podemos descargarlo gratuitamente desde aqui si lo usaremos desde pc http://www.putty.org/  ,o desde el marked de aplicaiones desde nuestro telefono si es la opcion elejida.

Aqui viene la explicacion de por que hemos tenido que configurar una ip estatica en nuestra raspberry, de no haverlo hecho no sabriamos que Ip ha sido asignada por el servidor DHCP ,la cual podria cambiar cada vez que encendamos la Raspberry si la concesion ha caducado por tiempo o pòr que un dispositivo utilizo esa IP ,para ahorrarnos un escaneo de red cada vez que queramos utilizar la raspberry la hemos asignado una ip fija,en mi caso "192.168.1.125".
En PUTTY simplemente ponemos la IP y clik en "open" ,el puerto deberia estar ya fijado como 22, en el caso de que no este lo ponemos.











 


Despues de introducir usuario y contraseña ,que por defecto es "pi" "raspberry"  se establece la conexion y estamos dentro de la Raspberry.

Familiarizandonos con Arduino

  • Entradas a la placa: son los pines de nuestra placa que podemos utilizar para hacer lecturas. En la placa los pines digitales (del 0 al 13) y analógicos (del A0 al A5).
  • Salidas : los pines de salidas se utilizan para el envío de señales ,sólo los digitales (0 a 13)
También tenemos otros pines como los
-GND (tierra), -5V que proporciona 5 Voltios,
- 3.3V .









Resultado de imaxes para pines arduino

Para interactuar con Arduino necesitamos su IDE o entorno de desarroollo, podemos descargarlo desde https://www.arduino.cc/en/Main/Software