CCS811, GPS, TTP229-BSF

This commit is contained in:
Otto Winter 2019-05-13 13:10:12 +02:00
parent cda5ac7d7b
commit ef49ff813d
No known key found for this signature in database
GPG Key ID: DB66C0BE6013F97E
11 changed files with 223 additions and 5 deletions

View File

@ -6,8 +6,13 @@ TTP229 Capacitive Touch Sensor
:image: ttp229.jpg
:keywords: TTP229
The ``ttp229_lsf`` sensor platform allows you to use your TTP229 `datasheet <https://www.tontek.com.tw/uploads/product/106/TTP229-LSF_V1.0_EN.pdf>`__
Capacitive Touch Sensor with ESPHome. The :ref:`I²C <i2c>` is required to be set up in your configuration for this sensor to work.
The ``ttp229`` component allows you to use your TTP229 `datasheet <https://www.tontek.com.tw/uploads/product/106/TTP229-LSF_V1.0_EN.pdf>`__
Capacitive Touch Sensor with ESPHome.
There are two types of this sensor:
- **ttp229_lsf**: The :ref:`I²C <i2c>` version of the sensor, uses SDA+SCL pins.
- **ttp229_bsf**: The pin-based version of the sensor, uses SDO+SCL pins.
.. figure:: images/ttp229-full.jpg
:align: center
@ -17,6 +22,9 @@ Capacitive Touch Sensor with ESPHome. The :ref:`I²C <i2c>` is required to be se
.. _RobotDyn: https://www.tinytronics.nl/shop/nl/sensoren/touch/robotdyn-touch-module-ttp229-lsf-16-kanaals
``ttp229_lsf`` Type
-------------------
.. code-block:: yaml
# Example configuration entry
@ -28,13 +36,48 @@ Capacitive Touch Sensor with ESPHome. The :ref:`I²C <i2c>` is required to be se
channel: 0
Configuration variables:
------------------------
************************
The configuration is made up of two parts: The central component, and individual Binary sensors per channel.
Base Configuration:
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor.
- **id** (*Optional*, :ref:`config-id`): Manually set the ID of this sensor.
Binary Sensor Configuration:
- **name** (**Required**, string): The name of the binary sensor.
- **channel** (**Required**, integer): The channel number at the ttp229 the touchkey is connected to.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
``ttp229_bsf`` Type
-------------------
.. code-block:: yaml
# Example configuration entry
ttp229_bsf:
sdo_pin: D0
scl_pin: D1
binary_sensor:
- platform: ttp229_bsf
name: TTP229 Channel 0
channel: 0
Configuration variables:
************************
The configuration is made up of two parts: The central component, and individual Binary sensors per channel.
Base Configuration:
- **sdo_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin the
SDO pin is connected to.
- **scl_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin the
SCL pin is connected to.
- **id** (*Optional*, :ref:`config-id`): Manually set the ID of this component.
Binary Sensor Configuration:
@ -48,4 +91,5 @@ See Also
- :ref:`sensor-filters`
- :apiref:`ttp229_lsf/ttp229_lsf.h`
- :apiref:`ttp229_bsf/ttp229_bsf.h`
- :ghedit:`Edit`

63
components/gps.rst Normal file
View File

@ -0,0 +1,63 @@
GPS Component
=============
.. seo::
:description: Instructions for setting up GPS integration in ESPHome.
:image: crosshair-gps.png
.. warning::
This component has not been fully tested yet, if you have this component
and can confirm it works, please create a quick new issue here
https://github.com/esphome/issues/
Thanks!
The ``gps`` component allows you to connect GPS modules to your ESPHome project.
Any GPS module that uses the standardized NMEA communication protocol will work.
.. figure:: images/gps-full.jpg
:align: center
:width: 50.0%
GPS Module. Image by `Adafruit`_
.. _Adafruit: https://www.adafruit.com/product/746
For this integration to work you need to have set up a :ref:`UART bus <uart>`
in your configuration - only the RX pin should be necessary.
.. code-block:: yaml
# Example configuration entry
uart:
rx_pin: D0
baud_rate: 9600
# Declare GPS module
gps:
# GPS as time source
time:
- platform: gps
Configuration variables:
------------------------
The component is split up in platforms.
First you need to define a global GPS module hub (as seen above).
Currently, the only data that can be extracted from GPS is the current time.
GPS can be used as a time platform to get the current date and time via the
very accurate GPS clocks that are also independent of any network connection.
See :doc:`time` for config options for the GPS time source.
See Also
--------
- :ref:`sensor-filters`
- `TinyGPS++ library <http://arduiniana.org/libraries/tinygpsplus/>`__
- :apiref:`gps/gps.h`
- :ghedit:`Edit`

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 KiB

View File

@ -0,0 +1,108 @@
CCS811 CO_2 and Volatile Organic Compound Sensor
================================================
.. seo::
:description: Instructions for setting up CCS811 sensors.
:image: ccs811.jpg
.. warning::
This component has not been fully tested yet, if you have this component
and can confirm it works, please create a quick new issue here
https://github.com/esphome/issues/
Thanks!
The ``ccs811`` sensor platform allows you to use CCS811 CO_2 and volatile organic compound sensors
(`Adafruit`_) with ESPHome.
.. figure:: images/ccs811-full.jpg
:align: center
:width: 50.0%
CCS811 Sensor. Image by `Adafruit`_
.. _Adafruit: https://www.adafruit.com/product/3566
The communication with this sensor is done via :ref:`I²C Bus <i2c>`, so you need to have
an ``i2c:`` section in your config for this integration to work.
.. code-block:: yaml
# Example configuration entry
i2c:
sda: D0
scl: D1
sensor:
- platform: ccs811
eco2:
name: "CCS811 eCO2 Value"
tvoc:
name: "CCS811 Total Volatile Organic Compound"
address: 0x5A
update_interval: 60s
Configuration variables:
------------------------
- **eco2** (**Required**): The eCO_2 data from the sensor in parts per million (ppm).
- **name** (**Required**, string): The name for the CO_2 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **tvoc** (**Required**): The information for the total volatile organic compound sensor in
parts per billion (ppm).
- **name** (**Required**, string): The name for the tvoc sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
- **address** (*Optional*, int): The :ref:`I²C <i2c>` address of the sensor.
- **baseline** (*Optional*, int): The baseline value for the unit, for calibration
purposes. See :ref:`ccs811-calibrating` for more info.
.. _ccs811-calibrating:
Calibrating Baseline
--------------------
The CCS811 sensor will re-calibrate itself each time it is powered on. Unfortunately
that also means that if the sensor reboots at a time when the air is less clean than normal,
the values will have a constant offset and cannot be compared to the values before the last
boot.
To have consistent values, you need to specify a static **baseline** value (the calibration factor).
To do this, first let the sensor boot up with no baseline set and let the sensor calibrate
itself. After around 20-30 minutes you can then view the remote logs on the ESP. The next
time the sensor is read out, you will see a log message with something like ``baseline=0xA483``.
Now set the baseline property in your configuration file like so with the value you got
via the logs:
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: ccs811
# ...
baseline: 0xA483
The next time you upload the code, the CCS811 will be informed of this static baseline
and you will get consistent values.
Please note that after some time (a couple of months), the baseline will need to be
re-calibrated because the internal sensor has a slight value drift over time.
See Also
--------
- :ref:`sensor-filters`
- `CCS811 Application Note <https://cdn.sparkfun.com/datasheets/BreakoutBoards/CCS811_Programming_Guide.pdf>`__
- :apiref:`ccs811/ccs811.h`
- :ghedit:`Edit`

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 KiB

BIN
images/ccs811.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M12 8a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4m-8.95 5H1v-2h2.05C3.5 6.83 6.83 3.5 11 3.05V1h2v2.05c4.17.45 7.5 3.78 7.95 7.95H23v2h-2.05c-.45 4.17-3.78 7.5-7.95 7.95V23h-2v-2.05C6.83 20.5 3.5 17.17 3.05 13M12 5a7 7 0 0 0-7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0-7-7z"/></svg>

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -95,6 +95,7 @@ Sensor Components
BME680, components/sensor/bme680, bme680.jpg
BMP085, components/sensor/bmp085, bmp180.jpg
BMP280, components/sensor/bmp280, bmp280.jpg
CCS811, components/sensor/ccs811, ccs811.jpg
CSE7766, components/sensor/cse7766, cse7766.svg
Dallas, components/sensor/dallas, dallas.jpg
DHT, components/sensor/dht, dht.jpg
@ -154,7 +155,7 @@ Binary Sensor Components
Remote Receiver, components/binary_sensor/remote_receiver, remote.svg
PN532, components/binary_sensor/pn532, pn532.jpg
RDM6300, components/binary_sensor/rdm6300, rdm6300.jpg
TTP229-LSF Capacitive Touch Sensor, components/binary_sensor/ttp229, ttp229.jpg
TTP229, components/binary_sensor/ttp229, ttp229.jpg
Custom Binary Sensor, components/binary_sensor/custom, language-cpp.svg
Output Components
@ -276,6 +277,7 @@ Misc Components
Sun, components/sun, weather-sunny.svg
ESP32 Ethernet, components/ethernet, ethernet.svg
ESP32 Camera, components/esp32_camera, camera.svg
GPS, components/gps, crosshairs-gps.svg
Additional Custom Components
----------------------------