If you're just getting involved in the fast-growing and revolutionary field of IoT-enabled embedded systems development, one of the first things you'll notice is the wide range of communication protocol specifications being used in the industry. Wireless communication between IoT-enabled devices is a very new technology and lacks a consistent global standard for device communication and interoperability. As a result, there are specialized communications for all sorts of devices: long-range devices, short-range devices, devices that interact with each other, devices that interact with the server, and more. Developers can even take advantage of existing protocols when designing their IoT devices, for example with the 6LoWPAN protocol that leverages pre-existing IPv6 infrastructure.
To shed more light on the current state of IoT, we've put together a list of the 8 IoT protocols that you need to know. Some may be familiar, some you may have never heard of, but all of them have been deployed successfully in residential, commercial and industrial IoT applications. If you're building your own device, pay special attention and see which of these protocols might work best for your unique application of the IoT.
6LoWPAN is an adaption of the IPv6 communication protocol, the latest version of the internet layer protocol that provides an identification and location system for computers in networks and routes internet traffic. IPv6 was ratified as an internet standard in July 2017 as a means of assigning IP addresses after the pool of IPv4 addresses was exhausted.
6LoWPAN is an acronym of "IPv6 over Low-power Wireless Personal Area Networks", founded on the belief that the IPv6 protocol should be accessible to even the smallest devices. 6LoWPAN defines encapsulation and header compression mechanisms that allow IPv6 packets to be transmitted over IEEE 802.15.4-based networks. The IEEE 802.15.4 offers the fundamental lower networks of a WPAN with a focus on low-cost and low-speed ubiquitous communication between devices. IEEE 802.15.4 also serves as the basis for other common IoT protocol specifications, including Zigbee and Thread.
The MQTT protocol is designed for applications that must collect device data from multiple endpoints and communicate it to servers. As the MQTT name suggests, the primary goal of this protocol implementation is telemetry or the tracking or monitoring of remotely connected devices. Using the MQTT protocol allows organizations to monitor or control a large network of small devices through the cloud.
Applications of MQTT typically deploy a hub-and-spoke network topology where a large number of embedded sensors and electronic devices communicate directly with the IT infrastructure, as MQTT was not designed to facilitate communication between devices, but from devices to a central monitoring location. The protocol is comprised of three components, the Subscriber, Publisher, and Broker. The Publisher (sensor) generates data and transmits it to the Subscriber (server) while the Broker manages security by continuously verifying the authorization of the Publisher and Subscriber components.
Like this bicycle wheel, the MQTT protocol depends on a hub-and-spoke architecture. Sensors and devices are not interconnected, but each one is connected to a central hub to which it can transmit data. The MQTT protocol is optimized for large-scale monitoring of sensors and other IoT-enabled devices.
AMPQ is an open-standard application layer protocol that was built to facilitate transactional messages between servers. With its origins in the banking industry, the protocol was designed to quickly and reliably process thousands of queued transactions between servers that could be miles apart. In banking, the books always have to balance and it is imperative that transaction data is never lost in transmission. Therefore, the AMQP protocol was designed to never lose a single message, even when the system is affected by failures or reboots.
The AMQP protocol for IoT consists of three essential components: Exchange, Message Queue, and Binding. The Exchange components collect messages and insert them into the Message Queue for transmission. The Message Queue stores messages until they can safely be processed, and the Binding component states the relationship between the Exchange and the Message Queue.
The message queue system employed by AMPQ is similar in conception to the publisher/subscriber communication offered by MQTT, though their applications (devices-to-server vs. server-to-server) are fundamentally different.
SigFox is a communication protocol that was specifically developed for use with the IoT. This wide-range protocol facilitates low-power, low-speed data transfer between connected devices that are up to 50 km apart in rural settings or 10 km apart in urban settings, with actual communication range depending on physical and radio interference and other factors.
SigFox was developed to fill a particular need in the IoT - facilitating machine-to-machine communications over moderately long distances in cases where minimizing costs and power consumption take priority over data transfer speed and volume. The SigFox protocol can be deployed for industrial applications, wearable patient monitoring devices in healthcare, home, and industrial security devices, environmental sensors and industrial or public lighting systems.
NFC is a low-speed communication protocol that was designed to facilitate low-volume data transfer over an extremely short distance of just 4 cm. Many of us encounter NFC technology each day of our lives, including when we use contact-less payment cards (credit cards with the "Tap" feature), or scan a key card to enter our office building or apartment.
NFC is an effective protocol for devices that connect with a mobile cellular phone. The user can employ a mobile application to set up directions for the device, then bring the phone near the device to transmit the instructions using the NFC protocol. With NFC, your cell phone could be used to set or disable a residential alarm system, control lighting, and smart kitchen appliances at home or connect to other available networks, including Bluetooth or Wifi networks in the home.
Common cellular communication protocols are available for IoT developers that must transmit data over long distances, leveraging the widely adopted and available GSM/3G/4G and upcoming 5G communication capabilities. Cellular communication protocols can be used to transfer data at high speeds over distances up to 200 km, but the associated costs and high power consumption are prohibitive factors for many IoT devices and applications.
Embedded engineers building IoT products that must transmit data over long distances can take advantage of existing communication protocols and network infrastructure used for cellular communication devices.
The Bluetooth protocol was first conceptualized as a replacement for RS-232 data cables, which facilitates serial communication transmission of data. RS-232 ports were once common on home computers and could be used to connect a PC with modems, printers, a mouse, or another peripheral device. Today, RS-232 ports have been replaced on home computers by USB ports that serve the same function.
The Bluetooth protocol is used to exchange data over short distances and to construct personal area networks (PANs). Personal area networks connect devices in an individual's own workspace - like connecting your phone to a Bluetooth headset or to your car audio system to facilitate hands-free communication. The new Bluetooth Low-Energy (BLE) protocol was developed specifically for use in embedded systems and is best suited for transmitting small blocks of data rather than large files. BLE offers data rates of up to 1 Mbps and a connective range of 50-150 meters. The standard for Bluetooth devices is known as IEEE 802.15.1.
Wifi connectivity is an attractive, and even obvious choice for IoT developers, given the widespread deployment of the Wifi protocol in the LANs at our homes and offices. Wifi benefits from a large existing infrastructure and a high level of familiarity with consumers. Wifi connections have a range of approximately 40-50 meters and can transfer data rapidly compared to many other protocols, with maximum speeds reaching 600 Mbps. Wifi is an ideal protocol for transferring large files between devices located in the same building.
A commons misconception about Wifi is that the term is short for "Wireless Field" or "Wireless Fidelity" - but it's actually a trademarked phrase that refers to the standard's technical name: IEEE 802.11x. Wifi signals operate at 2.4GHz and 5GHz bands.
Will there ever be a unified communication protocol standard for all IoT devices? On the one hand, the lack of interoperability between IoT devices has created a fractured IoT environment that may not provide the best experience for users. On the other hand, the versatility of the technologies that we do have enables engineers to design and build products with a communication protocol optimized for their unique applications. That versatility is something that embedded engineers should enjoy now, as each industry moves towards its own standardized protocol for embedded IoT development.