Antes de escribir un cliente TCP, da una dirección IP fija al equipo, para que el servidor y el cliente se encuentren siempre. En Raspberry Pi OS Bookworm y Trixie se hace con nmcli y se comprueba con ip a. El método completo, también para sistemas antiguos y Wi-Fi, está en la guía de IP estática.
Esta es la parte 1 de un tutorial en dos partes. Aquí se planifica la red y se asigna una dirección fija a un TouchBerry Pi Panel PC o a un Raspberry PLC. En la parte 2 se programa el cliente TCP en Node.js.
La primera versión de este tutorial usaba un TouchBerry Pi 3, que ya no se fabrica. Los pasos son los mismos en el TouchBerry Pi actual (Raspberry Pi 4) y en cualquier Raspberry PLC, porque los dos funcionan con Raspberry Pi OS (Debian).
- Paso 1Planifica la redDirección del cliente y del servidor
- Paso 2Fija la direcciónnmcli en Bookworm y Trixie
- Paso 3Compruébalaip a y ping
- Paso 4Escribe el clienteParte 2, con Node.js
Por qué un cliente TCP necesita una IP estática
Por defecto, la Raspberry Pi recibe su dirección del router por DHCP, y puede cambiar después de un reinicio. Un servidor que solo acepta clientes conocidos, una regla de firewall o un SCADA que lee el equipo por IP dejan de funcionar cuando la dirección cambia.
Es como un número de teléfono que cambia cada día: nadie te puede llamar. Una dirección fija en cada equipo lo evita.
Paso 1: planifica la red del tutorial
Las dos partes de este tutorial y el servidor TCP con Node.js usan estas direcciones. Cámbialas por las de tu red:
| Equipo | Función | Dirección |
|---|---|---|
| TouchBerry Pi o Raspberry PLC | Cliente TCP | 192.168.1.25/24 |
| TouchBerry Pi, Raspberry PLC o PC | Servidor TCP, puerto 5566 | 192.168.1.30/24 |
| Router | Puerta de enlace y DNS | 192.168.1.1 |
Los dos equipos deben estar en la misma subred. Elige direcciones fuera del rango DHCP del router, para que ningún otro equipo las reciba.
Paso 2: da una dirección fija al cliente
En Bookworm y Trixie la red la gestiona NetworkManager. La conexión Ethernet de eth0 suele llamarse Wired connection 1; compruébalo con nmcli connection show. Después fija la dirección y activa la conexión:
sudo nmcli connection modify "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.1.25/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.1
sudo nmcli connection up "Wired connection 1"
Otros casos. El menú nmtui, la Wi-Fi, dhcpcd.conf en Bullseye y anteriores, volver a DHCP y los errores habituales están en la guía completa: cómo configurar una IP estática en una Raspberry Pi industrial.
Un Raspberry PLC o un TouchBerry Pi también responde en la dirección de fábrica 10.10.10.20 en eth0. Para cambiarla, mira cómo cambiar la IP estática de un Raspberry PLC.
Paso 3: comprueba la dirección
ip a show eth0
ip route
ping -c 3 192.168.1.1
Busca inet 192.168.1.25/24 en la salida de ip a show eth0. ip route debe mostrar default via 192.168.1.1, y el ping al router debe recibir respuesta. Haz lo mismo en el servidor con su propia dirección.
Siguiente paso: el cliente TCP
- Parte 2: crear un cliente TCP con Node.js
- Servidor TCP con Node.js, el otro extremo de la conexión
- Servidor TCP en un Arduino PLC, si el servidor es un M-Duino
El TouchBerry Pi Panel PC existe en 7", 10,1" y 18,5" con Ethernet Gigabit. La familia Raspberry PLC tiene dos puertos Ethernet y Debian Bookworm de 64 bits preinstalado.
Para ir más allá
Una dirección fija es el primer paso para conectar un panel o un PLC con el resto de la máquina. Estas páginas lo muestran en un proyecto real.
Caso de estudio
Embotellado de agua con un TouchBerry Pi Panel PC
Un TouchBerry Pi de 7" controla una estación de embotellado como PLC y HMI: cinta, sensores, cilindro y bomba en sus propias E/S.
Leer el caso de estudio
PLC Solution Library
Socket TCP entre Python y Node-RED en un Raspberry PLC
Un proceso de control en Python y un dashboard de Node-RED intercambian datos de un encoder y órdenes de marcha, paro y salida por TCP.
Ver el ejemplo