Давно хотел дисплей для Arduino устройств, побольше чем имеющийся OLED 0,91. И когда появилась возможность приобрести дисплей 2.0 дюйма с разрешением 240×320, незамедлительно это сделал. Дальше встал вопрос его подключения…. И вот когда начал изучать варианты его подключения, столкнулся с тем, что материалов в сети вроде и много, но конкретно свой подключить никак не получалось еще и конкретно к ESP32-C3 SuperMini. В конечном итоге дисплей был подключен, возник вопрос с выводом изображения, так как всякие Adafruit попросту не давали ничего вывести. В отзывах к дисплею прочитал про TFT_eSPI и вот уже используя библиотеку TFT_eSPI все наконец-то заработало.
В качестве памятки как для себя, так и для тех, кому попадется в руки этот дисплей и плата ESP32-C3 SuperMini (другие наверняка тоже подойдут), этот пост небольшая подсказка как это можно реализовать.
Для начала работы с кодом, необходимо через менеджер библиотек в Arduino IDE найти и установить библиотеку TFT_eSPI (от Bodmer)
В пустом скетче, в самом начале добавляем библиотеку
#include <TFT_eSPI.h>
инициализируем ее добавив немногим ниже:
TFT_eSPI tft = TFT_eSPI();
В общем итоге у вас должно быть что-то вроде:
#include
TFT_eSPI tft = TFT_eSPI();
void setup(void) {
Serial.begin(115200);
delay(1000);
tft.begin();
tft.setRotation(1);
tft.fillScreen(TFT_BLACK);
tft.setCursor(0, 0);
tft.setTextColor(TFT_WHITE);
tft.setTextSize(2);
tft.setTextFont(2);
tft.println("Hello World!");
}
void loop() { }
// здесь ничего не нужно делать, просто вывести сообщение "Hello World!"
TFT_eSPI tft = TFT_eSPI(); — создает экземпляр класса TFT_eSPI, который используется для взаимодействия с TFT-дисплеем.
tft.begin(); — инициализирует TFT-дисплей.
tft.fillScreen(TFT_BLACK); — заливаем все черным цветом
tft.setCursor(0, 0); — устанавливает положение курсора в верхнем левом углу экрана.
tft.setTextColor(TFT_WHITE); — устанавливаем белый цвет текста.
tft.setTextSize(2); — устанавливаем размер текста на 2, что означает, что текст будет отображаться средним размером.
tft.setTextFont(2); — устанавливает шрифт текста под номером 2, который определяет стиль и внешний вид текста.
tft.println(«Hello World!»); — выводит на экран сообщение «Hello World!».
Касательно выставления ориентация экрана, смотрим в справке: tft.setRotation(1);
0: — Без вращения
1: — Поворот на 90 градусов по часовой стрелке
2: — Поворот на 180 градусов
3: — Поворот на 270 градусов по часовой стрелке
Далее, после загрузки скетча в устройство, чтобы увидеь конечный результат, необходимо подключить сам дисплей. Сделать это можно воспользовавшись следующей схемой подключения:
* Картинка кликабельна, а в конце поста есть дополнительная ссылка на online схему
Если все хорошо, то после включения вы должны увидеть на экране «Hello World!»
В целом это довольно интересный дисплей, а TFT_eSPI интересная библиотека, которая позволяет выводить текст, рисовать треугольники, квадраты, круги или рисовать попиксельно. При желании можно использовать свои шрифты или даже выводить картинки, но для всего этого необходимо, очень внимательно изучать справочные данные по библиотеке, смотреть готовые примеры и уже дальше самостоятельно, методом проб и ошибок, реализовывать нужный вам функционал.
В моем варианте использования, на экран выводится значения текущей температуры и влажности с конкретного датчика, которые запрашиваются через запрос с удаленного сервера. Сравниваются новые и старые значения и в зависимости от этого выводится индикация, выросла или понизилась температура. Так же выводится индикация успешности подключения ESP32-C3 к ближайшей точке WiFi. А в связи с тем, что подключен еще и фоторезистор, выводятся его значения и общее состояние освещенности. Ну и по мелочи, время, дата.
К слову про датчики и дополнительные подключения, стоит иметь ввиду, что если ваш eps32с3 подключается к WiFi то далеко не каждый PIN можно использовать. В памятке по ESP32-C3 SuperMini, есть немного подробнее и варианты подключения.
Полезные ссылки:
Памятка по ESP32-C3 SuperMini — https://blog.mons.ws/?p=4548
Дисплей RGB TFT SPI 2.0 IC ST7789V 240×320 на aliexpress.ru — [открыть]
Схема на cirkitdesigner.com — [открыть]
Справочник по TFT_eSPI.h — https://doc-tft-espi.readthedocs.io/tft_espi/
Справочник по TFT_eSPI.h — https://github.com/Bodmer/TFT_eSPI
К этой записи нет комментарий. Ваш будет первым!