...
Resource____________________________________________________ | Notes____________________________________________________________ | |||
---|---|---|---|---|
https://networklessons.com/cisco/evolving-technologies/iot-standards-and-protocols | IoT network and data standards | |||
https://www.ubuntupit.com/top-15-standard-iot-protocols-that-you-must-know-about/ | Top 15 IoT protocols | |||
https://www.sam-solutions.com/blog/internet-of-things-iot-protocols-and- connectivity-options-an-overview/ | IoT protocols overview | |||
https://www.avsystem.com/blog/iot-protocols-and-standards/ | IoT protocols and standards blog | |||
httpsMQTT | pub sub data solutions for IoT | |||
http://objectcomputing.com/products/openddsOpenDDS basic conceptsmqtt.org/ | a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. | |||
https://objectcomputingdrive.google.com/productsfile/d/opendds/resources#techOpenDDS resources1zQzn9wEPG91T7PQOrl0vX7K1mDrkR2du/view?usp=sharing | MQTT v5 docs | |||
objectcomputingresources/publications/mnb/code-generation- with-opendds-part-i | OpenDDS code generation - part 1 ( OLD ) | http://mnb.ociweb.com/mnb/MiddlewareNewsBrief-201007.html | OpenDDS code generation - part 2 wp-content/uploads/2020/07/White-Paper_IIoT-Protocols- https://drive.google.com/file/d/1KFNQU-ZnUT83x2Wp8M4-sDJeELbI2eW-/view?usp=sharing | |
https://objectcomputing.com/products/opendds | OpenDDS basic concepts | |||
https://wwwobjectcomputing.amazon.com/ELECROW-Raspberry-Learning-Computer-Electronics/dp/ B07W3ZGBQ4/ref=sr_1_3?gclid=Cj0KCQiA9dDwBRC9ARIsABbedBMNELvLfgPAE K_1fLrvgA4uuzkE3piYQcXBf24LwJDKoApLU8DQiFMaAgRPEALw_wcB&hvadid= 153700809756&hvdev=c&hvlocphy=9002163&hvnetw=g&hvpos=1o1&hvqmt=b&hvrand=18083923115835876406&hvtargid=aud-837858999240%3Akwd-56661256719&hydadcr=18034_9433544&keywords=raspberry+pi+sensor+kit&qid=1578452884&sr=8-3 elecrow-raspberry-pi-sensor-tester-kit-239.pdf ELECROW CrowPi Raspberry Pi 4B 3B+ Learning Computer Sensor Kit for Learning Coding and Electronics(Basic Kit, RPI Not Included, Black) | ||||
https://en.wikipedia.org/wiki/Comparison_of_real-time_operating_systems | Comparison of IoT / Real time OS options | |||
Free RTOS, MIT licensecom/products/opendds/resources#tech | OpenDDS resources | |||
https://objectcomputing.com/resources/publications/mnb/code-generation- with-opendds-part-i | OpenDDS code generation - part 1 ( OLD ) | |||
http://mnb.ociweb.com/mnb/MiddlewareNewsBrief-201007.html | OpenDDS code generation - part 2 | |||
ELECROW CrowPi Raspberry Pi 4B 3B+ Learning Computer Sensor Kit for Learning Coding and Electronics(Basic Kit, RPI Not Included, Black) | ||||
https://en.wikipedia.org/wiki/Apache_Mynewthttp://Comparison_of_real-time_operating_systems | Comparison of IoT / Real time OS options | |||
Free RTOS, MIT license | ||||
MyNewt - Apache free RTOS supports wireless apps | ||||
RTAI - real time extension of Linux Kernel supports IA-32, x86-64, PowerPC, ARM and MIPS | ||||
Linux Kernel |
...
There are many protocols that have a direct or indirect role in IoT. We’ll focus on two protocol types in particular:
- Network protocols
- Data protocols
Network Protocols
The network protocols we use for IoT should be open standards because our IoT network has to support devices from multiple vendors. Proprietary protocols increase complexity because you then need devices that can translate between the different protocols.
The Internet Protocol (IP) is well established and we have been using IP for IT networks for a long time. This is one of the reasons why IP is also the main choice for IoT networks.
Using IPv6 is encouraged because there are no address space limitations as there are with IPv4. Solutions such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPAN) or IPv6 Routing Protocol for LLNs (RPL) don’t even support IPv4, only IPv6.
Data Protocols
We need to transfer data between our devices and other systems such as an IoT platform. Some devices have sensors that push data at a regular interval. Other sensors work with a pull model where you have to request the information. There are several data protocols we can use in IoT. Here are three popular protocols:
- Message Queuing Telemetry Transport (MQTT)
- Constrained Application Protocol (CoAP)
- Extensible Message and Presence Protocol (XMPP)
MQTT
MQTT is probably the most used protocol in IoT. It’s a lightweight message protocol that uses publish and subscribe operations to transmit data between a client and server. It uses TCP as the transport protocol.
Packets are tiny and require little bandwidth. MQTT uses a client-server model. The server is called a broker. There are two operations:
...
a direct or indirect role in IoT. We’ll focus on two protocol types in particular:
- Network protocols
- Data protocols
Network Protocols
The network protocols we use for IoT should be open standards because our IoT network has to support devices from multiple vendors. Proprietary protocols increase complexity because you then need devices that can translate between the different protocols.
The Internet Protocol (IP) is well established and we have been using IP for IT networks for a long time. This is one of the reasons why IP is also the main choice for IoT networks.
Using IPv6 is encouraged because there are no address space limitations as there are with IPv4. Solutions such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPAN) or IPv6 Routing Protocol for LLNs (RPL) don’t even support IPv4, only IPv6.
Data Protocols
We need to transfer data between our devices and other systems such as an IoT platform. Some devices have sensors that push data at a regular interval. Other sensors work with a pull model where you have to request the information. There are several data protocols we can use in IoT. Here are three popular protocols:
- Message Queuing Telemetry Transport (MQTT)
- Constrained Application Protocol (CoAP)
- Extensible Message and Presence Protocol (XMPP)
MQTT
MQTT is probably the most used protocol in IoT. It’s a lightweight message protocol that uses publish and subscribe operations to transmit data between a client and server. It uses TCP as the transport protocol.
Packets are tiny and require little bandwidth. MQTT uses a client-server model. The server is called a broker. There are two operations:
- Publish: a device (client) sends data to a broker (server).
- Subscribe: a device (client) wants to receive data from a broker (server).
MQTT Docs
https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.pdf
https://drive.google.com/file/d/1zQzn9wEPG91T7PQOrl0vX7K1mDrkR2du/view?usp=sharing
CoAP
CoAP is also a lightweight protocol and was developed as a standard (RFC 7252). It’s based on a REST model. A server makes resources available under a URL and clients access these resources with GET, PUT, POST, and DELETE methods. It is easy to get started with CoAP because many developers are familiar with REST.
CoAP can carry different payload types including XML and JSON and uses UDP as the transport protocol.
XMPP
XMPP is an open standard (RFC6120) and is based on XML technology for real-time communication. It’s used for a range of applications including VoIP, instant messaging, and IoT.
...