La simplicidad de Arduino combinada con la fiabilidad y la historia de Siemens hace que la serie SIMATIC IOT2000 sea una elección perfecta para la modernización o implementación del IoT en fábricas o instituciones inteligentes que exploran opciones de conectividad o modernización. Nuevos sensores en máquinas antiguas o simplemente actualizar sensores hace que la serie SIMATIC IOT2000 sea perfecta, ya que armoniza, analiza y reenvía datos de manera eficiente con protocolos comunes como HTTP y MQTT. Basada en un Yocto Linux, la serie SIMATIC IOT2000 incluye los modelos IoT2020 e IoT2040, que son compatibles con la mayoría de los Sketches de Arduino y se pueden cargar directamente desde el IDE de Arduino. El IOT2040 es ideal para fábricas, mientras que el IOT2020 es mejor en instituciones educativas con sus periféricos adicionales y protocolos de comunicación.
Disponible en dos versiones, el IoT2020 diseñado para instituciones educativas y espacios públicos, mientras que el IoT2040 está optimizado para entornos industriales. Si deseas aprender más, consulta el soporte y foros de SIMATIC IoT2000.
En esta guía detallamos la integración de un Sistema HVAC con el SIMATIC IOT2000, utilizando un Arduino UNO que actuará como nuestro sensor en este ejemplo de integración y enviará los datos al Gateway de Siemens a través de la interfaz RS-485.
Requisitos
Fuente de alimentación de 24V
Cable Ethernet
Tarjeta SD
Cable USB de Arduino
Cables de comunicación | RS-485
Sensor AM2305 (temperatura y humedad)
Motor de corriente continua
Paso a Paso
1. Configuración de la serie Siemens SIMATIC IoT 2000
2. Configuración del SIMATIC IOT2000 con Node-RED
3. Configuración del Arduino
-Configuración de hardware
-Configuración de firmware
4. Inicio automático de NodeRED
5. Visualización de datos
6. Resumen
1. Configuración de la serie Siemens SIMATIC IoT 2000
Si es la primera vez que trabajas con la serie Siemens SIMATIC IoT 2000, hemos creado una guía de inicio específicamente para el Siemens SIMATIC IoT 2000 para ayudarte en la configuración del dispositivo para comunicarte fácilmente con Ubidots.
2. Configuración del SIMATIC IOT2000 con Node-RED
Antes de comenzar con el flujo de Node-RED, debemos establecer algunas configuraciones en el SIMATIC IOT2000. Por favor, sigue los pasos a continuación cuidadosamente para asegurar el correcto funcionamiento.
Gestor de paquetes
Ve al directorio opkg usando el terminal de Siemens:
cd /etc/opkg
2. Edita el archivo opkg.conf usando nano -> nano opkg.conf
. Luego, agrega las líneas a continuación al final del archivo:
src iotdk-all http://iotdk.intel.com/repos/2.0/iotdk/allsrc iotdk-i586 http://iotdk.intel.com/repos/2.0/iotdk/i586src iotdk-quark http://iotdk.intel.com/repos/2.0/iotdk/quarksrc iotdk-x86 http://iotdk.intel.com/repos/2.0/iotdk/x86
3. A continuación, edita el archivo arch.conf usando nano –> nano arch.conf .
Agrega las líneas a continuación al final del archivo:
arch i586 12arch quark 13arch x86 14
4. Actualiza las configuraciones realizadas ingresando y ejecutando el siguiente comando:
opkg update
5. Escribe iot2000setup
para abrir la interfaz de configuración y configurar el X30 COM como RS-485.
Para hacer esto, selecciona Periféricos –> Configurar Puerto COM Externo –> X30 –> RS485:
6. Asigna la velocidad de baudios al puerto con el siguiente comando:
stty -F /dev/ttyS2 9600
7. Reinicia el SIMATIC para guardar los cambios usando el comando
reboot
Node-RED
Para iniciar Node-RED, escribe el siguiente comando en el terminal de Siemens:
node /usr/lib/node_modules/node-red/red &
Con Node-RED, verás el comportamiento a continuación en tu SIMATIC IOT2000, esto puede tardar un par de minutos, así que por favor ten paciencia.
2. Una vez que Node-RED haya comenzado, abre un navegador web (firefox, preferiblemente) y escribe la dirección IP del SIMATIC IOT2000 y el puerto 1880 (es decir, http://192.168.200.1:1880) para abrir la interfaz web de Node-RED.
3. A continuación, haz clic en el menú de Node-RED en la esquina superior derecha, luego en “Importar –> “Portapapeles” y pega el código a continuación:
[{"id":"3740cae8.aee83e","type":"serial in","z":"707c997d.74c3c8","name":"rs-485","serial":"22b59e44.024bfa","x":132,"y":249,"wires":[["b621bf61.959b7"]]},{"id":"b621bf61.959b7","type":"function","z":"707c997d.74c3c8","name":"parse function","func":"var payload = msg.payload;\n/* Splits the incoming data */\nvar values = payload.split(\",\");\n/* Saves the sensor readings */\nvar temp_value = values[0]; // temperature in celsius\nvar temp_value_f = (temp_value*1.8) + 32; // temperature in fahrenheit\nvar hum_value = values[1].replace('\\r\\n', '');\n\nvar data = {}\n/* Builds the payload to be published */\ndata.payload = {\"temperature-c\": temp_value, \"humidity\": hum_value, \"temperature-f\": temp_value_f};\ndata.topic = \"/v1.6/devices/siemens\";\nreturn data;\n\n","outputs":1,"noerr":0,"x":336,"y":249,"wires":[["288319d7.13aa06","764e3eb0.baea8"]]},{"id":"288319d7.13aa06","type":"mqtt out","z":"707c997d.74c3c8","name":"","topic":"","qos":"","retain":"","broker":"6375a8fe.40ce","x":591,"y":250,"wires":[]},{"id":"764e3eb0.baea8","type":"debug","z":"707c997d.74c3c8","name":"","active":true,"console":"false","complete":"payload","x":553.5,"y":325,"wires":[]},{"id":"22b59e44.024bfa","type":"serial-port","z":"","serialport":"/dev/ttyS2","serialbaud":"9600","databits":"8","parity":"none","stopbits":"1","newline":"\\n","bin":"false","out":"char","addchar":false},{"id":"6375a8fe.40ce","type":"mqtt-broker","z":"","broker":"industrial.api.ubidots.com","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willPayload":"","birthTopic":"","birthQos":"0","birthPayload":""}]
4. Asigna tu TOKEN de Ubidots como nombre de usuario en la pestaña de seguridad del nodo del broker MQTT. Si no sabes cómo obtener tu TOKEN de Ubidots, consulta esta guía.
Una vez que el TOKEN de Ubidots esté asignado en el nodo del broker MQTT, programemos el Arduino UNO para comenzar a enviar datos.
NOTA DE DESPLIEGUE: En este punto, NO presiones el botón “Desplegar” en NodeRED. Una vez que el Arduino comience a enviar datos al SIMATIC IOT2000, puedes presionar el botón de desplegar para guardar los cambios realizados.
3. Configuración de Arduino
Para establecer la comunicación entre los sensores finales y el Siemens SIMATIC IOT2000, decidimos elegir un Arduino UNO, que es uno de los microcontroladores más comunes en el mercado. Este hardware fácil de usar y fácil de configurar hace que nuestro ejemplo sea fácil de implementar y probar.
El Arduino se encargará de tomar las lecturas de los sensores (temperatura y humedad) y retransmitirlas al SIMATIC IOT2000 a través de RS-485 utilizando un Escudo RS-485. Para tener una mejor idea, el diagrama de flujo de datos es el siguiente:
Configuración de Hardware
Primero, conecta el escudo RS-486 de Arduino en la parte superior del Arduino UNO. El resultado será algo similar a la imagen a continuación:
2. Conecta el sensor AM2305 siguiendo el diagrama a continuación:
NOTA: Antes de conectar el sensor, ten en cuenta que el sensor tiene una resistencia pullup, consulta esta guía para aprender cómo configurar el sensor correctamente si no lo has hecho antes.
AM2305 - Arduino UNO
Cable amarillo - pin 10
Cable rojo - 3.3 V
Cable negro - GND
3. [OPCIONAL] Coloca el Arduino UNO + Escudo RS-485 dentro de una caja y realiza las modificaciones necesarias en la caja para el sensor y el cable de alimentación. Para darte una mejor idea, consulta las imágenes a continuación:
3. Ahora conecta el escudo RS-486 de Arduino con el SIMATIC IOT2000. El X30 COM y el X31 COM te permiten trabajar con interfaces RS232/RS422/RS485. En este caso, vamos a trabajar con el X30 COM - RS485. Para obtener información más detallada sobre las instrucciones de operación del SIMATIC IOT2000 haz clic aquí.
Pinout del conector:
4. Sigue la tabla a continuación para realizar la conexión entre el escudo RS485 de Arduino y el SIMATIC IOT2000:
Configuración de Firmware
1. Abre el IDE de Arduino.
2. Selecciona el Arduino UNO desde el menú Herramientas –> Placa
3. Descarga la Biblioteca DHT en el siguiente enlace. Luego, haz clic en Sketch –> Incluir Biblioteca –> Agregar Biblioteca .ZIP. Selecciona el archivo .ZIP de la biblioteca descargada previamente y presiona “Aceptar” o “Elegir”.
4. Conecta el Arduino UNO a tu computadora y selecciona el puerto COM asignado desde Herramientas –> Puerto –> Arduino UNO.
5. Ahora que todo está configurado, copia y pega el código de ejemplo a continuación en el IDE de Arduino.
/******************************** * Bibliotecas incluidas *******************************/#include <SoftwareSerial.h>#include <DHT.h>/******************************** * Constantes y objetos *******************************/#define DHTPIN 10 // a qué pin estamos conectados#define DHTTYPE DHT22 // DHT 22 - (AM2305)float hum; //Almacena el valor de humedadfloat temp; //Almacena el valor de temperatura// Espacio para almacenar valores a enviarchar sensor_values[20];char str_val_temp[10];char str_val_hum[10];DHT dht(DHTPIN, DHTTYPE);SoftwareSerial mySerial(3,2);/******************************** * Funciones principales *******************************/void setup() { mySerial.begin (9600); Serial.begin(9600); dht.begin();} void loop() { /* Toma las lecturas del sensor */ temp = dht.readTemperature(); // Leer temperatura en Celsius (el predeterminado) hum = dht.readHumidity(); // Leer humedad /*---- Transforma los valores de los sensores a tipo char -----*/ /* 4 es el ancho mínimo, 2 es la precisión; el valor float se copia en str_val*/ dtostrf(temp, 4, 2, str_val_temp); dtostrf(hum, 4, 2, str_val_hum); /* Concatenar las lecturas y guardarlas en una variable */ sprintf(sensor_values, "%s,%s", str_val_temp, str_val_hum); /* Enviar los valores a través de serial (RS-486) */ mySerial.println (sensor_values); /* Imprimir los valores en el Monitor Serial */ Serial.print("temp, hum: "); Serial.println(sensor_values); /* actualizar el valor cada */ delay(5000);}
6. Verifica y sube el código eligiendo el icono "marca de verificación" y luego el icono "flecha a la derecha" al lado del icono de marca de verificación.
Ahora tu Arduino UNO está enviando datos a través de RS-485 correctamente. Si deseas verificar los valores enviados, abre el monitor serial seleccionando el icono de "lupa" en la esquina superior derecha de nuestro IDE de Arduino.
7. A continuación, regresa al Flujo de NodeRED y presiona Desplegar. El estado del nodo serial y mqtt debería aparecer como conectado. Además, si deseas visualizar el valor del sensor recibido, simplemente presiona la pestaña de depuración:
CONSEJO PROFESIONAL: El equipo de Ubidots construyó un Nodo de NodeRed para comunicar datos a Ubidots a través de MQTT de manera simple. Si deseas aprender cómo instalar este nodo y cómo usarlo correctamente, simplemente consulta esta guía que explica cómo PUBLICAR y SUSCRIBIR datos a Ubidots usando nuestro NODO.
4. Inicio automático de NodeRED
Para ejecutar NodeRED en modo inicio automático, sigue los siguientes pasos:
En el terminal del SIMATIC IoT2000, ingresa y ejecuta el siguiente comando:
iot2000setup
2. En la ventana a continuación, usando las flechas del teclado, ubica el cursor en la opción “Software” y presiona enter:
3. Luego, selecciona “Gestionar opciones de inicio automático” :
4. Ubica el cursor en la opción “Inicio automático de node-red” y presiona la barra espaciadora para seleccionar la opción:
5. Para finalizar, presiona “Listo” y reinicia el SIMATIC IOT2000 con el siguiente comando:
reboot
5. Visualización de datos
1. Ve a la sección de dispositivos de tu cuenta de Ubidots para encontrar un nuevo dispositivo creado:
2. Entra al dispositivo y verás las variables temperature-c, temperature-f y humidity creadas con los datos en tiempo real de actualización de los sensores de Arduino Uno conectados:
3. Si deseas cambiar el nombre del dispositivo a uno más amigable y no sabes cómo, consulta la siguiente guía. Además, puedes cambiar el icono de descripción del dispositivo utilizando la siguiente guía.
Una vez que los nombres y los iconos estén actualizados a tu gusto, ¡lanza tu aplicación!
6. Resumen
En lo que pareció ser un proceso demasiado fácil para el hardware, acabamos de integrar el Siemens SIMATIC IOT2000 con equipos de inicio y un conocimiento simple. Con los dispositivos adecuados para tu entorno, tú también puedes lanzar aplicaciones industriales en cuestión de días en lugar de meses.
Ahora es el momento de crear Dashboards de Ubidots para visualizar e interpretar tus datos para controlar y monitorear tus máquinas y entornos de forma remota, manteniendo a tus clientes felices y producciones en su punto máximo.
No olvides consultar el Control y Automatización con Ubidots para hacer la vida un poco más fácil y cómoda al darle valor a tus datos y usarlos para automatizar otras máquinas o procesos.
Para obtener más información sobre el dispositivo Siemens IoT2040 y la posición de Ubidots en el panorama del IoT Industrial, consulta el 10 de abril, Webinar: Los datos impulsan decisiones; cómo extraer valor del IIoT y la Nube.
Otros lectores también han encontrado útil...