esphome-docs/custom/uart.rst

60 lines
1.3 KiB
ReStructuredText
Raw Normal View History

2018-12-05 10:19:48 +01:00
Custom UART Device
==================
Lots of devices communicate using the UART protocol. If you want to integrate
2019-02-16 23:25:23 +01:00
a device into ESPHome that uses this protocol you can pretty much use almost
all Arduino-based code because ESPHome has a nice abstraction over the UART bus.
2018-12-05 10:19:48 +01:00
See the other custom component guides for how to register components and make
them publish values.
.. code-block:: cpp
2019-02-16 23:25:23 +01:00
#include "esphome.h"
using namespace esphome;
2018-12-05 10:19:48 +01:00
class MyCustomComponent : public Component, public UARTDevice {
public:
MyCustomComponent(UARTComponent *parent) : UARTDevice(parent) {}
void setup() override {
// nothing to do here
}
void loop() override {
// Use Arduino API to read data, for example
String line = readString();
int i = parseInt();
while (available()) {
char c = read();
}
// etc
}
};
And in YAML:
.. code-block:: yaml
# Example configuration entry
2019-02-16 23:25:23 +01:00
esphome:
2018-12-05 10:19:48 +01:00
includes:
- my_custom_component.h
uart:
id: uart_bus
tx_pin: D0
rx_pin: D1
baud_rate: 9600
custom_component:
- lambda: |-
auto my_custom = new MyCustomComponent(id(uart_bus));
return {my_custom};
See Also
--------
- :ghedit:`Edit`
.. disqus::