El ADAM-6717 es un módulo de adquisición de datos de borde que ejecuta Linux con capacidades de gateway. Entre sus características más notables se encuentra la posibilidad de ejecutar Node-Red, reduciendo así la carga de programación manual.
La siguiente guía técnica describe los pasos de configuración en Node-Red para conectar el ADAM-6717 a un sensor de temperatura y humedad a través de Modbus RTU y enviar los datos obtenidos a Ubidots vía MQTT.
Requisitos
Una cuenta activa de Ubidots.
Sensor de temperatura y humedad XY-MD02, o cualquier otro sensor con interfaz Modbus disponible.
Un cable Ethernet.
1. Configurar las conexiones del ADAM-6717
Conecte el ADAM-6717 a la fuente de alimentación. La entrada de alimentación recomendada es de 10-30 V CC. Aquí puede consultar las especificaciones del dispositivo.
Espere a que el LED de “Status” comience a parpadear. Esto significa que el módulo se ha iniciado correctamente.
Conecte el ADAM-6717 a su enrutador usando un cable Ethernet.
Conecte el sensor al puerto Modbus. En este artículo, se utilizaron D0+ y D0-, sin embargo, también puede optar por usar D1+ y D1-.
2. Obtener la dirección IP del ADAM-6717
Para Windows:
Descargue la utilidad ADAM/Apax.NET aquí según su arquitectura.
Lance la utilidad.
Haga clic derecho en el ícono de Ethernet y haga clic en "search device".
Todos los dispositivos ADAM conectados a la red se listarán en la utilidad junto con su correspondiente IP.
Copie esta dirección IP en un bloc de notas.
Para Linux:
Abra una terminal de comandos.
Ejecute el siguiente comando en la terminal:
ifconfig
Esto devolverá información sobre sus interfaces de conexión. Dependiendo de su interfaz de conexión (inalámbrica o Ethernet), debe copiar la dirección IP que se muestra.
En este ejemplo, la PC está conectada a la red local vía Wi-Fi, por lo que la dirección IP mostrada arriba corresponde a la PC.
Ejecute el siguiente comando, reemplazando “192.168.1.41 ” con la dirección IP que obtuvo en el paso anterior:
sudo nmap -sn 192.168.1.41/24
Por ejemplo, si la dirección IP de su PC es 10.0.0.1, entonces debe ejecutar el comando como:
sudo nmap -sn 10.0.0.1/24
Al hacerlo, se mostrarán todos los dispositivos conectados a la misma red que su PC:
Entre la lista de diferentes dispositivos, busque el que se muestra como “Texas Instruments” y copie su dirección IP, esta es la dirección IP del ADAM:
3. Lanzar Node-Red en el ADAM-6717
Vaya a su navegador web preferido y escriba la dirección IP del ADAM en la barra de búsqueda.
Haga clic en la segunda opción, “Graphic programming tool by Node-RED”.
Cuando se le solicite un nombre de usuario y una contraseña, ingrese las siguientes credenciales:
Nombre de usuario: root
Contraseña: 00000000
Después de hacerlo, el entorno de Node-Red se mostrará en su navegador:
4. Instalar los nodos MQTT de Ubidots en el ADAM-6717
Necesita iniciar una sesión SSH en el ADAM para permitir que el sistema de archivos sea R/W. Estos pasos explican el proceso según su sistema operativo:
Para Windows OS:
Use PuTTY para iniciar una sesión SSH en el ADAM:
El usuario root no tiene una contraseña establecida, por lo que cuando se le solicite, simplemente presione la tecla “Enter” en su teclado.
Para sistemas operativos basados en Linux:
Inicie una sesión SSH en el ADAM ejecutando el siguiente comando en una terminal:
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.1.32
Tenga en cuenta que necesita cambiar “192.168.1.32” por la dirección IP de su ADAM.
Se le pedirá una contraseña, pero no ingrese nada, solo presione la tecla “Enter” en su teclado.
Independientemente de su sistema operativo, una vez dentro del ADAM, ejecute el siguiente comando:
remountfs rw 1000
Debería obtener una salida como esta:
Ejecute el siguiente comando:
reboot
En este punto, el dispositivo ADAM se reiniciará.
Espere a que el LED de estado del ADAM comience a parpadear.
Inicie nuevamente una sesión SSH en el ADAM como se mencionó al principio de esta sección.
Ejecute el siguiente comando:
npm install ubidots-nodered
Pueden aparecer un par de advertencias, puede ignorarlas.
Una vez que la instalación haya terminado, ejecute el siguiente comando:
reboot
Consejo profesional: Por razones de seguridad, debe establecer el valor de remountfs a su valor predeterminado. Puede hacerlo siguiendo los pasos anteriores
5. Configurar el nodo de lectura de temperatura y humedad
Busque el nodo “Modbus Read” y colóquelo en el espacio de trabajo.
Haga doble clic en él para mostrar su configuración.
Haga clic en el ícono de lápiz en la sección de configuración del “Server”.
Se mostrará el siguiente menú. Allí, edite la configuración de la siguiente manera:
Nombre: Establezca cualquier nombre que considere apropiado.
Tipo: Serial Expert.
Puerto serie: haga clic en el ícono de lupa.
Seleccione “/dev/ttyAP0” si está utilizando la interfaz Modbus 0 (D0+, D0-).
Seleccione “/dev/ttyAP1” si está utilizando la interfaz Modbus 1 (D1+, D1-).
Tipo de serie: RTU-BUFFERED.
Baud rate: Establézcalo según la velocidad en baudios del sensor que esté utilizando. En este ejemplo, el sensor está configurado para operar a 9600 baudios. Debe igualar este valor según su sensor.
Bits de datos: Esta configuración depende de su sensor.
Bits de parada: Esta configuración depende de su sensor.
Paridad: Esta configuración depende de su sensor.
Unit-id: Esta es la dirección del esclavo Modbus que está utilizando. Ajuste este valor según sus especificaciones.
Deje todas las demás configuraciones en su configuración predeterminada y haga clic en el botón “Add”.
Edite la configuración de la siguiente manera:
Nombre: establezca cualquier nombre que considere apropiado.
Tema: dejar en blanco.
Unit-id: Esta es la dirección del sensor/esclavo en la red Modbus. Cambie este valor según su configuración.
FC: FC 4: Leer registros de entrada.
Dirección: Esta es la dirección del registro de entrada que contiene los datos que desea leer. El sensor utilizado en este ejemplo almacena el valor de temperatura en la 'dirección 1' y la humedad se encuentra en la 'dirección 2'. Debe ajustar estos valores según su sensor.
Cantidad: 2. Esta es la cantidad de registros a leer. Configurar este valor en 2 significa que se leerán 2 registros contiguos: temperatura y humedad. Si desea leer solo 1 registro, establezca este valor en 1.
Tasa de sondeo: Esta es la frecuencia con la que se recuperarán los datos del sensor. Establezca este valor según sus necesidades.
Haga clic en el botón “Done”.
Busque el nodo “Function” y arrástrelo al espacio de trabajo.
Haga doble clic en él para abrir su configuración.
Pegue el siguiente código:
var timestamp = new Date();
var timestamp = new Date();
msg.payload =
{
"temperature":{
"value":msg.payload.data[0]/10,
"timestamp":timestamp
},
"humidity":{
"value":msg.payload.data[1]/10,
"timestamp":timestamp
}
};
return msg;
Haga clic en el botón “Done”.
Busque el nodo “Debug” y arrástrelo al espacio de trabajo.
Busque el nodo “Modbus Response” y arrástrelo al espacio de trabajo.
Conecte los nodos como se muestra a continuación y luego presione el botón “Deploy”.
Haga clic en el botón “Done”.
Una vez que el despliegue haya terminado, haga clic en el botón “Debug” y podrá ver la temperatura y la humedad medidas por el sensor, así como la marca de tiempo con la que se envían los datos.
6. Configurar el nodo MQTT
Busque el nodo ubidots_out y arrástrelo al espacio de trabajo.
Una el nodo ubidots_out directamente a la salida del nodo Function. Debería verse así:
Haga lo siguiente para cada uno de los dos nodos ubidots_out:
Haga doble clic en él para abrir su configuración.
En “Account type” seleccione “Ubidots”.
En el campo “Name”, escriba su nombre de usuario de la cuenta Ubidots.
En el campo “Token”, escriba su token de Ubidots.
En el campo “Device Label”, escriba el nombre que desea que se muestre en Ubidots para este dispositivo.
Haga clic en el botón “Done”.
Una vez hecho esto, despliegue el flujo actual.
7. Visualizar los datos en Ubidots
Vaya a su cuenta de Ubidots → Dispositivos y podrá ver que se creó un nuevo dispositivo con el “Device Label” que configuró en la sección anterior.