Most IOT devices can use both the HTTP and MQTT protocols to communicate with IOT control systems.
The HTTP protocol is generally used for initial device set up.
However when it comes to sending device data and for subsequent device control HTTP is not usually the best protocol.
Generally when you look for a comparison between the protocols the main emphasis is on the fact that HTTP is a text based protocol and not as efficient as MQTT which is a binary based protocol.
However when dealing with only a few devices that send data infrequently then it is not really a problem.
IMO ,the main issues are the fact that MQTT is a real time protocol and because of the publish and subscribe model is excellent for working with a large number of devices and real time data.
As an example imagine you have 100 parking space sensors. How would you get the status of each sensor?
With HTTP you would need to poll each sensor frequently and you would require 100 client connections from the control dashboard.
With MQTT you would only require one connection to the broker from the control dashboard, and to subscribe to a single topic to receive status changes in real time.
This is what ChatGPT said about use cases
Use Case | HTTP | MQTT |
---|
Device Control | OK for simple commands | Excellent for real-time control |
Sensor Data Reporting | Less efficient | Highly efficient |
Low Power/Resource Devices | Not ideal | Optimized |
Scalability (many devices) | Harder to scale | Broker makes scaling easier |
Device IP Addresses
Another very important point that is not discussed is that when using HTTP for device control then the control dashboard needs to know the IP address of the device.
With many devices DHCP will be used and so keeping track of device IP addresses isn’t always easy.
See Finding New Device IP addresses
However the task will become increasingly more difficult as networks move to IPV6 as the methods used for IPv4 networks won’t work on IPv6.
Because MQTT doesn’t have a direct connection between devices then knowing the IP address of any device isn’t necessary.
Video
Related Tutorials and Resources:
- Understanding HTTP Basics
- Using HTTP APIs For IOT -Beginners Guide
- IPv6 Explained for Beginners
- How MQTT Works
I’m trying to connect two software systems using MQTT and am looking for a client component, perhaps a DLL or OCX for TwinBasic or VB6.
Do you know anything about this?
Sorry but I only know of the c,python,Javascript and Java clients.
Rgds
Steve