Wi-Fi i HTTP zahtjev
Što ovaj primjer prikazuje
Skenira Wi-Fi mreže i ispisuje ih na zaslonu, spaja se na vašu mrežu, zatim preuzima web-stranicu i ispisuje njezin neobrađeni HTML na zaslonu. Skica ne analizira HTML; prikazuje ga kao tekst.
Prije prijenosa upišite naziv svoje mreže i lozinku između navodnika u definicijama ssid i pass. Za dohvaćanje druge stranice promijenite adresu koju skica prosljeđuje funkciji http.begin().
Ovaj primjer koristi i WiFi i HTTPClient (arduino-esp32), koji nisu dio biblioteke Inkplate i dolaze s paketom pločice ESP32.
Primjer koda
#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
}
Korištene funkcije
Inkplate()returns NoneStvara objekt Inkplate. Inkplate 7SPECTRA ima jedan šestobojni način rada, pa konstruktor ne prima argument načina rada (komentar o 1-bitnom načinu potječe od drugih pločica Inkplate).
ReturnsKonstruktor; nema povratne vrijednosti.
inkplate.begin()returns voidInicijalizira biblioteku, periferiju i međuspremnik slike. Pozovite je jednom u setup().
ReturnsNišta.
inkplate.clearDisplay()returns voidIspunjava međuspremnik slike bijelom bojom. Ne mijenja prikaz na panelu.
ReturnsNišta.
inkplate.display(bool _leaveOn = 0)returns voidŠalje cijeli međuspremnik slike na panel i osvježava ga.
ReturnsNišta.
inkplate.setTextSize(uint8_t s)returns voidPostavlja povećanje teksta, ovdje 3.
ReturnsNišta.
inkplate.setCursor(int16_t x, int16_t y)returns voidPostavlja mjesto na kojem počinje sljedeći ispisani tekst, ovdje gornji lijevi kut.
ReturnsNišta.
inkplate.setTextColor(uint16_t c)returns voidPostavlja boju teksta, ovdje INKPLATE_BLACK.
ReturnsNišta.
inkplate.print(value, format)returns size_tIspisuje tekst, znak ili broj u međuspremnik slike, poput Serial.print(). DEC ispisuje broj u decimalnom zapisu.
ReturnsBroj ispisanih bajtova.
WiFi.scanNetworks()returns int16_tPaket pločice ESP32: skenira Wi-Fi mreže i čeka rezultat.
ReturnsBroj pronađenih mreža.
WiFi.SSID(uint8_t i)returns StringPaket pločice ESP32: naziv mreže i iz zadnjeg skeniranja.
ReturnsNaziv mreže.
WiFi.encryptionType(uint8_t i)returns wifi_auth_mode_tPaket pločice ESP32: enkripcija mreže i; WIFI_AUTH_OPEN znači bez lozinke. Skica ispisuje O za otvorene mreže, a * za ostale.
ReturnsVrsta enkripcije.
WiFi.RSSI(uint8_t i)returns int32_tPaket pločice ESP32: jačina signala mreže i, u dBm.
ReturnsJačina signala.
WiFi.begin(ssid, pass)returns wl_status_tPaket pločice ESP32: počinje spajanje na mrežu.
ReturnsStatus veze.
WiFi.status()returns wl_status_tPaket pločice ESP32: status veze; WL_CONNECTED nakon spajanja.
ReturnsStatus veze.
HTTPClient()returns NoneKlasa HTTPClient, paket pločice ESP32: objekt HTTP klijenta. Skica ga stvara kao `http`.
ReturnsKonstruktor; nema povratne vrijednosti.
http.begin(url)returns boolHTTPClient, paket pločice ESP32: priprema zahtjev za zadani URL.
Returnstrue ako se URL mogao analizirati.
http.GET()returns intHTTPClient: šalje GET zahtjev.
ReturnsHTTP statusni kôd ili negativan kôd pogreške.
http.getString()returns StringHTTPClient: čita cijelo tijelo odgovora.
ReturnsTijelo odgovora.
Što očekivati
Zaslon prvo ispisuje do 10 pronađenih mreža, svaku s nazivom, oznakom O (otvorena) ili * (zaštićena lozinkom) i jačinom signala. Kad je pločica na vašoj mreži, zaslon se ponovno osvježi i prikazuje HTML stranice kao tekst. Serijski monitor pri 115200 baud prikazuje Scanning for WiFi networks..., zatim Connecting to s nazivom vaše mreže, točku svake sekunde tijekom spajanja i connected.
🔗Otvorite cjelovit primjer
examples/Inkplate7SPECTRA/Advanced/WEB_WiFi/Inkplate7SPECTRA_HTTP_Request