Arduino -- Elektronik-Experimentierkasten -- Lectron Lehrsytem -- Jugendarbeit -- Elektronik -- Amateurfunk -- Notfunk -- Shop

Serielle Datenübertragung mit JSON

Um zwischen zwei Arduinos Daten zu übertragen kann man die serielle Schnittstelle verwenden. Mit zwei Arduino MEGA ist dies recht einfach möglich. Da reichen zwei (drei) Drähte die jeweils eine der seriellen Schnittstelle über Kreuz miteinander verbindet:

 

Bei Bedarf muss noch zwischen den zwei Arduinos eine Masseverbindung hergestellt werden. Hier kann das entfallen da beide Arduinos von der selben Spannungsquelle versorgt werden. 

Für die Übertragung habe ich JSON als Datenformat gewählt. Die Daten werden in einen JSON-String gepackt und dann serielle übertragen.

Um die Daten vor der Übertragung in das JSON-Format zu wandeln und beim Empfänger wieder zurückzuwandeln wird die ArduinoJson-Library verwendet. 

 

Das folgende Beispiel zeigt eine unidirektionale Übertragung von vier Bits vom unteren Arduino MEGA zum oberen MEGA. 

 

Hier wird binär 0101 übertragen.

Auf dem unteren MEGA sind D8 - D11 als Eingang mit aktivierten PullUp-Widerständen konfiguriert. Die vier Bit werden dort über die Drahtbrücken gesetzt. Auf dem oberen MEGA werden die vier Bit auf D8 - D11 mit LEDs angezeigt. 

Sketche:

TX  ( = Sender )

Die Daten werden dem JsonObjekt root zugewiesen und dann mit root.printTo(Serial1) an den 2. Arduino gesendet.  

 

RX ( = Empfänger )

Nachdem der JSON-String empfangen wurden können die Daten aus dem JsonObjekt ausgelesen werden. 

Die Verwendung von JSON bietet eine flexible Möglichkeit Daten zu übertragen. Die Kodierung und Dekodierung der Daten übernimmt die Library. 

Wenn man den Umfang der übertragenden Daten erweiteren möchte muss man den die Kodierung und Dekodierung nicht anpassen. Es reicht wenn die zusätzlichen Daten dem JsonObjekt einfach hinzugefügt werden.

Die Nutzung des JSON-Formats ermöglicht auch den einfachen Datenaustausch z.B. mit Webservern.  

 

Hintergrundinfos:

Die JavaScript Object Notation, kurz JSON, ist ein kompaktes Datenformat in einer einfach lesbaren Textform zum Zweck des Datenaustauschs zwischen Anwendungen. Jedes gültige JSON-Dokument soll ein gültiges JavaScript sein und per eval() interpretiert werden können. Aufgrund kleiner Abweichungen in der Menge der erlaubten Unicode-Zeichen ist es jedoch möglich, JSON-Objekte zu erzeugen, die von einem normkonformen JavaScript-Interpreter nicht akzeptiert werden. Davon abgesehen ist JSON aber unabhängig von der Programmiersprache. Parser existieren in praktisch allen verbreiteten Sprachen. 

 

 

...

18.10.2016

Dipl.-Ing. (FH) Jürgen Mayer, DL8MA - Weinstadt-Grossheppach
Impressum

zurück zu www.DL8MA.de