Top.Mail.Ru
Уведомления
Очистить все

Esp 32 и chronos

Страница 1 / 2
(@dark_messenger)
Level 1

Всем привет! Я тут новнький и я нуб 😀. Имеется плата esp32 wroom 32 с экраном 1.9... хотел бы поставить на нее прошивку chronos. Не могу понять как это сделать, подскажите пожалуйста?  Или какую другую прошивку можно поставить чтобы был вывод на экзан esp 32 данных о музыке, звонках и навигации с андройда? Спасибо

Цитата
Создатель темы Размещено : 30.04.2025 15:02
Aveal
(@aveal)
Top level Admin

Привет, вот эта библиотека как вариант - https://github.com/fbiego/chronos-esp32/tree/main?tab=readme-ov-file. Это для получения данных по BLE, а уже на экран нужно будет выводить вручную (по факту просто через другую библиотеку).

ОтветитьЦитата
Размещено : 01.05.2025 11:10
(@dark_messenger)
Level 1

Получилось запустить библиотеку chronos и даже приложение chronos подключается и видит всё как часы, только теперь не получается вывести на экран. У меня плата с экраном сразу adafruit 7789, пытался прописать его, но информация не выводится, подскажите что я делаю не так

ОтветитьЦитата
Создатель темы Размещено : 01.05.2025 23:19
Aveal
(@aveal)
Top level Admin

Выкладывай код )

ОтветитьЦитата
Размещено : 02.05.2025 11:10
(@dark_messenger)
Level 1

сначала было так

#include <ChronosESP32.h>

ChronosESP32 chronos("ESP32_Chronos"); // Установите имя BLE-устройства

void setup() {
Serial.begin(115200);
chronos.begin(); // Инициализация BLE-сервера
}

void loop() {
chronos.loop(); // Обработка BLE-событий
}

сначала было так, телефон подключался, но экран esp не работал, добавил это

#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>

#define TFT_CS 15
#define TFT_RST 4
#define TFT_DC 2
#define TFT_SCLK 18
#define TFT_MOSI 23
#define TFT_LED 32

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);

void setup() {
pinMode(TFT_LED, OUTPUT);
digitalWrite(TFT_LED, HIGH); // Включаем подсветку

tft.init(240, 240); // Инициализация дисплея
tft.setRotation(2);
tft.fillScreen(ST77XX_BLACK);
tft.setTextWrap(true);
tft.setTextSize(2);
tft.setTextColor(ST77XX_WHITE);
tft.setCursor(0, 0);
tft.println("Waiting for Chronos...");
}

void loop() {
// Основной цикл программы
}

экран работает, телефон подключается, но инфа не выводится

ОтветитьЦитата
Создатель темы Размещено : 02.05.2025 13:51
Aveal
(@aveal)
Top level Admin

Скинь еще плз, какая именно плата используется. Я сейчас не за компом, посмотрю как смогу.

ОтветитьЦитата
Размещено : 02.05.2025 14:28
(@dark_messenger)
Level 1

Короче, идея проекта чтобы на экран esp выводились данные о музыке, звонках и хотя бы минимальные данные о навигации... идея повесить это устройство на мотоцикл, чтоб не доставая телефон видеть что и как... нашел это только в cronos, если есть подобный функционал в других вариантах прошивки буду рад совету

ОтветитьЦитата
Создатель темы Размещено : 02.05.2025 14:28
(@dark_messenger)
Level 1
  • Плата esp32 wroom32 с экраном 1.9 adafruit st7789 170×320, подключен так #define TFT_CS 15
  • #define TFT_RST 4
  • #define TFT_DC 2
  • #define TFT_SCLK 18
  • #define TFT_MOSI 23
  • #define TFT_LED 32
  • Экран с завода подключен
  • Есть так же экран 1.28 gc9a01 240×240
ОтветитьЦитата
Создатель темы Размещено : 02.05.2025 14:31
Aveal
(@aveal)
Top level Admin

@dark_messenger у тебя получается уже основная часть проекта функционирует, осталось только на экран вывести.

ОтветитьЦитата
Размещено : 02.05.2025 14:32
(@dark_messenger)
Level 1

@aveal да, а сделать это у меня никак не получается

ОтветитьЦитата
Создатель темы Размещено : 02.05.2025 14:35
(@dark_messenger)
Level 1

#include <ChronosESP32.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>

ChronosESP32 chronos("ESP32_Chronos"); // Установите имя BLE-устройства

#define TFT_CS 15
#define TFT_RST 4
#define TFT_DC 2
#define TFT_SCLK 18
#define TFT_MOSI 23
#define TFT_LED 32

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);

void setup() {
Serial.begin(115200);
chronos.begin(); // Инициализация BLE-сервера
pinMode(TFT_LED, OUTPUT);
digitalWrite(TFT_LED, HIGH); // Включаем подсветку

tft.init(170, 320); // Инициализация дисплея
tft.setRotation(1);
tft.fillScreen(ST77XX_BLACK);
tft.setTextWrap(true);
tft.setTextSize(2);
tft.setTextColor(ST77XX_WHITE);
tft.setCursor(0, 0);
tft.println("Waiting for Chronos...");
}

void loop() {
chronos.loop(); // Обработка BLE-событий
}

вот такой код у меня получался и данные с chronos он не выдаёт

ОтветитьЦитата
Создатель темы Размещено : 02.05.2025 16:49
Aveal
(@aveal)
Top level Admin

@dark_messenger На дисплее вообще ничего? Номера пинов точно верные?

Можно попробовать готовые примеры, чисто для проверки экрана, вот кажется для твоего дисплея подходит - ссылка.

ОтветитьЦитата
Размещено : 02.05.2025 19:06
(@dark_messenger)
Level 1

@aveal c этим кодом экран работает, выдает надпись waitinf fo chronos что прописана в коде, но ничего более не дает и никак не реагирует на изменения в подключенном приложении chronos на андройде, а по идее должно

ОтветитьЦитата
Создатель темы Размещено : 02.05.2025 19:16
Aveal
(@aveal)
Top level Admin

@dark_messenger ааа, дисплей-то работает в итоге.

Так библиотека chronos-esp32 никак с дисплеем не взаимодействует вроде как. То есть через нее получаешься данные, формируешь в нужном виде, выводишь на дисплей через библиотеку для работы с дисплеем.

ОтветитьЦитата
Размещено : 03.05.2025 12:32
(@dark_messenger)
Level 1

@aveal вот это у меня и не получается. попробовал код 

#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <ChronosESP32.h>
#include <SPI.h>

// Пины подключения дисплея
#define TFT_CS     15
#define TFT_RST    4
#define TFT_DC     2
#define TFT_SCLK   18
#define TFT_MOSI   23
#define TFT_LED    32

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
ChronosESP32 chronos("ESP32_Chronos");

void setup() {
  Serial.begin(115200);

  // Подсветка
  pinMode(TFT_LED, OUTPUT);
  digitalWrite(TFT_LED, HIGH);

  // Инициализация дисплея
  tft.init(170, 320);
  tft.setRotation(1);
  tft.fillScreen(ST77XX_BLACK);
  tft.setTextWrap(true);
  tft.setTextSize(2);
  tft.setCursor(0, 0);
  tft.setTextColor(ST77XX_WHITE);
  tft.println("START...");

  // Инициализация Chronos
  chronos.begin();
}

void loop() {
  Notification notif = chronos.getNotificationAt(chronos.getNotificationCount() - 1);

tft.fillScreen(ST77XX_BLACK);
tft.setCursor(0, 0);
tft.setTextSize(2);

// Пробуем вывести все возможные комбинации
tft.setTextColor(ST77XX_CYAN);
tft.println("App:");
#if defined(__has_include) && __has_include(<string>)
  tft.println(String(notif.app.c_str()));
#else
  tft.println(notif.app);
#endif

tft.setTextColor(ST77XX_GREEN);
tft.println("Title:");
#if defined(__has_include) && __has_include(<string>)
  tft.println(String(notif.title.c_str()));
#else
  tft.println(notif.title);
#endif

tft.setTextColor(ST77XX_YELLOW);
tft.println("Msg:");
#if defined(__has_include) && __has_include(<string>)
  tft.println(String(notif.message.c_str()));  // или notif.msg
#else
  tft.println(notif.message); // или notif.msg
#endif

  delay(10000);
}

на экране горит App, Title, Msg моргает при манипуляциях с chronos, но никаких оповещений о звонках и смс не выдаёт

ОтветитьЦитата
Создатель темы Размещено : 03.05.2025 14:39
Страница 1 / 2
Поделиться: