126 lines
4.8 KiB
C++
126 lines
4.8 KiB
C++
/*
|
|
Web_BMP_pictures example for e-radionica Inkplate6
|
|
For this example you will need a micro USB cable, Inkplate6, and an available WiFi connection.
|
|
Select "Inkplate 6(ESP32)" from Tools -> Board menu.
|
|
Don't have "Inkplate 6(ESP32)" option? Follow our tutorial and add it:
|
|
https://e-radionica.com/en/blog/add-inkplate-6-to-arduino-ide/
|
|
|
|
You can open .bmp files that have color depth of 1 bit (BW bitmap), 4 bit, 8 bit and
|
|
24 bit AND have resoluton smaller than 800x600 or otherwise it won't fit on screen.
|
|
|
|
This example will show you how you can download a .bmp file (picture) from the web and
|
|
display that image on e-paper display.
|
|
|
|
Want to learn more about Inkplate? Visit www.inkplate.io
|
|
Looking to get support? Write on our forums: http://forum.e-radionica.com/en/
|
|
23 July 2020 by e-radionica.com
|
|
*/
|
|
|
|
#include "HTTPClient.h" //Include library for HTTPClient
|
|
#include "Inkplate.h" //Include Inkplate library to the sketch
|
|
#include "WiFi.h" //Include library for WiFi
|
|
Inkplate display(INKPLATE_1BIT); // 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()
|
|
{
|
|
display.begin(); // Init Inkplate library (you should call this function ONLY ONCE)
|
|
display.clearDisplay(); // Clear frame buffer of display
|
|
display.display(); // Put clear image on display
|
|
|
|
display.print("Connecting to WiFi...");
|
|
display.partialUpdate();
|
|
|
|
// Connect to the WiFi network.
|
|
WiFi.mode(WIFI_MODE_STA);
|
|
WiFi.begin(ssid, password);
|
|
while (WiFi.status() != WL_CONNECTED)
|
|
{
|
|
delay(500);
|
|
display.print(".");
|
|
display.partialUpdate();
|
|
}
|
|
display.println("\nWiFi OK! Downloading...");
|
|
display.partialUpdate();
|
|
|
|
// 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 (!display.drawImage("https://varipass.org/neowise_mono.bmp", 0, 0, false, true))
|
|
{
|
|
// 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!
|
|
display.println("Image open error");
|
|
display.display();
|
|
}
|
|
display.display();
|
|
|
|
// Draw the second image from web, this time using a HTTPClient to fetch the response manually.
|
|
// Full color 24 bit images are large and take a long time to load, will take around 20 secs.
|
|
HTTPClient http;
|
|
// Set parameters to speed up the download process.
|
|
http.getStream().setNoDelay(true);
|
|
http.getStream().setTimeout(1);
|
|
|
|
// Photo taken by: Roberto Fernandez
|
|
http.begin("https://varipass.org/neowise.bmp");
|
|
|
|
// Check response code.
|
|
int httpCode = http.GET();
|
|
if (httpCode == 200)
|
|
{
|
|
// Get the response length and make sure it is not 0.
|
|
int32_t len = http.getSize();
|
|
if (len > 0)
|
|
{
|
|
if (!display.drawBitmapFromWeb(http.getStreamPtr(), 0, 0, len))
|
|
{
|
|
// 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!
|
|
display.println("Image open error");
|
|
display.display();
|
|
}
|
|
display.display();
|
|
}
|
|
else
|
|
{
|
|
display.println("Invalid response length");
|
|
display.display();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
display.println("HTTP error");
|
|
display.display();
|
|
}
|
|
|
|
display.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 (!display.drawImage("https://varipass.org/destination.jpg", 0, 100, true, false))
|
|
{
|
|
// If is something failed (wrong filename or format), write error message on the screen.
|
|
display.println("Image open error");
|
|
display.display();
|
|
}
|
|
display.display();
|
|
|
|
http.end();
|
|
|
|
WiFi.mode(WIFI_OFF);
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
// Nothing...
|
|
}
|