Arduino - HTTP-Anfrage
Arduino kann als Web-Client fungieren, um HTTP-Anfragen an einen Webserver zu senden. Der Webserver kann eine Website, eine Web-API oder eine REST-API bzw. ein Webdienst sein ...
In diesem Tutorial werden wir lernen:
- Grundkenntnisse eines Webclients und eines Webservers
- Wie man eine HTTP-Anfrage (GET und POST) durchführt
- Wie man Daten an einen Webserver sendet (eine Website, Web-API oder REST-API)
- Arduino-Code:
- HTTP GET- bzw. HTTP POST-Anfrage mit Arduino Uno/Mega + Ethernet Shield durchführen
- HTTP GET-Anfrage erstellen und Daten senden mit Arduino Uno/Mega + Ethernet Shield
- HTTP POST-Anfrage erstellen und Daten senden mit Arduino Uno/Mega + Ethernet Shield
- Arduino Uno R4 WiFi
- Arduino Uno/Mega mit Ethernet-Shield
- Ihr PC/Smartphone (als Web-Client) sendet eine HTTP-Anfrage an einen Webserver
- Der Webserver sendet eine HTTP-Antwort an Ihren PC/Smartphone zurück
- Ihr PC/Smartphone empfängt die HTTP-Antwort und visualisiert sie auf Ihrem Bildschirm
- HTTP-Anforderungsheader
- (optional) HTTP-Anforderungsbody
- Webadresse (URL)
- Anfragemethode (POST oder GET)
- HTTP-Port, den der Webserver verwendet (die meisten Webserver verwenden Port 80 für HTTP)
- (Optional) Daten, die an den Webserver gesendet werden sollen (Abfragezeichenfolge). In diesem Tutorial nehmen wir an, dass wir Temperatur und Luftfeuchtigkeit an einen Webserver senden, im Format ?temperature={t-value}&humidity={h-value}.
- Deklariere die Anfragemethode, HTTP-Port, Hostname, Pfadname, Abfragezeichenfolge
- Deklariere ein WebClient-Objekt.
- Mit dem Webserver verbinden
- Wenn der Server verbunden ist, sende eine HTTP-Anfrage
- Lies die Antwortdaten vom Webserver.
- HTTP GET-Anfrage
- Kann nur Daten im Abfragestring-Format senden.
- Daten werden an den Pfadnamen angehängt.
- HTTP POST-Anfrage
- Kann Daten NICHT NUR im Abfragestring-Format senden, SONDERN AUCH in allen anderen Formaten wie JSON, XML, Bilddateien ...
- Daten befinden sich im HTTP-Request-Body.
- Abfragezeichenfolge erstellen
- Den Code zum Senden von Daten in der HTTP-Anfrage ändern
- HTTP GET: den Abfragezeichenfolge an den Pfadname anhängen
- HTTP-POST: sende Abfragezeichenfolge als HTTP-Body
- Lies die Antwortdaten vom Webserver
- Für das Ethernet Shield müssen Sie den Arduino-Code ändern. Siehe Arduino Ethernet Shield mit statischer IP-Adresse

Der Code für andere WiFi- oder Ethernet-Shields/Boards ist ähnlich. Der Unterschied besteht nur in der Bibliothek.
Das Tutorial liefert den Arduino-Code für zwei Fälle:
Erforderliche Hardware
1 | × | Arduino UNO R4 WiFi | |
1 | × | Alternativ: DIYables STEM V4 IoT | |
1 | × | USB-Kabel Typ-A zu Typ-C (für USB-A PC) | |
1 | × | USB-Kabel Typ-C zu Typ-C (für USB-C PC) |
Alternatively if using Ethernet:
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Grundwissen über Web-Client und Web-Server
Wenn du von deinem PC oder Smartphone aus eine Website aufrufst, gibst du einfach die Webadresse (URL) in einen Webbrowser ein, wartest eine Sekunde, und dann wird die Webseite auf deinem PC oder Smartphone angezeigt. Du weißt nicht, was dein PC oder Smartphone hinter dem Bildschirm tut. Also, was passiert hinter dem Bildschirm:
In diesem Tutorial werden wir den Arduino zu einem Web-Client machen, um etwas Ähnliches wie auf Ihrem PC oder Smartphone zu tun.
Webadresse (URL)
Eine URL besteht aus zwei Teilen: Hostname und Pfadname. Der Hostname kann durch die IP-Adresse des Webservers ersetzt werden. Zum Beispiel: example.com/test
Bei einer HTTP-GET-Anforderung kann die URL die Abfragezeichenfolge enthalten. Zum Beispiel: example.com/test?temperature=20&humidity=70.
Abfragezeichenfolge
Die Abfragezeichenfolge ist eine Menge von Namens-Wert-Paaren, die in HTTP-Anfragen enthalten sind, um Daten vom Web-Client an den Web-Server zu senden.
Der Name und der Wert werden durch das Gleichheitszeichen getrennt. Die Name-Wert-Paare werden durch das Ampersand-Zeichen getrennt.
Zum Beispiel: Temperatur=26&Luftfeuchtigkeit=70&Zustand=2
HTTP-Anfrage
Die HTTP-Anfrage besteht aus:
HTTP-Anforderungsheader und HTTP-Anforderungsrumpf werden durch zwei Paare von Wagenrücklaufzeichen und Zeilenumbrüchen getrennt (ASCII 13 bzw. '\r' und ASCII 10 bzw. '\n').
Es gibt viele Anfragemethoden. Unter ihnen gibt es zwei beliebte Methoden: GET und POST.
Normalerweise verwenden wir die GET-Methode, wenn wir Daten von einem Webserver abrufen möchten, und die POST-Methode, um Daten an den Webserver zu senden. Allerdings kann die GET-Methode sowohl zum Abrufen von Daten vom Webserver als auch zum Senden von Daten an den Webserver verwendet werden.
Voraussetzung
Wir müssen die folgenden Werte bestimmen:
Webadresse (URL) wird in Hostname und Pfadname aufgeteilt.
Wie man eine HTTP-Anfrage sendet
Dieser Teil enthält nur Code, der sich auf HTTP bezieht. Der vollständige Code für jeden Shield wird im letzten Teil präsentiert.
Arduino Ethernet Shield | EthernetClient client; |
Arduino Uno WiFi | WiFiClient client; |
Wie man Daten an einen Webserver sendet
Wir können Daten in eine HTTP-Anfrage einfügen. Das Datenformat hängt von der HTTP-Anforderungsmethode ab:
Wir müssen lediglich den Code ändern, der die HTTP-Anfrage sendet:
Vollständiger Arduino-Code zur Durchführung einer HTTP-Anfrage.
Unten ist der vollständige Arduino-Code zum Durchführen von HTTP-GET/POST-Anfragen.
Arduino HTTP GET/POST-Anfrage mit dem Arduino Uno R4 Wifi
Arduino HTTP GET/POST-Anfrage mit dem Arduino Ethernet Shield
Vollständiger Arduino-Code zum Erstellen einer HTTP-GET-Anfrage mit Daten
Arduino HTTP-GET-Anfrage mit Daten unter Verwendung des Arduino Uno R4 WiFi
Arduino HTTP-GET-Anfrage mit Daten unter Verwendung des Arduino Ethernet Shields
Vollständiger Arduino-Code zum Erstellen einer HTTP-POST-Anforderung mit Daten
Arduino HTTP-POST-Anfrage mit Daten unter Verwendung des Arduino Uno R4 Wifi
Arduino HTTP-POST-Anfrage mit Daten unter Verwendung des Arduino Ethernet Shields
※ Notiz:
Dieses Tutorial verwendet eine dynamische IP-Adresse (über DHCP). Wenn Sie die statische IP-Adresse verwenden möchten:
WARNING
Bitte beachten Sie, dass dieses Tutorial unvollständig ist. Wir werden auf unserer Facebook-Seite posten, wenn das Tutorial vollständig ist. Liken Sie sie, um auf dem Laufenden zu bleiben.