Samstag, Februar 22, 2020

Arduino-Client senden von Daten an Java-Server über Sockets

Ich bin dabei ein neues Projekt anzufangen, wo ich brauche zum senden von Daten von einem Arduino zu einem Java-Server. Ich würde gerne mit dem Arduino Wifi shield. Danach wird die java-server sendet die empfangenen Daten an einen web-service über ein 3G-Router.

Ist mit diesem setup möglich? Gibt es eine API zum einrichten einer socket-Verbindung zwischen einem Arduino und einem Java-Server?

Wenn nicht, welche Möglichkeiten habe ich? Danke im erweiterten

InformationsquelleAutor JPP | 2012-03-13

2 Kommentare

  1. 2

    Gibt es sicherlich eine Reihe von Möglichkeiten, wie Sie dies tun können. Sie können die Arduino-Ethernet-Bibliothek, um verbindungen zu Ihren Java-server. Hier ist ein nettes kleines Programm namens ClientConnect was nutzt das ethernet-Gerät, um eine Verbindung zu einem server. Dieses kleine Programm sendet eine web-Anfrage an den server mit den folgenden Zeilen:

    client.println("GET /search?q=arduino HTTP/1.0");
    client.println();

    Auf der server-Seite, es wäre am einfachsten zu verwenden, irgendeine Art von einfaches servlet und verwenden von Java web Frameworks wie Tomcat.

    Ihrem Arduino-Transaktionen würden dann genauso Aussehen wie einfache web-Transaktionen:

    GET /your-path-to-your-servley?field1=value1&field2=value2 HTTP/1.0
    [[ empty line here ]]

    Dieses schickt eine Reihe von Feld/Wert-Paare, die Ihre Java-webserver, die rufen Sie Ihre servlet. Im Beispiel oben "q" ist der Feldname und die "arduino" ist der Wert.

    Hoffe, das hilft.

  2. 1

    Ähnlich wie die Antwort von @gray was ist ein „push“ – Lösung um die java-server-Abfrage, die in der Arduino auf einem Intervall („pull“ – Modell). Um dies zu tun, sehen nur die Web-hosting-Beispiel in der Arduino-ethernet-samnple Bibliothek. Sie können es ändern, um die arduino-Wert von den sensoren als Teil der http-Antwort.

Kostenlose Online-Tests