ESP32 Mini + 2.8 TFT Touch Ili9341 Linki bezpośrednie.

Adamo28
Posts: 175
Joined: Sun Nov 08, 2020 2:54 pm

Post

Swego czasu była partia Wemos D1 mini które miały podobne przypadłości, pomagał kondensator 470uF pomiędzy Gnd a 3.3V i działały dalej, ciężko powiedzieć czy regulator 3.3V niedomagał czy może esp pobierało więcej mA
BlueInsi
Posts: 21
Joined: Wed Dec 13, 2023 1:08 pm

Post

nowtech wrote: Thu May 09, 2024 8:10 pm Hejka, fajny projekt ale mam tez jeden problem, mianowicie program który wgrałem na esp32 dziala , wyswietla na wyswietlaczu tekst tylko po : nie wyswietla temperatury, w monitorze szeregowym normalnie odczytuje tylko na wyswietlaczu sie nie wyswietla temperatura
Hej, dzięki, u mnie też właśnie tak jest i nie wiem gdzie jeszcze mam problem... A dziś dopiero mam chwile by usiąść do tego :lol: jak coś wymyślę to wrzucę tu :)
BlueInsi
Posts: 21
Joined: Wed Dec 13, 2023 1:08 pm

Post

BlueInsi wrote: Wed May 15, 2024 6:50 pm
nowtech wrote: Thu May 09, 2024 8:10 pm Hejka, fajny projekt ale mam tez jeden problem, mianowicie program który wgrałem na esp32 dziala , wyswietla na wyswietlaczu tekst tylko po : nie wyswietla temperatury, w monitorze szeregowym normalnie odczytuje tylko na wyswietlaczu sie nie wyswietla temperatura
Hej, dzięki, u mnie też właśnie tak jest i nie wiem gdzie jeszcze mam problem... A dziś dopiero mam chwile by usiąść do tego :lol: jak coś wymyślę to wrzucę tu :)

Code: Select all

#include <Arduino.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include <TFT_eSPI.h>

#define TFT_WIDTH  240
#define TFT_HEIGHT 320

const char* ssid = "xxxx"; // Nazwa WiFi
const char* password = "xxxx"; // Hasło WiFi

const char* host1 = "svrxxxxx.supla.org";
const int httpsPort = 443;

const String url = "/direct/xxxx/read?format=json"; // Dodaj parametr format=json

#define LED_PIN 33

TFT_eSPI tft = TFT_eSPI();

void setup() {
  Serial.begin(115200);  // Ustawienie prędkości portu szeregowego
  tft.begin();
  tft.setRotation(1);
  tft.fillScreen(TFT_WHITE);
  pinMode(LED_PIN, OUTPUT);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Connecting to WiFi ..");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(1000);
  }
  Serial.println("\nConnected to WiFi");
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    WiFiClientSecure client;
    client.setInsecure(); // Zaufanie do dowolnego certyfikatu SSL (tylko do celów testowych)

    Serial.print("Connecting to ");
    Serial.println(host1);

    if (!client.connect(host1, httpsPort)) {
      Serial.println("Connection failed!");
      delay(1000);
      return;
    }

    // Tworzymy żądanie HTTP GET z dodanym nagłówkiem Accept: application/json
    client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                 "Host: " + host1 + "\r\n" +
                 "Accept: application/json\r\n" +  // Dodaj nagłówek Accept: application/json
                 "Connection: close\r\n\r\n");

    // Oczekujemy na odpowiedź z serwera
    unsigned long timeout = millis();
    while (client.connected() && millis() - timeout < 5000) {
      if (client.available()) {
        String line = client.readStringUntil('\n');
        Serial.println(line);  // Wyświetl linię odpowiedzi HTTP w monitorze szeregowym
        if (line == "\r") {
          break;
        }
      }
    }

    // Odczytujemy pozostałą część odpowiedzi (payload)
    String payload;
    while (client.available()) {
      payload += client.readString();
    }

    client.stop();

    Serial.println("Received payload:");
    Serial.println(payload);

    const size_t capacity = 2000; // Zwiększono rozmiar bufora
    DynamicJsonDocument doc(capacity);

    // Parsujemy tylko część JSON z odpowiedzi
    int jsonStartIndex = payload.indexOf('{');
    if (jsonStartIndex != -1) {
      String jsonString = payload.substring(jsonStartIndex);
      Serial.println("Extracted JSON:");
      Serial.println(jsonString); // Debug: Wyświetl wyodrębniony JSON

      DeserializationError error = deserializeJson(doc, jsonString);

      if (error) {
        Serial.print("deserializeJson() failed: ");
        Serial.println(error.c_str());
        return;
      }

      // Pokaż całą strukturę JSON
      serializeJsonPretty(doc, Serial);
      Serial.println();

      // Pobrane dane z JSON - spróbujmy znaleźć odpowiedni klucz
      float temperature = doc["temperature"];
      Serial.print("Temperature found: ");
      Serial.println(temperature);

      digitalWrite(LED_PIN, HIGH);

      tft.fillScreen(TFT_WHITE);
      tft.setCursor(0, 0);
      tft.setTextSize(2);
      tft.setTextColor(TFT_BLACK);
      tft.println("Supla Data:");
      tft.println("-----------------");
      tft.print("Temperature 1: ");
      tft.println(temperature);

      delay(500);

      digitalWrite(LED_PIN, LOW);
    } else {
      Serial.println("JSON not found in the payload");
    }
  } else {
    Serial.println("WiFi Disconnected");
    delay(1000);
  }
}
Pietras81
Posts: 1970
Joined: Sun Feb 17, 2019 6:56 am
Location: Osielsko

Post

BlueInsi wrote: Wed May 15, 2024 7:51 pm
BlueInsi wrote: Wed May 15, 2024 6:50 pm
nowtech wrote: Thu May 09, 2024 8:10 pm Hejka, fajny projekt ale mam tez jeden problem, mianowicie program który wgrałem na esp32 dziala , wyswietla na wyswietlaczu tekst tylko po : nie wyswietla temperatury, w monitorze szeregowym normalnie odczytuje tylko na wyswietlaczu sie nie wyswietla temperatura
Hej, dzięki, u mnie też właśnie tak jest i nie wiem gdzie jeszcze mam problem... A dziś dopiero mam chwile by usiąść do tego :lol: jak coś wymyślę to wrzucę tu :)

Code: Select all

#include <Arduino.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include <TFT_eSPI.h>

#define TFT_WIDTH  240
#define TFT_HEIGHT 320

const char* ssid = "xxxx"; // Nazwa WiFi
const char* password = "xxxx"; // Hasło WiFi

const char* host1 = "svrxxxxx.supla.org";
const int httpsPort = 443;

const String url = "/direct/xxxx/read?format=json"; // Dodaj parametr format=json

#define LED_PIN 33

TFT_eSPI tft = TFT_eSPI();

void setup() {
  Serial.begin(115200);  // Ustawienie prędkości portu szeregowego
  tft.begin();
  tft.setRotation(1);
  tft.fillScreen(TFT_WHITE);
  pinMode(LED_PIN, OUTPUT);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Connecting to WiFi ..");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(1000);
  }
  Serial.println("\nConnected to WiFi");
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    WiFiClientSecure client;
    client.setInsecure(); // Zaufanie do dowolnego certyfikatu SSL (tylko do celów testowych)

    Serial.print("Connecting to ");
    Serial.println(host1);

    if (!client.connect(host1, httpsPort)) {
      Serial.println("Connection failed!");
      delay(1000);
      return;
    }

    // Tworzymy żądanie HTTP GET z dodanym nagłówkiem Accept: application/json
    client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                 "Host: " + host1 + "\r\n" +
                 "Accept: application/json\r\n" +  // Dodaj nagłówek Accept: application/json
                 "Connection: close\r\n\r\n");

    // Oczekujemy na odpowiedź z serwera
    unsigned long timeout = millis();
    while (client.connected() && millis() - timeout < 5000) {
      if (client.available()) {
        String line = client.readStringUntil('\n');
        Serial.println(line);  // Wyświetl linię odpowiedzi HTTP w monitorze szeregowym
        if (line == "\r") {
          break;
        }
      }
    }

    // Odczytujemy pozostałą część odpowiedzi (payload)
    String payload;
    while (client.available()) {
      payload += client.readString();
    }

    client.stop();

    Serial.println("Received payload:");
    Serial.println(payload);

    const size_t capacity = 2000; // Zwiększono rozmiar bufora
    DynamicJsonDocument doc(capacity);

    // Parsujemy tylko część JSON z odpowiedzi
    int jsonStartIndex = payload.indexOf('{');
    if (jsonStartIndex != -1) {
      String jsonString = payload.substring(jsonStartIndex);
      Serial.println("Extracted JSON:");
      Serial.println(jsonString); // Debug: Wyświetl wyodrębniony JSON

      DeserializationError error = deserializeJson(doc, jsonString);

      if (error) {
        Serial.print("deserializeJson() failed: ");
        Serial.println(error.c_str());
        return;
      }

      // Pokaż całą strukturę JSON
      serializeJsonPretty(doc, Serial);
      Serial.println();

      // Pobrane dane z JSON - spróbujmy znaleźć odpowiedni klucz
      float temperature = doc["temperature"];
      Serial.print("Temperature found: ");
      Serial.println(temperature);

      digitalWrite(LED_PIN, HIGH);

      tft.fillScreen(TFT_WHITE);
      tft.setCursor(0, 0);
      tft.setTextSize(2);
      tft.setTextColor(TFT_BLACK);
      tft.println("Supla Data:");
      tft.println("-----------------");
      tft.print("Temperature 1: ");
      tft.println(temperature);

      delay(500);

      digitalWrite(LED_PIN, LOW);
    } else {
      Serial.println("JSON not found in the payload");
    }
  } else {
    Serial.println("WiFi Disconnected");
    delay(1000);
  }
}
Tak zapytam ten kod działa poprawnie ?? Chętnie też bym się pobawił takim wyświetlaczem.
https://pietras-81.aqi.eco/
BlueInsi
Posts: 21
Joined: Wed Dec 13, 2023 1:08 pm

Post

Tak zapytam ten kod działa poprawnie ?? Chętnie też bym się pobawił takim wyświetlaczem.

Obecnie pozmieniałem trochę, wyświetlam 8 wartości z linków bezpośrednim oraz przełączam ekrany na datę i godzinę, zwierając GPIO do masy...


Pobaw się na tym kodzie, tu trochę poprawek i odchudziłem go.. jak coś wymyślisz fajnego to pisz :D sam się bawię :D

Code: Select all

#include <Arduino.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include <TFT_eSPI.h>
#include <time.h>

#define TFT_WIDTH  240
#define TFT_HEIGHT 320
#define LED_PIN 33
#define GPIO_BUTTON 27 // Pin do przycisku

const char* ssid = "Nazwa WiFi";
const char* password = "hasło do WiFi";

const char* host1 = "svrXXX.supla.org";
const int httpsPort = 443;

const String urls[] = {
  "/direct/1141/abc12345/read?format=json", //1
  "/direct/1142/abc12345/read?format=json", //2
  "/direct/1143/abc12345/read?format=json", //3
  "/direct/1144/abc12345/read?format=json", //4
  "/direct/1145/abc12345/read?format=json", //5
  "/direct/1146/abc12345/read?format=json", //6
  "/direct/1147/abc12345/read?format=json", //7 
  "/direct/1148/abc12345/read?format=json" //8
};

float values[8] = {0}; // Tablica na wartości (temperatury i ciśnienie)

TFT_eSPI tft = TFT_eSPI();

int screen = 0; // 0 = ekrany wartości, 1 = czas i data
bool buttonPressed = false;

void setup() {
  Serial.begin(115200);
  tft.begin();
  tft.setRotation(1);
  tft.fillScreen(TFT_BLACK);
  pinMode(LED_PIN, OUTPUT);
  pinMode(GPIO_BUTTON, INPUT_PULLUP); // Wewnętrzny pull-up

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Łączenie z WiFi ..");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(1000);
  }
  Serial.println("\nPołączono z WiFi");

  configTime(0, 0, "pool.ntp.org", "time.nist.gov");
}

void loop() {
  // Sprawdź, czy przycisk został wciśnięty
  if (digitalRead(GPIO_BUTTON) == LOW) {
    if (!buttonPressed) {
      screen = (screen + 1) % 2; // Przełączaj między ekranami 0 i 1
      tft.fillScreen(TFT_BLACK);
      buttonPressed = true;
    }
  } else {
    buttonPressed = false;
  }

  if (WiFi.status() == WL_CONNECTED) {
    if (screen == 0) {
      for (int i = 0; i < 8; i++) {
        WiFiClientSecure client;
        client.setInsecure();

        const char* url = urls[i].c_str();

        Serial.print("Łączenie z ");
        Serial.println(host1);

        if (!client.connect(host1, httpsPort)) {
          Serial.println("Połączenie nieudane!");
          delay(1000);
          return;
        }

        client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                     "Host: " + host1 + "\r\n" +
                     "Accept: application/json\r\n" +
                     "Connection: close\r\n\r\n");

        unsigned long timeout = millis();
        while (client.connected() && millis() - timeout < 5000) {
          if (client.available()) {
            String line = client.readStringUntil('\n');
            Serial.println(line);
            if (line == "\r") {
              break;
            }
          }
        }

        String payload;
        while (client.available()) {
          payload += client.readString();
        }

        client.stop();

        Serial.println("Otrzymano dane:");
        Serial.println(payload);

        const size_t capacity = 1024;
        DynamicJsonDocument doc(capacity);

        int jsonStartIndex = payload.indexOf('{');
        if (jsonStartIndex != -1) {
          String jsonString = payload.substring(jsonStartIndex);
          Serial.println("Wyodrębniony JSON:");
          Serial.println(jsonString);

          DeserializationError error = deserializeJson(doc, jsonString);

          if (error) {
            Serial.print("deserializeJson() nie powiodło się: ");
            Serial.println(error.c_str());
            return;
          }

          serializeJsonPretty(doc, Serial);
          Serial.println();

          // Odczytanie wartości, zależnie od indeksu
          if (i == 5) {
            values[i] = doc["pressure"];
            Serial.print("Znaleziono wartość ciśnienia: ");
          } else {
            values[i] = doc["temperature"];
            Serial.print("Znaleziono wartość temperatury: ");
          }
          Serial.println(values[i], 4); // Wypisz wartość z dokładnością do 4 miejsc po przecinku

          digitalWrite(LED_PIN, HIGH);
          delay(500);
          digitalWrite(LED_PIN, LOW);
        } else {
          Serial.println("Nie znaleziono JSON w danych");
        }
      }

      // Wyczyść obszary, w których będą wyświetlane wartości
      tft.fillRect(0, 20, TFT_WIDTH, 160, TFT_BLACK);

      tft.setTextSize(2);
      tft.setTextColor(TFT_WHITE);

      for (int i = 0; i < 8; i++) {
        String text;
        if (i == 5) {
          text = "Cisnienie: " + String(values[i], 2) + " hPa";
          Serial.print("Wyświetlanie ciśnienia na TFT: ");
          Serial.println(text);
        } else {
          text = "Temp " + String(i + 1) + ": " + String(values[i], 2) + " C";
          Serial.print("Wyświetlanie temperatury na TFT: ");
          Serial.println(text);
        }
        int16_t textWidth = tft.textWidth(text, 2);
        int16_t x = (TFT_WIDTH - textWidth) / 2;
        int16_t y = 20 + i * 20; // Odstęp między wierszami 20 pikseli
        tft.setCursor(x, y);
        tft.println(text);
      }
    } else {
      updateDateTime();
    }
  } else {
    Serial.println("WiFi rozłączone");
    delay(1000);
  }
}

void updateDateTime() {
  time_t now = time(nullptr);
  struct tm* timeinfo = localtime(&now);

  tft.setTextSize(3);
  tft.setTextColor(TFT_WHITE);

  char timeString[12];
  strftime(timeString, sizeof(timeString), "%H:%M:%S", timeinfo);
  String timeText = "Czas: " + String(timeString);

  char dateString[11];
  strftime(dateString, sizeof(dateString), "%d-%m-%Y", timeinfo);
  String dateText = "Data: " + String(dateString);

  int16_t timeWidth = tft.textWidth(timeText, 4);
  int16_t dateWidth = tft.textWidth(dateText, 4);

  int16_t timeX = (TFT_WIDTH - timeWidth) / 2;
  int16_t dateX = (TFT_WIDTH - dateWidth) / 2;

  int16_t timeY = (TFT_HEIGHT - 48) / 2;
  int16_t dateY = timeY + 32;

  tft.fillScreen(TFT_BLACK);
  tft.setCursor(timeX, timeY);
  tft.println(timeText);
  tft.setCursor(dateX, dateY);
  tft.println(dateText);
}
Pietras81
Posts: 1970
Joined: Sun Feb 17, 2019 6:56 am
Location: Osielsko

Post

BlueInsi wrote: Tue May 21, 2024 4:35 pm
Tak zapytam ten kod działa poprawnie ?? Chętnie też bym się pobawił takim wyświetlaczem.

Obecnie pozmieniałem trochę, wyświetlam 8 wartości z linków bezpośrednim oraz przełączam ekrany na datę i godzinę, zwierając GPIO do masy...


Pobaw się na tym kodzie, tu trochę poprawek i odchudziłem go.. jak coś wymyślisz fajnego to pisz :D sam się bawię :D

Code: Select all

#include <Arduino.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include <TFT_eSPI.h>
#include <time.h>

#define TFT_WIDTH  240
#define TFT_HEIGHT 320
#define LED_PIN 33
#define GPIO_BUTTON 27 // Pin do przycisku

const char* ssid = "Nazwa WiFi";
const char* password = "hasło do WiFi";

const char* host1 = "svrXXX.supla.org";
const int httpsPort = 443;

const String urls[] = {
  "/direct/1141/abc12345/read?format=json", //1
  "/direct/1142/abc12345/read?format=json", //2
  "/direct/1143/abc12345/read?format=json", //3
  "/direct/1144/abc12345/read?format=json", //4
  "/direct/1145/abc12345/read?format=json", //5
  "/direct/1146/abc12345/read?format=json", //6
  "/direct/1147/abc12345/read?format=json", //7 
  "/direct/1148/abc12345/read?format=json" //8
};

float values[8] = {0}; // Tablica na wartości (temperatury i ciśnienie)

TFT_eSPI tft = TFT_eSPI();

int screen = 0; // 0 = ekrany wartości, 1 = czas i data
bool buttonPressed = false;

void setup() {
  Serial.begin(115200);
  tft.begin();
  tft.setRotation(1);
  tft.fillScreen(TFT_BLACK);
  pinMode(LED_PIN, OUTPUT);
  pinMode(GPIO_BUTTON, INPUT_PULLUP); // Wewnętrzny pull-up

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Łączenie z WiFi ..");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(1000);
  }
  Serial.println("\nPołączono z WiFi");

  configTime(0, 0, "pool.ntp.org", "time.nist.gov");
}

void loop() {
  // Sprawdź, czy przycisk został wciśnięty
  if (digitalRead(GPIO_BUTTON) == LOW) {
    if (!buttonPressed) {
      screen = (screen + 1) % 2; // Przełączaj między ekranami 0 i 1
      tft.fillScreen(TFT_BLACK);
      buttonPressed = true;
    }
  } else {
    buttonPressed = false;
  }

  if (WiFi.status() == WL_CONNECTED) {
    if (screen == 0) {
      for (int i = 0; i < 8; i++) {
        WiFiClientSecure client;
        client.setInsecure();

        const char* url = urls[i].c_str();

        Serial.print("Łączenie z ");
        Serial.println(host1);

        if (!client.connect(host1, httpsPort)) {
          Serial.println("Połączenie nieudane!");
          delay(1000);
          return;
        }

        client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                     "Host: " + host1 + "\r\n" +
                     "Accept: application/json\r\n" +
                     "Connection: close\r\n\r\n");

        unsigned long timeout = millis();
        while (client.connected() && millis() - timeout < 5000) {
          if (client.available()) {
            String line = client.readStringUntil('\n');
            Serial.println(line);
            if (line == "\r") {
              break;
            }
          }
        }

        String payload;
        while (client.available()) {
          payload += client.readString();
        }

        client.stop();

        Serial.println("Otrzymano dane:");
        Serial.println(payload);

        const size_t capacity = 1024;
        DynamicJsonDocument doc(capacity);

        int jsonStartIndex = payload.indexOf('{');
        if (jsonStartIndex != -1) {
          String jsonString = payload.substring(jsonStartIndex);
          Serial.println("Wyodrębniony JSON:");
          Serial.println(jsonString);

          DeserializationError error = deserializeJson(doc, jsonString);

          if (error) {
            Serial.print("deserializeJson() nie powiodło się: ");
            Serial.println(error.c_str());
            return;
          }

          serializeJsonPretty(doc, Serial);
          Serial.println();

          // Odczytanie wartości, zależnie od indeksu
          if (i == 5) {
            values[i] = doc["pressure"];
            Serial.print("Znaleziono wartość ciśnienia: ");
          } else {
            values[i] = doc["temperature"];
            Serial.print("Znaleziono wartość temperatury: ");
          }
          Serial.println(values[i], 4); // Wypisz wartość z dokładnością do 4 miejsc po przecinku

          digitalWrite(LED_PIN, HIGH);
          delay(500);
          digitalWrite(LED_PIN, LOW);
        } else {
          Serial.println("Nie znaleziono JSON w danych");
        }
      }

      // Wyczyść obszary, w których będą wyświetlane wartości
      tft.fillRect(0, 20, TFT_WIDTH, 160, TFT_BLACK);

      tft.setTextSize(2);
      tft.setTextColor(TFT_WHITE);

      for (int i = 0; i < 8; i++) {
        String text;
        if (i == 5) {
          text = "Cisnienie: " + String(values[i], 2) + " hPa";
          Serial.print("Wyświetlanie ciśnienia na TFT: ");
          Serial.println(text);
        } else {
          text = "Temp " + String(i + 1) + ": " + String(values[i], 2) + " C";
          Serial.print("Wyświetlanie temperatury na TFT: ");
          Serial.println(text);
        }
        int16_t textWidth = tft.textWidth(text, 2);
        int16_t x = (TFT_WIDTH - textWidth) / 2;
        int16_t y = 20 + i * 20; // Odstęp między wierszami 20 pikseli
        tft.setCursor(x, y);
        tft.println(text);
      }
    } else {
      updateDateTime();
    }
  } else {
    Serial.println("WiFi rozłączone");
    delay(1000);
  }
}

void updateDateTime() {
  time_t now = time(nullptr);
  struct tm* timeinfo = localtime(&now);

  tft.setTextSize(3);
  tft.setTextColor(TFT_WHITE);

  char timeString[12];
  strftime(timeString, sizeof(timeString), "%H:%M:%S", timeinfo);
  String timeText = "Czas: " + String(timeString);

  char dateString[11];
  strftime(dateString, sizeof(dateString), "%d-%m-%Y", timeinfo);
  String dateText = "Data: " + String(dateString);

  int16_t timeWidth = tft.textWidth(timeText, 4);
  int16_t dateWidth = tft.textWidth(dateText, 4);

  int16_t timeX = (TFT_WIDTH - timeWidth) / 2;
  int16_t dateX = (TFT_WIDTH - dateWidth) / 2;

  int16_t timeY = (TFT_HEIGHT - 48) / 2;
  int16_t dateY = timeY + 32;

  tft.fillScreen(TFT_BLACK);
  tft.setCursor(timeX, timeY);
  tft.println(timeText);
  tft.setCursor(dateX, dateY);
  tft.println(dateText);
}
Dzięki już zamówiłem sobie wyświetlacz a zapytam kod jest pod wemosa czy esp 32 nie ukrywam ze ja tylko potrafie wgrac dlatego zadaję durne pytania.
https://pietras-81.aqi.eco/
lukasz06
Posts: 1003
Joined: Sun Jul 17, 2022 6:53 pm

Post

Chyba esp32. Też będę testował, już mam 😁
BlueInsi
Posts: 21
Joined: Wed Dec 13, 2023 1:08 pm

Post

lukasz06 wrote: Wed May 22, 2024 2:24 pm Chyba esp32. Też będę testował, już mam 😁
Tak, ja to wrzucam na Esp32 Mini :)
Pietras81
Posts: 1970
Joined: Sun Feb 17, 2019 6:56 am
Location: Osielsko

Post

BlueInsi wrote: Thu May 23, 2024 10:30 am
lukasz06 wrote: Wed May 22, 2024 2:24 pm Chyba esp32. Też będę testował, już mam 😁
Tak, ja to wrzucam na Esp32 Mini :)
Masz na myśli Esp mini S2 mogę poprosić jeszcze jakiś schemat jak podłączyć esp z wyświetlaczem ??
https://pietras-81.aqi.eco/
BlueInsi
Posts: 21
Joined: Wed Dec 13, 2023 1:08 pm

Post

Pietras81 wrote: Thu May 23, 2024 12:40 pm
BlueInsi wrote: Thu May 23, 2024 10:30 am
lukasz06 wrote: Wed May 22, 2024 2:24 pm Chyba esp32. Też będę testował, już mam 😁
Tak, ja to wrzucam na Esp32 Mini :)
Masz na myśli Esp mini S2 mogę poprosić jeszcze jakiś schemat jak podłączyć esp z wyświetlaczem ??

Nie, Esp32 mini D1 :) ale to bez różnicy jakiego użyjesz. Piny definiujesz w bibliotece bądź wpisujesz takie jak masz w bibliotece tylko musisz „odkomentować” odpowiednią opcję. Podpinasz normalnie pod odpowiednie piny wyświetlacza i esp :)

Return to “Pomoc”