Zum Hauptinhalt springen

Wi-Fi und HTTP-Anfrage

Was dieses Beispiel zeigt​

Das Beispiel sucht nach WLAN-Netzwerken und listet sie auf dem Bildschirm auf, verbindet sich mit Ihrem Netzwerk, lädt dann eine Webseite herunter und gibt deren rohes HTML auf dem Bildschirm aus. Der Sketch parst das HTML nicht, sondern zeigt es als Text an.

Tragen Sie vor dem Hochladen Ihren Netzwerknamen und Ihr Passwort zwischen den Anführungszeichen der Defines ssid und pass ein. Um eine andere Seite abzurufen, ändern Sie die Adresse, die der Sketch an http.begin() übergibt.

Dieses Beispiel verwendet außerdem WiFi und HTTPClient (arduino-esp32). Diese gehören nicht zur Inkplate-Bibliothek und werden mit dem ESP32-Board-Paket geliefert.

Beispielcode​

Select Board
Inkplate7SPECTRA_HTTP_Request.ino
#include "Inkplate.h" //Include Inkplate library to the sketch
#include <HTTPClient.h> //Include HTTP library to this sketch
#include <WiFi.h> //Include ESP32 WiFi library to our sketch

#define ssid "" // Name of the WiFi network (SSID) that you want to connect Inkplate to
#define pass "" // Password of that WiFi network

Inkplate inkplate; // Create an object on Inkplate library and also set library into 1 Bit mode (BW)

void setup()
{
Serial.begin(115200); // Begin Serial for debugging
inkplate.begin(); // Init Inkplate library (you should call this function ONLY ONCE)
inkplate.clearDisplay(); // Clear frame buffer of display
inkplate.display(); // Put clear image on display
inkplate.setTextSize(3); // Set text scaling to three (text will be three times bigger)
inkplate.setCursor(0, 0); // Set print position
inkplate.setTextColor(INKPLATE_BLACK); // Set text color to black and background color to white
Serial.println("Scanning for WiFi networks..."); // Write text

int n =
WiFi.scanNetworks(); // Start searching WiFi networks and put the nubmer of found WiFi networks in variable n
if (n == 0)
{ // If you did not find any network, show the message and stop the program.
Serial.print("No WiFi networks found!");
while (true);
}
else
{
if (n > 10)
n = 10; // If you did find, print name (SSID), encryption and signal strength of first 10 networks
for (int i = 0; i < n; i++)
{
inkplate.print(WiFi.SSID(i));
inkplate.print((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? 'O' : '*');
inkplate.print('\n');
inkplate.print(WiFi.RSSI(i), DEC);
}
inkplate.display();
}

inkplate.clearDisplay(); // Clear everything in frame buffer
inkplate.setCursor(0, 0); // Set print cursor to new position
Serial.print("Connecting to "); // Print the name of WiFi network
Serial.print(ssid);
WiFi.begin(ssid, pass); // Try to connect to WiFi network
while (WiFi.status() != WL_CONNECTED)
{
delay(1000); // While it is connecting to network, display dot every second, just to know that Inkplate is
// alive.
Serial.print('.');
}
Serial.print("connected"); // If it's connected, notify user

HTTPClient http;
if (http.begin("http://example.com/index.html"))
{ // Now try to connect to some web page (in this example www.example.com. And yes, this is a valid Web page :))
if (http.GET() > 0)
{ // If connection was successful, try to read content of the Web page and display it on screen
String htmlText;
htmlText = http.getString();
inkplate.setTextSize(3);
inkplate.clearDisplay();
inkplate.setCursor(0, 0);
inkplate.print(htmlText);
inkplate.display();
}
}
}

void loop()
{
// Nothing
}

Verwendete Funktionen​

Inkplate()returns None

Erstellt das Inkplate-Objekt. Inkplate 7SPECTRA hat nur einen einzigen Sechs-Farben-Modus, daher benötigt der Konstruktor kein Modus-Argument (der Kommentar zum 1-Bit-Modus stammt von anderen Inkplates).

ReturnsKonstruktor; kein Rückgabewert.

inkplate.begin()returns void

Initialisiert die Bibliothek, die Peripherie und den Framebuffer. Rufen Sie sie einmal in setup() auf.

ReturnsNichts.

inkplate.clearDisplay()returns void

Füllt den Framebuffer mit Weiß. Das Panel wird dadurch nicht verändert.

ReturnsNichts.

inkplate.display(bool _leaveOn = 0)returns void

Sendet den gesamten Framebuffer an das Panel und aktualisiert es.

ReturnsNichts.

inkplate.setTextSize(uint8_t s)returns void

Legt die Textvergrößerung fest, hier 3.

ReturnsNichts.

inkplate.setCursor(int16_t x, int16_t y)returns void

Legt fest, wo der nächste ausgegebene Text beginnt, hier die obere linke Ecke.

ReturnsNichts.

inkplate.setTextColor(uint16_t c)returns void

Legt die Textfarbe fest, hier INKPLATE_BLACK.

ReturnsNichts.

inkplate.print(value, format)returns size_t

Gibt Text, ein Zeichen oder eine Zahl in den Framebuffer aus, wie Serial.print(). DEC gibt eine Zahl dezimal aus.

ReturnsAnzahl der ausgegebenen Bytes.

WiFi.scanNetworks()returns int16_t

ESP32-Board-Paket: sucht nach WLAN-Netzwerken und wartet auf das Ergebnis.

ReturnsAnzahl der gefundenen Netzwerke.

WiFi.SSID(uint8_t i)returns String

ESP32-Board-Paket: der Name des Netzwerks i aus dem letzten Scan.

ReturnsNetzwerkname.

WiFi.encryptionType(uint8_t i)returns wifi_auth_mode_t

ESP32-Board-Paket: die Verschlüsselung des Netzwerks i; WIFI_AUTH_OPEN bedeutet kein Passwort. Der Sketch gibt O für offene Netzwerke und * für alle übrigen aus.

ReturnsVerschlüsselungsart.

WiFi.RSSI(uint8_t i)returns int32_t

ESP32-Board-Paket: die Signalstärke des Netzwerks i in dBm.

ReturnsSignalstärke.

WiFi.begin(ssid, pass)returns wl_status_t

ESP32-Board-Paket: beginnt mit dem Verbindungsaufbau zum Netzwerk.

ReturnsVerbindungsstatus.

WiFi.status()returns wl_status_t

ESP32-Board-Paket: der Verbindungsstatus; WL_CONNECTED, sobald die Verbindung besteht.

ReturnsVerbindungsstatus.

HTTPClient()returns None

Klasse HTTPClient, ESP32-Board-Paket: das HTTP-Client-Objekt. Der Sketch erstellt eines mit dem Namen `http`.

ReturnsKonstruktor; kein Rückgabewert.

http.begin(url)returns bool

HTTPClient, ESP32-Board-Paket: bereitet eine Anfrage an die URL vor.

Returnstrue, wenn die URL geparst werden konnte.

http.GET()returns int

HTTPClient: sendet die GET-Anfrage.

ReturnsDer HTTP-Statuscode oder ein negativer Fehlercode.

http.getString()returns String

HTTPClient: liest den gesamten Antwortinhalt.

ReturnsDer Antwortinhalt.

Was Sie erwarten können​

Der Bildschirm listet zunächst bis zu 10 gefundene Netzwerke auf, jeweils mit Namen, O (offen) oder * (passwortgeschützt) und Signalstärke. Sobald das Board in Ihrem Netzwerk ist, wird der Bildschirm erneut aktualisiert und zeigt das HTML der Seite als Text. Der Serial Monitor zeigt bei 115200 Baud Scanning for WiFi networks..., dann Connecting to mit Ihrem Netzwerknamen, jede Sekunde einen Punkt während der Verbindung und connected.

🔗Vollständiges Beispiel öffnen

examples/Inkplate7SPECTRA/Advanced/WEB_WiFi/Inkplate7SPECTRA_HTTP_Request

→