Dies ist die Beschreibung der MQTT API Bindings für das LCD 20x4 Bricklet. Allgemeine Informationen über die Funktionen und technischen Spezifikationen des LCD 20x4 Bricklet sind in dessen Hardware Beschreibung zusammengefasst.
Eine Installationanleitung für die MQTT API Bindings ist Teil deren allgemeine Beschreibung.
Der folgende Beispielcode ist Public Domain (CC0 1.0).
Download (example-hello-world.txt)
1 2 3 4 5 6 7 8 | # Change XYZ to the UID of your LCD 20x4 Bricklet
setup:
# Turn backlight on
publish '' to tinkerforge/request/lcd_20x4_bricklet/XYZ/backlight_on
# Write "Hello World"
publish '{"line": 0, "position": 0, "text": "Hello World"}' to tinkerforge/request/lcd_20x4_bricklet/XYZ/write_line
|
Download (example-button-callback.txt)
1 2 3 4 5 6 7 8 9 10 | # Change XYZ to the UID of your LCD 20x4 Bricklet
setup:
# Handle incoming button pressed callbacks
subscribe to tinkerforge/callback/lcd_20x4_bricklet/XYZ/button_pressed
publish '{"register": true}' to tinkerforge/register/lcd_20x4_bricklet/XYZ/button_pressed # Register button_pressed callback
# Handle incoming button released callbacks
subscribe to tinkerforge/callback/lcd_20x4_bricklet/XYZ/button_released
publish '{"register": true}' to tinkerforge/register/lcd_20x4_bricklet/XYZ/button_released # Register button_released callback
|
Download (example-unicode.txt)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # Change XYZ to the UID of your LCD 20x4 Bricklet
setup:
# Turn backlight on
publish '' to tinkerforge/request/lcd_20x4_bricklet/XYZ/backlight_on
function UTF8ToKS006U # This function should convert strings from UTF-8 to the LCD charset. See examples for other languages.
# Write some strings using the FIXME function to map to the LCD charset
publish '{"line": 0, "position": 0, "text": UTF8ToKS0066U("Stromstärke: 17µA")}' to tinkerforge/request/lcd_20x4_bricklet/XYZ/write_line
publish '{"line": 1, "position": 0, "text": UTF8ToKS0066U("Temperatur: 23°C"}' to tinkerforge/request/lcd_20x4_bricklet/XYZ/write_line
# Write a string directly including characters from the LCD charset
publish '{"line": 2, "position": 0, "text": "Drehzahl: 750min\u00e9"}' to tinkerforge/request/lcd_20x4_bricklet/XYZ/write_line
|
Alle veröffentlichten Payloads an die und von den MQTT-Bindings sind im JSON Format.
Falls ein Fehler auftritt, veröffentlichen die Bindings ein JSON-Objekt, das die Fehlermeldung als _ERROR
-Member enthält.
Das Objekt wird auf dem zugehörigen Antwort-Topic veröffentlicht: .../response/...
für .../request/...
und .../callback/...
für .../register/...
.
request/
lcd_20x4_bricklet/
<UID>/
write_line
¶Anfrage: |
|
---|---|
Antwort: |
|
Schreibt einen Text in die angegebene Zeile mit einer vorgegebenen Position. Der Text kann maximal 20 Zeichen lang sein.
Beispiel: (0, 7, "Hallo") schreibt Hallo in die Mitte der ersten Zeile des Display.
Das Display nutzt einen speziellen Zeichensatz der alle ASCII Zeichen beinhaltet außer Backslash und Tilde. Der Zeichensatz des LCD beinhaltet weiterhin einige Nicht-ASCII Zeichen, siehe die Zeichensatzspezifikation für Details. Das gezeigte Unicode Beispiel verdeutlicht die Verwendung von Nicht-ASCII Zeichen und wie die Wandlung von Unicode in den LCD Zeichensatz möglich ist.
request/
lcd_20x4_bricklet/
<UID>/
clear_display
¶Anfrage: |
|
---|---|
Antwort: |
|
Löscht alle Zeichen auf dem Display.
request/
lcd_20x4_bricklet/
<UID>/
backlight_on
¶Anfrage: |
|
---|---|
Antwort: |
|
Aktiviert die Hintergrundbeleuchtung.
request/
lcd_20x4_bricklet/
<UID>/
backlight_off
¶Anfrage: |
|
---|---|
Antwort: |
|
Deaktiviert die Hintergrundbeleuchtung.
request/
lcd_20x4_bricklet/
<UID>/
is_backlight_on
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt true zurück wenn die Hintergrundbeleuchtung aktiv ist, sonst false.
request/
lcd_20x4_bricklet/
<UID>/
set_config
¶Anfrage: |
|
---|---|
Antwort: |
|
Konfiguriert ob der Cursor (angezeigt als "_") sichtbar ist und ob er
blinkt (angezeigt als blinkender Block). Die Cursor Position ist ein
Zeichen hinter dem zuletzt mit request/lcd_20x4_bricklet/<UID>/write_line
geschriebenen Text.
request/
lcd_20x4_bricklet/
<UID>/
get_config
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt die Konfiguration zurück, wie von request/lcd_20x4_bricklet/<UID>/set_config
gesetzt.
Anfrage: |
|
---|---|
Antwort: |
|
Gibt true zurück wenn die Taste (0 bis 2 oder 0 bis 3 seit Hardware Version 1.2) gedrückt ist.
Wenn auf Tastendrücken und -loslassen reagiert werden soll, wird empfohlen die
register/lcd_20x4_bricklet/<UID>/button_pressed
und register/lcd_20x4_bricklet/<UID>/button_released
Callbacks zu nutzen.
request/
lcd_20x4_bricklet/
<UID>/
set_custom_character
¶Anfrage: |
|
---|---|
Antwort: |
|
Das LCD 20x4 Bricklet kann bis zu 8 benutzerdefinierte Buchstaben speichern. Die Buchstaben bestehen aus 5x8 Pixel und sie können über den Index 0-7 adressiert werden. Um die Pixel zu beschreiben, werden die ersten 5 Bit von 8 Bytes verwenden. Zum Beispiel, um den Buchstaben "H" zu erzeugen, sollte das folgende Array gesendet werden:
character[0] = 0b00010001
(Dezimalwert 17)character[1] = 0b00010001
(Dezimalwert 17)character[2] = 0b00010001
(Dezimalwert 17)character[3] = 0b00011111
(Dezimalwert 31)character[4] = 0b00010001
(Dezimalwert 17)character[5] = 0b00010001
(Dezimalwert 17)character[6] = 0b00010001
(Dezimalwert 17)character[7] = 0b00000000
(Dezimalwert 0)Die Buchstaben können später mit request/lcd_20x4_bricklet/<UID>/write_line
mit den chars mit
den Byterepräsentationen 8 ("\x08" oder "\u0008") bis 15 ("\x0F" oder
"\u000F") geschrieben werden.
Es ist möglich die benutzerdefinierten Buchstaben im Brick Viewer ab Version 2.0.1 einzustellen.
Benutzerdefinierte Buchstaben werden vom LCD im RAM gespeichert, daher müssen sie nach jedem Start des LCD 20x4 Bricklets gesetzt werden.
Neu in Version 2.0.1 (Plugin).
request/
lcd_20x4_bricklet/
<UID>/
get_custom_character
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt den benutzerdefinierten Buchstaben für den gegebenen
Index zurück, wie von request/lcd_20x4_bricklet/<UID>/set_custom_character
gesetzt.
Neu in Version 2.0.1 (Plugin).
request/
lcd_20x4_bricklet/
<UID>/
set_default_text
¶Anfrage: |
|
---|---|
Antwort: |
|
Setzt den Standard-Text für die Zeilen 0-3. Die maximale Anzahl an Buchstaben pro Zeile ist 20.
Der Standard-Text wird auf dem LCD angezeigt, wenn der Standard-Text-Zähler
ausläuft, siehe request/lcd_20x4_bricklet/<UID>/set_default_text_counter
.
Neu in Version 2.0.2 (Plugin).
request/
lcd_20x4_bricklet/
<UID>/
get_default_text
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt den Standard-Text für die Zeilen 0-3 zurück, wie von
request/lcd_20x4_bricklet/<UID>/set_default_text
gesetzt.
Neu in Version 2.0.2 (Plugin).
request/
lcd_20x4_bricklet/
<UID>/
set_default_text_counter
¶Anfrage: |
|
---|---|
Antwort: |
|
Setzt den Standard-Text-Zähler. Der Zähler wird von der LCD
Firmware einmal pro ms dekrementiert. Wenn der Zähler 0 erreicht
wird der Standard-Text auf dem LCD angezeigt (siehe request/lcd_20x4_bricklet/<UID>/set_default_text
).
Diese Funktionalität kann genutzt werden um auf dem LCD einen Text anzuzeigen falls das kontrollierende Programm abstürzt oder die Verbindung unterbrochen wird.
Ein möglicher Ansatz dafür ist request/lcd_20x4_bricklet/<UID>/set_default_text_counter
einmal
pro Minute mit dem Parameter 1000*60*2 (zwei Minuten) aufzurufen.
In diesem Fall wird dann der Standard-Text nach spätestens zwei Minuten
angezeigt wenn das kontrollierende Programm abstürzt.
Ein negativer Zählerwert stellt die Standard-Text Funktionalität aus.
Neu in Version 2.0.2 (Plugin).
request/
lcd_20x4_bricklet/
<UID>/
get_default_text_counter
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt den aktuellen Wert des Standard-Text-Zählers zurück.
Neu in Version 2.0.2 (Plugin).
request/
lcd_20x4_bricklet/
<UID>/
get_identity
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt die UID, die UID zu der das Bricklet verbunden ist, die Position, die Hard- und Firmware Version sowie den Device Identifier zurück.
Die Position ist 'a', 'b', 'c', 'd', 'e', 'f', 'g' oder 'h' (Bricklet Anschluss). Ein Bricklet hinter einem Isolator Bricklet ist immer an Position 'z'.
Eine Liste der Device Identifier Werte ist hier zu finden. Falls die symbolische Ausgabe nicht deaktiviert wurde, wird der Device Identifier auf den entsprechenden Namen im Format, welches die Topics verwenden, abgebildet.
Der Display Name enthält den Anzeigenamen des LCD 20x4.
Callbacks können registriert werden um zeitkritische
oder wiederkehrende Daten vom Gerät zu erhalten. Die Registrierung kann
mit dem entsprechenden .../register/...
-Topic und einem optionalen Suffix durchgeführt werden.
Mit diesem Suffix kann das Callback später deregistriert werden.
Bemerkung
Callbacks für wiederkehrende Ereignisse zu verwenden ist immer zu bevorzugen gegenüber der Verwendung von Abfragen. Es wird weniger USB-Bandbreite benutzt und die Latenz ist erheblich geringer, da es keine Paketumlaufzeit gibt.
Registrierungsanfrage: |
|
---|---|
Callback-Antwort: |
|
Ein Callback für dieses Event kann durch Senden des Payloads "true" an das .../register/lcd_20x4_bricklet/<UID>/button_pressed[/<SUFFIX>]
-Topic hinzugefügt werden.
Ein hinzugefügtes Callback kann durch Senden des Payloads "false" an das selbe Topic wieder entfernt werden.
Um mehrere (De-)Registrierungen zu unterstützen, z.B. um Nachrichten filtern zu können, kann ein optionaler Suffix verwendet werden.
Wenn das Callback ausgelöst wird, wird dessen Payload für jeden Suffix auf dem entsprechenden .../callback/lcd_20x4_bricklet/<UID>/button_pressed[/<SUFFIX>]
-Topic veröffentlicht.
Dieser Callback wird ausgelöst, wenn eine Taste gedrückt wird. Der Payload des Callbacks ist die Nummer der Taste (0 bis 2 oder 0 bis 3 seit Hardware Version 1.2).
Registrierungsanfrage: |
|
---|---|
Callback-Antwort: |
|
Ein Callback für dieses Event kann durch Senden des Payloads "true" an das .../register/lcd_20x4_bricklet/<UID>/button_released[/<SUFFIX>]
-Topic hinzugefügt werden.
Ein hinzugefügtes Callback kann durch Senden des Payloads "false" an das selbe Topic wieder entfernt werden.
Um mehrere (De-)Registrierungen zu unterstützen, z.B. um Nachrichten filtern zu können, kann ein optionaler Suffix verwendet werden.
Wenn das Callback ausgelöst wird, wird dessen Payload für jeden Suffix auf dem entsprechenden .../callback/lcd_20x4_bricklet/<UID>/button_released[/<SUFFIX>]
-Topic veröffentlicht.
Dieser Callback wird ausgelöst, wenn eine Taste losgelassen wird. Der Payload des Callbacks ist die Nummer der Taste (0 bis 2 oder 0 bis 3 seit Hardware Version 1.2).