24

The question setting here is little bit misleading, because actually these protocols cannot at all be compared together. They are like TCP and IP, layers above each other. [1] Websockets is a low level protocol to provide things that its 'competitor' RESTful http that is on same level does not provide: an always open channel without need for open and close ...


14

The model that IoT Hub connected devices use is that they will never accept incoming connections. IoT Hub devices never act as a 'server', and this is a crucial part of the security model in Azure IoT. The definitive model on this is encapsulated in Clemens Vasters' 'Service Assisted Communication'. Therefore devices are always 'polling' an external service ...


13

The reason that you find few implementations is most likely because CoAP is a relatively young protocol. It was first proposed in 2010, and the current version dates from 2014: RFC 7252. For application level protocols the popular alternatives are HTTP, which is heavy for constrained devices, and MQTT, which requires a broker device and runs on TCP. They ...


10

Some airlines provide in-flight wireless connectivity, usually for a fee. You can use WiFi in "Airplane Mode" on most mobile devices, so that would let you connect to a monitoring server to retrieve the status of your devices, but you would still be unable to monitor your devices during taxi/takeoff/landing periods when your devices (even the small handheld ...


10

A usual method is that the IoT device sets up a temporary Wi-Fi access point. This AP can be open, or the password et cetera can even be coded into a QR Code. Such codes can easily be generated by tools like this. Try this one: The advantage is that the user has to provide the actual Wi-Fi password and both of your security risks are avoided, since that ...


9

They're comparable in that both allow you to have full-duplex communication such that the server can immediately pass data to the client, without the client polling for it (as might be with HTTP). However, Websockets is designed for a simple point-to-point connection between a client and a server. MQTT layers extra abstractions on top of basic message ...


9

If you are using an ESP8266 the built in Smart Config feature can achieve this. An example can be found here: ESP8266 Arduino WiFiSmartConfig.ino. The important steps are to set to STA mode: WiFi.mode(WIFI_STA); Then start looking for the smart config packets: WiFi.beginSmartConfig(); Finally check for the config to be complete: WiFi.smartConfigDone() ...


8

Some devices support connecting to a router through Wi-Fi Protected Setup (WPS), which is a feature of most modern routers to allow any device to connect to your network (with a limited period of time to initiate the connection) once you've pressed the WPS button on the router. The button tends to look like this: (ArnoldReinhold, Cisco router WPS button, ...


8

While it's fair to say that XML is verbose, that should be tempered with the awareness that this verbosity is not all "overhead" in relation to content since it encapsulates semantics; it's overhead that's symptomatic of any protocol that emphasises a dynamic as opposed to static structure. For example, HTML is really a relaxed form of XML that conveys ...


8

From the perspective of power usage, Bluetooth 3.0 does not seem like a viable choice, given your constraints. Let us assume that you want to transmit data for 2 seconds every minute, and then sleep for the rest of the time. Given your range requirements of 30 metres, you will likely need to use a Class 1 Bluetooth Radio: Class 1, primarily for ...


8

One thing to remember when working with MQTT is that "both subscribers and publishers are considered MQTT clients". As said QoS set while publishing is entirely related to broker(B) not the other clients. So to ensure that subscriber(S) is receiving everything that publisher(P) is publishing, one need to use QoS 1. Let's look at cases: P - sends with QoS ...


8

Most of the telematic devices used by insurance companies use cellular phone devices (mostly using 2G which is fairly commonly used for low cost, low data requirement devices) to communicate with a couple of different sensors such as accelerometer. Most also plug into the OBDII vehicle diagnostics port to collect data on the car as well. From In-Car Sensors ...


7

I am not certain that this is an IoT question. I have the impression that those tracking devices would not get any GPS signal in shipping containers, trucks or buildings, where they would be most of the time. Also, I see the same issue regarding the connection to a cellular network or alike, especially in regions with bad network coverage. I ...


7

CoAP and MQTT have both equal RAM usage, measured in 10kbits [1]. Difference is in cpu and network usage: [2] Every client supports TCP and holds a connection open to the broker. So, CoAP has fewer foot print and according to the whole use case (small data once in a while) it seems to be your best choice. As you referred, CoAP uses UDP. It does not ...


7

Ok here goes Install MQTT on your Raspberry Pi Look if it is already running on your Rpi linux flavor or install it Expose your MQTT port Look at which port MQTT is installed and open this port using port forwarding with your broadband modem Connect your cloud server to your local MQTT Test your sensors I don't know how the temperature sensor will be ...


7

You should start with Wireshark for network monitoring. Watch out for headers (authentication, certificates,...) I think you should use a Raspberry Pi to interface your module, it could be a quite easy-to-configure interface with a web server or a MQTT listener/instance.


7

Most cellular providers use Private IP (RFC-1918) ranges (e.g. 10.0.0.0/8) and NAT for their networks which means it is not possible to directly access a device connected via these networks remotely as it is behind a proxy server. Even if they are using fully routed networks the IP addresses are handed out dynamically and can change at any time. Having said ...


7

You have to provide an endpoint of some sort to allow control over a given device. Port forwarding is not the only option, the device could connect out to a publicly accessable server on the internet, once this connection is created then commands can be sent via this to the device. This is how many IoT devices work. Example protocols used for this include ...


7

In general, no — there aren't any standards for topic naming beyond the MQTT specifications. There are plenty of opinions about how you should construct your MQTT topics, and not a lot of fixed rules. While this is a bit unsettling when you'd like to know exactly what the best practice is, the lack of strict rules does mean you get a lot of flexibility with ...


6

Are you asking about the protocol or the message format? We often incorrectly use the term protocol when we mean the format of the data. I do this myself, often because the distinction isn't clear to everyone. Messaging protocols used in IoT tend to be fairly compact, at least more so than http and offer significant features that are important in messaging (...


6

I have document some aspect of BLE low power aspects as a response to What is the difference between Bluetooth Low Energy and Bluetooth BR/EDR in Park mode?. Here are is a suggestion. Looks like a SIM808 has a serial interface. So I suggest integrate the SIM808 module with a Dual Mode Class 1 BLE such as KC-5170. I think you could use a single mode BLE too. ...


6

Typically, you would need to choose a protocol with strong guarantees on whether the client will receive any packets/messages, in which order, and whether duplication is permitted. For a network of IoT devices sending small- to moderately-sized messages to each other, using MQTT with Quality of Service 2 would seem to fit your use case well. As stated in ...


6

This confusing behaviour is typical. The underlying reason is that it is up to the carrier to decide what to do with the APN setting — unlike most configurations of this form, you're not actually configuring any connection setting. Instead, you're just passing to the carrier a text string. The carrier may do a number of things with the APN you've specified: ...


5

Alternatively it might be worth to consider wireless Hart (Highway Addressable Remote Transducer). This is a 2.4GHz ( license free frequency band) Smart mesh networking technology that uses 802.15.4 standard. WHart use direct-sequence spread spectrum technology and needs at minimum three main components. Namely wireless devices, gateway and network manager. ...


5

I've not looked at the system in detail, but it looks like it really should have properly encrypted/authenticated transmission. This means that unless you can extract the app's private certificate, or otherwise man-in-the-middle the LAN traffic, you won't be able to just tap into the system as you propose. The first sign of this being done right would be ...


5

There are no standards only RFCs for CoAP; all of them are accessible on the web: RFC 7228 - Terminology for Constrained-Node Networks, May 2014 RFC 7252 - The Constrained Application Protocol (CoAP), June 2014


4

The big advantage of a markup based format is that you retain flexibility in the choice of what data you transmit. This is hugely important in an evolving ecosystem where you anticipate a service evolving over several years of development. Although a tightly coded binary data structure will be efficient to transmit, you need to decide up-front at a minimum ...


4

QoS 1 or 2 levels only assure that the published message arrived at the broker. The subscriber QoS 1 or 2 assures the broker that the message was received. Publishing with 1 or 2 does not mean that anyone is listening. What is your use case?


4

Arduino is an open source platform for IoT test projects, and you'd buy either a Arduino device or a cheap derivation, that may have cheaper price or better characteristics. Same Arduino IDE can be used for all variations, you'll use IDE to install the software and test your programs. Program has one time and loop parts where you can build your stuff by C++ ...


4

Yes, there already are such devices. If you are not bound to the rotary dial there are dimmers out there (e.g. Insteon 2477d). Probably there some rotary versions too. The Insteon variant can be controlled via their powerline messages (Spec) or via a hub. According to the Insteon website you could build your own powerline client, hook it up to a Pi, a ...


Only top voted, non community-wiki answers of a minimum length are eligible