The Internet is a network for servers, desktops, laptops, tablets, and mobile phones. IoT is a network for microcontrollers. Microcontrollers can communicate via Ethernet, Bluetooth, Wi-Fi, or GSM, but none of these technologies were originally designed for battery-powered microcontrollers. There are other options you can consider when designing your hardware solution. These are designed specifically for embedded systems.
Sigfox
Sigfox is a wireless wide area network operating on 868 MHz in Europe and 902 MHz in the US. The network module is very power efficient and intended to be used by battery-powered devices. One Sigfox module can transmit 140 messages per day with a payload of 12 bytes and receive 4 messages per day with a payload of 8 bytes.
A Sigfox module has its unique ID, which must be registered with a local carrier that charges customers for registered devices. Messages are stored in Sigfox’s datacenter and can be picked up via an Internet HTTP API. Message retention is 3 days. This approach is very practical because it expects that data are processed in the cloud. For instant message delivery, Sigfox natively supports Azure IoT Hub and Azure Event Hubs.
Sigfox is ideal for uploading sensor measurements. It is not designed for sending images. The number of messages per day is restricted because the frequency is unlicensed; thus, one device cannot operate more often than 1% of the time. Downlink is not a push notification. The device must initiate the request. Additionally, downlink tariffs are not included in basic tariffs. Sigfox is a global network. A device registered in one country is roamed in another country without additional cost.
LoRa
LoRa is a wireless wide area network operating on 169, 433, or 868 MHz in Europe or 915 MHz in the US and Canada. One LoRa device can transmit or receive 140 messages per day with a payload of 52–220 bytes. Messages are sent to your Internet HTTP endpoint. A permanently powered device can use downlink like a push notification. A device registered in one country will not operate in another country because you must register the device with each carrier.
LoRa is ideal for uploading sensor measurements and receiving commands. LoRa is not designed for sending images or position data. The LoRa network does not have Internet peering. Endpoint services may vary. They are operated by each carrier independently.
NB-IoT
NB-IoT is standardized in LTE Cat NB1. It operates on a licensed frequency. It can be deployed by a carrier operating an LTE network just by a software update. The device is required to have power connectivity or a Li-SoCl2 battery. The network module does not need registration. Network bandwidth is suitable for sending images, but current modems typically have 512kB buffers. The network requires your backend to have a private IP address and UDP communication. Integration is the most difficult, but it opens the most possibilities.
NB-IoT is the only wireless network connected to the Internet directly. The device can open a UDP connection to any Internet server. TCP and TLS are planned and will be available in the future. It can be used for remote device firmware upgrades. It targets enterprise customers, but there are some Raspberry Pi NB-IoT shields with micro SIM sockets. Availability depends on carriers in your country.