Cellular Connected Sensors

Digi International’s Xbee3 cellular smart modems are easy to use and very flexible. Cellular connected use cases range from complex host processor applications to standalone sensors.

(Image source: Digi International)

The XB3-C-A2-UT-001 LTE-M/NB-IoT cellular module features both a u-blox SARA-R410M-02B modem and a Silicon Labs microcontroller. The benefit of having a microcontroller is development flexibility. Customers can build cellular into their projects by using AT commands with an external host processor or have the Xbee3 run standalone on embedded MicroPython code. Alternatively, the microcontroller can be bypassed completely and interface directly over USB.

Project Background

The project grew out of my interest in the MicroPython capability built into Xbee3 cellular modules. I had a general understanding of MicroPython and wanted to investigate interfacing to various external sensors. The project itself consisted of developing example code for three different sensors. Mikroelektonica Click boards incorporating various sensors were used for code development and testing. The Thermo 6 Click™ uses Maxim's MAX31875R0 temperature sensor, the Pressure 4 Click™ uses Bosch Sensortec's BMP280 barometric pressure sensor and the GNSS 5 Click™ uses u-blox's NEO-M8N GNSS receiver module.

Maxim MAX31875R0 Temperature Sensor

The MAX31875R0 is a ±1°C-accurate temperature sensor with an I2C interface. The example code scans the I2C bus and prints active addresses, reads/prints the MAX31875 configuration register, and reads/prints temperature in a continuous loop. Project details and example code are located here.

Bosch Sensortec BMP280 Barometric Pressure/Temperature Sensor

The BMP280 is an absolute barometric pressure sensor with an I2C interface. The example code scans the I2C bus, prints active addresses, reads/prints the BMP280 chip id; writes the BMP280 data acquisition settings, reads/prints the calibration parameters, and reads/prints pressure and temperature in a continuous loop. Project details and example code are located here.

u-blox NEO-M8N GNSS Receiver Module

The NEO-M8N is a versatile GNSS module that utilizes concurrent reception of up to three GNSS systems (GPS/Galileo together with BeiDou or GLONASS). The example code configures the Xbee3 UART for 9600 baud and u-blox M8 module for UBX communication protocol over UART at 9600 baud. Once configured, the M8 module is queried for GNSS position fix and longitude/latitude in a continuous loop. Project details and example code are located here.

GitHub example code link:

https://github.com/eewiki/Xbee3-MicroPython

About this author

Image of Scott Raeker

Scott Raeker, Technical Marketing Manager at Digi-Key Electronics, has been with the company since 2006. He has over 35 years of experience in the electronics industry and holds an Electrical Engineering degree from the University of Minnesota. In his spare time, Scott enjoys the outdoors of Northwest Minnesota and working on his turn-of-the-century farmhouse.

More posts by Scott Raeker