Sensors

Overview

This sample provides an example of how to read sensor data from the ArgonKey board. The result is displayed on the console. It makes use of both the trigger and poll methods.

Requirements

This sample just requires the ArgonKey board. The board can be powered in either one of the following two ways:

  • mezzanine mode, plugging the ArgonKey to HiKey board through its 96Board low-speed connector

  • standalone mode, supplying 5V directly on P1 connector

The user may select or unselect the sensors from samples/boards/96b_argonkey/sensors/prj.conf.

Please note that all sensor related code is conditionally compiled using the #ifdef directive, so this sample is supposed to always build correctly. Example:

#ifdef CONFIG_HTS221
  struct device *hum_dev = DEVICE_DT_GET_ONE(st_hts221);

  if (!device_is_ready(hum_dev)) {
    printk("%s: device not ready.\n", hum_dev->name);
    return;
  }
#endif

References

Building and Running

west build -b 96b_argonkey samples/boards/96boards/argonkey/sensors
west build -t run

Sample Output

A USB to TTL 1V8 serial cable may be attached to the low speed connector on the back of the board on P3.5 (TX) and P3.7 (RX). User may use a simple terminal emulator, such as minicom, to capture the output.

proxy: 1  ;
distance: 0 m -- 09 cm;
temp: 30.35 C; press: 97.466259
humidity: 43.500000
accel (0.004000 -0.540000 9.757000) m/s2
gyro (0.065000 -0.029000 -0.001000) dps
magn (0.049500 0.208500 -0.544500) gauss
- (6) (trig_cnt: 1878)

<repeats endlessly every 2s>

In this example the output is generated polling the sensor every 2 seconds.

Sensor data is printed in the following order (no data is printed for sensors that are not enabled):

  1. VL53L0x proximity

  2. LPS22HB baro/temp

  3. HTS221 humidity

  4. LSM6DSL accel

  5. LSM6DSL gyro

  6. LIS2MDL magnetometer (attached to LSM6DSL)

The proximity sensor displays two lines:

  • a flag (proxy) that goes on when the distance is below 10cm

  • the absolute distance from the obstacle

The last line displays a counter of how many trigger interrupts has been received. It is possible to display the sensor data read for each trigger by enabling the ARGONKEY_TEST_LOG macro.