From 9ee974e677a7c799c948024c0d32647c5ad06106 Mon Sep 17 00:00:00 2001 From: ismail Date: Tue, 9 Sep 2025 18:15:32 +0300 Subject: [PATCH] Add a single channel example Added a single channel example with run limit and tilting features. Refs #1104 and closes #1105. --- examples/relay_chn_single/.gitignore | 3 + .../.vscode/c_cpp_properties.json | 23 ++ examples/relay_chn_single/.vscode/launch.json | 15 + .../relay_chn_single/.vscode/settings.json | 17 + examples/relay_chn_single/CMakeLists.txt | 10 + examples/relay_chn_single/README.md | 126 ++++++++ .../relay_chn_single/example_schematic.png | Bin 0 -> 134744 bytes examples/relay_chn_single/main/CMakeLists.txt | 2 + .../relay_chn_single/main/Kconfig.projbuild | 40 +++ .../relay_chn_single/main/idf_component.yml | 8 + .../main/relay_chn_single_main.c | 290 ++++++++++++++++++ examples/relay_chn_single/sdkconfig.defaults | 9 + 12 files changed, 543 insertions(+) create mode 100644 examples/relay_chn_single/.gitignore create mode 100644 examples/relay_chn_single/.vscode/c_cpp_properties.json create mode 100644 examples/relay_chn_single/.vscode/launch.json create mode 100644 examples/relay_chn_single/.vscode/settings.json create mode 100644 examples/relay_chn_single/CMakeLists.txt create mode 100644 examples/relay_chn_single/README.md create mode 100644 examples/relay_chn_single/example_schematic.png create mode 100644 examples/relay_chn_single/main/CMakeLists.txt create mode 100644 examples/relay_chn_single/main/Kconfig.projbuild create mode 100644 examples/relay_chn_single/main/idf_component.yml create mode 100644 examples/relay_chn_single/main/relay_chn_single_main.c create mode 100644 examples/relay_chn_single/sdkconfig.defaults diff --git a/examples/relay_chn_single/.gitignore b/examples/relay_chn_single/.gitignore new file mode 100644 index 0000000..51c9513 --- /dev/null +++ b/examples/relay_chn_single/.gitignore @@ -0,0 +1,3 @@ +build/ +sdkconfig +sdkconfig.old \ No newline at end of file diff --git a/examples/relay_chn_single/.vscode/c_cpp_properties.json b/examples/relay_chn_single/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..badb83d --- /dev/null +++ b/examples/relay_chn_single/.vscode/c_cpp_properties.json @@ -0,0 +1,23 @@ +{ + "configurations": [ + { + "name": "ESP-IDF", + "compilerPath": "${config:idf.toolsPath}/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/riscv32-esp-elf-gcc", + "compileCommands": "/disk/Projeler/ESP-Components/relay_chn/examples/relay_chn_single/build/compile_commands.json", + "includePath": [ + "${config:idf.espIdfPath}/components/**", + "${config:idf.espIdfPathWin}/components/**", + "${workspaceFolder}/**" + ], + "browse": { + "path": [ + "${config:idf.espIdfPath}/components", + "${config:idf.espIdfPathWin}/components", + "${workspaceFolder}" + ], + "limitSymbolsToIncludedHeaders": true + } + } + ], + "version": 4 +} diff --git a/examples/relay_chn_single/.vscode/launch.json b/examples/relay_chn_single/.vscode/launch.json new file mode 100644 index 0000000..2511a38 --- /dev/null +++ b/examples/relay_chn_single/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "gdbtarget", + "request": "attach", + "name": "Eclipse CDT GDB Adapter" + }, + { + "type": "espidf", + "name": "Launch", + "request": "launch" + } + ] +} \ No newline at end of file diff --git a/examples/relay_chn_single/.vscode/settings.json b/examples/relay_chn_single/.vscode/settings.json new file mode 100644 index 0000000..81b74eb --- /dev/null +++ b/examples/relay_chn_single/.vscode/settings.json @@ -0,0 +1,17 @@ +{ + "C_Cpp.intelliSenseEngine": "default", + "idf.espIdfPath": "/disk/Depo/Developer/SDK/esp-idf/v5.4/esp-idf", + "idf.pythonInstallPath": "/usr/bin/python3", + "idf.openOcdConfigs": [ + "board/esp32c3-builtin.cfg" + ], + "idf.port": "/dev/ttyUSB0", + "idf.toolsPath": "/home/ismail/.espressif", + "idf.customExtraVars": { + "IDF_TARGET": "esp32c3" + }, + "idf.flashType": "UART", + "files.associations": { + "led_indicator_blink_default.h": "c" + } +} diff --git a/examples/relay_chn_single/CMakeLists.txt b/examples/relay_chn_single/CMakeLists.txt new file mode 100644 index 0000000..c64f60a --- /dev/null +++ b/examples/relay_chn_single/CMakeLists.txt @@ -0,0 +1,10 @@ +# For more information about build system see +# https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html +# The following five lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.5) + +set(COMPONENTS main) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(relay_chn_single) \ No newline at end of file diff --git a/examples/relay_chn_single/README.md b/examples/relay_chn_single/README.md new file mode 100644 index 0000000..c39c97b --- /dev/null +++ b/examples/relay_chn_single/README.md @@ -0,0 +1,126 @@ +# Relay Channel Single Example + +## Introduction + +This example demonstrates how to use the relay channel component to control a 2-relay setup with button inputs and LED status indication. It showcases: + +- Basic relay channel operations (forward/reverse running, stopping) +- Secondary operations (tilting, direction flipping) +- State change event handling with multiple listeners +- Relay channel run limit +- Button event handling using esp-iot-solution's button component +- Visual feedback using esp-iot-solution's LED indicator component + +## How to Use Example + +This example has been tested on an `ESP32-C3-DevKitM-1U` board. However, it can be adapted to any ESP32-based board with at least six available GPIO pins by adjusting the configuration options. + +### Hardware Required + +* An ESP32-based development board +* 2 relays connected to GPIO pins (default: GPIO4, GPIO5) +* 3 buttons connected to GPIO pins: + - UP button (default: GPIO0) + - DOWN button (default: GPIO1) + - STOP button (default: GPIO2) +* 1 LED for status indication (default: GPIO3) + +#### Hardware Schematic + +![Hardware Schematic](example_schematic.png) + +### Configuration + +The example can be configured through `menuconfig` under "Relay Channel Single Example Configuration": + +1. Button active level (`EXAMPLE_RLCHN_BTN_ACTIVE_LEVEL`) + - Select between active LOW or HIGH logic level for buttons + +2. GPIO assignments: + - UP button pin (`EXAMPLE_RLCHN_BTN_UP_IO_NUM`, default: 0) + - DOWN button pin (`EXAMPLE_RLCHN_BTN_DOWN_IO_NUM`, default: 1) + - STOP button pin (`EXAMPLE_RLCHN_BTN_STOP_IO_NUM`, default: 2) + - LED indicator pin (`EXAMPLE_RLCHN_LED_INDICATOR_IO_NUM`, default: 3) + +3. Long press timing: + - `EXAMPLE_RLCHN_BTN_LONG_PRESS_TIME_MS`: Duration for long press actions (1500-3000ms, default: 2000ms) + +### Button Operations + +The example uses esp-iot-solution's `button` component to handle the following operations: + +- **UP button**: + * Short press: Start forward movement + * Long press: Start forward tilt (stops on release) + +- **DOWN button**: + * Short press: Start reverse movement + * Long press: Start reverse tilt (stops on release) + +- **STOP button**: + * Short press: Stop movement + * Long press: Flip movement direction + +### LED Indicator States + +The example uses esp-iot-solution's `led_indicator` component to show different states: + +- **Running**: LED blinks at 300ms on, 100ms off +- **Tilting**: Fast blink at 100ms on, 50ms off +- **Operation Success**: Two quick blinks +- **Operation Fail**: One long blink + +### Dependencies + +This example requires: +- ESP-IDF v4.1 or later +- esp-iot-solution components: + * button v4.1.1 or later + * led_indicator v1.1.1 or later +- relay_chn component + +## Example Output +When the application boots, it will wait for a button event. Then the two state listeners will print state changes. + +```log +I (273) main_task: Calling app_main() +I (273) RELAY_CHN_SINGLE_EXAMPLE: Initializing default NVS storage +I (283) RELAY_CHN_SINGLE_EXAMPLE: nvs_flash_init: NVS flash init return: ESP_OK +I (283) RELAY_CHN_SINGLE_EXAMPLE: Initializing relay channel +I (293) gpio: GPIO[4]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (303) gpio: GPIO[5]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (313) RELAY_CHN_SINGLE_EXAMPLE: Initializing buttons +I (313) RELAY_CHN_SINGLE_EXAMPLE: Initializing buttons with active level: 0 +I (323) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (323) button: IoT Button Version: 4.1.3 +I (333) gpio: GPIO[1]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (343) gpio: GPIO[2]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (343) RELAY_CHN_SINGLE_EXAMPLE: Setting up button callbacks. Configured long press time: 2000 ms +I (353) RELAY_CHN_SINGLE_EXAMPLE: Initializing LED indicator +I (363) gpio: GPIO[3]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (373) led_indicator: LED Indicator Version: 1.1.1 +I (373) gpio: GPIO[3]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 +I (383) led_indicator: Indicator create successfully. type:GPIO mode, hardware_data:0x3fc97be4, blink_lists:custom +I (393) RELAY_CHN_SINGLE_EXAMPLE: Relay Channel Single Example is ready to operate +I (403) main_task: Returned from app_main() +I (3683) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_1: Defining new indicator mode for #0 and state change from 1 to 3 +I (3683) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_2: State change for #0, from IDLE to FORWARD +I (9513) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_1: Defining new indicator mode for #0 and state change from 3 to 2 +I (9513) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_2: State change for #0, from FORWARD to STOPPED +I (9523) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_1: Defining new indicator mode for #0 and state change from 2 to 6 +I (9533) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_2: State change for #0, from STOPPED to REVERSE_PENDING +I (10313) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_1: Defining new indicator mode for #0 and state change from 6 to 4 +I (10313) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_2: State change for #0, from REVERSE_PENDING to REVERSE +I (32173) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_1: Defining new indicator mode for #0 and state change from 4 to 2 +I (32173) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_2: State change for #0, from REVERSE to STOPPED +I (32973) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_1: Defining new indicator mode for #0 and state change from 2 to 1 +I (32973) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_2: State change for #0, from STOPPED to IDLE +I (36423) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_1: Defining new indicator mode for #0 and state change from 1 to 8 +I (36423) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_2: State change for #0, from IDLE to TILT_REVERSE +I (41153) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_1: Defining new indicator mode for #0 and state change from 8 to 1 +I (41153) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_2: State change for #0, from TILT_REVERSE to IDLE +I (47113) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_1: Defining new indicator mode for #0 and state change from 1 to 7 +I (47113) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_2: State change for #0, from IDLE to TILT_FORWARD +I (51913) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_1: Defining new indicator mode for #0 and state change from 7 to 1 +I (51913) RELAY_CHN_SINGLE_EXAMPLE: example_event_listener_2: State change for #0, from TILT_FORWARD to IDLE +``` \ No newline at end of file diff --git a/examples/relay_chn_single/example_schematic.png b/examples/relay_chn_single/example_schematic.png new file mode 100644 index 0000000000000000000000000000000000000000..2c05916ae323e00130a9f1e5a2fd3c007021b0b2 GIT binary patch literal 134744 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%0Amvy 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≦?_M!kxV0Goz`SE#4)ArEKBp7`+>UH(^W))n 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 XzjnJdL_#fc=V47vEUr`<-;Vts&^eRe literal 0 HcmV?d00001 diff --git a/examples/relay_chn_single/main/CMakeLists.txt b/examples/relay_chn_single/main/CMakeLists.txt new file mode 100644 index 0000000..3dcf1b0 --- /dev/null +++ b/examples/relay_chn_single/main/CMakeLists.txt @@ -0,0 +1,2 @@ +idf_component_register(SRCS "relay_chn_single_main.c" + PRIV_REQUIRES button led_indicator relay_chn) \ No newline at end of file diff --git a/examples/relay_chn_single/main/Kconfig.projbuild b/examples/relay_chn_single/main/Kconfig.projbuild new file mode 100644 index 0000000..e3a6992 --- /dev/null +++ b/examples/relay_chn_single/main/Kconfig.projbuild @@ -0,0 +1,40 @@ +menu "Relay Channel Single Example Configuration" + + choice EXAMPLE_RLCHN_BTN_ACTIVE_LEVEL + prompt "Choose an active level for buttons" + default EXAMPLE_RLCHN_BTN_ACTIVE_LEVEL_LOW + help + Specify the active level for buttons. + + config EXAMPLE_RLCHN_BTN_ACTIVE_LEVEL_LOW + bool "Active level LOW" + + config EXAMPLE_RLCHN_BTN_ACTIVE_LEVEL_HIGH + bool "Active level HIGH" + endchoice + + config EXAMPLE_RLCHN_BTN_UP_IO_NUM + int "GPIO number for UP button" + default 0 + + config EXAMPLE_RLCHN_BTN_DOWN_IO_NUM + int "GPIO number for DOWN button" + default 1 + + config EXAMPLE_RLCHN_BTN_STOP_IO_NUM + int "GPIO number for STOP button" + default 2 + + config EXAMPLE_RLCHN_LED_INDICATOR_IO_NUM + int "GPIO number for LED indicator output" + default 3 + + config EXAMPLE_RLCHN_BTN_LONG_PRESS_TIME_MS + int "Long press time in ms to start secondary actions" + range 1500 3000 + default 2000 + help + Long press time in milliseconds is required to start secondary actions + like tilting and flipping. + +endmenu \ No newline at end of file diff --git a/examples/relay_chn_single/main/idf_component.yml b/examples/relay_chn_single/main/idf_component.yml new file mode 100644 index 0000000..60c7cac --- /dev/null +++ b/examples/relay_chn_single/main/idf_component.yml @@ -0,0 +1,8 @@ +dependencies: + idf: + version: '>=4.1.0' + espressif/button: ^4.1.1 + espressif/led_indicator: ^1.1.1 + relay_chn: + version: '*' + override_path: ../../../ diff --git a/examples/relay_chn_single/main/relay_chn_single_main.c b/examples/relay_chn_single/main/relay_chn_single_main.c new file mode 100644 index 0000000..4e9db7d --- /dev/null +++ b/examples/relay_chn_single/main/relay_chn_single_main.c @@ -0,0 +1,290 @@ +/* + * SPDX-FileCopyrightText: 2025 Kozmotronik Tech + * + * SPDX-License-Identifier: MIT + */ + +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_err.h" +#include "esp_log.h" +#include "esp_check.h" +#include "driver/gpio.h" +#include "nvs.h" +#include "nvs_flash.h" +#include "button_gpio.h" +#include "iot_button.h" +#include "led_indicator.h" +#include "relay_chn.h" + +static const char *TAG = "RELAY_CHN_SINGLE_EXAMPLE"; + +/** + * @brief LED indicator modes for different states. + */ +typedef enum { + INDICATOR_MODE_OK, /*!< OK/Success indication */ + INDICATOR_MODE_FAIL, /*!< Fail/Error indication */ + INDICATOR_MODE_TILTING, /*!< Tilting operation in progress */ + INDICATOR_MODE_RUNNING, /*!< Full run operation in progress */ + INDICATOR_MODE_MAX /*!< Maximum number of indicator modes */ +} indicator_mode_t; + +/** @brief Blink pattern for OK/Success indication. */ +static const blink_step_t indc_mode_ok[] = { + {LED_BLINK_HOLD, LED_STATE_ON, 100}, // step1: turn on LED 100 ms + {LED_BLINK_HOLD, LED_STATE_OFF, 50}, // step2: turn off LED 50 ms + {LED_BLINK_HOLD, LED_STATE_ON, 100}, // step3: turn on LED 100 ms + {LED_BLINK_HOLD, LED_STATE_OFF, 50}, // step4: turn off LED 50 ms + {LED_BLINK_STOP, 0, 0}, // step5: stop blink (off) +}; + +/** @brief Blink pattern for Fail/Error indication. */ +static const blink_step_t indc_mode_fail[] = { + {LED_BLINK_HOLD, LED_STATE_ON, 1000}, // step1: turn on LED 1000 ms + {LED_BLINK_HOLD, LED_STATE_OFF, 500}, // step2: turn off LED 500 ms + {LED_BLINK_STOP, 0, 0}, // step4: stop blink (off) +}; + +/** @brief Blink pattern for full run operation. */ +static const blink_step_t indc_mode_running[] = { + {LED_BLINK_HOLD, LED_STATE_ON, 300}, // step1: turn on LED 300 ms + {LED_BLINK_HOLD, LED_STATE_OFF, 100}, // step2: turn off LED 100 ms + {LED_BLINK_LOOP, 0, 0}, // step3: loop from step1 +}; + +/** @brief Blink pattern for tilting operation. */ +static const blink_step_t indc_mode_tilting[] = { + {LED_BLINK_HOLD, LED_STATE_ON, 100}, // step1: turn on LED 100 ms + {LED_BLINK_HOLD, LED_STATE_OFF, 50}, // step2: turn off LED 50 ms + {LED_BLINK_LOOP, 0, 0}, // step3: loop from step1 +}; + +/** @brief Array of LED indicator blink patterns. */ +blink_step_t const *led_indicator_modes[] = { + [INDICATOR_MODE_OK] = indc_mode_ok, + [INDICATOR_MODE_FAIL] = indc_mode_fail, + [INDICATOR_MODE_RUNNING] = indc_mode_running, + [INDICATOR_MODE_TILTING] = indc_mode_tilting, + [INDICATOR_MODE_MAX] = NULL, +}; + +/** @brief Handle for the LED indicator. */ +static led_indicator_handle_t indicator = NULL; + +/** + * @brief Initializes the buttons for user interaction. + * + * This function configures and creates GPIO buttons for UP, DOWN, and STOP + * operations. It also registers callbacks for single-click and long-press + * events to control the relay channel. + * + * @return esp_err_t + * - ESP_OK: Success + * - Others: Fail + */ +static esp_err_t init_buttons(void); + +/** + * @brief Initializes the LED indicator. + * + * This function configures and creates the LED indicator used to provide + * visual feedback on the relay channel's status. + * + * @return esp_err_t + * - ESP_OK: Success + * - ESP_FAIL: Fail + */ +static esp_err_t init_led_indicator(void); + +/** + * @brief Event listener for relay channel state changes to control the LED indicator. + */ +static void example_event_listener_1(uint8_t ch, relay_chn_state_t old_state, relay_chn_state_t new_state); + +/** + * @brief Event listener for relay channel state changes to log the state transition. + */ +static void example_event_listener_2(uint8_t ch, relay_chn_state_t old_state, relay_chn_state_t new_state); + +void app_main(void) +{ + const uint8_t gpio_map[] = { 4, 5 }; + const uint8_t gpio_count = sizeof(gpio_map) / sizeof(gpio_map[0]); + + ESP_LOGI(TAG, "Initializing relay channel"); + ESP_ERROR_CHECK(relay_chn_create(gpio_map, gpio_count)); + ESP_ERROR_CHECK(relay_chn_register_listener(example_event_listener_1)); + ESP_ERROR_CHECK(relay_chn_register_listener(example_event_listener_2)); + + ESP_LOGI(TAG, "Initializing buttons"); + ESP_ERROR_CHECK(init_buttons()); + ESP_LOGI(TAG, "Initializing LED indicator"); + ESP_ERROR_CHECK(init_led_indicator()); + + ESP_LOGI(TAG, "Relay Channel Single Example is ready to operate"); + + // Indicate init was successful + led_indicator_start(indicator, INDICATOR_MODE_OK); +} + +static void on_click_up(void *arg, void *data) +{ + relay_chn_run_forward(); +} + +static void on_click_down(void *arg, void *data) +{ + relay_chn_run_reverse(); +} + +static void on_click_stop(void *arg, void *data) +{ + relay_chn_stop(); +} + +static void on_click_flip(void *arg, void *data) +{ + relay_chn_flip_direction(); + led_indicator_start(indicator, INDICATOR_MODE_OK); +} + +static void on_click_tilt_up(void *arg, void *data) +{ + relay_chn_tilt_forward(); +} + +static void on_click_tilt_down(void *arg, void *data) +{ + relay_chn_tilt_reverse(); +} + +static void on_release_tilt(void *arg, void *data) +{ + relay_chn_tilt_stop(); +} + +static void example_event_listener_1(uint8_t ch, relay_chn_state_t old_state, relay_chn_state_t new_state) +{ + ESP_LOGI(TAG, "example_event_listener_1: Defining new indicator mode for #%d and state change from %d to %d", ch, old_state, new_state); + switch (new_state) { + case RELAY_CHN_STATE_FORWARD: + case RELAY_CHN_STATE_REVERSE: + led_indicator_start(indicator, INDICATOR_MODE_RUNNING); + break; + + case RELAY_CHN_STATE_STOPPED: + case RELAY_CHN_STATE_IDLE: + if (old_state == RELAY_CHN_STATE_FORWARD || old_state == RELAY_CHN_STATE_REVERSE) { + led_indicator_stop(indicator, INDICATOR_MODE_RUNNING); + // Make sure the indicator turned off + led_indicator_set_on_off(indicator, false); + } + else if (old_state == RELAY_CHN_STATE_TILT_FORWARD || old_state == RELAY_CHN_STATE_TILT_REVERSE) { + led_indicator_stop(indicator, INDICATOR_MODE_TILTING); + // Make sure the indicator turned off + led_indicator_set_on_off(indicator, false); + } + break; + + case RELAY_CHN_STATE_TILT_FORWARD: + case RELAY_CHN_STATE_TILT_REVERSE: + led_indicator_start(indicator, INDICATOR_MODE_TILTING); + break; + + default: // No-op + } +} + +static void example_event_listener_2(uint8_t ch, relay_chn_state_t old_state, relay_chn_state_t new_state) +{ + ESP_LOGI(TAG, "example_event_listener_2: State change for #%d, from %s to %s", + ch, relay_chn_state_to_str(old_state), relay_chn_state_to_str(new_state)); +} + +static esp_err_t init_buttons() +{ + esp_err_t ret; + button_config_t btn_cfg = {0}; + + uint8_t active_level = CONFIG_EXAMPLE_RLCHN_BTN_ACTIVE_LEVEL_LOW ? 0 : 1; + + button_gpio_config_t btn_gpio_ccfg = { + .gpio_num = (gpio_num_t) CONFIG_EXAMPLE_RLCHN_BTN_UP_IO_NUM, + .active_level = active_level + }; + + ESP_LOGI(TAG, "Initializing buttons with active level: %u", active_level); + button_handle_t btn_up = NULL, btn_down = NULL, btn_stop = NULL; + // --- Create buttons --- + ret = iot_button_new_gpio_device(&btn_cfg, &btn_gpio_ccfg, &btn_up); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to create UP button"); + ESP_RETURN_ON_FALSE(btn_up != NULL, ret, TAG, "Failed to create UP button"); + + btn_gpio_ccfg.gpio_num = (gpio_num_t) CONFIG_EXAMPLE_RLCHN_BTN_DOWN_IO_NUM; + ret = iot_button_new_gpio_device(&btn_cfg, &btn_gpio_ccfg, &btn_down); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to create DOWN button"); + ESP_RETURN_ON_FALSE(btn_down != NULL, ret, TAG, "Failed to create DOWN button"); + + btn_gpio_ccfg.gpio_num = (gpio_num_t) CONFIG_EXAMPLE_RLCHN_BTN_STOP_IO_NUM; + ret = iot_button_new_gpio_device(&btn_cfg, &btn_gpio_ccfg, &btn_stop); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to create STOP button"); + ESP_RETURN_ON_FALSE(btn_stop != NULL, ret, TAG, "Failed to create STOP button"); + // --- Create buttons --- + + // --- Register button callbacks --- + ESP_LOGI(TAG, "Setting up button callbacks. Configured long press time: %d ms", CONFIG_EXAMPLE_RLCHN_BTN_LONG_PRESS_TIME_MS); + button_event_args_t btn_event_args = { + .long_press.press_time = CONFIG_EXAMPLE_RLCHN_BTN_LONG_PRESS_TIME_MS + }; + // --- Register UP and TILT_UP operations on UP button --- + ret = iot_button_register_cb(btn_up, BUTTON_SINGLE_CLICK, NULL, on_click_up, NULL); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to register UP button click callback"); + ret = iot_button_register_cb(btn_up, BUTTON_LONG_PRESS_START, &btn_event_args, on_click_tilt_up, NULL); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to register TILT_UP button press callback"); + ret = iot_button_register_cb(btn_up, BUTTON_LONG_PRESS_UP, NULL, on_release_tilt, NULL); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to register TILT_UP button release callback"); + + // --- Register DOWN and TILT_DOWN operations on DOWN button --- + ret = iot_button_register_cb(btn_down, BUTTON_SINGLE_CLICK, NULL, on_click_down, NULL); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to register DOWN button click callback"); + ret = iot_button_register_cb(btn_down, BUTTON_LONG_PRESS_START, &btn_event_args, on_click_tilt_down, NULL); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to register TILT_DOWN button press callback"); + ret = iot_button_register_cb(btn_down, BUTTON_LONG_PRESS_UP, NULL, on_release_tilt, NULL); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to register TILT_DOWN button release callback"); + + // --- Register STOP and FLIP operations on STOP --- + ret = iot_button_register_cb(btn_stop, BUTTON_SINGLE_CLICK, NULL, on_click_stop, NULL); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to register STOP button click callback"); + ret = iot_button_register_cb(btn_stop, BUTTON_LONG_PRESS_START, &btn_event_args, on_click_flip, NULL); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to register FLIP button press callback"); + + return ESP_OK; +} + +static esp_err_t init_led_indicator() +{ + const gpio_num_t indicator_io_num = (gpio_num_t) CONFIG_EXAMPLE_RLCHN_LED_INDICATOR_IO_NUM; + gpio_reset_pin(indicator_io_num); // Clear the output buffers + + led_indicator_gpio_config_t led_indicator_gpio_cfg = { + .gpio_num = indicator_io_num, + .is_active_level_high = true + }; + + led_indicator_config_t led_indicator_cfg = { + .mode = LED_GPIO_MODE, + .led_indicator_gpio_config = &led_indicator_gpio_cfg, + .blink_lists = led_indicator_modes, + .blink_list_num = INDICATOR_MODE_MAX + }; + + indicator = led_indicator_create(&led_indicator_cfg); + if (!indicator) { + ESP_LOGE(TAG, "Failed to create LED indicator"); + return ESP_FAIL; + } + + return ESP_OK; +} \ No newline at end of file diff --git a/examples/relay_chn_single/sdkconfig.defaults b/examples/relay_chn_single/sdkconfig.defaults new file mode 100644 index 0000000..faefa95 --- /dev/null +++ b/examples/relay_chn_single/sdkconfig.defaults @@ -0,0 +1,9 @@ +# Halt on panic +CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y + +# Relay Channel Configs +CONFIG_RELAY_CHN_ENABLE_RUN_LIMIT=y +# Keep this as short as possible for example purposes +CONFIG_RELAY_CHN_RUN_LIMIT_MIN_SEC=5 +CONFIG_RELAY_CHN_RUN_LIMIT_DEFAULT_SEC=20 +CONFIG_RELAY_CHN_ENABLE_TILTING=y