Tutorial Stone Display STW Serie #3 – Send Data to Display

5 Kommentare
Tutorial Stone Display STW Serie #3 – Send Data to Display

In diesem Tutorial Beitrag geht es darum wie man Daten vom Arduino an das Stone Display der STW Serie schicken kann.

Wie Ihr ein Projekt auf das Display laden könnt, habe ich im vorhergehenden Beitrag erklärt. https://arduino-projekte.info/tutorial-stone-display-stw-serie-2-upload/

Es gibt zwei Wege wie Ihr die Daten an das Display senden könnt. Ich zeige euch hier beide Weg, diese sind wirklich nicht schwer.

Inhaltsverzeichnis

  1. Wie werden die Daten Übertragen?
  2. Struktur der Daten für die Übertragung.
  3. 1. Version der Datenübertragung (Serial.Print Methode)
  4. 2. Version der Datenübertragung (Json Methode)

Wie send ich Daten vom Arduino zum Stone STW Display?



1. Wie werden die Daten Übertragen?

Die Daten werden per Serieller Schnittstelle übertragen (auch als UART oder USART bezeichnet). Die serielle Kommunikation an den Pins RX / TX verwendet TTL-Logikpegel (5 V oder 3,3 V je nach Board). Welche Pins auf deinem Board RX / TX sind musst du im Pinout nachsehen. Beim Arduino Uno R3 wäre das Pin 0 = RX und Pin 1 = TX.

Einschränkung für SoftwareSerial!

Die Einschränkung betrifft die SoftwareSerial. Kurz zur Erklärung, mit der SoftwareSerial kann man die Serielle Schnittstelle auf nahezu beliebige Pins legen. Das hat den Vorteil das die Serielle Schnittstelle bei hochladen des Sketch nicht abgezogen werden muss.
Die SoftwareSerial funktioniert mit dem Arduino leider nicht. Der Grund dafür ist, der Arduino kann mit dem SoftwareSerial nur eine Bautrate von 57600bps. Das Display benötigt aber eine Bautrate von 115200bps, somit bleibt nur die Physische Schnittstelle übrig.

Hier könnt Ihr die Eigenschaften der SoftwareSerial nachlesen.




2. Struktur der Daten für die Übertragung.

Hier ein Beispiel wie die Daten zusammengesetzt sind:
ST<{"cmd_code":"set_value","type":"progress_bar","widget":"progress_bar","value":20}>ET

Frame head: ST<
Command content: { json } Kann aus 3 oder 4 Datentypen bestehen.
Frame end: >ET

Im cmd_code gibt man die Eigenschaften an, was gemacht werden soll, in meinem Beispielprogramm:
set_value
set_text
set_angle

Bei type spricht man das jeweilige Objekt an, in diesem Beispiel die Progress Bar.

Bei widget wird der Name des endsprechen Widget eingetragen.


Im letzten Datenfeld wird der value, angle oder text definiert, der geändert werden soll.


Hier könnt ihr euch die Command Set Instruction Lister herunterladen.

Command Set Instruction (224kb .zip)




3. 1. Version der Datenübertragung (Serial.Print Methode)

Der Datensatz wird hier mit einem einfachen Print Befehle an das Display gesendet. Hier ist es egal ob man eine Serial.println(F(); oder Serial.println(); benutzt, beide funktionieren.

void setup() {
  Serial.begin(115200);
}
  
void loop() {
  Serial.println(F("ST<{"cmd_code":"set_value","type":"progress_bar","widget":"progress_bar","value":0}>ET"));
  Serial.println(F("ST<{"cmd_code":"set_text","type":"label","widget":"label","text":""}>ET"));
  Serial.println(F("ST<{"cmd_code":"set_angle","type":"gauge_pointer","widget":"gauge_pointer2","angle":0}>ET"));
  delay(1000);
  Serial.println(F("ST<{"cmd_code":"set_angle","type":"gauge_pointer","widget":"gauge_pointer2","angle":60}>ET"));
  Serial.println(F("ST<{"cmd_code":"set_value","type":"progress_bar","widget":"progress_bar","value":20}>ET"));
  Serial.println(F("ST<{"cmd_code":"set_text","type":"label","widget":"label","text":"Arduino"}>ET"));
  delay(1000);
  Serial.println(F("ST<{"cmd_code":"set_angle","type":"gauge_pointer","widget":"gauge_pointer2","angle":120}>ET"));
  Serial.println(F("ST<{"cmd_code":"set_value","type":"progress_bar","widget":"progress_bar","value":40}>ET"));
  Serial.println(F("ST<{"cmd_code":"set_text","type":"label","widget":"label","text":"Arduino-Projekte"}>ET"));
  delay(1000);
  Serial.println(F("ST<{"cmd_code":"set_angle","type":"gauge_pointer","widget":"gauge_pointer2","angle":180}>ET"));
  Serial.println(F("ST<{"cmd_code":"set_value","type":"progress_bar","widget":"progress_bar","value":60}>ET"));
  delay(1000);
  Serial.println(F("ST<{"cmd_code":"set_angle","type":"gauge_pointer","widget":"gauge_pointer2","angle":240}>ET"));
  Serial.println(F("ST<{"cmd_code":"set_value","type":"progress_bar","widget":"progress_bar","value":80}>ET"));
  Serial.println(F("ST<{"cmd_code":"set_text","type":"label","widget":"label","text":"Arduino-Projekte.info"}>ET"));
  delay(1000);
  Serial.println(F("ST<{"cmd_code":"set_angle","type":"gauge_pointer","widget":"gauge_pointer2","angle":300}>ET"));
  Serial.println(F("ST<{"cmd_code":"set_value","type":"progress_bar","widget":"progress_bar","value":100}>ET"));
  delay(2000);
  }



4. 2. Version der Datenübertragung (Json Methode)

Für diese Methode benötigt Ihr die Json Library. Ich habe diese hier verwendet.

Download Json Library


Oder Ihr ladet Sie über die Arduino IDE herunter. Dazu geht Ihr auf Sketch -> Bibliothek einbinden -> Bibliotheken verwalten und dann sucht Ihr ArduinoJson.


Hier ist es so das die Datensätze in das doc geschrieben und zusammengesetzt werden. Dann mit dem ST und ET per Serieller Schnittstelle übertragen werden. Ich denke diese Variante eignet sich besser um mit Variablen zu arbeiten.

#include <arduinojson.h>
  
void setup() {
  Serial.begin(115200);
  
}
void loop() {
    Serial.write("ST<");
    StaticJsonDocument<128> doc;
    doc["cmd_code"] = "set_value";
    doc["type"] = "progress_bar";
    doc["widget"] = "progress_bar";
    doc["value"] = 0;
    serializeJson(doc, Serial);
    Serial.write(">ET");
    delay(1000);
    Serial.write("ST<");
    doc["cmd_code"] = "set_value";
    doc["type"] = "progress_bar";
    doc["widget"] = "progress_bar";
    doc["value"] = 80;
    serializeJson(doc, Serial);
    Serial.write(">ET");
    delay(1000);
}
    
Display HMI Wissen - Info

5 Kommentare

Streampurple is a leading HD IP Camera Setup Service provider in Delhi, India. Our HD IP camera installation services will allow you to monitor and record everything happening at your home, business, or premises- 24/7.

https://www.streampurple.in/

https://www.streampurple.in/about.html

https://www.streampurple.in/video-on-demand.html

https://www.streampurple.in/elearning-online-education-streaming-server-services-and-solutions.html

https://www.streampurple.in/simulated-live-streaming.html

https://www.streampurple.in/election-live-webcast-streaming-services.html

https://www.streampurple.in/live-other-sports-streaming.html

https://www.streampurple.in/live-cricket-streaming.html

https://www.streampurple.in/social-media-coverage.html

https://www.streampurple.in/broadcasting-solutions.html

https://www.streampurple.in/hd-camera-setup.html

https://www.streampurple.in/cameras.html

https://www.streampurple.in/ptz-camera-control.html

https://www.streampurple.in/mobile-cast.html

https://www.streampurple.in/switchers.html

https://www.streampurple.in/video-encoder.html

https://www.streampurple.in/video-decoder.html

stream purple

Purplewave offer seamless, easy to use products for our customers, using the latest audio visual technologies Like Projectors, Display Panels, Audio, Video Audio Conference, Video Conference, AV Control & Switching etc

http://www.purplewave.in/

http://www.purplewave.in/konftel.php

http://www.purplewave.in/displays-panels.php

http://www.purplewave.in/project-management.php

http://www.purplewave.in/digital-signage-solutions.php

http://www.purplewave.in/solution-design-2d-design.php

http://www.purplewave.in/corporates-meeting-room.php

http://www.purplewave.in/education.php

http://www.purplewave.in/consultancy.php

http://www.purplewave.in/corporates-huddle-room.php

http://www.purplewave.in/corporates-gymnasium.php

http://www.purplewave.in/corporates-cafeteria.php

http://www.purplewave.in/home-automation.php

http://www.purplewave.in/about-us.php

http://www.purplewave.in/blog/

http://www.purplewave.in/solution-design-3d-design.php

http://www.purplewave.in/solution-design-2d-design.php

http://www.purplewave.in/accoustic-consultation.php

http://www.purplewave.in/lighting-consultation.php

http://www.purplewave.in/audio-video-consultation.php

http://www.purplewave.in/education-virtual-class-room.php

http://www.purplewave.in/corporates-board-room.php

http://www.purplewave.in/solution-design.php

http://www.purplewave.in/support.php

http://www.purplewave.in/konftel-video.php

http://www.purplewave.in/video-conference.php

http://www.purplewave.in/av-control-switching.php

http://www.purplewave.in/av-control-switching.php

http://www.purplewave.in/video-conference.php

Purple wave India

Saptashati Foundation is a women’s rights nonprofit organization which is a platform to empower widows, handicapped people, disabled people, senior citizens and women of the nation.

https://www.saptashati.org/

Saptashati

Purplewave India Pvt Ltd. is an AV equipment manufacturing Company. We offer a range of high-quality products such as Active LED displays, video wall displays, digital kiosks, speaker phones, conference video cameras, interactive displays, and much more!

https://www.purplewaveindia.com/

Purple wave India

Hello, Can you explain how to control stone display to arduino, i need to control basic button function to arduino

jahith

Hinterlassen Sie einen Kommentar

Bitte beachten Sie, dass Kommentare vor der Veröffentlichung genehmigt werden müssen.