Mobile M2M connectivity for Arduino-class IoT devices
Thanks to the Arduino platform – and all its available variations and lookalikes – new M2M and IoT devices are being invented every day, by hobbyists and professional developers alike. And many of them are making their way into our daily lives in the form of personal gadgets, products and services. For example: GPS tracked bike locks that can track your sports activities for fun and protect your high value asset from theft. Also, products such as personal weather stations which can be deployed remotely at your favorite kite-surfing area to alert you of the best time to take a day off and go surfing. Another popular domain are home automation & security systems; these keep you connected to your family members while you’re abroad and can help you watch out for your kids.
Also, as power requirements become manageable and mobile connectivity becomes easier to integrate, we are seeing a massive amount of these new class of devices joining mobile networks around the world.
In light of these developments and the questions around best practice, we have put together a small report looking at:
- Available hardware options
- Powering your devices to be mobile
- How to integrate mobile connectivity
|Arduino UNO + Arduino GSM shield||Itead GBoard with a SIM900 GSM/GPRS module on-board||DIY Arduino GSM shield with a SIM900|
The classic Arduino – combined with the original GSM shield developed for it – is a solid option to get started and is ideal for prototyping new devices. If you already have other Arduino shields you can also test them in combination to determine the best pairing.
The original Arduino GSM shields come at a relative high retail price and the form-factor is not overly convenient to integrate it into a sleek housing. As an alternative though, Itead has developed the Gboard which is an Arduino board with a SIM900 GSM/GPRS module pre-integrated. It also comes with a XBee socket, nRF24L01+ module interface and an ATMega328P controller.
Finally, as an alternative to using pre-integrated components, it is also possible to create a more individual hardware design. For example, on the Gboard you can use a SIM900 module from SIMCom for your device, the module is available at a competitive price and in smaller quantities. The SIM 900 is a complete Quad-band GSM/GPRS module in a SMT type and is designed with a very powerful single-chip processor. The module is not simple to mount by a hobbyist but you can reuse some of the existing break-board designs and make it fit into the desired form-factor.
Using Power Banks
Arduino’s can be powered with power banks, such as those used for mobile phones. They typically work at 5V and 1/2.4A with no problems. They also have reasonably long stand-by times – anywhere from a couple of days to a couple of weeks, depending on the capacity of your power bank while transferring low amount of data through GPRS (few MBs/day).
However, not all power banks can be used. Some switch off if consumption falls below 60-80mA. To avoid this issue, use a power bank such as the XTPower MP-10400 which does not possess an automatic shutdown function; don’t forget to switch it off when you don’t need it though!
Another interesting option for remote deployed devices is to harvest energy from small sized solar panels. These allow your device to run in a fully self-sustained mode over a long period of time.
For example, the model SP6 from XTPower gives you a solar panel with an universal USB output of 5V at max 800mA; in the form-factor of 18x33cm. Through connecting the solar panel to your power bank it becomes a buffer battery which charges by sun light and keeps your device running throughout the night.
Using SMS or data access from an Arduino sketch is easy, with the GSM library you can send and receive SMS, open data connections or make voice calls. All you need is a SIM card in 2FF form-factor with an active data subscription. However, it’s important to know the APN settings as these need to be correctly configured in the Arduino sketch and are usually hard-coded there.
We recommend using special M2M SIM cards (from providers like EMnify) which come with more preferable tariff plans. These give you the option to monitor and switch on/off the connectivity remotely via an API and allow global network access.
Also you can find simple sketches to control or enable certain functionalities through hosting services like GitHub. For example, EMnify has a sketch that opens a data session and submits some HTTP requests on devices connected through our network, available in our source code repository on GitHub.
There are a number of options for building and powering your Arduino-class IoT devices, what you select greatly depends on the size and intended functionality of the devices. However, to ensure sustained global connectivity of your devices, a special M2M SIM is the most reliable connectivity source. If you have any questions or would like more information on IoT and M2M solutions for your business, contact us. Our team is always happy to help and offer advice.
Please also check out our post about “How to fit Raspberry Pi with Mobile Connectivity” if you are designing your devices around that platform.
You can also sign up to our newsletter to keep up with the latest news and insights.
by Martin Giess
originally published 09.12.15