Arduino:
Wysyłanie zapytania http z podstawową autoryzacją
Jak to zrobić:
Instalacja biblioteki do zarządzania połączeniami WiFi i HTTP jest pierwszym krokiem. Użyjemy WiFiNINA.h
i HTTPClient.h
. Przykład kodu:
#include <WiFiNINA.h>
#include <HTTPClient.h>
const char* ssid = "Twoja-Siec-WiFi";
const char* password = "TwojeHaslo";
const char* serverName = "http://twoja.domena.com/ścieżka";
const char* httpUser = "użytkownik";
const char* httpPassword = "hasło";
WiFiClient wiFiClient;
HTTPClient httpClient;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Połączono z WiFi");
httpClient.begin(wiFiClient, serverName);
httpClient.setAuthorization(httpUser, httpPassword);
int httpResponseCode = httpClient.GET();
if (httpResponseCode > 0) {
String payload = httpClient.getString();
Serial.println(httpResponseCode);
Serial.println(payload);
} else {
Serial.print("Błąd: ");
Serial.println(httpResponseCode);
}
httpClient.end();
}
void loop() {
// Nie ma potrzeby wykonywania żądania w pętli bez przerwy
}
Wyjście (sample output) będzie wyglądać jako ciąg informacji zwrotnych od serwera, w tym kod odpowiedzi, który powie nam, czy żądanie się powiodło.
Głębsze spojrzenie
O wykorzystaniu HTTP już w latach 90 XX wieku decydowała prostota i uniwersalność. W Arduino, do komunikacji z serwerami, kluczowe są biblioteki, takie jak WiFiNINA.h
, która obsługuje standardy sieci WiFi, oraz HTTPClient.h
, pozwalająca na tworzenie żądań HTTP.
Istnieją też alternatywy, jak ESP8266HTTPClient.h
dla modułów ESP8266, czy rozwiązania zewnętrznych usług, np. IFTTT lub MQTT dla innych typów zadań IoT. Parametry uwierzytelnienia w ‘basic authentication’ są kodowane w base64, ale to załatwia za nas biblioteka ‘HTTPClient.h’.
Zobacz także
Dokumentacja i przykłady:
Wiedza o kodowaniu w base64 i uwierzytelnianiu HTTP:
Arduino i IoT: