Análisis y comparativas
Eventos GuíasNo hay páginas en esta sección.
No hay páginas en esta sección.
Análisis y comparativas
Eventos GuíasNo hay páginas en esta sección.
No hay páginas en esta sección.
¡Esta es una revisión vieja del documento!
WORK IN PROGRESS
Si quieres hacer experimentos con IOT o simplemente quieres automatizar tu hogar o laboratorio esta es tu guía! En esta guía te explicaré como instalar de cero un sistema headless en tu Raspberry Pi, Mosquitto un broker MQTT y Node Red un auténtico pegamento de tecnologías. Empezamos!
Necesitarás una Raspberry Pi, da igual el modelo con tal de que tengas una manera de conectarlo a tu red.
Para que nuestro sistema sea lo más estable posible, lo vamos a conectar mediante cable ethernet, si quieres conectarlo por wifi hay infinidad de tutoriales en internet.
Aunque orientaremos la guía a Raspberry puedes utilizar otro sistema embebido con pequeños cambios.
Vamos a utilizar una versión lite (o reducida) de raspbian para este proyecto, ya que vamos a utilizar la raspi en modo headless, es decir sin utilizar monitor, ratón o demás periféricos.
Esta elección es debida a que la utilizaremos como un servidor, la conectaremos a nuestra red y siempre que trabajemos con ella lo haremos de manera remota desde otro ordenador conectado a la misma red.
<note tip>Esto solo activa ssh para el primer arranque! Si apagas la raspi en el proceso tendrás que volver a poner el archivo para poder volver a conectarte</note>
A partir de ahora siempre nos comunicaremos con la raspi mediante ssh o posteriormente la interfaz de programación de NodeRed. Pero para poder conectarnos a ella primero debemos encontrarla en nuestra red!
Hay multiples opciones para encontrar que IP le ha asignado nuestro router. Podemos conectarnos a nuestro router y buscar que dispositivos están conectados o hacer un escaneo de IPs en nuestra red. pero os voy a recomendar una fantástica herramienta open source de Adafruit. El Pi Finder te permite detectar raspis en tu red y hasta conectarte por ssh. Super recomendable si no quieres complicarte.
Para conectarnos por ssh tenemos varias opciones.
La más sencilla es utilizar el Pi Finder del anterior apartado, utilizaremos el usuario “pi” y la contraseña por defecto “raspberry” y presionamos el botonaco “Terminal”
Si tu sistema operativo es windows puedes utilizar Putty
Si en cambio usas linux o macOS entra en la terminal y utiliza (sustituyendo las X por la IP de tu raspi):
ssh [email protected]
Una vez ya conseguimos estar dentro de la raspi, vamos a configurarla. Haremos los cambios necesarios para que todo funcione correctamente.
Debido a que vamos a instalar un broker de MQTT y que posteriormente conectaremos nuestros dispositivos IOT a dicho broker vamos configurar una ip fija a nuestra raspi. Mira en que rango de IPs tiene tu red, puede ser de la forma 192.168.0.XX. Elige una IP que esté libre en tu red y que te sea fácil de recordar (el rango suele ir desde el 0 a 255), Yo utilizaré por ejemplo la 192.168.0.210.
sudo nano /etc/dhcpcd.conf
interface eth0 static ip_address=XXX.XXX.XXX.XXX/24 static routers=192.168.0.1 static domain_name_servers=192.168.0.1
sudo reboot
ssh [email protected]
Ahora utilizaremos este comando para configurar varios aspectos de la raspi.
sudo raspi-config
Aunque descargamos la última versión de la web, habrá actualizaciones intermedias del sistema, vamos a asegurarnos que tenemos todo con la última versión.
sudo apt-get update
sudo apt-get upgrade
Por seguridad evitaremos utilizar el usuario pi por lo que crearemos un nuevo usuario con un nuevo password.
sudo rm /etc/ssh/ssh_host* sudo ssh-keygen -A sudo adduser USERNAME sudo adduser USERNAME sudo sudo reboot
ssh [email protected]
<note tip>Como hemos cambiado las claves de ssh en el anterior paso, el ordenador lo detectará e igual tienes que eliminar la clave antigua en un fichero de tu sistema. En mac se soluciona poniendo en la terminal “nano /Users/TUUSUARIO/.ssh/known_hosts” y eliminando la linea de la ip de tu raspi</note>
sudo deluser --remove-home pi
Las raspis hacen un uso intensivo de las memorias sd por lo que suele pasar que al poco tiempo se suelen estropear. Por ello utilizaremos el sistema TMPFS que utiliza la memoria ram para evitar este problema.
sudo nano /etc/fstab
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=30m 0 0 tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0 tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=30m 0 0 tmpfs /var/spool/mqueue tmpfs defaults,noatime,nosuid,mode=0700,gid=1001,size=30m 0 0
MQTT es un protocolo de comunicación de mensajes entre máquinas muy adecuado para IOT. Funciona con un sistema de publicación/suscripción. De manera muy simplificada los dispositivos publican en la red su información y a los que les interese escuchar esa información se pueden suscribir para poder recibirla. Tiene características muy interesantes como el QoS o calidad de servicio o la posibilidad de que los dispositivos dejen un “testamento” que se activa cuando desaparecen de la red. No me lío más y vamos a instalar Mosquitto, un broker de MQTT que se encargará de este tipo de mensajes en nuestra red.
sudo apt-get install mosquitto mosquitto-clients
Vamos a crear un usuario y password para Mosquitto.
cd /etc/mosquitto/
sudo mosquitto_passwd -c passwordfile USERNAME
sudo mosquitto_passwd -b passwordfile USERNAME
sudo mosquitto_passwd -D passwordfile USERNAME