Skip to main content

Mapbox map

Što ovaj primjer prikazuje​

Povežite se na Wi-Fi, preuzmite statičku sliku karte iz usluge Mapbox Static Images za pravokutnik koordinata koji odaberete, nacrtajte je na zaslonu i prijeđite u duboki san na 5 minuta. Nakon buđenja pločica ponovno pokreće skicu i osvježava kartu.

Prije prijenosa:

  1. Upišite naziv svoje mreže i lozinku između navodnika kod ssid i pass.
  2. Nabavite API ključ na mapbox.com i upišite ga između navodnika kod API_KEY.
  3. Postavite LAT1, LON1, LAT2 i LON2 na kutove područja koje želite nacrtati. Komentar u skici predlaže bboxfinder.com za pronalaženje koordinata.

Ovaj primjer koristi i funkcije dubokog sna za ESP32 (arduino-esp32), koje nisu dio Inkplate biblioteke i dolaze s paketom za ESP32 pločicu.

Primjer koda​

Select Board
Inkplate7SPECTRA_Mapbox_API.ino
#include "Inkplate.h"

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

// Fill in these using api key from https://www.mapbox.com/ and coordinates you want to draw
// http://bboxfinder.com/ might help you :)
#define API_KEY ""
#define LAT1 18.679247
#define LON1 45.543870
#define LAT2 18.715210
#define LON2 45.562021

// Refresh time
#define DELAY_MS 5 * 60 * 1000

Inkplate inkplate;

void setup()
{
Serial.begin(115200); // Initialize serial
inkplate.begin(); // Initialize display

// Connect to WiFi
while (!inkplate.connectWiFi(ssid, pass))
{
Serial.println("Connecting to wifi");
}

// Format URL string
char URL[256];
sprintf(URL, "https://api.mapbox.com/styles/v1/mapbox/navigation-day-v1/static/[%lf,%lf,%lf,%lf]/600x448?access_token=%s", LAT1, LON1, LAT2, LON2, API_KEY);

Serial.println("Fetching:");
Serial.println(URL);

// Fetch and display image
inkplate.image.draw(URL, 0, 0, true, false);
inkplate.display();

// Go to sleep for DELAY_MS
esp_sleep_enable_timer_wakeup(1000L * DELAY_MS);

// Start deep sleep (this function does not return). Program stops here.
esp_deep_sleep_start();
}

void loop()
{
// Never here! If you are using deep sleep, the whole program should be in setup() because the board restarts each
// time. loop() must be empty!
}

Korištene funkcije​

Inkplate()returns None

Stvara objekt Inkplate. Inkplate 7SPECTRA ima jedan šestobojni način rada, pa konstruktor ne prima argument načina rada.

ReturnsKonstruktor; nema povratne vrijednosti.

inkplate.begin()returns void

Inicijalizira biblioteku, periferiju i međuspremnik slike. Pozovite je jednom u setup().

ReturnsNišta.

inkplate.connectWiFi(const char *ssid, const char *pass, int timeout = 23, bool printToSerial = false)returns bool

Povezuje se na Wi-Fi mrežu u načinu stanice. Provjerava vezu jednom u sekundi i odustaje nakon isteka vremena, prema zadanim postavkama 23 sekunde. Kada je printToSerial postavljen na true, ispisuje svoj napredak na serijski monitor, za što je prvo potreban Serial.begin(). Skica ponavlja poziv dok ne uspije.

Returnstrue ako je povezano, false ako je isteklo vrijeme.

inkplate.image.draw(const char *path, int x, int y, bool dither = 1, bool invert = 0)returns bool

Crta sliku na položaju x, y. Kada adresa počinje s http:// ili https://, biblioteka preuzima datoteku i bira dekoder prema ekstenziji datoteke (bmp, dib, jpg, jpeg ili png). Skica joj predaje Mapbox adresu, položaj (0, 0), uključeno dithering i isključeno invertiranje.

Returnstrue ako je slika nacrtana, false ako se nije mogla otvoriti ili dekodirati.

inkplate.display(bool _leaveOn = 0)returns void

Šalje cijeli međuspremnik slike na panel i osvježava ga.

ReturnsNišta.

esp_sleep_enable_timer_wakeup(uint64_t time_in_us)returns esp_err_t

Paket za ESP32 pločicu: budi čip iz dubokog sna nakon zadanog vremena u mikrosekundama. Skica predaje 1000 × DELAY_MS, što iznosi 5 minuta.

ReturnsESP_OK u slučaju uspjeha.

esp_deep_sleep_start()returns void

Paket za ESP32 pločicu: prelazi u duboki san. Ne vraća se; sljedeće buđenje pokreće skicu od početka, zbog čega loop() ostaje prazan.

ReturnsNe vraća se.

Što očekivati​

Serijski monitor na 115200 baud ispisuje Connecting to wifi svaki put kad pokušaj povezivanja ne uspije, zatim Fetching: iza kojeg slijedi puna adresa koju je zatražio. Zatim se zaslon osvježi i prikaže preuzetu kartu u gornjem lijevom kutu. Nakon 5 minuta pločica se budi i ponavlja postupak.

🔗Otvorite cijeli primjer

examples/Inkplate7SPECTRA/Diagnostics/Inkplate7SPECTRA_Mapbox_API

→