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

BlueInsi
Posts: 23
Joined: Wed Dec 13, 2023 1:08 pm

Post

Hej, mam problem z wyświetlaniem jakichkolwiek informacji na wyświetlaczu - link odczytuje lecz nie wyświetla się nic. Może ktoś coś doradzić? VCC -VCC, GND- GND, oraz VCC-LED reszta według kodu... Ekran podświetla się tylko na biało.

Code: Select all

#include <Arduino.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include <SPI.h>
#include <TFT_eSPI.h>

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

const char* host1 = "Link odczyt"; // Supla Direct Link Temp

// Piny TFT
#define TFT_CS   27
#define TFT_DC   25
#define TFT_RST  32

// Piny SPI
#define PIN_MOSI 23 // GPIO 23
#define PIN_MISO 19 // GPIO 19
#define PIN_SCK 18  // GPIO 18

TFT_eSPI tft = TFT_eSPI();

void setup() {
  Serial.begin(115200);
  
  // Initialize TFT display
  tft.begin();
  tft.setRotation(1);
  tft.fillScreen(TFT_BLACK);

  // Initialize SPI interface
  SPI.begin(PIN_SCK, PIN_MISO, PIN_MOSI);

  // Connect to Wi-Fi
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Connecting to WiFi ..");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(1000);
  }
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    // Make HTTP GET request
    HTTPClient http;
    http.begin(host1);

    int httpResponseCode = http.GET();
    if (httpResponseCode > 0) {
      String payload = http.getString();

      // Parse JSON
      const size_t capacity = JSON_OBJECT_SIZE(3) + 50;
      DynamicJsonDocument doc(capacity);
      deserializeJson(doc, payload);

      // Extract data from JSON
      const char* temp1 = doc["temp1"];
      

      // Display data on TFT
      tft.fillScreen(TFT_BLACK);
      tft.setCursor(0, 0);
      tft.setTextSize(2);
      tft.setTextColor(TFT_BLACK); // Zmiana koloru napisów na czarny
      tft.println("Supla Data:");
      tft.println("-----------------");
      tft.print("Temperature 1: ");
      tft.println(temp1);
      
    } else {
      Serial.print("Error in HTTP request. Error code: ");
      Serial.println(httpResponseCode);
    }

    http.end();
  } else {
    Serial.println("WiFi Disconnected");
  }

  delay(5000); // Wait for 5 seconds before making the next request
}
Adamo28
Posts: 179
Joined: Sun Nov 08, 2020 2:54 pm

Post

Hej, w tej bibliotece trzeba edytować plik User_Setup.h i tam podać jaki wyświetlacz i pinologię. Dodatkowo ustalasz kolor tła na czarny
i potem drukujesz czarnymi literami, więc średnio będzie to widać, daj w setup na końcu tft.setSwapBytes(true); i nie inicjiuj SPI, biblioteka zdaje się sama to robi.
BlueInsi
Posts: 23
Joined: Wed Dec 13, 2023 1:08 pm

Post

Poprawiłem i dopisałem w bibliotece odpowiednie piny, których użyłem. Z kolorami bawiłem się ponieważ żadnej zmiany nic nie wnosiło... obecnie kod przedstawia się tak

Code: Select all

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

#define TFT_WIDTH  240
#define TFT_HEIGHT 320

const char* ssid = "T7"; // Nazwa WiFi
const char* password = "T1"; // Hasło Wifi

const char* host1 = "https://"; // Supla Direct Link Temp



// Pin sterujący podświetleniem
#define LED_PIN 33 // Wybierz odpowiedni pin GPIO na ESP32

TFT_eSPI tft = TFT_eSPI();

void setup() {
  Serial.begin(115200);
  
  // Initialize TFT display
  tft.begin();
  tft.setRotation(1);
  tft.fillScreen(TFT_WHITE);

  // Inicjalizacja pinu LED jako wyjście
  pinMode(LED_PIN, OUTPUT);

  // Connect to Wi-Fi
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Connecting to WiFi ..");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(1000);
  }
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    // Make HTTP GET request
    HTTPClient http;
    http.begin(host1);

    int httpResponseCode = http.GET();
    if (httpResponseCode > 0) {
      String payload = http.getString();
      Serial.println("Received JSON: " + payload); // Wyświetl otrzymane dane JSON w konsoli

      // Parse JSON
      const size_t capacity = JSON_OBJECT_SIZE(3) + 50;
      DynamicJsonDocument doc(capacity);
      deserializeJson(doc, payload);

      // Extract data from JSON
      const char* temp1 = doc["temp1"];
      
      // Ustawienie jasności podświetlenia na 100% przez 1 sekundę
      analogWrite(LED_PIN, 255); // Wartość PWM od 0 do 255 (100% jasności)
      delay(1000); // Czekaj 1 sekundę

      // Ustawienie jasności podświetlenia na 50%
      analogWrite(LED_PIN, 128); // Wartość PWM od 0 do 255 (50% jasności)

      // Display data on TFT
      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(temp1);
      
    } else {
      Serial.print("Error in HTTP request. Error code: ");
      Serial.println(httpResponseCode);
    }

    http.end();
  } else {
    Serial.println("WiFi Disconnected");
  }

  delay(15000); // Wait for 15 seconds before making the next request
}
W monitorze szeregowym odczytuje bez problemu, lecz ekran nadal nic nie wyświetla...
Adamo28
Posts: 179
Joined: Sun Nov 08, 2020 2:54 pm

Post

Hej, ustawienie kursora przyjmuje 3 parametry, zrób tak:

Code: Select all

// Display data on TFT
      tft.fillScreen(TFT_WHITE);
      tft.setCursor(0, 0, 2);
      tft.setTextSize(2);
      tft.setTextColor(TFT_BLACK);
      tft.println("Supla Data:");
      tft.println("-----------------");
      tft.print("Temperature 1: ");
      tft.println(temp1);
Zobacz w przykładach biblioteki tft.drawString i tft.drawCentreString, jak będziesz nadal miał biały ekran wklej plik setup.
radzik_r
Posts: 425
Joined: Sun Aug 11, 2019 5:32 pm

Post

Przetestuj polaczenie na bibliotece adafruit. Tam są proste przykłady. Jak uruchomisz na adafruit to wtedy masz pewność że jest wszystko ok i można działać na tftesp
Last edited by radzik_r on Tue May 07, 2024 11:47 am, edited 1 time in total.
BlueInsi
Posts: 23
Joined: Wed Dec 13, 2023 1:08 pm

Post

Oki, obecnie jest tak, że coś chce wyświetlić lecz co odświeżenie to jakieś dziwne znaczki, testowy szkic z biblioteki załącza się lecz nie za każdym razem np - co 4/7 raz jak się uruchomi esp... połączenia pewne - lutowane, napięcie jest odpowiednie piny dopisane również dobrze...
Leszekbialy
Posts: 121
Joined: Fri Apr 06, 2018 9:29 pm

Post

A jak zasilasz układ. Miałem już że 3 ESP wrażliwe na zasilanie, układy nie wyświetlały treści i zawieszały sie.
nowtech
Posts: 3
Joined: Mon May 06, 2024 4:54 pm

Post

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
BlueInsi
Posts: 23
Joined: Wed Dec 13, 2023 1:08 pm

Post

Leszekbialy wrote: Wed May 08, 2024 11:20 am A jak zasilasz układ. Miałem już że 3 ESP wrażliwe na zasilanie, układy nie wyświetlały treści i zawieszały sie.
zasilałem z ładowarki usb 100W... :/
Leszekbialy
Posts: 121
Joined: Fri Apr 06, 2018 9:29 pm

Post

BlueInsi wrote: Mon May 13, 2024 7:27 pm
Leszekbialy wrote: Wed May 08, 2024 11:20 am A jak zasilasz układ. Miałem już że 3 ESP wrażliwe na zasilanie, układy nie wyświetlały treści i zawieszały sie.
zasilałem z ładowarki usb 100W... :/
U mnie problemem było napięcie, dopiero jak dołożyłem przetwornicę i obniżyłem do 4,9V skończyły się problemy z chińskim ESP.

Return to “Pomoc”