The Internet of Things is changing the world. Its huge potential lies in the combination of ultra-low-power smart devices at the network edge, and Cloud computing able to identify patterns in vast quantities of data to generate useful information. Two aspects enabling its emergence are high performance processor chips, along with smart network edge devices that can be fabricated at such low cost and power consumption that pervasive deployment is both technically and economically feasible.
Networking and Big Data are key aspects that distinguish the IoT from ordinary remote monitoring and control. Its potential to protect the environment, improve business performance, and transform everyday life is exploited not by detecting and responding individually to one or two variables, but by analyzing multiple data channels to detect trends and determine a suitable response.
Some examples can be seen in the automotive industry, as leading manufacturers are beginning to use sensor information captured from large numbers of cars in the field to improve customer services and new product development. In other consumer markets, such as home appliances, leading manufacturers are beginning to harness the power of the IoT to improve product and business performance with insights gained by collecting data from customers’ machines. In the building services sector, data collected from a global installed base of elevators and escalators into a Cloud IoT platform is expected to help improve maintenance and future product design.
There are many other scenarios that can utilize combinations of sensed data, some of which include:
- Environmental sensing such as gas detection in mines to improve workplace safety.
- Proximity sensors in the road as well as acceleration and attitude sensors on board vehicles to support autonomous driving and accident avoidance.
- Sensors in hotel rooms to detect occupancy without compromising privacy, allowing staff to service rooms without intruding and to improve operational efficiency.
- Medical sensors to record patient and environmental data to be sent to a healthcare professional.
- Telematics that enable vehicle data recording to determine insurance rates based upon driving habits to incentivize safer driving.
Demand and development of multi-sensor solutions
Where sensors are needed to monitor multiple variables simultaneously, consolidating the sensors and support electronics saves costs and simplifies installation. Highly integrated sensor evaluation platforms aid the development of sensor-rich smart products that are ready to be connected to the IoT.
Arduino is among the environments simplifying the development of multi-sensor solutions. For example, the Arduino Lucky Shield is an expansion board that is compatible with all 5 V and 3.3 V standard Arduino boards. It combines sensors for barometric pressure, relative altitude, luminosity, temperature, motion and presence. The sensors are packed into a compact 68.6 mm x 53.4 mm form factor.
Getting started with the Arduino Lucky Shield is easy as several tutorials are available at Arduino.org, including a weather station application that shows how to read the temperature, humidity and pressure sensor outputs and send them to an OLED display. Figure 1 shows an excerpt of the code provided, while Figure 2 shows the running code displaying the read sensor values.
tmp_lbl = "Temper.:";
hum_lbl = "Humidity:";
pre_lbl = "Pressure:";
tmp_um = " C.";
hum_um = " %";
pre_um = " hPa";
tmp_val = String(luck.environment().temperature());
lucky.oled().print(tmp_lbl + tmp_val + tmp_um);
Serial.print(tmp_lbl + tmp_val + tmp_um);
hum_val = String(luck.environment().humidity());
lucky.oled().print(hum_lbl + hum_val + hum_um);
Serial.print(hum_lbl + hum_val + hum_um);
pre_val = String(luck.environment().temperature() / 100.0F);
lucky.oled().print(pre_lbl + pre_val + pre_um);
Serial.printIn(pre_lbl + pre_val + pre_um);
Figure 1: Arduino weather station tutorial code.
Figure 2: Sensing environmental conditions with the Arduino Lucky Shield multi-sensor board.
ST’s X-NUCLEO-IKS01A2 board and SensorTile
STMicroelectronics has several multi-sensor evaluation boards within its STM32 ecosystem. The X-NUCLEO-IKS01A2 is an environmental sensing expansion board for use with STM32 Nucleo microcontroller baseboards. It contains a MEMS accelerometer, a gyroscope, a magnetometer, an absolute barometric pressure sensor, and a capacitive relative humidity and temperature sensor.
The STM32Cube ecosystem provides tools and software for initializing and running the STM32 microcontroller. Additionally, the X-CUBE-MEMS1 environmental sensor software expansion library provides the drivers needed to build applications on the X-NUCLEO-IKS01A2. In the overall system architecture diagram of Figure 3, X-CUBE-MEMS1 fulfills the driver layer requirements.
Figure 3: System architecture for sensor development in STM32 ecosystem.
Fitting into the middleware layer of Figure 3, additional software examples are available to use the sensors for specific functions such as activity and/or gesture recognition. These include:
osxMotionAW: Real-time Activity Recognition for wrist software expansion for STM32Cube
osxMotionID: Real-time motion intensity detection software expansion for STM32Cube
osxMotionFX: Real-time sensor fusion software expansion for STM32Cube
osxMotionGC: Real-time gyroscope calibration software for STM32Cube
osxMotionPE: Real-time pose estimation software expansion for STM32Cube
The pseudo-code in Figure 4 shows how MotionFX implements real-time motion sensor data fusion.
pseudo-code sequence Initialization (to be done once)
- Init sensors (acc and gyro for 6x fusion, also mag for 9x fusion); on power-on wait for transients to be completed in order to get good data samples
- Init MotionFX fusion: osx_MotionFX_initialize()
- Init mag calibration: osx_MotionFX_compass_Init()
- osx_MotionFX_getKnobs(); modify settings; _setKnobs()
- Reset by disabling fusion: osx_MotionFX_enable_6X(0) / _9X(0)
- Init gyro calibration if possible: osx_MotionFX_setGbias()
- Init mag calib if possible: osx_MotionFX_compass_setCalibrationData()
- Enable data fusion: osx_MotionFX_enable_6X(1) / _9X(1)
Sensor data can then be read, and transactions can be controlled using instructions such as osx_MotionFX_propagate() and osx_MotionFX_update()
Figure 4: Pseudo-code for MotionFX sensor fusion.
Small form factor IoT lab
ST has recently announced an even smaller multi-sensor module which can be used as a sensing and connectivity hub in an embedded system, or as a standalone device to capture sensor data using a smartphone app. This SensorTile integrates a MEMS accelerometer, gyroscope, magnetometer, absolute-pressure sensor and microphone, along with an STM32L4 microcontroller and Bluetooth Low Energy (BLE) radio on a board the size of a postage stamp which can be soldered or plugged onto a host board.
To use in standalone mode, ST provides a cradle board which contains an additional temperature and humidity sensor, and can be easily modified to add alternative sensors if required. When used in this mode, the SensorTile can be configured over BLE to quickly start acquiring sensor data on a smartphone.
For embedded development, the SensorTile can be plugged into a STM32 Nucleo evaluation board via a different expansion cradle board.
Samsung ARTIK platform with enterprise security
Samsung’s ARTIK™ platform provides a series of modules that are scalable from small units featuring an ARM® Cortex®-M4 microcontroller and Bluetooth 4.2 support, to the ARTIK 5 family with dual Cortex-A7 processing and support for Bluetooth, Wi-Fi, ZigBee® and Thread, to the ARTIK 7 family that leverages the Cortex-A35 application processor. The ARTIK 5 and ARTIK 7 families are powerful enough for gateways or controllers. They incorporate enterprise class security, including a hardware security element for key storage and secure execution of crypto algorithms and secure OS that helps establish a trusted execution environment. Blue chip brands are building IoT solutions using the ARTIK ecosystem, and kits are available for embedded development such as the ARTIK 020 Bluetooth 4.2 IoT end device kit, ARTIK 520 Bluetooth/Wi-Fi/ZigBee/Thread kit, and the high-end ARTIK 710 kit. Rapid multi-sensor development can take advantage of the ARTIK sensor expansion board which is compatible with ARTIK 5 and ARTIK 7 kits. This board contains an accelerometer, gyroscope, humidity sensor, magnetometer, pressure and temperature sensor, and is connected as a companion to the main evaluation board via an edge connector as shown in Figure 5.
Figure 5: Using the sensor expansion board with an ARTIK 5 or ARTIK 7 evaluation kit.
Sensor development boards now entering the market are compact, multi-sensor modules that can be used directly or with minimal tailoring in end products destined for use at the edge of the IoT. As user demands intensify and Cloud-based analytical applications continue to become more sophisticated and affordable, increasingly imaginative services should emerge, leveraging a growing variety of sensor data.