Predominant IoT Application Challenges

The primary pain points I see in IoT applications are cellular data transmission rate, sampling rate, sensor to analog-to-digital converter (ADC) connections, and security.   Some of these are just fine in a controlled bench environment, but become nearly unmanagable once deployed in the field.  

Cellular Data Transmission Rate

WiFi seems at first to be a great solution when available, but any change to the SSID or authentication credentials over time can cause the device to require an update of the application code in order to achieve connection to the WiFi network.   An ethernet cabled solution is always preferred when possible.   Transmitting IoT data over a cellular network can resolve many connectivity issues, especially in remote data collection scenarios.  

The major challenge with sending data over a cellular connection is the data transmission rate.   The data transmission rate includes the size of the data, and how frequently the data needs to be sent.   Although you can tether your laptop to your cell phone and under 4G or better achieve a reasonable internet connection, IoT connections are generally more challenging.   The best strategy is to strive to a IoT message size of 255 bytes or less sent no more frequently than every 250 sec or 10541 messages per month.   This keeps the monthly data usage below 3.0 MB per month.   You can do occasional bursts of say 4 messages in one second, provided it is followed by a corresponding recovery period.   Higher data transmission rates and usage per month are possible, but you get into excessive costs, and you also begin to experience limitations on the receiving end at a transmission rate of 2,500,000 messages per month or one message every 1.0 second (the general limit is 10,000,000 messages per month or one every 0.22 seconds).  

The first and most simple method to manage transmission rates is to only send data from the IoT device when the value has changed significantly, or if a specified duration since the last transmission has elapsed.   This is fairly simple to implement in the IoT device code, and depending on the data, can provide significant savings.  

Some data services such as Blynk that provide the capability of sending data from and IoT device to a custom Blynk app on your phone, limit the transmission rate to every 60 seconds per channel, or 4392 messages per month.   If that IoT device sends the data through Particle's Cloud, then the rate needs to be limited to every 90 seconds in order to keep the data usage below 3.0 MB/month.  

 

Sampling rate

Most IoT microcontrollers can achieve a sample rate of 1 kHz for a single channel.   This is sufficiently fast enough for nearly all mechanical systems with events in the 100 Hz range (many less than 30 Hz).   The 1 kHz sample rate is required to avoid aliasing issues associated with 100 Hz signals.  

On ATmega based boards (Arduino UNO, Nano, Mini, Mega), it takes about 100 microseconds (0.0001 s) to read an analog input, so the maximum reading rate is about 10,000 times a second (10 kHz).   You can boost that to as high as 77 kHz using a special ADC free running mode, but with restrictions on the other resources on the microcontroller.   A good strategy is to limit sampling to every 1 ms or 1 kHz per channel.  

Particle Gen 3 devices can read an analog input as fast as 10 microseconds or 100 kHz.   Faster analog input reading is possible with special DMA techniques.  

 

Sensor To ADC Connections

You can extend the range between a sensor and a microcontroller in an industrial environment using a 4-20 mA connection (12 m / 39 ft via 18 AWG wire).   However, considering the low cost of the microcontroller, it makes more sense to put a microcontroller directly at the sensor and then send the data from the sensor location to another location via a wired or wireless connection.  

Connection Distance & Rate Limit Node Limit
4-20 mA 18 AWG 12 m / 39 ft 1
RS485 100 kbs @ 1200 m
35 mbs @ 12 m
bps = m * 10^8
32
CAN bus 250 kbit/s (J1939)
250 m / 820 ft
30

 

Security

Under Development

 

 

Industrial Internet of Things (IIoT) Specific Challenges

Related Links

A Complete Guide to IoT Protocols & Standards In 2021

A Comparison of IoT Protocols for Developers

 


Do you need help developing or customizing a IoT product for your needs?   Send me an email requesting a free one hour phone / web share consultation.  

 

The information presented on this website is for the author's use only.   Use of this information by anyone other than the author is offered as guidelines and non-professional advice only.   No liability is assumed by the author or this web site.