We put the Arduino MKR NB 1500 to the test using the Telstra network and show you how to give your IoT project long-range communication, when WiFi or LoRa aren't practical.
This article was originally posted in DIYODE Magazine by Johann Wyss, Issue 40, November 2020.
Monitoring real-world conditions in remote locations
There may be times where you need a project to monitor real-world conditions in a remote location and transmit that data to the end user wirelessly. You could, for example, have a series of remote pumping stations which are critical infrastructure for your property or operations. You may need to monitor the air quality for a buildup of gases in the pit,or the flow rate to gauge pump performance, or maybe the voltage of a backup battery. Or, you may also want to monitor a remote weather station or access control system for the gates around your property.
It’s not practical for yourself or an employee to constantly travel to each site to monitor the system. That's why automation is your best solution.
Automating your project with IoT devices
The good news is that there are a number of ways you could do this. For example, back in Issue 21, we created a LoRa/Arduino-based IoT device which was able to transmit data from a sender unit to a receiver over a distance of nearly 7.5km. At the time, we were thoroughly impressed with the reach of this project. Yet in hindsight, 7km is insignificant once you consider Australia covers an area of 7.692 million km². The distance problem aside, there are other issues that would make LoRa undesirable in this situation.
Limitations of LoRa
LoRa is a shared network that operates on the shared Industrial, Scientific and Medicine (ISM) UHF radio band between 915MHz - 928 MHz. This band does not require a license from the Australian government to transmit on, which means anyone is free to use the band, and as such, this small band could become congested.
The best way to explain this congestion is to imagine the ISM band as the space inside of a pub or bar, and you and your friends are clients in this bar, all communicating together in much the same way as IoT nodes do. As more and more people (clients) enter the venue, there is more and more background noise as the other clients are trying to communicate in the limited space of the venue. This leaves you with no other options but to repeat the same message.
If you don’t, your communication is simply drowned out by the accumulation of other communications. If your project is a simple weather station, LoRa can make sense as a few missed communications here and there will have minimal impact. However, if like in our hypothetical situation with a mission critical device, such as our remote pump stations, lost communications could be disastrous.
Celluar based IoT
Cellular based IoT, on the other hand, uses a dedicated spectrum which the network provider tightly controls. Only approved clients can communicate in the space, essentially creating a reserved VIP lounge for you and your friends.
So, what are your options if you need to communicate with a device over much greater distances than a LoRa node will allow, or if you have a mission critical need? Well, thanks to the collaboration between Arduino and Telstra, we have the answer.
The Arduino MKR NB 1500
Arduino has developed the Arduino MKR NB 1500, an IoT ready 32-bit Arm Cortex M0+ based microcontroller development board with a u-blox SARA-R4 multi-band Long Term Evolution 4G (LTE-M) / NB-IoT narrowband module. The development board boasts 256KB of flash memory and 32KB of static RAM, which should give you quite a bit of space for programming.
In total there are 15 digital I/O pins D0 – D14, with 11 of these capable of PWM. On the analog side, there are seven analog I/O pins, all of which can be used as a digital pin, and two of which can be used for PWM. Combined, this makes the MKR 1500 quite a feature-packed development board with enough memory and I/O for even some challenging projects.
Telstra M2M LTE-M network
Of course, in this case, it’s all about the ability to transmit and receive signals from the project, and for that, we have the Telstra Machine to Machine (M2M) LTE-M network.
As you can see from the coverage map below, this network covers an area of 3 million km² across Australia, providing service to the most populated areas. So provided that your device is in range of the coverage map, you’re good to go.
You can also find an interactive map here.
A dedicated spectrum network
But what about congestion? Well, that’s covered too. Unlike LoRa with its shared spectrum, the Telstra network is a dedicated spectrum network where only limited users are on the spectrum at the same time. Likewise, the base towers use software called a scheduler to work as a mediator, ensuring that devices are not trying to talk/communicate over the top of one another.
This prevents lost communications and also means that you can potentially use a lower transmit power. This is ideal for remote devices which may need to be battery powered as the size of the battery and associated supporting hardware, like solar panels, is reduced.
On top of these benefits, you also get multifaceted authentication security on the Telstra LTE-M network. Security has, until recently, generally been an afterthought in the IoT world. This could, in large, be a result of simplistic thinking.
Most of us would think that our IoT enabled coffee machine is fairly safe. After all, on face value, the worst someone can do if they were to take control is to ruin your morning coffee. However, it’s important to remember that your network security is only as safe as the weakest link.
If your coffee maker is attached to your Wireless Local Area Network (WLAN), a suitably skilled bad actor could potentially gain access to other devices on your network via your coffee machine. Take, for example, the North American Casino that was hacked in 2017. Hackers gained access to the system via an IoT fish tank monitor. Whilst clearly an extreme case, this goes to demonstrate how bad actors are progressing to more and more creative exploits.
As such, security is now becoming more and more the focus in IoT, especially in the corporate world where an IoT device could be used for corporate espionage. This makes Cell-based IoT devices that are not directly connected to your WiFi network much more attractive. With LTE-M networks, communication is validated using a Universal Integrated Circuit Card (UICC), which we often referred to as a Subscriber Identification Module or SIM card.
This card is the first step in authenticating access to the network. This mutual authentication ensures that not only is the device who it claims to be, but also that the network/server is also who it claims to be.
The IoT cloud
To tie the two technologies together, Arduino has developed the IoT cloud. This allows you to not only very easily create IoT applications using the 1500 NB and Telstra network, but also access and display the data on any computer or mobile device anywhere in the world. This gives you the ability to not only check sensor data for your project anytime but also respond to it.
For example, let’s continue with our hypothetical pump station. This pump station has an issue where the flow of the pump needs to be controlled remotely. With this system, not only can you monitor real-world sensor data in real-time reliably, but you can also react in real-time, based on demand or even reactionary due to unforeseen situations.
Combine Arduino with a Telstra data plan
Thanks to the collaboration between Arduino and Telstra, you can purchase the Arduino MKR NB 1500 board with a SIM from Telstra for $119, which includes 10MB per month of data for FREE for the first 6 months! We did the calculations, and that’s a lot of data for many IoT projects.
The amount of data you need will depend entirely on the type of project you’re creating. If you’re needing real-time up to the second sensor data, then you'll need more data compared to if you only needed updates every 10 seconds or so.
For example, an integer on the Arduino MKR NB 1500 is a 32-bit value. So, if you were to send a single 32-bit integer every second for a month you would use most of the 10MB per month plan. This is worked out as there are 2,592,000 seconds in a month so you would need 8.3 MB of data just for this value.
Note: This does not account for any overhead on top of the actual packet frame that is sent.
However, if you were to send the same integer every 10 seconds you would use just over 1MB, and if you were to drop it to 30 seconds, the data use would drop to 0.0108MB. The good news is this can all be easily controlled in the Arduino IoT Cloud software.
After the six months of free data, you will need to sign up for an M2M data plan. There are many plans to choose from based on the data you will use. They start from $2.40 for 100KB of data per month. You can check out the different plans here: https://diyode.io/040dataplans
The original DIYODE article continues with a hands-on guide to connecting external sensors to the device on Telstra's network, with Arduino IoT Cloud.
Find out more about Telstra's IoT Starter Kit with the Arduino MKR NB 1500 and SIM, and purchase one today on our IoT Marketplace: https://dev.telstra.com/iot-marketplace