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
- Wie werden die Daten Übertragen?
- Struktur der Daten für die Übertragung.
- 1. Version der Datenübertragung (Serial.Print Methode)
- 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.
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); }
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
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
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/
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/
Hello, Can you explain how to control stone display to arduino, i need to control basic button function to arduino