Está en la página 1de 55

MEC328 PROCESOS INDUSTRIALES E INSTRUMENTACIÓN

GUÍA DE LABORATORIO

L1: NODE-RED Y AWS CLOUD


2022-1
Ciclo 2022-1
Departamento de Ingeniería
Sección de Ingeniería Mecatrónica
Curso: MEC328 Procesos Industriales e Instrumentación
Coordinador del curo: Mg. Rony Cabrera rony.cabrera@pucp.pe
Guía elaborada por el Jefe de Práctica: Ing. Cristhian Gustavo Jacinto Calderon
cristhian.jacinto@pucp.edu.pe
INDICE

Resultado de Aprendizaje ............................................................................................................. 4


Proceso de Aprendizaje................................................................................................................. 4
Equipos y materiales: .................................................................................................................... 4
1. Teoría de mensajería entre sistemas .................................................................................... 5
2. Arquitectura OT/IT ................................................................................................................ 6
3. CODESYS ................................................................................................................................ 7
3.1. Pasos preliminares ........................................................................................................ 7
3.2. Instalación de librería .................................................................................................... 9
3.3. Configuración del proyecto ......................................................................................... 11
3.4. Configuración del cliente UDP..................................................................................... 16
3.5. Prueba de concepto 1: Comunicación UDP ................................................................ 18
4. Amazon IoT Core ................................................................................................................. 21
4.1. Ingreso a consola de AWS ........................................................................................... 22
4.2. Creación de objeto y sombra – IoT Core ..................................................................... 24
4.3. Creación de política – IoT Core ................................................................................... 26
4.4. Creación de regla – IoT Core ....................................................................................... 30
4.5. Configuración de cliente MQTT................................................................................... 34
4.6. Prueba de concepto 2: Comunicación MQTT ............................................................. 36
5. Node-RED ............................................................................................................................ 38
5.1. Instalación del programa............................................................................................. 38
5.2. Prueba de integración: UDP & MQTT ......................................................................... 39
6. Reto ágil 1: Comunicación bidireccional ............................................................................. 49
7. Reto ágil 2: Intercambio de mensajes entre dos computadoras usando la nube............... 50
8. Reto ágil 3: Seguridad en la nube (Opcional) ...................................................................... 51
Anexo A. Bloques Node-RED ....................................................................................................... 53
Anexo B. MQTT Box para Windows 8 ......................................................................................... 55
Resultado de Aprendizaje

Al finalizar el laboratorio, el estudiante aprenderá a como: (i) implementar un modelo de


mensajería asíncrona entre un sistema físico distribuido que se conecta a la nube a través del
servicio Amazon IoT Core; (iii) integrar el servicio Amazon IoT Core con tecnologías de operación
(PLC, HMI) a través de Node-RED.

Proceso de Aprendizaje

Teoría de mensajería entre sistemas (10 min)

Arquitectura OT/IT (5 min)

CODESYS (40 min)


Prueba de concepto 1

Amazon IoT Core (30 min)


Prueba de concepto 2

Node-RED (60 min)


Prueba de integración

Reto ágil 1 (45 min)

Reto ágil 2 (45 min)

Equipos y materiales:

 Laptop o PC con Windows 10.


 Guía de laboratorio en digital.
 Cuenta de acceso temporal a Amazon Web Services.
 Softwares: MQTTBox, Hercules SETUP Utility y Node-RED.
1. Teoría de mensajería entre sistemas

En los últimos años ha aumentado la demanda de información operativa hacia el sistema de


información corporativa en tiempo real; esto para satisfacer las necesidades de mantenimiento,
informes ambientales, monitorización de eventos (falla en sensores, actuadores, variables físicas
fuera de los límites máximo permisibles) y otros requisitos corporativos.

Es por ello que la integración del “cloud computing” con los sistemas ciber-físicos, ha tenido un
impacto muy favorable en todos los sectores industriales debido a gran capacidad para
garantizar una alta disponibilidad, gran escalabilidad para el almacenamiento y procesamiento
de datos.

La interoperabilidad entre el sistema físico (dispositivos inteligentes que interactúan con


tecnología de operación) y un sistema ciber (tecnologías de información y el “cloud computing”)
se realiza a través de un protocolo de comunicación orientado al Internet de las Cosas (IoT), que
habilita el intercambio de mensajes bajo el modelo de mensajería asíncrona
publicador/suscriptor.

Por lo general, el sistema físico se encarga de enviar mensajes en base a eventos, por lo que
tiene el rol de “publicador”. Por otro lado, el sistema ciber se encarga de procesar dichos
mensajes y ejecutar lógicas de comunicación, por lo que tiene el rol de “broker” y “suscriptor”.

Figura 1. Intersección entre Sistema Física, Ciber y Datos.

Nota: Vea el vídeo de Introducción ubicado en la carpeta “Vídeos”.

Los protocolos de comunicación orientados al IoT más conocidos son: (i) CoAP (“Constrained
Application Protocol”) y MQTT (“Message Queuing Telemetry Transport”). Los mensajes,
también conocidos como payload tiene una estructura en formato JSON (“JavaScript Object
Notation”) (ver figura 2.).

Para entender el funcionamiento del protocolo MQTT, se debe tener en cuenta los siguientes
conceptos (ver figura 3):

• El “broker” es el servidor con el que se comunican los clientes (publicador/suscriptor) a


través de un canal (tema).
• Un evento es un mensaje que notifica a otros componentes sobre un cambio o acción
que se debe de realizar.
• Cabe la posibilidad de que una “entidad” actúe como “remitente” y “consumidor” al
mismo tiempo.
• El Quality-of-Services (QoS), hace referencia a la garantía de entrega de un mensaje en
un canal específico (tema). Sus valores son: 0, como máximo una vez; 1, al menos una
vez; y 2, exactamente una vez.

Figura 2. Publicar mensaje JSON Figura 3. Protocolo MQTT.

Por otro lado, la comunicación entre las tecnologías de operación es a través de protocolos como
el UDP (User Datagram Protocol), y el Ethernet/IP (Industrial Protocol).

2. Arquitectura OT/IT

Durante este laboratorio, el alumno va a interactuar con 3 tecnologías: (i) CODESYS, para simular
el entorno de un HMI / PLC; Node-RED, para simular el entorno de un “Gateway” industrial; y
Amazon IoT Core, como servicio de ingesta y analítica de una arquitectura de “cloud computing”.

Así mismo, se utilizará los protocolos UDP y MQTT para realizar intercambio de mensajes en
formato JSON entre las diferentes tecnologías.

La arquitectura a un alto nivel que se va a implementar se presenta en la figura 4.

Figura 4. Arquitectura.
3. CODESYS

3.1. Pasos preliminares

Paso 1: Descargue el archivo PROYECTO_LAB1, y guarde dicho archivo en una ruta de su


preferencia.

Paso 2: Descomprima el archivo dentro de la ruta de su preferencia. Se generará una nueva


carpeta con el nombre “PROYECTO_LAB1”. Dentro de esa carpeta hay tres archivos:

 Librería: PRO_JSON.library
 Proyecto: udp_interfaz.project.
 Documento: LAB1-MEC328.json

Paso 3: Haga clic derecho en el icono de Windows y luego clic en “Ejecutar”. Se le abrirá una
ventana, ingrese la palabra “cmd”, luego clic en “Aceptar”. Se abrirá una ventana de símbolo de
sistema, ingrese en comando “ipconfig” y presione la tecla ENTER.

Paso 4: Copie la dirección IPv4 de su adaptador Ethernet LAN/WLAN, que la utilizaremos más
adelante.

Paso 5: Inicie el programa CODESYS V3.5 SP7 Patch 2 pdf.


Paso 6: Inicie el programa CODESYS Win V3 Systray para simular un PLC virtual.

Paso 7: Busque el PLC virtual cerca de la fecha y hora de Windows.

Paso 8: Haga clic derecho en el PLC virtual y luego clic en “Start PLC”. Puede tomar unos
segundos para que inicie.

Paso 9: El PLC virtual se encuentra iniciado cuando se visualiza de esta forma.


3.2. Instalación de librería

Paso 10: Dentro del programa, en la barra de opciones, diríjase a: Herramientas > Repositorio
de bibliotecas. Se abrirá una ventana de “Repositorio de biblioteca”, en la que debe hacer clic
en “Instalar…”.

Paso 11: Se abrirá una ventana como en la imagen inferior. Diríjase a la ruta donde guardó la
librería. Luego, selecciones la opción “*.library”.
Paso 12: Le deberá aparecer la librería que usted ha descargado. Seleccione dicha librería, y haga
clic en “Abrir”. Se cerrará esta ventana.

Paso 13: Se mostrará la primera ventana con el detalle que se muestra en la imagen inferior. La
librería ha sido correctamente instalada. Haga clic en “Cerrar”.
3.3. Configuración del proyecto

Paso 14: En la barra de opciones, diríjase a: Archivo > Abrir. Se abrirá una ventana como en la
imagen inferior, seleccione el archivo “udp_interfaz.project”. Luego haga clic en “Abrir”.

Paso 15: En la raíz del proyecto, haga doble clic en “Administrador de bibliotecas”. Luego clic en
“Agregar biblioteca”. Se abrirá una ventana donde debe colocar el nombre de la librería (“PRO
JSON”), seleccionar la librería y finalmente clic en “Ok”.
Paso 16: En la raíz del proyecto, haga clic doble clic en “PLC_PRG”. Luego edite la línea 12 de la
ventana de declaración de variable cambiando la variable IP_REMOTA con su propia dirección
IP (del paso 3 y 4).

Paso 17: En la raíz del proyecto, haga clic doble clic en “Device (CODESYS Control Win V3)”.

Paso 18: Haga clic en el botón “Agregar puerta de enlace…”


Paso 19: Aparecerá la ventana “Puerta de enlace”, haga clic en el botón “Aceptar”.

Paso 20: Haga clic en la puerta de enlace creada llamada “Gateway-1”. Luego clic en el botón
“Examinar red”.
Paso 21: Observe que aparecerá el PLC virtual con el nombre de su computadora o usuario de
Windows. Haga clic encima del PLC virtual. Luego clic en el botón “Establecer una ruta activa”.

Paso 22: En la barra de opciones, haga clic en el botón de compilar o presione la tecla F11.
Observe que en la parte posterior del programa se indica que la compilación ha terminado sin
errores y advertencias.

Paso 23: En la barra de opciones, haga clic en el botón de Iniciar sesión o presione Alt+F8.
Aparecerá una ventana en la que deberá seleccionar la opción “Iniciar sesión descarga”, luego
clic en “Aceptar”.

|
Paso 24: SÓLO EN CASO que aparezca los siguientes mensajes, haga clic en el botón “Si” en
ambas ventanas.

Paso 25: Al descargarse el programa en el PLC virtual, este inicia en modo “STOP” por defecto.
Haga clic en el botón “Inicio (F5)” para pasarlo al modo “RUN”. En caso se requiera actualizar
algún parámetro en la declaración de variables, deberá detener el PLC virtual (modo “STOP”),
hacer el cambio e iniciar el PLC virtual (modo “RUN”).

Paso 26: En la barra de opciones, haga clic doble clic en “Visualization”. Se mostrará una interfaz
gráfica en la cual usted va a interactuar.
3.4. Configuración del cliente UDP

Paso 27: Instale el programa “Hercules SETUP utility” desde al siguiente link. Al finalizar su
descarga, inicie el programa dándole doble clic.

Paso 28: Al inicializar el programa, aparecerá una ventana marque la opción “Don’t show later”
y luego haga clic en “Donde”

|
Paso 29: Dentro el programa, haga clic en la pestaña “UDP”.
Paso 30: Se abrirá una alerta de seguridad de Windows, en la cual deberá marcar la opción de
“Redes privadas, como las domésticas o del trabajo” y luego clic en “Permitir acceso”.

|
Paso 31: Dentro del programa, en la pestaña “UDP” deberá ingresar su dirección IP en la sección
“Module IP”, en la sección “Port” ingrese el número “8195”, en la sección “Local Port” ingrese
en número “8190”. Luego haga clic en “Listen”.

Nota:

Tenga en cuenta las siguientes definiciones:

 Module IP: Es la IP del dispositivo al cual queremos enviar mensajes por el protocolo
UDP. Para este caso práctico, es la IP del PLC virtual, que hereda la IP de su computadora.
 Local Port: Es el puerto de comunicación para recibir mensajes.
 Port: Es el puerto de comunicación para enviar mensajes.
3.5. Prueba de concepto 1: Comunicación UDP

Paso 32: En la interfaz gráfica de CODESYS, haga clic sobre el ícono del interruptor para activar
la comunicación UDP.

Paso 33: En la interfaz gráfica de CODESYS, ingrese los datos que solicitan: Primer Nombre,
Primer Apellido y Código. Y luego haga clic sobre el botón de “Enviar Datos”.
Paso 34: Observe que en el programa “Hercules SETUP utility”, se muestra el mensaje que ha
enviado desde CODESYS.

Paso 35: En el programa “Hercules SETUP utility”, ingrese el mensaje:

{"Recibe":{"mensaje":"Alumno matriculado","resultado":"Ok"}}

Y presione el botón “Send”.

|
Paso 36: En la interfaz gráfica de CODESYS , haga clic sobre el botón de “Recibir Datos”. Observe
que en el programa CODESYS, se muestra el mensaje que ha enviado desde “Hercules SETUP
utility”.

Nota: Notifique a su Jefe de Práctica cuando logre la comunicación bidireccional a través del
protocolo UDP.

*Para mayor información sobre cómo se ha hecho la comunicación UDP en Codesys, ve este
vídeo haciendo clic en este link.
4. Amazon IoT Core

Amazon IoT Core, es un servicio de ingesta y analítica que hace posible la comunicación
bidireccional y segura entre dispositivos conectados a Internet y a la nube de AWS a través de
los protocolos MQTT (Message Queue Telemetry Transport) y HTTP (Hypertext Transfer
Protocol). Se compone de los siguientes elementos:

 Políticas: son documentos en formato JSON que permiten a cada dispositivo


autenticarse con la contraparte con que se está comunicando (AWS IoT) e intercambia
una llave para mantener una sesión activa (certificados X.509). De esta manera se
garantiza la confiabilidad del dato/mensaje. Utiliza el estándar de seguridad es “TLS 1.2”.

 Temas: es el agente de mensajes, proporciona un mecanismo seguro para que los


dispositivos y las aplicaciones de AWS IoT publiquen y reciban mensajes entre sí.

 Sombras: es una versión persistente de cada uno de los dispositivos que están
conectados hacia AWS IoT Core. La sombra almacena datos del dispositivo en formato
JSON, e incluye: el estado, la versión de la sombra y el timestamp. De esta forma, otros
servicios e inclusive dispositivos pueden leer (por suscripción) y/o modificar (por
publicación) el estado de las sombras. Cada sombra tiene un tema reservado: (i) desired,
se utiliza para modificar el estado deseado de la sombra, (ii) reported, se utiliza para
modificar el estado real de la sombra, (iii) delta, se utiliza para obtener la diferencia
entre los estados anteriores.

 Reglas: son acciones que proporcionan funciones de procesamiento de mensajes y de


integración con otros servicios de AWS. Puede utilizar un lenguaje basado en SQL para
seleccionar datos de cargas de mensajes, procesar y enviar datos a otros servicios.
También puede utilizar el agente de mensajes para volver a publicar mensajes para otros
suscriptores.
4.1. Ingreso a consola de AWS

Paso 37: Inicie sesión en la consola de administración de AWS. En el formulario, ingrese su código
de alumno en “Nombre de usuario” y consulte con su Jefe de Práctica la contraseña que debe
ingresar. Haga clic en “Iniciar sesión”.

Paso 38: Luego de ingresar sus credenciales, aparecerá una ventana como en la imagen inferior,
haga clic en la “X”.

Paso 39: Al ingresar a la página de inicio de la consola, note que la región de operación es Norte
de Virginia (us-east-1). Esto significa que los servicios que se aprovisionen estarán dentro de los
límites de esa región.
Paso 40: Cambie la región de operación de acuerdo al horario que pertenece, ver tabla.

N. California
10M2
us-west-1
Ohio
10M3
us-east-2
Oregon
10M4
us-west-2

Paso 41: Busque el servicio de IoT Core. Y haga clic en la primera opción que le aparece.

Paso 42: Dentro del menú de opciones del servicio IoT Core. Diríjase a: Administración > Objetos
> Crear objetos. Luego de ello, clic en “Crear objetos”.
4.2. Creación de objeto y sombra – IoT Core

Ahora corresponde crear el primer recurso dentro del servicio IoT Core. Este recurso es un
“objeto IoT”, el cual se puede definir como una representación digital de un dispositivo físico o
una entidad lógica en AWS IoT Core.

Cabe mencionar que su dispositivo físico o entidad lógica necesita estar asociado a este “objeto
IoT” para utilizar funcionalidades del servicio Amazon IoT Core como los topics, sombras y reglas.

Paso 43: Para crear un objeto, seleccione la opción “Crear un único objeto”, luego haga clic en
“Siguiente”.

Paso 44: En el formulario de “Propiedades del objeto” defina un nombre para su “objeto IoT”
con su código de alumno (Ejemplo: Objeto_20154240).

Nota:

Para efectos prácticos, las configuraciones adicionales como tipo de objeto, atributos, grupos de
objeto y grupo de facturación manténgalo en opcional. Estas configuraciones ayudan a
organizar los diferentes “objetos IoT” creados para segmentarlos según atributos/características
y facturación.
Paso 45: En el formulario de “Sombra de dispositivo”, marque la opción de “Sombra con
nombre” y defina un nombre con su código de alumno (Ejemplo: “Sombra_20154240”).

Paso 46: Haga clic en el botón Siguiente:

Paso 47: En el formulario de “Certificado de dispositivo”, seleccione la opción “Generar


automáticamente un certificado nuevo (recomendado)”. Luego de ello, clic en “Siguiente”.
4.3. Creación de política – IoT Core

Ahora corresponde crear una política para asociarla al certificado que ha sido creado en el
paso anterior. Para ello, haga clic en “Crear política”.

Una política es básicamente un documento en formato JSON que contiene un conjunto de


instrucciones. Cada instrucción contiene:

 Effect, que especifica si se permite o se deniega la acción.


 Action, que especifica la acción que la política permite o deniega.
 Resource, que especifica los recursos en los que se permite o se deniega la acción. Se
referencia a través de los ARN.

En cuanto a las acciones más importantes, están descritas en la siguiente tabla.

Tipo de
Acción Permiso para...
recurso
iot:Connect client Conectarse al agente de mensajes de AWS IoT Core.
iot:Publish Publicar un mensaje en un determinado topic.
iot:Receive Recibir un mensaje por parte de AWS IoT Core.
iot:GetRetainedMessage Obtener el contenido de un mensaje retenido.
topic
Recuperar una lista resumida de los mensajes
iot:ListRetainedMessages
retenidos.
iot:RetainPublish Publicar un mensaje con la etiqueta RETAIN.
iot:Subscribe topicfilter Suscribirse a un determinado tema.
iot:DeleteThingShadow Eliminar una sombra.
iot:UpdateThingShadow Actualizar una sombra del
iot:DescribeJobExecution thing Recuperar información de progreso del trabajo
iot:GetPendingJobExecutions Recuperar la lista de trabajos en espera de ejecución.
iot:UpdateJobExecutions Iniciar una ejecución de trabajo pendiente.

En cuanto a los recursos dentro del servicio Amazon IoT Core, tienen asociado un ARN, el cual
tienen a siguiente forma:

arn:aws:iot:region:AWS-account-ID:Resource-type/Resource-name

En la región Norte de Virginia (us-east-1), los ARN deben ser referenciados según los ejemplos
de siguiente tabla.

Acción Ejemplo de recurso (ARN)


iot:Connect arn:aws:iot:us-east-1:123456789012:client/myClientId
iot:Publish arn:aws:iot:us-east-1:123456789012:topic/myTopicName
iot:Receive arn:aws:iot:us-east-1:123456789012:topic/myTopicName
iot:GetRetainedMessage arn:aws:iot:us-east-1:123456789012:topic/myTopicName
iot:ListRetainedMessages *
iot:RetainPublish arn:aws:iot:us-east-1:123456789012:topic/myTopicName
iot:Subscribe arn:aws:iot:us-east-1:123456789012:topicfilter/myTopicFilter
iot:DeleteThingShadow arn:aws:iot:us-east-1:123456789012:thing/thingOne
arn:aws:iot:us-east-1:123456789012:thing/thingOne
iot:UpdateThingShadow
arn:aws:iot:us-east-1:123456789012:thing/thingOne/shadowOne
iot:DescribeJobExecution `arn:aws:iot:us-east-1:123456789012:thing/thingOne`
iot:GetPendingJobExecutions `arn:aws:iot:us-east-1:123456789012:thing/thingOne`
iot:UpdateJobExecutions arn:aws:iot:us-east-1:123456789012:thing/thingOne
Nota:

Para obtener el “region” tenga en cuenta el horario que pertenece. Para obtener el “AWS
Account ID” consulte con su Jefe de Prácticas.

Paso 48: Para crear una política haga clic en la opción “Crear política”, se abrirá una nueva
pestaña en su navegador.

Paso 49: En la nueva pestaña, aparecerán dos formularios: (i) “Propiedades de la política” y
“Documento de política”. En el primer formulario, ingrese el nombre de la política con su código
de alumno (Ejemplo: Politica_20154240).

Para efectos prácticos, la opción de “Etiquetas” manténgalo en opcional.

Paso 50: En el segundo formulario, haga clic en la opción de “Agregar nueva instrucción” y
agregue los 05 parámetros que se muestran en la imagen inferior. Finalmente, haga clic en
“Crear”.
Nota:

Al colocar el símbolo “*”, usted concede permisos para que el objeto IoT: (i) se conecte
utilizando cualquier nombre, (ii) publique en cualquier tema, (iii) reciba mensajes en cualquier
tema, (iv) se suscriba en cualquier tema, y (v) actualice cualquier sombra creada. Cabe
mencionar, que no esto una buena práctica de seguridad. Sin embargo, para efectos práctico se
manejará de esa manera.

Paso 51: Retorne a la pestaña anterior, y observe que aparece la política creada en el paso
anterior. Seleccione dicha política y luego haga clic en “Crear un objeto”.

Paso 52: Le aparecerá una ventana tipo pop-up, en la cual usted deberá descargar y almacenar
05 certificados en la carpeta “Coloque aquí sus Certificados”. Para ello, haga clic en todas las
opciones que aparece con el nombre de “Descargar”. Finalmente, haga clic en “Listo”.

Nota: No cierre la ventana sin antes descargar los certificados y llaves.


Son en total 5 archivos que va a descargar, divididos en:

 pem.cert  Certificado del dispositivo (1).


 plubic.pem.key  Llave pública (1).
 private.pem.key  Llave privada (1).
 CA.pem  Certificado de Amazon (AmazonRootCA1 y AmazonRootCA3) (2).

Al seguir estos últimos pasos, aparecerá notificaciones de color verde.

Nota:

Se recomienda guardar dichos certificados dentro de una carpeta.

Paso 53: Dentro del menú de opciones del servicio IoT Core. Diríjase a: Configuración. En el
formulario “Punto de enlace de datos de dispositivo” copie la dirección DNS que aparece como
“Punto de enlace”.

Punto de enlace (Norte de Virginia):

a2fgsiwcxlu3cn-ats.iot.us-east-1.amazonaws.com

¿Cuál es su punto de enlace? Recuerde que el punto de enlace varía de acuerdo a la región
seleccionada al inicio del laboratorio.
4.4. Creación de regla – IoT Core

Paso 54: Dentro del menú de opciones del servicio IoT Core. Diríjase a: Acto > Reglas. Luego haga
clic en “Crear una regla”.

Paso 55: Se abrirá un formulario de “Crear una regla”. En la primera sección ingrese el nombre
de la regla utilizando su código de alumno (Ejemplo: Regla_20154240), y una descripción en
base a lo que va a realizar dicha regla.

Paso 56: En la segunda sección del formulario, mantenga la versión de SQL en “2016-03-23” e
ingrese la siguiente sentencia SQL en la sección de “Instrucción de consulta de regla”. modifique
los parámetros sombreados en amarillo teniendo en cuenta aquellos en los que ha utilizado su
código de alumno.

SELECT
state.desired.nombre as nombre,
state.desired.apellido as apellido,
state.desired.codigo as codigo
parse_time("yyyy.MM.dd hh:mm:ss", timestamp()) as timestamp
FROM '$aws/things/Objeto_20154240 /shadow/name/Sombra_20154240/update/accepted'
Paso 57: En la tercera sección del formulario, haga clic en “Añadir acción”, luego seleccione la
acción de nombre “Volver a publicar mensajes en temas de AWS IoT”. Finalmente, haga clic en
“Configurar acción”.
Paso 58: Se abrirá un nuevo formulario “Configurar acción”. En la sección “Tema” ingrese un
nombre de tema utilizando su código de alumno (Ejemplo: data/20154240), en la sección de
“Calidad del servicio” seleccione “0 – El mensaje se entrega cero o más veces”. Finalmente
haga clic en crear un rol.

Paso 59: Se abrirá una ventana, coloque un nombre al rol utilizando su código universitario
(Ejemplo: “Rol_20154240”), y luego haga clic en “Crear un rol”.
Paso 60: De regreso al formulario anterior, haga clic en “Añadir acción”.

Paso 61: De regreso al formulario inicial de “Crear una regla”, haga clic en “Crear regla”.

Nota:

La regla recién creada consiste en “filtrar” los atributos de un mensaje inicial, que ha sido
enviado para al tema que actualiza el estado de una sombra, en un mensaje final que cuenta
con un “timestamp”, el cual es finalmente publicado en el tema “data/20154240”.
4.5. Configuración de cliente MQTT

Paso 62: Ahora corresponde, instalar el programa “MQTTBox” desde Windows Store. Ingrese al
siguiente link. Se abrirá una pestaña en su navegador, haga clic en “Get”. Nota: para sistemas
operativos que son windows 8, vea el Anexo B al final de la guía.

Paso 63: Automáticamente aparecerá un pop-up, haga clic en la opción de “Abrir Microsoft
Store”.

paso 64: En el Microsoft Store, presione “Descargar”, espere un momento y luego presione
“Abrir”.
Paso 65: En el programa “MQTT-Box”, establezca las siguientes configuraciones:

 MQTT Client Name: (a su criterio).


 MQTT Client Id: (a su criterio).
 Protocol: Seleccione “mqtts/tls”.
 SSL/TLS Version: Auto
*Para los siguientes parámetros habilite las “Extensiones de nombre de archivo”.

 CA file: Cargue “AmazonRootCA1.pem”.


 Client certificate file: Cargue el archivo “pem.crt”.
 Client key file: Cargue el archivo “private.pem.key”.
 Host: Coloque el punto de enlace de su región (Ver paso 53).
Paso 66: Haga clic en “Save”.

Paso 67: Verifique la conexión con el servicio de Amazon IoT Core. Se podrá dar cuenta de ello
porque aparecen una opción “Connected” en color verde.
4.6. Prueba de concepto 2: Comunicación MQTT

Paso 68: En las dos secciones que se muestran en el programa, modifique los parámetros
sombreados en amarillo teniendo en cuenta aquellos en los que ha utilizado su código de
alumno.

Publicar en un tema:

 Topic to publish:

$aws/things/Objeto_20154240/shadow/name/Sombra_20154240/update

 QoS: 0 – Almost Once.


 Payload Type: Strings/ JSON /XML / Characters.
 Payload:

{
"state": {
"desired": {
"nombre" : "Mario",
"apellido" : "Lupaca",
"codigo" : "20131795"
}
}
}

Subscribir en un tema:

 Topic to subscribe: “data/20154240”.


 Clic en “Subscribe”.
Paso 69: Clic en “Publish”.

Note que cuando usted envía un mensaje (“Payload”) en el tema asociado a su sombra, de forma
casi automática, recibe un mensaje en el tema que se ha suscrito. Con esto, se valida la
comunicación bidireccional entre un dispositivo (su computadora) y el servicio Amazon IoT Core,
este concepto puede ser escalado para millones de dispositivos.

Nota: Notifique a su Jefe de Práctica cuando logre la comunicación bidireccional entre un


dispositivo y el servicio Amarzon IoT Core a través de MQTT.
5. Node-RED

5.1. Instalación del programa

Paso 70: Haga clic derecho en el icono de Windows y luego clic en “Ejecutar”. Se le abrirá una
ventana, ingrese la palabra “cmd”, luego clic en “Aceptar”.

Paso 71 Ejecute el siguiente comando:

npm install -g -unsafe-perm node-red

Paso 72: Espere hasta que se instale y luego ejecute el siguiente comando:

node-red

Nota: No cierre esta ventana a menos que el laboratorio haya concluido.


5.2. Prueba de integración: UDP & MQTT

Paso 73: En su navegador, abra una nueva pestaña y en la barra de direcciones escriba
localhost:1880, también funciona con 127.0.0.1:1880. Aparecerá un interfaz como el de la
imagen inferior.

Paso 74: Cierre el mensaje de bienvenida.

Paso 75: Haga clic en el ícono de menú ubicado en la esquina superior derecha. Luego haga clic
en la opción de “Import”.
Paso 76: Aparecerá una ventana como en la imagen inferior. Haga clic en “select a file to import”.

Paso 77: Seleccione el documento “LAB 1-MEC328.json”, luego haga clic en “Abrir”.

Paso 78: Haga clic en “Import”.


Paso 79: Cargará un flujo de programación como en la imagen inferior. Haga doble clic en el
bloque “AWS IoT Core”.

Paso 80: Edite el campo “Topic” utilizando el parámetro que colocó en el paso 68. Luego haga
clic en el lápiz.
Paso 81: Edite los campos “Name” y “Server”. En “Name” coloque “IOT_Código” (Ejemplo:
IOT_2014367). En “Server” coloqué el mismo punto de enlace que colocó en “Host” en el paso
65. Luego haga clic en el ícono del lápiz.

Nota:

 Editar el campo “Name” no tiene impacto en el laboratorio.


 Editar el campo “Server” (Punto de enlace) si tiene impacto en el laboratorio.

Paso 82: Cargue los mismos certificados del paso 65. Luego modifique el campo “Name”
utilizando su código de alumno. Finalmente, haga clic en “Update”.

Archivo “pem.crt”

Archivo “private.pem.key”

Archivo “AmazonRootCA1.pem”

Nota:

 Editar el campo “Server” no tiene impacto en el laboratorio.


 Editar el campo “Topic” si tiene impacto en el laboratorio.
Paso 83: Haga clic en “Update”. Luego clic en “Done”.

Paso 84: Haga doble clic sobre el bloque “UDP Out – 8195”.
Paso 85: Edite el campo de “Address”, ingrese su dirección IP. Luego presione en “Done”.

Paso 86: Repita los mismos pasos para editar el bloque “UDP Out – 8190”.
Paso 87: Haga clic en “Deploy”, ubicado en la esquina superior derecha, para cargar la lógica de
los bloques.

Nota: Cada vez que modifique la lógica de los bloques debe realizar ese paso para que se
cargue los cambios.

Paso 88: Note que aperece el símbolo de “connected”.

Paso 89: Presione las teclas Ctrl+Espacio, para mostrar la ventana “debug”.
Paso 90: Haga clic en los botones de “RECIBE” y luego en “ENVIA”.

Paso 91: Documente su experiencia.

¿Qué mensaje recibe en el “Hercules SETUP utility”? ¿Qué recibe en la interfaz gráfica de
CODESYS? Muestre capturas de pantalla.
Paso 92: En la interfaz gráfica de CODESYS, presione botón de “Enviar datos”.
Paso 93: Documente su experiencia.

¿Qué mensaje recibe en el programa MQTTBOX (sección “Topic to subscribe”)? Muestre una
captura de pantalla:
6. Reto ágil 1: Comunicación bidireccional
Analice los bloques en Node-RED, y elabore la lógica para que cada vez que se presione el
botón de “Enviar Datos” con sus datos (Primer Nombre, Primer Apellido, Código), se reciba
un mensaje presionando el botón de “Recibir Datos” en la interfaz gráfica de CODESYS. Vea
el vídeo “Rego ágil 1” ubicado en la carpeta “Vídeos” para una demostración.

Mensaje que se debe recibir: {"Recibe": {"mensaje":"Laboratorio 1","resultado":"20"}}

Nota: Notifique a su jefe de práctica cuando logre dicho reto.

Adjunte capturas de pantalla de los bloques que ha utilizado.


7. Reto ágil 2: Intercambio de mensajes entre dos computadoras
usando la nube.

En grupos de a dos comprueben la comunicación dentro la arquitectura Codesys, Node Red y


AWS Cloud. Intercambien mensajes entre las tecnologías siendo un estudiante el que envía los
datos a través del panel HMI de Codesys, y el otro estudiante recibiéndolos en el MQTT Box.

Para esto intercambien lo siguiente:

1. Los certificados “pem.crt”, “private.pem.key” y “AmazonRootCA1.pem”.


2. El puerto de enlace. Ejemplo: “a2fgsiwcxlu3cn-ats.iot.us-east-2.amazonaws.com”.
3. El tema (Topic). Ejemplo:
“$aws/things/Objeto_20154240/shadow/name/Sombra_20154240/update”

Nota: Notifique a su jefe de práctica cuando logre dicho reto.


8. Reto ágil 3: Seguridad en la nube (Opcional)

Diríjase a: AWS IoT > Seguridad > Políticas > Politica_Su código. Y haga clic en “Editar versión
activa”.

Modifique los campos de “Recurso de política” (iot:Connect, iot:Subscribe). Revise la Sección


4.3 de la guía para definir correctamente un recurso.

Finalmente, haga clic en “Establecer la versión editada como la versión activa de esta política”
y luego clic “Guardar como nueva versión”.

Realice pruebas con el programa “MQTTBox” para validar que se cumplan las nuevas
políticas establecidas. Adjunte capturas de pantalla.
Muestre una captura de su nueva política en formato JSON, para ello haga clic en “JSON”:
Anexo A. Bloques Node-RED

Tener en cuenta la funcionalidad de los siguientes bloques:

Los bloques que tiene no son los únicos. Usted puede instalar librerías que permiten utilizar
diferentes protocolos de comunicación industrial. Para ello, deberá buscar la librería en el
repositorio de librerías y luego ejecutar en una ventana de símbolo de sistema la instrucción
npm.

Ejemplo:
Anexo B. MQTT Box para Windows 8

Para testear el protocolo MQTT en sistemas operativos con Windows 8 descargue “MQTT.xf
v1.7.1” Haciendo clic en este link. Las configuraciones del paso 65 en este programa se deben
realizar en las siguientes secciones encerradas en rojo:

También podría gustarte