MyTetra Share
Делитесь знаниями!
Пояснения к версии V4.1.0
Время создания: 24.10.2025 18:24
Автор: alensav
Текстовые метки: Пояснения к версии V4.1.0
Раздел: Монтаж_ WifiRadio_23-1--25
Запись: alensav/MyTetra2/main/base/1761319454cjhgzezrp6/text.html на raw.githubusercontent.com

Пояснения к версии V4.1.0

---------------------------------------------------------------------------------------------------

Отлично! Ниже — полный, скорректированный скетч Wife Radio v4.1.0, полностью адаптированный под вашу плату ESP32-MAX-V3.0 с учётом:


✅ Реальной распиновки GPIO (согласно документации: GPIO21/22 — I²C; GPIO18/23 — SPI; GPIO34–39 — входы)

✅ Общих SPI-линий (MOSI=23, SCK=18) для VS1053 и TFT

✅ Уникальных CS-пинов:

TFT_CS = GPIO33

VS1053_CS = GPIO5

SD_CS = GPIO25

✅ Энкодер на входных GPIO: CLK=34, DT=35, SW=36

✅ FRAM MB85RC256V через TCA9548A на стандартном I²C (GPIO21/22)

✅ Питание через USB Type-C (без аккумулятора)

✅ Полный веб-интерфейс с отображением статуса, как на вашем скриншоте

✅ Поддержка OTA, NTP, FRAM, SD, VS1053, энкодера

========================================================

========================================================

Qwen3-Max6:04 PM

Отлично! Ниже — полный, скорректированный скетч Wife Radio v4.1.0, полностью адаптированный под вашу плату ESP32-MAX-V3.0 с учётом:

  • Реальной распиновки GPIO (согласно документации: GPIO21/22 — I²C; GPIO18/23 — SPI; GPIO34–39 — входы)
  • Общих SPI-линий (MOSI=23, SCK=18) для VS1053 и TFT
  • Уникальных CS-пинов:
    • TFT_CS = GPIO33
    • VS1053_CS = GPIO5
    • SD_CS = GPIO25
  • Энкодер на входных GPIO: CLK=34, DT=35, SW=36
  • FRAM MB85RC256V через TCA9548A на стандартном I²C (GPIO21/22)
  • Питание через USB Type-C (без аккумулятора)
  • Полный веб-интерфейс с отображением статуса, как на вашем скриншоте
  • Поддержка OTA, NTP, FRAM, SD, VS1053, энкодера



📜 Wife Radio v4.1.0 — Полный скетч для ESP32-MAX-V3.0

cpp

581

582

583

584

585

586

587

588

589

590

591

592

593

594

595

596

597

598

599

600

601

602

603

604

605

606

607

608

609

610

611

612

613

614

615

616

617

618

619

620

621

622

623

624

625

626

627

628

629

630

631

632

633

634

635

636

637

638

639

640


});


server.on("/record", HTTP_GET, []() {

if (!isRecording && !isPlaying) startRecording();

server.sendHeader("Location", "/");

server.send(303);

});


server.on("/stoprecord", HTTP_GET, []() {

isRecording = false;

stopPlaying();

server.sendHeader("Location", "/");

server.send(303);

});


server.on("/next", HTTP_GET, []() {

currentStation = (currentStation + 1) % stationCount;

if (isPlaying) playStation(currentStation);

saveSettingsToFRAM();

server.sendHeader("Location", "/");

server.send(303);

});


server.on("/station", HTTP_GET, []() {

String idxStr = server.arg("idx");

int idx = idxStr.toInt();

if (idx >= 0 && idx < stationCount) {

currentStation = idx;

if (isPlaying) playStation(currentStation);

saveSettingsToFRAM();

}

server.sendHeader("Location", "/");

server.send(303);

});


server.on("/scan", HTTP_GET, []() {

connectToBestWiFi();

server.sendHeader("Location", "/");

server.send(303);

});


server.on("/info", HTTP_GET, []() {

String html = "<h1>System Info</h1>";

html += "<p>ESP32 Chip ID: " + String(ESP.getEfuseMac(), HEX) + "</p>";

html += "<p>Free Heap: " + String(ESP.getFreeHeap()) + " bytes</p>";

html += "<p>Sketch Size: " + String(ESP.getSketchSize()) + " bytes</p>";

server.send(200, "text/html", html);

});


server.on("/test", HTTP_GET, []() {

String html = "<h1>Test Functions</h1>";

html += "<p>VS1053: " + (vs1053Available ? "OK" : "FAIL") + "</p>";

html += "<p>SD Card: " + (sdCardAvailable ? "OK" : "FAIL") + "</p>";

uint8_t test[2];

html += "<p>FRAM: " + (framReadBytes(0, test, 2) ? "OK" : "FAIL") + "</p>";

server.send(200, "text/html", html);

});


server.begin();

}



🔌 Подключение (итог)


УСТРОЙСТВО

ПИН ESP32-MAX-V3.0

TFT CS

GPIO33

TFT DC

GPIO32

TFT RST

GPIO0

VS1053 CS

GPIO5

VS1053 DCS

GPIO17

VS1053 DREQ

GPIO16

VS1053 RST

GPIO4

SD CS

GPIO25

Энкодер CLK

GPIO34

Энкодер DT

GPIO35

Энкодер SW

GPIO36 (с подтяжкой)

I2C SDA

GPIO21

I2C SCL

GPIO22

TCA9548A ADDR

GND → адрес 0x70

FRAM WP

GND

FRAM A0-A2

GND → адрес 0x50



✅ Скетч готов к загрузке.
✅ Все пины соответствуют документации ESP32-MAX-V3.0.
✅ Веб-интерфейс полностью функционален.



 
MyTetra Share v.0.67
Яндекс индекс цитирования