#include <SPIFFS.h>
#include <Arduino.h>
#include <TFT_eSPI.h>
#include "src/WIFILedManager.h"
#include <TJpg_Decoder.h>




#define BOOT_BUTTON_PIN 0
WIFILedManager ledManager(48, 1);

TFT_eSPI tft = TFT_eSPI();


void listSPIFFSFiles() {
  File root = SPIFFS.open("/");
  if (!root) {
    Serial.println("无法打开根目录");
    return;
  }

  Serial.println("SPIFFS 文件列表:");
  File file = root.openNextFile();
  while (file) {
    Serial.printf("  %s (%d Bytes)\n", file.name(), file.size());
    file = root.openNextFile();
  }
  root.close();
}


// TFT渲染回调函数(必须实现)
bool tft_output(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap) {
  tft.pushImage(x, y, w, h, bitmap); // 将解码后的像素块推送到屏幕
  return true; // 返回true表示渲染成功
}


void setup() {

  Serial.begin(115200);
    Serial.println("开始启动");

    Serial.println("初始化按钮引脚...");
    pinMode(BOOT_BUTTON_PIN, INPUT_PULLUP);

    Serial.println("初始化屏幕...");
    tft.init();
    tft.setRotation(1);
    tft.fillScreen(TFT_BLACK);
    digitalWrite(TFT_BL, HIGH);
    Serial.println("屏幕初始化完成");

    Serial.println("初始化 LED 管理器...");
    ledManager.begin();

    Serial.println("挂载 SPIFFS...");
    if (!SPIFFS.begin()) {    
        Serial.println("SPIFFS Mount Failed");
        return;
    }
    
    Serial.println("SPIFFS 挂载成功");

      listSPIFFSFiles();


    bool exist = SPIFFS.exists("/test.jpg");
    if (exist) {
        Serial.println("The file exists!");
    } else {
        Serial.println("No such file found.");
    }


    // 设置TJpgDec
    TJpgDec.setJpgScale(1); // 缩放比例(1:1)
    TJpgDec.setSwapBytes(true); // 交换颜色字节序(适配TFT_eSPI)
    TJpgDec.setCallback(tft_output); // 绑定渲染回调函数

  // 显示图片(全屏居中)
  TJpgDec.drawFsJpg(0, 0, "/test.jpg");


}

void loop() {
    static unsigned long pressStart = 0;
    static bool resetFlag = false;

    // 按钮检测
    if (digitalRead(BOOT_BUTTON_PIN) == LOW) {
        if (!resetFlag) {
            pressStart = millis();
            resetFlag = true;
        }
        
        if (millis() - pressStart > 3000) {
            ledManager.resetSettings();
        }
    } else {
        resetFlag = false;
    }

    // 更新网络状态
    ledManager.update();
    delay(100);




  

}
最后修改:2025 年 06 月 04 日 11 : 12 PM
如果觉得我的文章对你有用,请随意赞赏