Archivo de la categoría: Formación IoT

Práctica 1: Instalación y configuración Raspberry Pi OS

Instalar y configurar una Raspberry Pi para dejar lista como un nodo edge o gateway IoT.

En caso de no disponer de Raspberry Pi:

  • Instalar y configurar Raspberry Pi OS y software, virtualizado en VirtualBox
  • Instalar y configurar una máquina física o virtual Linux.

Instalar:

  • Raspberry Pi OS
  • Base de Datos local: MariaDB
  • Visualización base de datos: PHPMyAdmin (Requisitos: Apache + PHP)
  • Herramienta de programación IoT que se utiliza para conectar dispositivos de hardware, APIs y servicios de internet: Node-RED

Solución

1 – Instalar Imagen Raspberry Pi OS (Antiguo Raspbian)

Instalación recomendada usando Raspberry Pi Imager: https://www.raspberrypi.org/software/

Raspberry Pi Imager es la forma rápida y fácil de instalar Raspberry Pi OS y otros sistemas operativos en una tarjeta microSD, lista para usar con su Raspberry Pi. Vídeo de 40 segundos de como usar Raspberry Pi Imager: https://www.youtube.com/watch?v=J024soVgEeM 

Descargue e instale Raspberry Pi Imager con un lector de tarjetas SD. Coloque la tarjeta SD que usará con su Raspberry Pi en el lector y ejecute Raspberry Pi Imager.

2 – Configuración Raspberry Pi OS

Pasos para la instalación con monitor, ratón y teclado:

  • Seguir con el asistente de instalación que aparece al iniciar: cambiar contraseña, cambiar el nombre (hostname), configurar y actualizar Raspberry Pi.
  • Conectar a Internet. Wifi o Ethernet
  • Activar VNC y SSH para acceso remoto

Pasos para instalación headless:

Vídeos:

Una vez entramos en Raspberry Pi, seguimos los pasos del asistente que nos indica para cambiar contraseña, cambiar el nombre (hostname), configurar y actualizar Raspberry Pi.

2b – Virtualizar Raspberry Pi Desktop en Virtualbox

En caso de no tener una Raspberry Pi, se puede virtualizar Raspberry Pi Desktop en Virtualbox.

Tutorial para virtualizar cualquier sistema operativo con Virtualbox: https://www.softzone.es/manuales-software-2/tutorial-de-virtualbox/

Pasos:

3 – Instalar Apache + PHP (requisitos para phpMyAdmin)

Update system:

  • sudo apt-get update
  • sudo apt-get upgrade

Instalar Apache2:

  • sudo apt-get install apache2

Comprobar que accedemos entrando a la IP de la Raspberry Pi desde un navegador:

Instalar PHP

  • sudo apt-get install php libapache2-mod-php

Para comprobar el funcionamiento crear un fichero llamado info.php y en su interior el código: <?php phpinfo(); ?> y guardado en la ruta /var/www/html

Luego en un navegador ir a http://IP-raspberry/info.php

4 – Instalar MariaDB

Pasos:

  • sudo apt-get install mariadb-server mariadb-client php-mysql
  • sudo mysql_secure_installation
  • sudo service apache2 restart

Durante el proceso de instalación se pedirá el password de root de MySQL, poner el que quieras, pero para no olvidarlo, recomiendo para el curso poner el mismo que tiene el usuario pi de la Raspberry Pi y poner a Yes todas las opciones de mysql_secure_installation 

Para comprobar que todo funciona ejecutar sudo mysql -u root -p y poner la contraseña de root, saldrá:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 61
Server version: 10.1.23-MariaDB-9+deb9u1 Raspbian 9.0
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

5 – Instalar phpMyAdmin

Comando: sudo apt-get install phpmyadmin

Durante el proceso pide la contraseña del usuario phpmyadmin de MySQL y el servidor a instalar el apache y poner yes en dbconfig-common

En caso que no funcione o queramos hacer una configuración de phpmyadmin después de la instalación, usar el comando: sudo dpkg-reconfigure -plow phpmyadmin

Para probar que funciona ver en un navegador: http://IP-raspberry/phpmyadmin con el usuario phpmyadmin y la contraseña usada.

El usuario phpmyadmin no tiene privilegios y el usuario root por seguridad no puede usarse desde phpMyAdmin. 

Crear un usuario “pi” con privilegios. Ejecutar en la consola:

sudo mysql -u root -p
CREATE USER 'pi'@'localhost' IDENTIFIED BY 'tu_contrasena';
CREATE USER 'pi'@'%' IDENTIFIED BY 'tu_contrasena';
GRANT ALL PRIVILEGES ON * . * TO 'pi'@'localhost'; 
GRANT ALL PRIVILEGES ON *.* TO 'pi'@'%'; 
GRANT GRANT OPTION ON *.* TO 'pi'@'localhost';
FLUSH PRIVILEGES;

6 – Instalar Node-RED

No instalar la versión que aparece en software recomendado de Raspberry Pi OS.

Seguir esta instalacióm: https://nodered.org/docs/getting-started/raspberrypi, para ello ejecutar el comando para instalar y actualizar:

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

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

Saber Más Fundamentos IoT CEFIRE

La imagen tiene un atributo ALT vacío; su nombre de archivo es aprendiendoarduino_logo.png

Curso On-Line “Fundamentos IoT”: https://www.aprendiendoarduino.com/cursos/fundamentos-iot-open-source-para-aplicaciones-industriales/

Semana 1

Darse de alta en los servicios Thingspeak y Grafana Cloud

Práctica 1: Instalación y configuración Raspberry Pi OS. Para este fin de semana, mandar comentarios y tutoria si es necesario

Vídeo tutoriales de instalación Raspberry Pi OS Headless:

Video en drive

Monitorización para principiantes: https://endef.com/monitorizacion-ee-para-principantes/

Simatic IoT2050:

Limitación RPi virtual vs Rpi OS:

  • Ojo a las redes
  • Algún SW no viene instalado
  • Versión de kernel antigua 5.4 vs 4.19

Raspberry Pi 64 bits:

Semana 2

  • Programa del curso
  • Modo Kiosko
  • Problema con dashboard y muchos puntos en la gráfica
  • Demo y Dashboard Node-RED en móvil
  • Sensores
  • Actuadores y Periféricos
  • Librerías
  • Práctica 2
  • Consultas

Semana 3 Lunes

Semana 3 Miércoles

Semana 4 Lunes

Semana 4 Miércoles

Código para obtener los datos Raspberry Pi y mandar a MQTT: https://github.com/jecrespo/Curso-Node-RED/blob/master/Monitor%20Raspberry%20Pi/monitor_raspberrypi.json

Clonar imágenes Raspberry Pi:

Cómo funciona Node-RED: Arquitectura asíncrona y basada en eventos.

Cuando se hace clic en el botón de despliegue, el editor crea la representación JSON completa de su configuración de flujo. Esto se pasa a través de una petición HTTP Post al tiempo de ejecución. Asumiendo que se está haciendo un “despliegue completo”, el tiempo de ejecución detiene todos los nodos actuales y los descarta. A continuación, recorre cada nodo de la definición de flujo JSON y crea un nuevo objeto nodo del tipo apropiado, pasando su configuración.

Instalado en /usr/lib/node_modules/node-red y se ejecuta el fichero red.js

Semana 5 Lunes

Tutoría Fin de Curso

Puntos saltados que veremos lo que más interesen

Anexo I – Material Prácticas Cursos y Requisitos Técnicos

Para realizar cualquiera de los cursos de los itinerarios es necesario:

  • Un Ordenador PC o portátil por alumno con al menos un puerto USB accesible
  • El PC de cada alumno deberá tener un sistema operativo instalado, ya sea un sistema Windows o un sistema Linux. 
  • Acceso a Internet
  • Red Wifi
  • Espacio equipado con mobiliario adecuado al número de alumnos

Todo el software y documentación utilizado en el curso es libre con licencia creative commons o similar y publicado en https://www.aprendiendoarduino.com/

Listado de material orientativo para realizar las prácticas de cada itinerario por alumno:

Material Formación Itinerario Arduino

El material necesario para realizar las prácticas del curso consiste en un Arduino Starter Kit (https://www.arduino.cc/en/Main/ArduinoStarterKit) o similar compuesto por al menos:

  • 1x Arduino UNO Rev3 o equivalente
  • 1x Cable USB
  • 1x Breadboard/Protoboard
  • 1x Adaptador para la batería de 9 Voltios
  • 30x Puentes de conexión para la protoboard (jumpers)
  • 3x Fotorresistencias LDR
  • 3x Potenciometros de 10K o equivalentes
  • 3x Pulsadores
  • 1x Sensor de temperatura (TMP36, DHT11 o similar)
  • 1x Sensor de inclinación
  • 1x LCD alfanumérico I2C (16×2 caracteres)
  • 10x LED de diferentes colores
  • 1x Motor CC 6 o 9 Voltios
  • 1x Servo motor
  • 1x Piezo Buzzer
  • Varias Resistencias de diversas capacidades
  • 1x Módulo IMU MPU6050 o equivalente
  • 1x Módulo bluetooth HC-05 o equivalente
  • 1x Breakout board relé
  • 1x Shield Ethernet
  • 1x placa compatible ESP8266 (p.e. Wemos D1 Mini o NodeMCU)
  • Otros sensores para Arduino (p.e. infrarrojos, sensor de agua, etc…)

NOTA: se aconseja que los módulo sean de tipo breakout board fáciles de conectar

Material Formación Itinerario Raspberry Pi

  • 1x Raspberry Pi con Carcasa 
  • 1x tarjeta micro SD 16Gb
  • 1x cable alimentación 
  • 1x cable HDMI
  • 1x Adaptador GPIO a protoboard
  • 1x Breadboard/Protoboard
  • 30x Puentes de conexión para la protoboard (jumpers)
  • 3x Pulsadores
  • 3x Potenciometros de 10K o equivalentes
  • 1x Sensor de temperatura (TMP36, DHT11 o similar)
  • 1x Piezo Buzzer
  • 10x LED de diferentes colores
  • 1x Conversor analógico digital MCP3008 o equivalente
  • 1x Módulo IMU MPU6050 o equivalente
  • Otros dispositivos I2C (p.e. RTC, sonda temperatura, etc…)
  • Varias Resistencias de diversas capacidades

Material Formación Itinerario ESP8266/ESP32

  • 1x Wemos D1 min o NodeMCU o equivalente
  • 1x Wemos Wifi ESP32 OLED o equivalente
  • 1 x ESP32-CAM o equivalente
  • 1x shields para wemos D1 mini relé
  • 1x shields para wemos D1 mini neopixel
  • 1x shields para wemos D1 mini oled
  • 1x Cable USB
  • 1x Raspberry Pi con Carcasa 
  • 1x tarjeta micro SD 16Gb
  • 1x cable alimentación 
  • 1x cable HDMI
  • 1x Adaptador GPIO a protoboard
  • 1x Breadboard/Protoboard
  • 30x Puentes de conexión para la protoboard (jumpers)
  • 3x Fotorresistencias LDR
  • 3x Potenciometros de 10K o equivalentes
  • 3x Pulsadores
  • 1x Sensor de temperatura (TMP36, DHT11 o similar)
  • 10x LED de diferentes colores
  • 1x Piezo Buzzer
  • Varias Resistencias de diversas capacidades
  • 1x Módulo IMU MPU6050 o equivalente

Material Formación Itinerario IoT/Industria Conectada

  • 1x Arduino UNO Rev3 o equivalente
  • 1x Wemos D1 min o NodeMCU o equivalente
  • 1x shields para wemos D1 mini relé
  • 1x shields para wemos D1 mini oled
  • 1x Moteino con comunicación LoRa
  • 1x placa ESP32 con RFM95 868MHz por alumno (Adafruit Huzzah32, TTGO,…)
  • 1x gateway LoRaWAN 868MHz de interior por grupo
  • 1x Arduino MKR 1400 para conectividad GSM + SIM (p.e. hologram)
  • 1x Cable USB
  • 1x Breadboard/Protoboard
  • 30x Puentes de conexión para la protoboard (jumpers)
  • 3x Fotorresistencias LDR
  • 3x Potenciometros de 10K o equivalentes
  • 3x Pulsadores
  • 1x Sensor de temperatura (TMP36, DHT11 o similar)
  • 10x LED de diferentes colores
  • 1x Piezo Buzzer
  • Varias Resistencias de diversas capacidades
  • 1x Módulo IMU MPU6050 o equivalente
  • Otros sensores para Arduino (p.e. infrarrojos, sensor de agua, etc…)
  • Otros dispositivos I2C (p.e. RTC, sonda temperatura, etc…)

Opcionalmente:

  • 1x Módulo Ultra low power 2.4GHz RF nRF24L01+
  • 1x Kit XBee
  • 1x Arduino MKRWAN1300
  • 1x Servidor (VPS) por alumno

Material Formación Itinerario Digitalización Profesorado

  • 1x Arduino UNO Rev3 o equivalente
  • 1x Kit montaje escornabot y herramientas para montarlo
  • 1x Micro:bit
  • 1x Shield Micro:bit para expansión
  • 1x Raspberry Pi con Carcasa 
  • 1x tarjeta micro SD 16Gb
  • 1x cable alimentación 
  • 1x cable HDMI
  • 1x Adaptador GPIO a protoboard
  • 1x Cable USB
  • 1x Breadboard/Protoboard
  • 30x Puentes de conexión para la protoboard (jumpers)
  • 3x Fotorresistencias LDR
  • 3x Potenciometros de 10K o equivalentes
  • 3x Pulsadores
  • 1x Sensor de temperatura (TMP36, DHT11 o similar)
  • 1x Sensor de inclinación
  • 1x LCD alfanumérico I2C (16×2 caracteres)
  • 10x LED de diferentes colores
  • 1x Servo motor
  • 1x Piezo Buzzer
  • Varias Resistencias de diversas capacidades
  • 1x Módulo IMU MPU6050 o equivalente
  • 1x Módulo bluetooth HC-05 o equivalente
  • 1x Breakout board relé
  • 1x placa compatible ESP8266 (p.e. Wemos D1 Mini o NodeMCU)
  • Otros sensores para Arduino (p.e. infrarrojos, sensor de agua, etc…)
  • Otros dispositivos I2C (p.e. RTC, sonda temperatura, etc…)
  • Otros Actuadores y periféricos (p.e. teclado, pantalla TFT, etc…)

Material Formación Otros Cursos

Material común:

  • 1x Arduino UNO Rev3 o equivalente
  • 1x Cable USB
  • 1x Breadboard/Protoboard
  • 30x Puentes de conexión para la protoboard (jumpers)
  • 3x Fotorresistencias LDR
  • 3x Potenciometros de 10K o equivalentes
  • 3x Pulsadores
  • 1x Sensor de temperatura (TMP36, DHT11 o similar)
  • 1x Sensor de inclinación
  • 1x LCD alfanumérico I2C (16×2 caracteres)
  • 10x LED de diferentes colores
  • 1x Piezo Buzzer
  • Varias Resistencias de diversas capacidades
  • Otros sensores para Arduino (p.e. infrarrojos, sensor de agua, etc…)
  • Otros dispositivos I2C (p.e. RTC, sonda temperatura, etc…)
  • Otros Actuadores y periféricos (p.e. teclado, pantalla TFT, etc…)

PLCs Basados en Arduino:

  • 1x M-Duino básico
  • 1x Controllino o similar
  • 1x Revolution Pi

Cursos Node-RED:

  • 1x Raspberry Pi con Carcasa 
  • 1x tarjeta micro SD 16Gb
  • 1x cable alimentación 
  • 1x cable HDMI
  • 1x Adaptador GPIO a protoboard
  • 1x Wemos D1 min o NodeMCU o equivalente
  • 1x shields para wemos D1 mini relé
  • 1x shields para wemos D1 mini neopixel
  • 1x shields para wemos D1 mini oled

Talleres y Charlas

Además del catálogo de cursos también es posible impartir talleres prácticos de entre 3 y 6 horas relacionados con las tecnologías impartidas en los cursos, así como charlas divulgativas en todo tipos de eventos tecnológicos y maker. Para proponer un taller o charla ponerse en contacto a través de aprendiendoarduino@gmail.com 

Si quieres que imparta una charla, ponencia o taller,  si quieres plantearme una colaboración o si tienes cualquier otra idea. No dudes en contactar conmigo en aprendiendoarduino@gmail.com 

Talleres Impartidos y contenido:

Otros posibles talleres o charlas a impartir:

  • Primeros pasos ESP8266
  • Primeros pasos ESP32
  • Introducción a M5stack y M5stick
  • Primeros pasos Raspberry Pi
  • Robótica Educativa
  • Robots Open Source 
  • Domótica en un tarde
  • PLCs basados en Arduino para entorno industrial
  • PLCs basados en Raspberry Pi para entorno industrial
  • Monta tu Scada basado en Arduino (HMI Nextion e Industrial Shields)
  • Qué es The Things Network (TTN)
  • Montaje de un gateway TTN
  • Arduino en la Educación
  • Arduino en la Industria
  • Comunicaciones inalámbricas IoT
  • Iniciación a IoT con Herramientas IoT
  • Node-Red en IoT
  • Monitorización de Energía con Herramientas Libres
  • Digitaliza tu negocio con herramientas libres
  • Y más.. (consulta en aprendiendoarduino@gmail.com)

Si deseas algún otro taller o charla relacionada con el mundo Open Source aplicado al entorno Industrial o cualquier tema maker mándame tu propuesta a aprendiendoarduino@gmail.com.

Otros Cursos

Además de los itinerarios se ofrecen otros cursos relacionados con el HW libre y la digitalización por separado, que pueden ser un complemento a los cursos de los itinerarios o cursos separados.

PLCs Basados en Arduino (Nivel 1)20 h
Node Red Iniciacion (Nivel 1)20 h
Node Red Avanzado (Nivel 2) – EN DESARROLLO20 h
Domótica Open Source (Nivel 1) – EN DESARROLLO20 h
Robótica Open Source (Nivel 1) – EN DESARROLLO20 h
Certificación Oficial Arduino (Nivel 1) – EN DESARROLLO20 h

Ver Anexo I con el material necesario para impartir los cursos de este itinerario.

PLCs Basados en Arduino (Nivel 1)

Objetivo

El objetivo de este curso es que el alumno obtenga un conocimiento de los PLCs basados en Arduino y de su potencia en los entornos industriales y el IoT. Nos centraremos en un modelo para las prácticas pero se verán varios tipos.

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/

Al finalizar el curso el alumno será capaz de:

  • Conocer diversas opciones de PLCs basados en Arduino
  • Manejar y configurar el IDE Arduino
  • Conocer el lenguaje de programación
  • Conocer otros lenguajes de programación para los PLCs
  • Aprender a usar las entradas analógicas y digitales
  • Aprender a usar las salidas analógicas y digitales
  • Manejar sensores y periféricos
  • Usar comunicaciones disponibles en los PLCs

Requisitos Alumnos

Para realizar este curso, es necesario tener unos conocimientos básicos de Arduino.

Contenido del Curso

  • PLCs basados en Arduino
  • IDE Arduino
  • Simuladores Arduino
  • Programación Arduino
  • Otros Métodos de Programación
  • Entradas y Salidas Digitales
  • Entradas Analógicas
  • PWM
  • Manejo de Sensores
  • Comunicaciones
  • PLCs basados en Raspberry Pi
  • Proyectos Industriales

Node Red Iniciacion (Nivel 1)

Objetivo

El objetivo de este curso es que el alumno aprenda el uso de Node-RED y la programación visual mediante flujos para su uso en entornos de domótica e IoT

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/

Al finalizar el curso el alumno será capaz de:

  • Instalar Node-RED en diversas plataformas
  • Conocer el protocolo MQTT e instalar un broker
  • Configurar y usar de forma segura Node-RED
  • Usar la programación de flujos de forma eficiente
  • Hacer debug de los programas Node-RED
  • Instalar y utilizar nodos
  • Configurar un dashboard
  • Integrar Node-RED con servicios de terceros

Requisitos Alumnos

No son necesarios requisitos previos de los alumnos para asistir a este curso

Contenido del Curso

  • Instalación de Node-RED
  • Instalación de Mosquitto
  • Protocolo MQTT
  • Configurar y securizar Node-RED
  • Configurar y securizar Mosquitto
  • Node-Red en la Nube
  • Programación Node-RED
  • Debug Node-RED
  • Nodos Node-RED
  • Dashboard Node-Red
  • Integración con Servicios de Terceros