2018-05-13 11:37:02 +02:00
|
|
|
|
Ultrasonic Distance Sensor
|
|
|
|
|
==========================
|
|
|
|
|
|
2018-11-14 22:12:27 +01:00
|
|
|
|
.. seo::
|
2019-02-16 23:25:23 +01:00
|
|
|
|
:description: Instructions for setting up ultrasonic distance measurement sensors in ESPHome.
|
2018-11-14 22:12:27 +01:00
|
|
|
|
:image: ultrasonic.jpg
|
|
|
|
|
:keywords: ultrasonic, hc-sr04
|
|
|
|
|
|
2018-05-13 11:37:02 +02:00
|
|
|
|
The ultrasonic distance sensor allows you to use simple ultrasonic
|
|
|
|
|
sensors like the HC-SR04
|
|
|
|
|
(`datasheet <https://www.electroschematics.com/wp-content/uploads/2013/07/HC-SR04-datasheet-version-2.pdf>`__,
|
2019-02-16 23:25:23 +01:00
|
|
|
|
`sparkfun <https://www.sparkfun.com/products/13959>`__) with ESPHome
|
2018-05-13 11:37:02 +02:00
|
|
|
|
to measure distances. These sensors usually can’t measure anything more
|
|
|
|
|
than about two meters and may sometimes make some annoying clicking
|
|
|
|
|
sounds.
|
|
|
|
|
|
|
|
|
|
This sensor platform expects a sensor that can be sent a **trigger
|
|
|
|
|
pulse** on a specific pin and will send out a **echo pulse** once a
|
|
|
|
|
measurement has been taken. Because sometimes (for example if no object
|
|
|
|
|
is detected) the echo pulse is never returned, this sensor also has a
|
|
|
|
|
timeout option which specifies how long to wait for values. During this
|
2018-10-20 15:10:26 +02:00
|
|
|
|
timeout period the whole core will be blocked and therefore shouldn't be
|
2018-05-13 11:37:02 +02:00
|
|
|
|
set too high.
|
|
|
|
|
|
2018-06-07 14:54:11 +02:00
|
|
|
|
.. figure:: images/ultrasonic-full.jpg
|
2018-06-01 18:10:00 +02:00
|
|
|
|
:align: center
|
|
|
|
|
:width: 50.0%
|
2018-05-13 11:37:02 +02:00
|
|
|
|
|
2018-06-01 18:10:00 +02:00
|
|
|
|
HC-SR04 Ultrasonic Distance Sensor.
|
2018-05-13 11:37:02 +02:00
|
|
|
|
|
2018-06-01 18:10:00 +02:00
|
|
|
|
.. figure:: images/ultrasonic-ui.png
|
|
|
|
|
:align: center
|
|
|
|
|
:width: 80.0%
|
2018-05-13 11:37:02 +02:00
|
|
|
|
|
2018-11-19 18:32:16 +01:00
|
|
|
|
.. code-block:: yaml
|
2018-05-13 11:37:02 +02:00
|
|
|
|
|
|
|
|
|
# Example configuration entry
|
|
|
|
|
sensor:
|
|
|
|
|
- platform: ultrasonic
|
|
|
|
|
trigger_pin: D1
|
|
|
|
|
echo_pin: D2
|
|
|
|
|
name: "Ultrasonic Sensor"
|
|
|
|
|
|
|
|
|
|
Configuration variables:
|
2018-08-24 22:44:01 +02:00
|
|
|
|
------------------------
|
2018-05-13 11:37:02 +02:00
|
|
|
|
|
2018-06-01 18:10:00 +02:00
|
|
|
|
- **trigger_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The output pin to
|
|
|
|
|
periodically send the trigger pulse to.
|
|
|
|
|
- **echo_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The input pin on which to
|
|
|
|
|
wait for the echo.
|
|
|
|
|
- **name** (**Required**, string): The name of the sensor.
|
|
|
|
|
- **timeout_meter** (*Optional*, float): The number of meters for the
|
|
|
|
|
timeout. Use either this or ``timeout_time``. Defaults to 2 meters.
|
|
|
|
|
- **timeout_time** (*Optional*, int): The number of microseconds for
|
|
|
|
|
the timeout. Use either this or ``timeout_meter``. Defaults to
|
|
|
|
|
11662µs.
|
|
|
|
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
2019-01-06 18:56:14 +01:00
|
|
|
|
sensor. Defaults to ``60s``.
|
2018-06-01 18:10:00 +02:00
|
|
|
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
|
|
|
|
- All other options from :ref:`Sensor <config-sensor>` and :ref:`MQTT Component <config-mqtt-component>`.
|
|
|
|
|
|
2018-06-08 20:41:42 +02:00
|
|
|
|
Ultrasonic Timeouts
|
2018-08-24 22:44:01 +02:00
|
|
|
|
-------------------
|
2018-06-08 20:41:42 +02:00
|
|
|
|
|
|
|
|
|
The ultrasonic sensor works by sending a small ultrasonic pulse out and then waiting until
|
|
|
|
|
the pulse arrives back. However, there are cases where no such signal arrives back. This is most commonly caused
|
|
|
|
|
by either having the sensor pointed at a soft surface that muffles the incoming signal. The other case where this
|
|
|
|
|
can happen is when the the object is too far away and the timeout set by the ``timeout_meter`` or ``timeout_time``
|
|
|
|
|
option kicks in.
|
|
|
|
|
|
|
|
|
|
To remove ``NAN`` values from the sensor stream, use the ``filter_nan`` :ref:`sensor filter <sensor-filters>`:
|
|
|
|
|
|
2018-11-19 18:32:16 +01:00
|
|
|
|
.. code-block:: yaml
|
2018-06-08 20:41:42 +02:00
|
|
|
|
|
|
|
|
|
sensor:
|
|
|
|
|
- platform: ultrasonic
|
|
|
|
|
trigger_pin: D1
|
|
|
|
|
echo_pin: D2
|
|
|
|
|
name: "Ultrasonic Sensor"
|
|
|
|
|
filters:
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 18:10:00 +02:00
|
|
|
|
See Also
|
2018-08-24 22:44:01 +02:00
|
|
|
|
--------
|
2018-06-01 18:10:00 +02:00
|
|
|
|
|
|
|
|
|
- :ref:`sensor-filters`
|
|
|
|
|
- :doc:`template`
|
2019-02-07 13:54:45 +01:00
|
|
|
|
- :apiref:`sensor/ultrasonic_sensor.h`
|
|
|
|
|
- :ghedit:`Edit`
|
2018-10-12 16:33:22 +02:00
|
|
|
|
|
|
|
|
|
.. disqus::
|