Paso a Paso: Instalación Servicios Raspberry Pi

Webmin

Webmin es una herramienta de configuración de sistemas accesible vía web para sistemas Unix, como GNU/Linux y OpenSolaris. Con él se pueden configurar aspectos internos de muchos sistemas operativos, como usuarios, cuotas de espacio, servicios, archivos de configuración, apagado del equipo, etcétera, así como modificar y controlar muchas aplicaciones libres, como el servidor web Apache, PHP, MySQL, DNS, Samba, DHCP, entre otros.

Instalar con apt desde el repositorio de webmin. Comandos: 

sudo sh -c 'echo "deb http://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list'

cd /home/pi
wget https://download.webmin.com/jcameron-key.asc
sudo cat jcameron-key.asc | gpg --dearmor >jcameron-key.gpg
sudo cp jcameron-key.gpg /etc/apt/trusted.gpg.d
rm jcameron-key.*
sudo apt-get install apt-transport-https
sudo apt update
sudo apt install webmin
sudo /etc/webmin/start
sudo systemctl enable webmin 

Para comprobar que se ha instalado acceder desde un navegador a https://ip_address:10000

Navegar por las opciones de webmin y hacer:

  • Ver recursos usados
  • Ver procesos ejecutándose
  • Ver los cron jobs configurados
  • Ver los logs
  • Ver los usuarios y grupos
  • Ver los servidores instalados
  • Ver la configuración de red

Node-RED

Ejecutar el comando para instalar y actualizar: bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Pulsar “y” a las preguntas en la instalación.

Para ejecutar Node-RED en el arranque: sudo systemctl enable nodered.service

Para iniciar el servicio: sudo systemctl start nodered.service

En caso de problemas ver el log con: node-red-log

Una vez instalado entrar en http://ip_address:1880

Navegar por Node-RED y poner el nodo inject y debug, unirlos y hacer deploy. Visualizar la pestaña de debug al pulsar sobre el nodo inject.

Añadir un nodo función y poner este código javascript:

// Create a Date object from the payload
var date = new Date(msg.payload);
// Change the payload to be a formatted Date string
msg.payload = date.toString();
// Return the message so it can be sent on
return msg;

Ahora se ve la fecha en un formato legible para humanos.

Instalar la librería moment https://flows.nodered.org/node/node-red-contrib-moment desde el gestor de paletas y sustituir el nodo función por un nodo moment.

First flow: https://nodered.org/docs/tutorials/first-flow 

SQLite

Instalar SQLite:

  • sudo apt update
  • sudo apt install sqlite3

Instalar SQLite Browser:

  • sudo apt update
  • sudo apt install sqlitebrowser

Usaremos SQLite como BBDD local y luego pasar datos a una BBD cloud. Así disponemos de un sistema de almacenamiento local en lugar de una BBDD más compleja o un fichero en local en un formato como json, que es más simple y menos funcional.

Crear una nueva base de datos desde sqlitebrowser llamada datosxx.db en /home/pi/BBDD, siendo xx el número de las Raspberry Pi asignada.

Mediante comandos ejecutar:

  • cd /home/pi
  • mkdir BBDD
  • cd BBDD
  • sqlite3 datosxx.db
$sqlite3 datos15.db
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

Crear una tabla llamada datos_aleatorios con tres campos, tal y como muestra la imagen:

  • id (Clave primaria, autoincremento, único)
  • fecha (tipo texto)
  • dato (tipo texto)

Desde la hoja de datos probar a insertar algunos datos

Mediante comandos ejecutar desde la consola de SQLite:

CREATE TABLE "datos_aleatorios" ( "id" INTEGER UNIQUE, "fecha" TEXT, "dato" TEXT, PRIMARY KEY("id" AUTOINCREMENT) );

Comandos SQLite

  • .help – ayuda
  • .database – listas nombres y ficheros de las bases de datos
  • .exit – salir
  • .tables – muestra las tablas
  • CLI sqlite: https://www.sqlite.org/cli.html

Si queremos usar un interfaz web sencillo para visualizar y hacer operaciones sencillas usar: https://github.com/coleifer/sqlite-web 

Para instalar ejecutar los comandos:

  • sudo pip install sqlite-web
  • sqlite_web –host 0.0.0.0 prueba.db 

Insertar Datos Aleatorios desde Node-RED

Conectarse a Node-RED: http://ip_address:1880

Copiar este texto y pegar en Node-RED en Menú – Import – Clipboard

[{"id":"35d3814e6567ee71","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"cf5e958c1024f743","type":"sqlite","z":"35d3814e6567ee71","mydb":"2542c44b886edf9f","sqlquery":"msg.topic","sql":"","name":"","x":600,"y":100,"wires":[["1be92c5ab1762656"]]},{"id":"e760762917e72c6d","type":"inject","z":"35d3814e6567ee71","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"15","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":190,"y":100,"wires":[["09e0bc6424dbe364"]]},{"id":"09e0bc6424dbe364","type":"change","z":"35d3814e6567ee71","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"\"INSERT INTO datos_aleatorios ('fecha','dato') VALUES ('\"&$now('[M01]/[D01]/[Y0001] [H01]:[m01]:[s01]','+0200')&\"','\"&$random()&\"')\"","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":100,"wires":[["cf5e958c1024f743"]]},{"id":"1be92c5ab1762656","type":"debug","z":"35d3814e6567ee71","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":590,"y":200,"wires":[]},{"id":"2542c44b886edf9f","type":"sqlitedb","db":"/home/pi/BBDD/datos15.db","mode":"RWC"}]

Y pulsar en Deploy para cargar el flujo.

Resolver los errores, revisar los nodos del flujo creado.

  • Instalar la librería node-red-node-sqlite desde el menú Manage palette
  • Poner la ruta al fichero que contiene la base de datos

Este flujo inserta cada 15 segundos un dato aleatorio en la tabla de la base de datos creada.

Comprobar que graba los datos aleatorios en la BBDD recién creada.

Ver este ejemplo de uso básico de SQL, importar el código y ejecutarlo: https://flows.nodered.org/flow/b44c896fb2d16c6920e3a70861fe06ac

3 comentarios en “Paso a Paso: Instalación Servicios Raspberry Pi

  1. Pingback: Paso a Paso: Instalación Servicios Raspberry Pi -

  2. Pingback: Diario del Curso IoT, Smart Cities y Node-RED | Aprendiendo Arduino

  3. Pingback: Diario Curso: Raspberry Pi y Node-RED. 2ª ed | Aprendiendo Arduino

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.