Create sensor.tof (#8672)

* Create sensor.tof

* Review documentation

* Fix i2c address typo

* update ha release from launch

* Add i2c_bus to configuration

* Update source/_components/sensor.tof.markdown

Co-Authored-By: josemotta <josemotta@bampli.com>

* Update source/_components/sensor.tof.markdown

Co-Authored-By: josemotta <josemotta@bampli.com>

* Update sensor.tof.markdown

* Add VL53L1X docs and schematic

* Update sensor.tof.markdown

* Update sensor.tof.markdown

* Update sensor.tof.markdown

* Update sensor.tof.markdown

* Update sensor.tof.markdown

* ✏️ Tweaks

* Moves page from platform page to component page

Signed-off-by: Franck Nijhof <frenck@addons.community>
This commit is contained in:
Jose Motta Lopes 2019-03-11 18:35:22 -03:00 committed by Franck Nijhof
parent 1b071fee03
commit 9a505f2049

View File

@ -0,0 +1,119 @@
---
layout: page
title: "Time of Flight sensor using VL53L1X"
description: "Instructions on how to integrate a VL53L1X ToF sensor into Home Assistant."
date: 2019-02-21 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: raspberry-pi.png
ha_category:
- DIY
- Sensor
ha_release: "0.90"
ha_iot_class: Local Polling
---
The Time of Flight sensor uses an invisible laser to measure distance with millimeter resolution.
Tested devices:
- [Raspberry Pi](https://www.raspberrypi.org/)
- [VL53L1X](https://www.st.com/en/imaging-and-photonics-solutions/vl53l1x.html)
- [Schematic](https://cdn.sparkfun.com/assets/3/5/c/e/2/Qwiic_Distance_Sensor_-_VL53L1X.pdf)
## {% linkable_title Configuration %}
To use the VL53L1X sensor in your installation, add to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
sensor:
- platform: tof
```
{% configuration %}
name:
description: Name of the sensor.
required: false
default: VL53L1X
type: string
i2c_bus:
description: I2c bus used.
required: false
default: 1, for Raspberry Pi 2 and 3.
type: integer
i2c_address:
description: I2c address of the sensor.
required: false
default: "0x29"
type: string
xshut:
description: GPIO port used to reset device.
required: false
default: 16
type: integer
{% endconfiguration %}
## {% linkable_title Example %}
The distance is measured in millimeters, according to the VL53L1X specifications.
```yaml
# Example of customized configuration.yaml entry
sensor:
- platform: tof
name: ToF sensor
i2c_address: 0x29
xshut: 16
```
Several devices may be attached and a GPIO port from RPI is used for reset. XSHUT signal is generated pulsing LOW at initialization and after that, it is kept HIGH all time. This version uses VL53L1X long-range mode that may reach up to 4 meters.
## {% linkable_title Directions for installing i2c on Raspberry Pi %}
Enable the I2c interface with the Raspberry Pi configuration utility:
```bash
# pi user environment: Enable i2c interface
$ sudo raspi-config
```
Select `Interfacing options->I2C` choose `<Yes>` and hit `Enter`, then go to `Finish` and you'll be prompted to reboot.
Install dependencies for use the `smbus-cffi` module and enable your _homeassistant_ user to join the _i2c_ group:
```bash
# pi user environment: Install i2c dependencies and utilities
$ sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev
# pi user environment: Add homeassistant user to the i2c group
$ sudo addgroup homeassistant i2c
# pi user environment: Reboot Raspberry Pi to apply changes
$ sudo reboot
```
### {% linkable_title Check the i2c address of the sensor %}
After installing `i2c-tools`, a new utility is available to scan the addresses of the connected sensors:
```bash
$ /usr/sbin/i2cdetect -y 1
```
It will output a table like this:
```text
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- 23 -- -- -- -- -- 29 -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
```
So you can see the sensor address what you are looking for is **0x29** (there are more i2c sensors in this Raspberry Pi).