ESP8266 Tasmota RS232 WiFi Bridge Modul config
RS485 Module,  Tasmota,  UART seriell

Tasmota SerialBridge serielle GPIO Brücke

EI-OT ESP8266 RS232 RX TX serial Bridge Configuration
serielle RX TX Brücke

Im Vorfeld sollte zunächst zwischen der typischen seriellen Schnittstelle (UART) und der seriellen GPIO Brücke / Serial Bridge unter Tasmota differenziert werden.

Basierend auf der ESP8266 Hardware wird GPIO1 stets als seriell TX und GPIO3 seriell RX innerhalb einer jeden Firmware definiert. Dies ist insbesondere notwendig um sowohl eine Frimware zu flashen, als auch eine direkte serielle Kommunikation herzustellen.

Im Bezug der Tasmota Firmware für den ESP8266 wird mittels GPIO Konfiguration neben der vorgenannten Standard seriellen Schnittstelle auch eine serielle Brücke auf weitere GPIO’s ermöglicht. Mit einfachen Worten wird hier innerhalb der GPIO Konfiguration durch die Optionen

  • SerBr TX
  • SerBr RX

eine weitere UART Schnittstelle unter Tasmota bereitgestellt.

Als Beispiel sei hier das EI-OT RS232 Modul erwähnt, der typische RS232 DB9 Anschluss wird über die Standard UART Schnittstelle innerhalb Tasmota bereitgestellt. Jedoch ist eine zweite RS232 Schnittstelle über GPIO4 und GPIO5 verfügbar.

Wird innerhalb der Tasmota Firmware

  • GPIO4 als SerBr TX
  • GPIO5 als SerBr RX

konfiguriert und die Pins TX2 und RX2 mit einem RS232 Signal belegt verfügt das Modul über 2 serielle Schnittstellen. Um nun beide seriellen Schnittstellen zu differenzieren, beispielsweise um unterschiedliche Schnittstellen –  Parameter unter Tasmota zu setzen gilt es folgendes Protokoll zu beachten.

serielles Protokoll

Die serielle Hardware Bridge verwendet die Software Serial Bibliothek und unterstützt folgende Parameter:

SBaudrate, fragt die aktuell konfigurierte SBaudrate ab, bzw. durch den Befehl SBaudrate gefolgt von der Baudrate wird die Baudrate entsprechend konfiguriert,
Beispiel

SBaudrate 115200

setzt die Baudrate auf 115200

SSerialBuffer, fragt den aktuellen seriellen Buffer / Speicher ab, bzw. setzt den aktuellen Speicher durch Eingabe des jeweiligen Parameters (von 256 bis 520),
Beispiel

SSerialBuffer 520

setzte den Speicher auf 520 Byte.

SSerialConfig, fragt das aktuelle serielle Protokoll (Datenbits, Parität, Stopbits) ab, bzw. konfiguriert das serielle Protokoll. beispielsweise

SSerialConfig 8N1

setzt das serielle Protokoll auf
Datenbits 8
Parität None (Keine)
Stopbits 1

SerialDelimiter, fragt den ASCII Dezimal Code des aktuell festgelegte Steuerzeichens ab, bzw. konfiguriert das Steuerzeichen durch anhängen des jeweiligen Dezimal ASCII Code, beispielsweise

SerialDelimiter 13

setzt CR (Carriage Return) als Steuerzeichen. Das jeweilige Steuerzeichen wird dabei gemäß ASCII Dezimal Zeichensatz interpretiert. Neben der expliziten Zuweisung des Steuerzeichens (von 0-127) kann zusätzlich
128, erlaubt lediglich ASCII Zeichen vom Dezimalwert 32 bis 127
254, deaktiviert sowohl das Steuerzeichen, als auch eine voran gestellten Hex String
255, deaktiviert das Steuerzeichen (es wird 1:1 übertragen). Bitte beachten das Steuerzeichen ist nicht differenziert einsetzbar, das heisst trifft auf Standard UART Schnittstelle sowie GPIO Brücke (Hardware Bridge) zu.

serial RX TX Bridge

In advance, a distinction should be made between the typical serial interface (UART) and the serial GPIO bridge / serial bridge in Tasmota.

Based on the ESP8266 hardware, GPIO1 is defined as serial TX and GPIO3 is defined as serial RX within each firmware. This is particularly necessary to both flash firmware and establish direct serial communication.

With regard to the Tasmota firmware for the ESP8266, a serial bridge to other GPIOs is also possible thru Tasmotas GPIO configuration. In simple words, this is done within the Tasmota Module / GPIO configuration through the options

  • SerBr TX
  • SerBr RX

The EI-OT RS232 module is mentioned here as an example:

The typical RS232 DB9 connection is provided via the standard UART interface within Tasmota. However, a second RS232 interface is available via GPIO4 and GPIO5.

Used within the Tasmota firmware

  • GPIO4 as SerBr TX
  • GPIO5 as SerBr RX

configured and the pins TX2 and RX2 assigned an RS232 signal, the module has 2 serial interfaces.

In order to differentiate between the two serial interfaces, for example to set different interface parameters under Tasmota, the following protocol must be observed.

serial Protocol

The serial TX RX Hardware Bridge is based on Software Serial Library and supports following Parameter

SBaudrate, queries actual SBaudrate,  SBaudrate in combination with a sets the SBaudrate, for example

SBaudrate 115200

sets SBaudrate to 11520

SSerialBuffer, queries actual Buffer Size, SerialBuffer in combination with a Buffer Size (from 256 up to 520) sets the Buffer Size, for example

SSerialBuffer 520

configures Buffer Size to 520 Byte.

SSerialConfig, queries actual serial Protocol (Data bits, Parity, Stop bits) in combination with valid 3 parameters for example

SSerialConfig 8N1

configures serial protocol to
Data bits 8
Parity None
Stop bits 1

SerialDelimiter, queries actual Serial Delimiter ASCII Decimal Code in combination with a valid ASCII Decimal Code is set to new Serial Delemitter, for example

SerialDelimiter 13

enables CR (Carriage Return) as Serial Delimiter. Beside a ASCII Decimal Value (0-127) following are valid
128, only allow ASCII characters 32 to 127 in response text
254, disable serial delimiter and post HEX string
255, disable serial delimiter

EI-OT ESP8266 RS232 RX TX serial Bridge Communication
serielle Kommunikation

Die serielle Kommunikation erfolgt über die Tasmota Konsole. Serielle Datenpakete werden dabei mittels SSerialSend übertragen und mittels SSerialReceived in der Console ausgegeben. Zur richtigen Interpretation der seriellen Daten werden 6 Optionen zur Übertragung bzw. Interpretation der seriellen Daten bereitgestellt. Mit einfachen Worten, die empfangenen werden stets im Datenformat der zuvor gesendeten Datenart interpretiert / in der Konsole ausgegeben.

  1. SSerialSend1, sendet die angehängten Daten als String und hängt ein \n new line Element an
  2. SSerialSend2, sendet die angehängten Daten 1 zu 1
  3. SSerialSend3, sendet die angehängten Daten als String und ersetzt das Steuerzeichen
  4. SSerialSend4, sendet die angehängten Daten als binäres Datenpaket, etwaige zu empfangende Daten werden als binary String interpretiert
  5. SSerialSend5, sendet die angehängten Daten als Hex Datenpaket, etwaige zu empfangende Daten werden als Hex String interpretiert
  6. SSerialSend6, sendet Dezimalzahlen wobei die Dezimalstelle durch ein Komma unterteilt wird

Als einfaches Beispiel, wird mittels Tasmota Konsole

SSerialSend1 now I send a String

in die Kommandozeile eingeben und durch drücken der Taste Enter gesendet, wird die Antwort als String interpretiert.

serial Communication

For direct communication use Command Line of Tasmota Console. The serial Data are send thru serial command SSerialSend and incoming datas are shown as SSerialReceived. For correct serial data interpretation are 6 options available. In simple Words, received Data are always interpreted in same format as previous serial data was send.

  1. SSerialSend1, send appending \n (newline) ()
  2. SSerialSend2, send
  3. SSerialSend3, replace escape characters and send
  4. SSerialSend4, ssend as binary data. Data in serial response messages is encoded as binary strings
  5. SSerialSend5, send as hex. Data in serial response messages is encoded as hex strings
  6. SSerialSend6, send as comma-delimited string of decimal numbers

A simple Example, if

SSerialSend1 now I send a String

was send thru Tasmota Konsole Command Line, answer will be interpreted as String.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert