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
#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 NoneErstellt 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 voidInitialisiert die Bibliothek, die Peripherie und den Framebuffer. Rufen Sie sie einmal in setup() auf.
ReturnsNichts.
inkplate.clearDisplay()returns voidFüllt den Framebuffer mit Weiß. Das Panel wird dadurch nicht verändert.
ReturnsNichts.
inkplate.display(bool _leaveOn = 0)returns voidSendet den gesamten Framebuffer an das Panel und aktualisiert es.
ReturnsNichts.
inkplate.setTextSize(uint8_t s)returns voidLegt die Textvergrößerung fest, hier 3.
ReturnsNichts.
inkplate.setCursor(int16_t x, int16_t y)returns voidLegt fest, wo der nächste ausgegebene Text beginnt, hier die obere linke Ecke.
ReturnsNichts.
inkplate.setTextColor(uint16_t c)returns voidLegt die Textfarbe fest, hier INKPLATE_BLACK.
ReturnsNichts.
inkplate.print(value, format)returns size_tGibt 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_tESP32-Board-Paket: sucht nach WLAN-Netzwerken und wartet auf das Ergebnis.
ReturnsAnzahl der gefundenen Netzwerke.
WiFi.SSID(uint8_t i)returns StringESP32-Board-Paket: der Name des Netzwerks i aus dem letzten Scan.
ReturnsNetzwerkname.
WiFi.encryptionType(uint8_t i)returns wifi_auth_mode_tESP32-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_tESP32-Board-Paket: die Signalstärke des Netzwerks i in dBm.
ReturnsSignalstärke.
WiFi.begin(ssid, pass)returns wl_status_tESP32-Board-Paket: beginnt mit dem Verbindungsaufbau zum Netzwerk.
ReturnsVerbindungsstatus.
WiFi.status()returns wl_status_tESP32-Board-Paket: der Verbindungsstatus; WL_CONNECTED, sobald die Verbindung besteht.
ReturnsVerbindungsstatus.
HTTPClient()returns NoneKlasse HTTPClient, ESP32-Board-Paket: das HTTP-Client-Objekt. Der Sketch erstellt eines mit dem Namen `http`.
ReturnsKonstruktor; kein Rückgabewert.
http.begin(url)returns boolHTTPClient, ESP32-Board-Paket: bereitet eine Anfrage an die URL vor.
Returnstrue, wenn die URL geparst werden konnte.
http.GET()returns intHTTPClient: sendet die GET-Anfrage.
ReturnsDer HTTP-Statuscode oder ein negativer Fehlercode.
http.getString()returns StringHTTPClient: 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