Bilder aus dem Web
Was dieses Beispiel zeigt
Verbinden Sie sich mit dem WLAN und zeichnen Sie Bilder direkt von einer Webadresse mit nur einer Funktion, image.draw(). Der Sketch zeichnet nacheinander zwei Bitmaps, wartet drei Sekunden, leert den Frame-Buffer und zeichnet dann ein JPG. Am Ende schaltet er das WLAN aus.
Tragen Sie vor dem Hochladen Ihren Netzwerknamen und Ihr Passwort zwischen den Anführungszeichen von ssid und password ein. Laut den Kommentaren des Sketches können Bitmap-Dateien eine Farbtiefe von 1, 4, 8 oder 24 Bit haben, müssen unkomprimiert sein und müssen kleiner als 800x480 Pixel sein, damit sie auf den Bildschirm passen.
Dieses Beispiel verwendet außerdem WiFi (arduino-esp32). Es gehört nicht zur Inkplate-Bibliothek, sondern wird mit dem ESP32-Board-Paket geliefert.
Beispielcode
#include "HTTPClient.h" //Include library for HTTPClient
#include "Inkplate.h" //Include Inkplate library to the sketch
#include "WiFi.h" //Include library for WiFi
Inkplate inkplate; // Create an object on Inkplate library and also set library into 1 Bit mode (BW)
const char ssid[] = ""; // Your WiFi SSID
const char *password = ""; // Your WiFi password
void setup()
{
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
Serial.print("Connecting to WiFi...");
// Connect to the WiFi network.
WiFi.mode(WIFI_MODE_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi OK! Downloading...");
// Draw the first image from web.
// Monochromatic bitmap with 1 bit depth. Images like this load quickest.
// NOTE: Both drawImage methods allow for an optional fifth "invert" parameter. Setting this parameter to true
// will flip all colors on the image, making black white and white black. This may be necessary when exporting
// bitmaps from certain softwares. Forth parameter will dither the image. Photo taken by: Roberto Fernandez
if (!inkplate.image.draw("https://varipass.org/neowise_mono.bmp", 0, 0, true, false))
{
// If is something failed (wrong filename or wrong bitmap format), write error message on the screen.
// REMEMBER! You can only use Windows Bitmap file with color depth of 1, 4, 8 or 24 bits with no compression!
inkplate.println("Image open error");
inkplate.display();
}
inkplate.display();
if (!inkplate.image.draw("https://varipass.org/neowise.bmp", 0, 0, true, false))
{
// If is something failed (wrong filename or wrong bitmap format), write error message on the screen.
// REMEMBER! You can only use Windows Bitmap file with color depth of 1, 4, 8 or 24 bits with no compression!
inkplate.println("Image open error");
inkplate.display();
}
inkplate.display();
inkplate.clearDisplay();
delay(3000);
// Try to load image and display it on e-paper at position X=0, Y=100
// NOTE: Both drawJpegFromWeb methods allow for an optional fifth "invert" parameter. Setting this parameter to
// true will flip all colors on the image, making black white and white black. forth parameter will dither the
// image.
if (!inkplate.image.draw("https://varipass.org/destination.jpg", 0, 100, true, false))
{
// If is something failed (wrong filename or format), write error message on the screen.
inkplate.println("Image open error");
inkplate.display();
}
inkplate.display();
WiFi.mode(WIFI_OFF);
}
void loop()
{
// Nothing...
}
Verwendete Funktionen
Inkplate()returns NoneErstellt das Inkplate-Objekt. Inkplate 7SPECTRA hat nur einen einzigen Sechs-Farben-Modus, daher erhält der Konstruktor kein Modus-Argument (der Kommentar zum 1-Bit-Modus stammt von anderen Inkplate-Modellen).
ReturnsKonstruktor; kein Rückgabewert.
inkplate.begin()returns voidInitialisiert die Bibliothek, die Peripherie und den Frame-Buffer. Rufen Sie sie einmal in setup() auf.
ReturnsNichts.
inkplate.clearDisplay()returns voidFüllt den Frame-Buffer mit Weiß. Das Panel wird dadurch nicht verändert.
ReturnsNichts.
inkplate.display(bool _leaveOn = 0)returns voidSendet den gesamten Frame-Buffer an das Panel und aktualisiert es.
ReturnsNichts.
inkplate.image.draw(const char *path, int x, int y, bool dither = 1, bool invert = 0)returns boolZeichnet ein Bild an der Position x, y. Beginnt die Adresse mit http:// oder https://, lädt die Bibliothek die Datei herunter und wählt den Decoder anhand der Dateiendung (bmp, dib, jpg, jpeg oder png). Ohne dieses Präfix liest sie die Datei von der microSD-Karte. Der Sketch zeichnet zwei Bitmaps bei (0, 0) und ein JPG bei (0, 100), jeweils mit eingeschaltetem Dithering und ausgeschaltetem Invertieren. Bei eingeschaltetem Invertieren werden alle Farben des Bildes umgekehrt.
Returnstrue, wenn das Bild gezeichnet wurde, false, wenn es nicht geöffnet oder dekodiert werden konnte.
inkplate.println(text)returns size_tGibt Text in den Frame-Buffer aus und springt in die nächste Zeile. Der Sketch verwendet sie für die Fehlermeldung `Image open error`.
ReturnsAnzahl der ausgegebenen Bytes.
WiFi.mode(wifi_mode_t mode)returns boolESP32-Board-Paket: legt den WLAN-Modus fest. Der Sketch verwendet WIFI_MODE_STA, um sich mit einem Netzwerk zu verbinden, und am Ende WIFI_OFF, um das WLAN auszuschalten.
Returnstrue, wenn der Modus gesetzt wurde.
WiFi.begin(ssid, password)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.
Was Sie erwarten können
Der Bildschirm wird dreimal mit Bildern aktualisiert: zuerst die Schwarzweiß-Bitmap neowise_mono.bmp in der oberen linken Ecke, dann darüber die Farb-Bitmap neowise.bmp und, nach der Wartezeit von drei Sekunden, das JPG destination.jpg, 100 Pixel vom oberen Rand entfernt. Lässt sich ein Bild nicht öffnen, zeigt der Bildschirm Image open error an.
Der Sketch gibt seinen Fortschritt mit Serial.print() aus, ruft aber nie Serial.begin() auf. Er legt also selbst keine Baudrate fest.
🔗Vollständiges Beispiel öffnen
examples/Inkplate7SPECTRA/Advanced/WEB_WiFi/Inkplate7SPECTRA_Show_Pictures_From_Web