#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
#define TFT_SCL 13
#define TFT_SDA 12
#define TFT_DC 14
#define TFT_RST 27
#define TFT_CS 26
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_SDA, TFT_SCL, TFT_RST);
// Создаем свои кастомные цвета
uint16_t DARK_GRAY = tft.color565(40, 40, 40);
uint16_t NEON_GREEN = tft.color565(0, 255, 100);
uint16_t ORANGE = tft.color565(255, 140, 0);
void setup() {
tft.initR(INITR_BLACKTAB);
tft.setRotation(1);
tft.fillScreen(ST7735_BLACK);
// 1. Рисуем стильную рамку по краям экрана (отступ 2 пикселя)
tft.drawRect(2, 2, tft.width() - 4, tft.height() - 4, DARK_GRAY);
// 2. Шапка интерфейса
tft.setCursor(15, 10);
tft.setTextColor(NEON_GREEN);
tft.setTextSize(1);
tft.print("WEATHER STATION v1.0");
// 3. Рисуем разделительную линию под шапкой
tft.drawLine(10, 23, tft.width() - 10, 23, DARK_GRAY);
}
// Переменная для имитации температуры
float fake_temp = 24.3;
void loop() {
// 4. Выводим статичный текст "TEMP:"
tft.setCursor(15, 40);
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(2);
tft.print("TEMP:");
// 5. Выводим динамическое значение температуры
// Чтобы старые цифры не накладывались на новые, закрашиваем только эту область черным прямоугольником перед обновлением
tft.fillRect(80, 40, 60, 20, ST7735_BLACK);
tft.setCursor(80, 40);
tft.setTextColor(ORANGE);
tft.print(fake_temp, 1); // Вывод флоата с 1 знаком после запятой
tft.print("C");
// Имитируем изменение температуры (колебания)
fake_temp += random(-5, 6) / 10.0;
if(fake_temp > 35) fake_temp = 22.0;
if(fake_temp < 15) fake_temp = 25.0;
delay(2000); // Обновляем данные каждые 2 секунды
}