Skocz do zawartości

Monitory HMI w użytku domowym.


Pomocna odpowiedź

2 godziny temu, rade napisał:

w pliku też można podać nazwę to sam zaciągnie

czyli może być?

@_LM_ w jaki sposób dołączyć ten lv.conf? Tak jak mam jest ok, czy inaczej to musi być zrobione?

Processing esp32-s3-devkitc-1 (platform: espressif32; board: esp32-s3-devkitc-1; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------Library Manager: Installing >=0.0.1 && <0.1.0
Library Manager: Installing //C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries\ESP32_IO_Expander
VCSBaseException: VCS: Unknown repository type //C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries\ESP32_IO_Expander

 *  The terminal process "C:\Users\katon\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task in folder LCD_Touch: C:\Users\katon\.platformio\penv\Scripts\platformio.exe run 

Processing esp32-s3-devkitc-1 (platform: espressif32; board: esp32-s3-devkitc-1; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------Library Manager: Installing >=0.0.1 && <0.1.0
Library Manager: Installing C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries\lv.conf
VCSBaseException: VCS: Unknown repository type C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries\lv.conf

 *  The terminal process "C:\Users\katon\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task in folder LCD_Touch: C:\Users\katon\.platformio\penv\Scripts\platformio.exe run 

Processing esp32-s3-devkitc-1 (platform: espressif32; board: esp32-s3-devkitc-1; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------Removing unused dependencies...
Library Manager: Installing >=0.0.1 && <0.1.0
Library Manager: Installing file://C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries
Library Manager: ESP32_Display_Panel@0.1.8 has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing >=0.0.1 && <0.1.0
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-s3-devkitc-1.html
PLATFORM: Espressif 32 (6.9.0) > Espressif ESP32-S3-DevKitC-1-N8 (8 MB QD, No PSRAM)
HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash
DEBUG: Current (esp-builtin) On-board (esp-builtin) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b
 - tool-esptoolpy @ 1.40501.0 (4.5.1)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
 - toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 40 compatible libraries
Scanning dependencies...
Dependency Graph
|-- ESP32Time @ 2.0.6
|-- ESP32_Display_Panel @ 0.1.8
|-- ESP32_IO_Expander @ 0.0.4
|-- lvgl @ 8.3.10
|-- Mylibrary @ 0.0.0+20241225113339
|-- ESP32_Display_Panel @ 0.1.8
|-- ArduinoJson @ 7.2.1
|-- HTTPClient @ 2.0.0
|-- WiFiClientSecure @ 2.0.0
|-- WiFi @ 2.0.0
Building in release mode
Compiling .pio\build\esp32-s3-devkitc-1\src\images.c.o
Compiling .pio\build\esp32-s3-devkitc-1\src\lvgl_port_v8.cpp.o
Compiling .pio\build\esp32-s3-devkitc-1\src\main.cpp.o
Compiling .pio\build\esp32-s3-devkitc-1\src\screens.c.o
Compiling .pio\build\esp32-s3-devkitc-1\src\styles.c.o
Compiling .pio\build\esp32-s3-devkitc-1\src\ui.c.o
Building .pio\build\esp32-s3-devkitc-1\bootloader.bin
esptool.py v4.5.1
Creating esp32s3 image...
Merged 1 ELF section
Successfully created esp32s3 image.
Generating partitions .pio\build\esp32-s3-devkitc-1\partitions.bin
Compiling .pio\build\esp32-s3-devkitc-1\libdfb\ESP32Time\ESP32Time.cpp.o
Compiling .pio\build\esp32-s3-devkitc-1\lib61d\ESP32_IO_Expander\ESP_IOExpander.cpp.o
Compiling .pio\build\esp32-s3-devkitc-1\lib61d\ESP32_IO_Expander\base\esp_io_expander.c.o
Compiling .pio\build\esp32-s3-devkitc-1\lib61d\ESP32_IO_Expander\chip\TCA95xx_8bit.cpp.o
Compiling .pio\build\esp32-s3-devkitc-1\lib61d\ESP32_IO_Expander\private\CheckResult.cpp.o
Compiling .pio\build\esp32-s3-devkitc-1\liba3a\ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b\ESP_Panel.cpp.o
Archiving .pio\build\esp32-s3-devkitc-1\lib61d\libESP32_IO_Expander.a
Archiving .pio\build\esp32-s3-devkitc-1\libdfb\libESP32Time.a
Compiling .pio\build\esp32-s3-devkitc-1\liba3a\ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b\backlight\ESP_PanelBacklight.cpp.o
Compiling .pio\build\esp32-s3-devkitc-1\liba3a\ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b\bus\ESP_PanelBus.cpp.o
Compiling .pio\build\esp32-s3-devkitc-1\liba3a\ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b\bus\I2C.cpp.o
.pio/libdeps/esp32-s3-devkitc-1/ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b/src/backlight/ESP_PanelBacklight.cpp: In constructor 'ESP_PanelBacklight::ESP_PanelBacklight(int, bool, bool)':
.pio/libdeps/esp32-s3-devkitc-1/ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b/src/backlight/ESP_PanelBacklight.cpp:18:92: error: 
no matching function for call to 'ledc_timer_config_t::ledc_timer_config_t(<brace-enclosed initializer list>)'
     _channel_config(ESP_PANEL_BACKLIGHT_LEDC_CHANNEL_CONFIG_DEFAULT(io_num, light_up_level))
                                                                                            ^
In file included from .pio/libdeps/esp32-s3-devkitc-1/ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b/src/backlight/ESP_PanelBacklight.h:9,
                 from .pio/libdeps/esp32-s3-devkitc-1/ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b/src/backlight/ESP_PanelBacklight.cpp:8:
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note: candidate: 'ledc_timer_config_t::ledc_timer_config_t()'
 } ledc_timer_config_t;
   ^~~~~~~~~~~~~~~~~~~
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note:   candidate expects 0 arguments, 1 provided
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note: candidate: 'constexpr ledc_timer_config_t::ledc_timer_config_t(const ledc_timer_config_t&)'
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const ledc_timer_config_t&'
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note: candidate: 'constexpr ledc_timer_config_t::ledc_timer_config_t(ledc_timer_config_t&&)'
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'ledc_timer_config_t&&'
*** [.pio\build\esp32-s3-devkitc-1\liba3a\ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b\backlight\ESP_PanelBacklight.cpp.o] Error 1
======================================================= [FAILED] Took 67.18 seconds =======================================================

 *  The terminal process "C:\Users\katon\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

Nadal to samo(?)

  • Lubię! 1

Za cienki jestem do tego, mnie się wydaje, że wszystko jest w plikach:

.h

/*
 * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
 *
 * SPDX-License-Identifier: Apache-2.0
 */
#pragma once

#include <stdint.h>
#include "driver/ledc.h"

/**
 * @brief Backlight LEDC default configuration macros
 *
 */
#define ESP_PANEL_BACKLIGHT_LEDC_TIMER_CONFIG_DEFAULT() \
    {                                                   \
        .speed_mode = LEDC_LOW_SPEED_MODE,              \
        .duty_resolution = LEDC_TIMER_10_BIT,           \
        .timer_num = LEDC_TIMER_0,                      \
        .freq_hz = 5000,                                \
        .clk_cfg = LEDC_AUTO_CLK,                       \
    }
#define ESP_PANEL_BACKLIGHT_LEDC_CHANNEL_CONFIG_DEFAULT(io_num, on_level) \
    {                                                   \
        .gpio_num = io_num,                             \
        .speed_mode = LEDC_LOW_SPEED_MODE,              \
        .channel = LEDC_CHANNEL_0,                      \
        .intr_type = LEDC_INTR_DISABLE,                 \
        .timer_sel = LEDC_TIMER_0,                      \
        .duty = 0,                                      \
        .hpoint = 0,                                    \
        .flags = {                                      \
            .output_invert = !on_level,                 \
        },                                              \
    }

/**
 * @brief Backlight GPIO default configuration macro
 *
 */
#define ESP_PANEL_BACKLIGHT_GPIO_CONFIG_DEFAULT(io_num) \
    {                                                   \
        .pin_bit_mask = BIT64(io_num),                  \
        .mode = GPIO_MODE_OUTPUT,                       \
        .pull_up_en = GPIO_PULLUP_DISABLE,              \
        .pull_down_en = GPIO_PULLDOWN_DISABLE,          \
        .intr_type = GPIO_INTR_DISABLE,                 \
    }

/**
 * @brief The backlight device class
 *
 */
class ESP_PanelBacklight {
public:
    /**
     * @brief Construct a new backlight device in a simple way, the `begin()` function should be called after this
     *
     * @note  This function uses some default values to config the backlight device, please use `config*()` functions to
     *        change them
     *
     * @param io_num         GPIO number
     * @param light_up_level Level when light up
     * @param use_pwm        Use PWM(LEDC) if set to true
     */
    ESP_PanelBacklight(int io_num, bool light_up_level, bool use_pwm);

    /**
     * @brief Construct a new backlight device with using PWM(LEDC) in a complex way, the `begin()` function should be
     *        called after this
     *
     * @param timer_config   LEDC timer configuration
     * @param channel_config LEDC channel configuration
     */
    ESP_PanelBacklight(const ledc_timer_config_t &timer_config, const ledc_channel_config_t &channel_config);

    /**
     * @brief Destroy the backlight device
     *
     */
    ~ESP_PanelBacklight();

    /**
     * @brief Startup the backlight device
     *
     * @return true if success, otherwise false
     */
    bool begin(void);

    /**
     * @brief Set the brightness of the backlight by percent
     *
     * @note  This function should be called after `begin()`
     * @note  When not using PWM, calling this function only controls the backlight switch and cannot adjust
     *        the brightness
     *
     * @param percent The brightness percent, 0-100
     *
     * @return true if success, otherwise false
     */
    bool setBrightness(uint8_t percent);

    /**
     * @brief Turn on the backlight
     *
     * @note  This function should be called after `begin()`
     * @note  This function is same as `setBrightness(100)`
     *
     * @return true if success, otherwise false
     */
    bool on(void);

    /**
     * @brief Turn off the backlight
     *
     * @note  This function should be called after `begin()`
     * @note  This function is same as `setBrightness(0)`
     *
     * @return true if success, otherwise false
     */
    bool off(void);

    /**
     * @brief Delete the backlight device, release the resources
     *
     * @note  This function should be called after `begin()`
     *
     * @return true if success, otherwise false
     */
    bool del(void);

private:
    bool _is_initialized;
    bool _use_pwm;
    bool _light_up_level;
    uint8_t _io_num;
    ledc_timer_config_t _timer_config;
    ledc_channel_config_t _channel_config;
};

.cpp

/*
 * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include "ESP_PanelLog.h"
#include "ESP_PanelBacklight.h"

static const char *TAG = "ESP_PanelBacklight";

ESP_PanelBacklight::ESP_PanelBacklight(int io_num, bool light_up_level, bool use_pwm):
    _is_initialized(false),
    _use_pwm(use_pwm),
    _light_up_level(light_up_level),
    _io_num(io_num),
    _timer_config(ESP_PANEL_BACKLIGHT_LEDC_TIMER_CONFIG_DEFAULT()),
    _channel_config(ESP_PANEL_BACKLIGHT_LEDC_CHANNEL_CONFIG_DEFAULT(io_num, light_up_level))
{
}

ESP_PanelBacklight::ESP_PanelBacklight(const ledc_timer_config_t &timer_config, const ledc_channel_config_t &channel_config):
    _is_initialized(false),
    _use_pwm(true),
    _timer_config(timer_config),
    _channel_config(channel_config)
{
}

ESP_PanelBacklight::~ESP_PanelBacklight()
{
    ESP_PANEL_ENABLE_TAG_DEBUG_LOG();

    if (!_is_initialized && !del()) {
        ESP_LOGE(TAG, "Delete device failed");
    }

    ESP_LOGD(TAG, "Destroyed");
}

bool ESP_PanelBacklight::begin(void)
{
    ESP_PANEL_CHECK_FALSE_RET(_io_num >= 0, false, "Invalid IO number");

    ESP_PANEL_ENABLE_TAG_DEBUG_LOG();
    ESP_LOGD(TAG, "begin start");

    if (_use_pwm) {
        ESP_LOGD(TAG, "Use PWM(LEDC) to control");

        ESP_PANEL_CHECK_ERR_RET(ledc_timer_config(&_timer_config), false, "LEDC timer config failed");
        ESP_PANEL_CHECK_ERR_RET(ledc_channel_config(&_channel_config), false, "LEDC channel config failed");
    } else {
        ESP_LOGD(TAG, "Use GPIO to control");

        gpio_config_t io_config = ESP_PANEL_BACKLIGHT_GPIO_CONFIG_DEFAULT(_io_num);
        ESP_PANEL_CHECK_ERR_RET(gpio_config(&io_config), false, "GPIO config failed");
        ESP_PANEL_CHECK_ERR_RET(gpio_set_level((gpio_num_t)_io_num, _light_up_level), false, "GPIO set level failed");
    }

    _is_initialized = true;
    ESP_LOGD(TAG, "begin end");

    return true;
}

bool ESP_PanelBacklight::setBrightness(uint8_t percent)
{
    ESP_PANEL_CHECK_FALSE_RET(_is_initialized, false, "Device has not been initialized");

    ESP_LOGD(TAG, "Set brightness to %d%%", percent);

    percent = percent > 100 ? 100 : percent;
    if (_use_pwm) {
        uint32_t duty_cycle = (BIT(_timer_config.duty_resolution) * percent) / 100;
        ledc_channel_t channel = _channel_config.channel;
        ledc_mode_t mode = _channel_config.speed_mode;

        ESP_PANEL_CHECK_ERR_RET(ledc_set_duty(mode, channel, duty_cycle), false, "LEDC set duty failed");
        ESP_PANEL_CHECK_ERR_RET(ledc_update_duty(mode, channel), false, "LEDC update duty failed");
    } else {
        bool level = (percent > 0) ? _light_up_level : !_light_up_level;

        ESP_PANEL_CHECK_ERR_RET(gpio_set_level((gpio_num_t)_io_num, level), false, "GPIO set level failed");
    }

    return true;
}

bool ESP_PanelBacklight::on(void)
{
    return setBrightness(100);
}

bool ESP_PanelBacklight::off(void)
{
    return setBrightness(0);
}

bool ESP_PanelBacklight::del(void)
{
    ESP_PANEL_CHECK_FALSE_RET(_is_initialized, false, "Device has not been initialized");

    if (_use_pwm) {
        ledc_mode_t mode = _channel_config.speed_mode;
        ledc_channel_t channel = _channel_config.channel;

        ESP_PANEL_CHECK_ERR_RET(ledc_stop(mode, channel, _light_up_level), false, "LEDC stop failed");
    } else {
        gpio_reset_pin((gpio_num_t)_io_num);
    }

    _is_initialized = false;
    ESP_LOGD(TAG, "Delete device");

    return true;
}

 

(edytowany)

@SOYER nie zrozumiałeś. Builder/cli bierze plik .ino i przetwarza go na .cpp dodając brakujące rzeczy. Możesz skonfigurować PlatformIO żeby używał arduino-cli do kompilacji. Ale i tak dotyczyć to będzie tylko plików .ino, .c i .cpp nie tknie.

Zresztą w folderze build powinieneś dostać plik .cpp zrobiony z .ino, możesz podpatrzeć sobie co on tam wymyślił

Edytowano przez ethanak

Zrobiłem inaczej, utworzyłem nowy projekt, wkleiłem do niego pliki i foldery które miałem w arduino, a do pliku main.cpp przekopiowałem zawartość pliku main.ino. Można tak?

Jak nie to jak inaczej?

I co zrobić z tymi błędami wklejonymi wyżej?

  • Lubię! 1
14 godzin temu, SOYER napisał:

Jeszcze kilka rzeczy, zaimportowałem projekt arduino do platformio, zmieniłem main.ino na .cpp. Dodałem biblioteki poprzez

lib_deps = 
	C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries\ESP32_Display_Panel
    C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries\ESP32_IO_Expander
    C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries\lvgl
    C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries\Mylibrary
    C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries\lv_conf.h

Bo chyba tak się je dodaje "z ręki". Mam problem z lv.conf który nie jest folderem tylko plikiem więc to:

    C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries\lv_conf.h

zamieniłem na to:

    C:\Users\katon\OneDrive\Pulpit\panelllll\ESP32-S3-Touch-LCD-4\Arduino-v3.0.7\libraries

czyli podałem ścieżkę do nadrzędnego folderu dla lv.conf.

1.Napiszcie czy to dobrze robię, bo nie mam pojęcia.

Pododawałem też tam jakieś biblioteki esp32, czy co tam wywalało.

2.Nie wiem też czy trzeba dodawać do projektu wszystkie biblioteki które się "zaincludowało"? Czy jakieś tam są przypisane "z automatu" do płytki(np. wifi?)

No i kompilator wywalił mi w końcu coś takiego:

Compiling .pio\build\4d_systems_esp32s3_gen4_r8n16\lib73f\ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b\bus\I2C.cpp.o
.pio/libdeps/4d_systems_esp32s3_gen4_r8n16/ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b/src/backlight/ESP_PanelBacklight.cpp: In constructor 'ESP_PanelBacklight::ESP_PanelBacklight(int, bool, bool)':
.pio/libdeps/4d_systems_esp32s3_gen4_r8n16/ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b/src/backlight/ESP_PanelBacklight.cpp:18:92: error: no matching function for call to 'ledc_timer_config_t::ledc_timer_config_t(<brace-enclosed initializer list>)'
     _channel_config(ESP_PANEL_BACKLIGHT_LEDC_CHANNEL_CONFIG_DEFAULT(io_num, light_up_level))
                                                                                            ^
In file included from .pio/libdeps/4d_systems_esp32s3_gen4_r8n16/ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b/src/backlight/ESP_PanelBacklight.h:9,
                 from .pio/libdeps/4d_systems_esp32s3_gen4_r8n16/ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b/src/backlight/ESP_PanelBacklight.cpp:8:
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note: candidate: 'ledc_timer_config_t::ledc_timer_config_t()'
 } ledc_timer_config_t;
   ^~~~~~~~~~~~~~~~~~~
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note:   candidate expects 0 arguments, 1 provided
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note: candidate: 'constexpr ledc_timer_config_t::ledc_timer_config_t(const ledc_timer_config_t&)'
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const ledc_timer_config_t&'     
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note: candidate: 'constexpr ledc_timer_config_t::ledc_timer_config_t(ledc_timer_config_t&&)'
C:/Users/katon/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'ledc_timer_config_t&&'
*** [.pio\build\4d_systems_esp32s3_gen4_r8n16\lib73f\ESP32_Display_Panel@src-e0425ba80f2563d241f14493974d868b\backlight\ESP_PanelBacklight.cpp.o] Error 1
=============================================== [FAILED] Took 29.61 seconds ===============================================
 *  The terminal process "C:\Users\katon\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

3. Nie wiem o co mu chodzi bo to te same pliki z demo które bez problemu łyknęło IDE.

4. Co do tego:

............atformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include/driver/ledc.h:56:3: note: c.............

to już całkiem nie wiem, bo to chyba z boardami związane(?)

5. Piąte i ostatnie ważne pytanie, czy w platformio da się wybrać konkretną wersję boardów lub libsów do użycia. Jeśli tak to jak to zrobić?

W załączniku to demo z którego bierzemy libsy dla obsługi lcd.

ESP32-S3-Touch-LCD-4_democode (3).zip 35 MB · 0 downloads

Zrzut ekranu 2024-12-25 001351.png

Inaczej chyba, jak zaglądniecie do tych plików co załączyłem są tam dwa katalogi, jeden dla ardu, drugi dla IDF. Co i gdzie z tego drugiego katalogu załączyć do platformio?

Ok, właśnie ogarnąłem temat MQTT, potrafię już przez MQTT odebrać dane o zmianie na czujniku i przez MQTT sterować przekaźnikami.

Muszę to wszystko teraz sparować ze sobą. Linki bezpośrednie w takim razie w odstawkę.

Żeby jeszcze ktoś pomógł przesiąść się na szybszy kompilator...

#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <PubSubClient.h>
#include "HWCDC.h"
HWCDC USBSerial;
// Update these with values suitable for your network.

const char* ssid = "xx";
const char* password = "xx";
const char* mqtt_server = "xx";
const char* mqtt_user = "xx";
const char* mqtt_pass = "xx";

WiFiClientSecure client1;
PubSubClient client(client1);

unsigned long lastMsg = 0;
#define MSG_BUFFER_SIZE  (50)
char msg[MSG_BUFFER_SIZE];
int value = 0;

void setup_wifi() {

  delay(10);
  // We start by connecting to a WiFi network
  USBSerial.println();
  USBSerial.print("Connecting to ");
  USBSerial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin("xx", "xx");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    USBSerial.print(".");
  }

  randomSeed(micros());
}
String tempGrunt;
String top1="supla/xx/devices/xxxx/channels/xxxx/state/temperature";//TemGrunt


void callback(char* topic, byte* payload, unsigned int length) {
  USBSerial.print("Message arrived [");
  USBSerial.print(topic);
  USBSerial.print("] ");
  for (int i = 0; i < length; i++) {
    USBSerial.print((char)payload[i]);
  }
  USBSerial.println();
if (strcmp(topic,top1.c_str())==0){
    payload[length] = '\0';
    tempGrunt=String((char*)payload);
  }

USBSerial.print("tempGrunt.......................:");
USBSerial.println(tempGrunt);

}

void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {

    USBSerial.print("Attempting MQTT connection...");
    // Create a random client ID
    String clientId = "ESP32Client-";
    clientId += String(random(0xffff), HEX);
    // Attempt to connect
    if (client.connect(clientId.c_str(), mqtt_user, mqtt_pass)) {
      USBSerial.println("connected");
      client.subscribe(top1.c_str());
    } else {
      USBSerial.print("failed, rc=");
      USBSerial.print(client.state());
      USBSerial.println(" try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}

void setup() {
  pinMode(BUILTIN_LED, OUTPUT);     // Initialize the BUILTIN_LED pin as an output
USBSerial.begin(9600);
  setup_wifi();
  client1.setInsecure();
  client.setServer(mqtt_server, 8883);
  client.setCallback(callback);
}

void loop() {

  if (!client.connected()) {
    reconnect();
  }
  client.loop();

}

///sterowanie przekaźnikiem
client.publish("supla/xxx/devices/xxx/channels/xxx/execute_action", "TOGGLE");

 

Zrzut ekranu 2024-12-26 234346.png

@_LM_mam funkcję czytającą mqtt:

void callback(char* topic, byte* payload, unsigned int length) {
  USBSerial.print("Message arrived [");
  USBSerial.print(topic);
  USBSerial.print("] ");
  for (int i = 0; i < length; i++) {
    USBSerial.print((char)payload[i]);
  }
  USBSerial.println();
if (strcmp(topic,top1.c_str())==0){
    payload[length] = '\0';
    tempGrunt=String((char*)payload);
    lv_label_set_text_fmt(lbl1, "%.2F °C", tempGrunt);
  }
  /*if (strcmp(topic,top2.c_str())==0){
    payload[length] = '\0';
    poziomPeletu=String((char*)payload);
  }*/
USBSerial.print("tempGrunt.......................:");
USBSerial.println(tempGrunt);
}

Dlaczego ta linijka:

 lv_label_set_text_fmt(lbl1, "%.2F °C", tempGrunt);

powoduje

C:\Users\katon\AppData\Local\Temp\arduino_modified_sketch_283392\02_LVGL_Porting_YES.ino: In function 'void callback(char*, byte*, unsigned int)':
02_LVGL_Porting_YES:210:27: error: 'lbl1' was not declared in this scope
  210 |     lv_label_set_text_fmt(lbl1, "%.2F °C", tempGrunt);
      |                           ^~~~
exit status 1
'lbl1' was not declared in this scope

w screens.h mam:

typedef struct _objects_t {
    lv_obj_t *main;
    lv_obj_t *scr1;
    lv_obj_t *btn_0_next;
    lv_obj_t *btn_1_back;
    lv_obj_t *btn_1_next;
    lv_obj_t *lbl_0_1;
    lv_obj_t *lbl1;
    lv_obj_t *rly_0_brama1;
} objects_t;

a w main include screens.h

co jest nie tak?

48 minut temu, _LM_ napisał:
objects.lbl1

 

thx, a wiesz może jak użyć tego fajnego buzzera wbudowanego? Ładnie mi robi beep przy resecie...

Esp32 Touch 4”, Supla MQTT

Mam po mqtt sterowanie przekaźnikami, czytanie krańcówek, czytanie czujników i połączenie tego z lvgl.

 

  • Lubię! 2

Najpowszechniejszy libs do esp32 od czasu:

https://github.com/fbiego/ESP32Time

i mam:

#include <ESP32Time.h>
  
  ESP32Time rtc();

configTime(7200, 3600, "tempus2.gum.gov.pl");
sntp_sync_status_t syncStatus;
  syncStatus = sntp_get_sync_status();
    while (syncStatus != SNTP_SYNC_STATUS_COMPLETED) {
        syncStatus = sntp_get_sync_status();
        delay(100); // Adjust the delay time as per your requirements
    }


USBSerial.println(rtc.getDateTime(true));

//lv_label_set_text(objects.lbl_0_time, rtc.getTime());
 //lv_label_set_text(objects.lbl_0_date, rtc.getDate(true));

no i zagwozdka:

C:\Users\katon\AppData\Local\Temp\arduino_modified_sketch_732013\02_LVGL_Porting_YES.ino: In function 'void setup()':
02_LVGL_Porting_YES:117:28: error: request for member 'getDateTime' in 'rtc', which is of non-class type 'ESP32Time()'
  117 |      USBSerial.println(rtc.getDateTime(true));
      |                            ^~~~~~~~~~~
exit status 1
request for member 'getDateTime' in 'rtc', which is of non-class type 'ESP32Time()'

jak nie, jak tak(?)

przecież jak w przykładzie...

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...