Загрузка данных


#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 секунды
}