ultrasonic - Driver for ultrasonic range meters HC-SR04, HY-SRF05

group ultrasonic

ESP-IDF driver for ultrasonic range meters, e.g.

HC-SR04, HY-SRF05 and so on

Ported from esp-open-rtos

Copyright (c) 2016 Ruslan V. Uss unclerus@gmail.com

BSD Licensed as described in the file LICENSE

Defines

ESP_ERR_ULTRASONIC_PING
ESP_ERR_ULTRASONIC_PING_TIMEOUT
ESP_ERR_ULTRASONIC_ECHO_TIMEOUT

Functions

esp_err_t ultrasonic_init(const ultrasonic_sensor_t *dev)

Init ranging module.

Parameters:

dev – Pointer to the device descriptor

Returns:

ESP_OK on success

esp_err_t ultrasonic_measure_raw(const ultrasonic_sensor_t *dev, uint32_t max_time_us, uint32_t *time_us)

Measure time between ping and echo.

Parameters:
  • dev – Pointer to the device descriptor

  • max_time_us – Maximal time to wait for echo

  • time_us[out] Time, us

Returns:

ESP_OK on success, otherwise:

esp_err_t ultrasonic_measure(const ultrasonic_sensor_t *dev, float max_distance, float *distance)

Measure distance in meters.

Parameters:
  • dev – Pointer to the device descriptor

  • max_distance – Maximal distance to measure, meters

  • distance[out] Distance in meters

Returns:

ESP_OK on success, otherwise:

esp_err_t ultrasonic_measure_cm(const ultrasonic_sensor_t *dev, uint32_t max_distance, uint32_t *distance)

Measure distance in centimeters.

Parameters:
  • dev – Pointer to the device descriptor

  • max_distance – Maximal distance to measure, centimeters

  • distance[out] Distance in centimeters

Returns:

ESP_OK on success, otherwise:

esp_err_t ultrasonic_measure_temp_compensated(const ultrasonic_sensor_t *dev, float max_distance, float *distance, float temperature_c)

Measure distance in meters with temperature compensation.

This function measures the distance by taking into account the temperature of the air, which affects the speed of sound. This method improves the accuracy of measurements in various environmental conditions.

Parameters:
  • dev – Pointer to the device descriptor

  • max_distance – Maximal distance to measure, meters

  • distance[out] Distance in meters

  • temperature_c – Current air temperature in degrees Celsius

Returns:

ESP_OK on success, otherwise:

esp_err_t ultrasonic_measure_cm_temp_compensated(const ultrasonic_sensor_t *dev, uint32_t max_distance, uint32_t *distance, float temperature_c)

Measure distance in centimeters with temperature compensation.

Similar to ultrasonic_measure_temp_compensated but provides the distance in centimeters. It factors in the temperature of the air for more accurate measurements across a range of environmental conditions.

Parameters:
  • dev – Pointer to the device descriptor

  • max_distance – Maximal distance to measure, centimeters

  • distance[out] Distance in centimeters

  • temperature_c – Current air temperature in degrees Celsius

Returns:

ESP_OK on success, otherwise:

struct ultrasonic_sensor_t
#include <ultrasonic.h>

Device descriptor.

Public Members

gpio_num_t trigger_pin

GPIO output pin for trigger.

gpio_num_t echo_pin

GPIO input pin for echo.