En informática y telecomunicación, un protocolo de comunicaciones es un sistema de reglas que permiten que dos o más entidades de un sistema de comunicación se comuniquen entre ellas para transmitir información por medio de cualquier tipo de variación de una magnitud física. Se trata de las reglas o el estándar que define la sintaxis, semántica y sincronización de la comunicación, así como también los posibles métodos de recuperación de errores. Los protocolos pueden ser implementados por hardware, por software, o por una combinación de ambos.
Los sistemas de comunicación utilizan formatos bien definidos (protocolo) para intercambiar mensajes. Cada mensaje tiene un significado exacto destinado a obtener una respuesta de un rango de posibles respuestas predeterminadas para esa situación en particular. Normalmente, el comportamiento especificado es independiente de cómo se va a implementar. Los protocolos de comunicación tienen que estar acordados por las partes involucradas.
Ejemplos de protocolos de red (wikipedia)
- Capa 1: Nivel físico
- Capa 2: Nivel de enlace de datos
- Capa 3: Nivel de red
- Capa 4: Nivel de transporte
- Capa 5: Nivel de sesión
- Capa 6: Nivel de presentación
- Capa 7: Nivel de aplicación
Algunos Protocolos de comunicación IoT de capa de aplicación, con los que comunicar el HW con el SW
- MQTT
- API REST/HTTP
- SNMP
- CoAp
- Websockets
- Buses de campo industriales, modbus, etc…

Más información: https://es.wikipedia.org/wiki/Protocolo_de_comunicaciones
El protocolo de red MQ Telemetry Transport (MQTT) sería una buena opción para monitorizar y controlar los paneles solares. MQTT es un protocolo de publicación/suscripción con corredores de mensajes centrales. Cada panel solar puede contener un nodo IoT que publique mensajes de tensión, corriente y temperatura.
MQTT de un vistazo
- Ancho de banda muy bajo
- TCP/IP
- Publicar/suscribir transferencia de mensajes
- Topología de muchos a muchos a través de un broker central
- Sin metadatos
- Tres niveles de QoS
- Última Voluntad y Testamento revela nodos desconectados
Para los nodos IoT de los aerogeneradores, preferiría una interfaz más basada en API. El Protocolo de aplicación restringida (Constrained application protocol – CoAP) utiliza el conocido patrón de diseño REST, en el que los servidores ponen recursos a disposición en una URI y los clientes acceden a los recursos utilizando métodos como GET, PUT, POST y DELETE. Los estándares publicados facilitan la interpretación de los formatos de contenido: por ejemplo, XML (ID=41) o JSON (ID=50).
CoAP es un protocolo del IETF (Internet Engineering Task Force) que se ha diseñado para proporcionar aplicaciones RESTful modeladas en la semántica de HTTP, pero más pequeño y binario a diferencia del basado en texto. CoAP es un enfoque tradicional de cliente-servidor en comparación al de brokers, diseñado para correr sobre UDP.
Las turbinas podrían consultarse entre sí para optimizar el rendimiento de la matriz. Por ejemplo, una turbina podría consultar a la turbina adyacente para determinar si el viento estaba aumentando o disminuyendo. El vecino podría a su vez consultar a su vecino y así sucesivamente. Esta simple regla podría permitir a una turbina anticiparse a los cambios de viento y prepararse en consecuencia. Si todo el array tiene acceso a la web (vía HTTP) y un servidor DNS, es fácil traducir el URI a: http:// turbine20.domain.tld/speed y monitorizar el campo remotamente.
El CoAP de un vistazo
- Transferencia de documentos cliente/servidor REST
- Fácil de traducir a HTTP para la integración web
- Topología uno a uno con conexiones directas
- Metadatos para diferenciar clases de documentos
- UDP
- Seguridad a través de DTLS
En entornos industriales OPC UA (Unified Architecture, ‘arquitectura unificada’) es el estándar de nueva generación que le sigue a OPC Foundation. OPC clásico es bien conocido en la industria y provee una interfaz estándar para comunicarse con los PLC (Programmable Logic Controller, ‘controlador lógico programable’). OPC UA pretende expandir la compatibilidad de OPC al nivel de los dispositivos y de las empresas.
OPC UA es un protocolo cliente/servidor. Los clientes se conectan, navegan, leen y escriben al equipamiento industrial. UA define la comunicación desde la aplicación hacia la capa de transporte, lo que lo hace muy compatible entre vendedores. También es muy seguro, y usa mensajes bidireccionales firmados y encriptación de transporte.
OPC UA tiene una amplia base instalada en el mundo industrial. Es una buena solución para conectar información de sensores y PLC en aplicaciones industriales ya existentes como sistemas MES (Manufacturing Execution System, ‘sistema de ejecución de manufactura’) y SCADA (Supervisry Control and Data Acquisition, ‘supervisión, control y adquisición de datos’), en donde la conectividad OPC y OPC UA ya estén disponibles.
Sin embargo, OPC UA es nuevo para las tecnologías de información. Algunas personas de TIC (tecnologías de la información y comunicación) se asustan ante la complejidad de UA en comparación con otros protocolos TIC. Bastante de esta complejidad reside en el hecho de que OPC UA sea un protocolo industrial, pero esta percepción ha llevado a ralentizar su adopción para plataformas IoT y la comunidad de código abierto.
Pero la cosa están cambiando: hace muy poco, OPC Foundation abrió el código del estándar OPC UA para hacerlo más accesible y colaborar a que se incremente su adopción.
Más información:
- https://www.artik.io/blog/2015/09/iot-101-networks/
- https://www.editores-srl.com.ar/sites/default/files/aa2_semle_protocolos_ilot.pdf
Comparativa de protocolos IoT:

Conclusión
OPC UA, HTTP, MQTT, CoAP, DDS, AMQP, etc.. todos tienen lugar en IoT. Cuál de estos protocolos tiene la mayor parte del mercado no está claro, pero cada uno tiene sus pros y sus contras. Es importante elegir el protocolo que mejor se adapte a sus necesidades, y seleccionar los socios tecnológicos que se puedan adaptar a tales protocolos. Esto asegurará el éxito para sus aplicaciones IoT y lo protegerá de las guerras de protocolos.
Muy buen resumen de protocolos de IoT: https://www.postscapes.com/internet-of-things-protocols/
Otro Buen resumen de protocolos IoT de la capa de aplicación: https://www.14core.com/the-iot-protocols-the-base-of-internet-of-things-ecosystem/