Compare commits

10 Commits

Author SHA1 Message Date
1cfde391c1 wip: 2025-10-23 13:30:35 +03:00
79766040ca wip: 2025-10-23 09:45:19 +03:00
81e5f0209f wip: 2025-10-23 07:34:24 +03:00
ab7d74a3f5 wip: 2025-10-21 14:18:24 +03:00
eaa3604b23 wip: 2025-10-21 07:59:10 +03:00
b18da6ed34 wip: 2025-10-07 16:30:05 +03:00
c4eb5ff35d wip: 2025-10-06 14:21:12 +03:00
6699e2e6bf wip: 2025-10-06 11:24:19 +03:00
1fa8b9382d wip: 2025-10-03 13:08:18 +03:00
25cd8e5364 wip: 2025-10-03 10:30:06 +03:00
43 changed files with 593 additions and 3176 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

4
.gitignore vendored
View File

@@ -1,4 +0,0 @@
.vscode
.DS_Store
build
sdkconfig.old

9
.gitmodules vendored
View File

@@ -1,9 +0,0 @@
[submodule "components/zh_pcf8574"]
path = components/zh_pcf8574
url = http://git.zh.com.ru/esp_components/zh_pcf8574
[submodule "components/zh_vector"]
path = components/zh_vector
url = http://git.zh.com.ru/esp_components/zh_vector
[submodule "components/zh_ota_server"]
path = components/zh_ota_server
url = http://git.zh.com.ru/esp_components/zh_ota_server

BIN
BOM_ATE0004.000.001.xlsx Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -1,3 +0,0 @@
cmake_minimum_required(VERSION 3.16)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(ate0004)

Binary file not shown.

View File

@@ -1,15 +1,3 @@
# ATE0004
# ate0004.000.000
Honeywell Retractable Landing Light CMM 33-42-07 P/N 45-0351-X Motor Test Box.
## Build and flash
Run the following command to firmware build and flash module:
```text
cd your_projects_folder
git clone --recurse-submodules http://git.zh.com.ru/aerotech/ate0004
cd ate0004
idf.py build
idf.py flash
```

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
ds/ADP3338.pdf Normal file

Binary file not shown.

BIN
ds/ESP32-WROOM-32E.pdf Normal file

Binary file not shown.

BIN
ds/PCA9306.pdf Normal file

Binary file not shown.

BIN
ds/T491.pdf Normal file

Binary file not shown.

View File

@@ -1 +0,0 @@
idf_component_register(SRCS "ate0004.c" INCLUDE_DIRS "" REQUIRES zh_pcf8574 esp_wifi nvs_flash zh_ota_server)

View File

@@ -1,175 +0,0 @@
#include "ate0004.h"
static i2c_master_bus_handle_t i2c_bus_handle = NULL;
static httpd_handle_t webserver_handle = NULL;
static zh_pcf8574_handle_t button_handle = {0};
static zh_pcf8574_handle_t led_handle = {0};
static zh_pcf8574_handle_t relay_handle = {0};
static bool is_ts = true;
static bool is_ret = false;
static bool is_ext = false;
static void zh_wifi_softap_init(void);
static void zh_webserver_init(void);
static void zh_gpio_init(void);
static void zh_io_expander_init(void);
static void zh_pcf8574_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data);
void app_main(void)
{
nvs_flash_init();
esp_event_loop_create_default();
zh_wifi_softap_init();
zh_webserver_init();
zh_gpio_init();
gpio_set_level(TRIAC_GPIO, LOW);
zh_io_expander_init();
zh_pcf8574_write_gpio(&led_handle, TS_LED_GREEN, LED_ON);
zh_pcf8574_write_gpio(&led_handle, RET_LED_BLUE, LED_ON);
zh_pcf8574_write_gpio(&led_handle, EXT_LED_BLUE, LED_ON);
}
static void zh_wifi_softap_init(void)
{
esp_netif_init();
esp_netif_create_default_wifi_ap();
wifi_init_config_t wifi_config = WIFI_INIT_CONFIG_DEFAULT();
esp_wifi_init(&wifi_config);
wifi_config_t ap_config = {
.ap = {
.ssid = WIFI_SSID,
.password = WIFI_PASS,
.max_connection = 4,
.authmode = WIFI_AUTH_WPA2_PSK,
},
};
esp_wifi_set_mode(WIFI_MODE_AP);
esp_wifi_set_config(WIFI_IF_AP, &ap_config);
esp_wifi_start();
}
static void zh_webserver_init(void)
{
httpd_config_t config = HTTPD_DEFAULT_CONFIG();
httpd_start(&webserver_handle, &config);
zh_ota_server_init(webserver_handle);
}
static void zh_gpio_init(void)
{
gpio_config_t triac_pin_config = {
.intr_type = GPIO_INTR_DISABLE,
.mode = GPIO_MODE_OUTPUT,
.pin_bit_mask = (1ULL << TRIAC_GPIO),
.pull_down_en = GPIO_PULLDOWN_DISABLE,
.pull_up_en = GPIO_PULLUP_DISABLE,
};
gpio_config(&triac_pin_config);
}
static void zh_io_expander_init(void)
{
i2c_master_bus_config_t i2c_bus_config = {
.clk_source = I2C_CLK_SRC_DEFAULT,
.scl_io_num = GPIO_NUM_22,
.sda_io_num = GPIO_NUM_21,
.glitch_ignore_cnt = 7,
};
i2c_new_master_bus(&i2c_bus_config, &i2c_bus_handle);
esp_event_handler_instance_register(ZH_PCF8574, ESP_EVENT_ANY_ID, &zh_pcf8574_event_handler, NULL, NULL);
zh_pcf8574_init_config_t config = ZH_PCF8574_INIT_CONFIG_DEFAULT();
config.i2c_handle = i2c_bus_handle;
config.i2c_address = LED_I2C_ADDRESS;
zh_pcf8574_init(&config, &led_handle);
config.i2c_address = RELAY_I2C_ADDRESS;
zh_pcf8574_init(&config, &relay_handle);
config.i2c_address = BUTTON_I2C_ADDRESS;
config.p0_gpio_work_mode = true;
config.p1_gpio_work_mode = true;
config.p2_gpio_work_mode = true;
config.interrupt_gpio = GPIO_NUM_17;
zh_pcf8574_init(&config, &button_handle);
}
static void zh_pcf8574_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
{
zh_pcf8574_event_on_isr_t *event = event_data;
switch (event->gpio_number)
{
case TS_BUTTON:
if (event->gpio_level == LOW && is_ret == false && is_ext == false)
{
if (is_ts == true)
{
zh_pcf8574_write_gpio(&led_handle, TS_LED_RED, LED_ON);
zh_pcf8574_write_gpio(&led_handle, TS_LED_GREEN, LED_OFF);
zh_pcf8574_write_gpio(&relay_handle, TS_RELAY, RELAY_ON);
is_ts = false;
}
else
{
zh_pcf8574_write_gpio(&led_handle, TS_LED_RED, LED_OFF);
zh_pcf8574_write_gpio(&led_handle, TS_LED_GREEN, LED_ON);
zh_pcf8574_write_gpio(&relay_handle, TS_RELAY, RELAY_OFF);
is_ts = true;
}
}
break;
case RET_BUTTON:
if (is_ext == true)
{
break;
}
if (event->gpio_level == LOW)
{
is_ret = true;
zh_pcf8574_write_gpio(&led_handle, RET_LED_BLUE, LED_OFF);
zh_pcf8574_write_gpio(&led_handle, RET_LED_GREEN, LED_ON);
zh_pcf8574_write_gpio(&relay_handle, RET_RELAY, RELAY_ON);
zh_pcf8574_write_gpio(&relay_handle, GROUND_RELAY, RELAY_ON);
vTaskDelay(20 / portTICK_PERIOD_MS);
gpio_set_level(TRIAC_GPIO, HIGH);
}
else
{
gpio_set_level(TRIAC_GPIO, LOW);
vTaskDelay(1 / portTICK_PERIOD_MS);
zh_pcf8574_write_gpio(&led_handle, RET_LED_BLUE, LED_ON);
zh_pcf8574_write_gpio(&led_handle, RET_LED_GREEN, LED_OFF);
zh_pcf8574_write_gpio(&relay_handle, RET_RELAY, RELAY_OFF);
zh_pcf8574_write_gpio(&relay_handle, GROUND_RELAY, RELAY_OFF);
is_ret = false;
}
break;
case EXT_BUTTON:
if (is_ret == true)
{
break;
}
if (event->gpio_level == LOW)
{
is_ext = true;
zh_pcf8574_write_gpio(&led_handle, EXT_LED_BLUE, LED_OFF);
zh_pcf8574_write_gpio(&led_handle, EXT_LED_GREEN, LED_ON);
zh_pcf8574_write_gpio(&relay_handle, EXT_RELAY, RELAY_ON);
zh_pcf8574_write_gpio(&relay_handle, GROUND_RELAY, RELAY_ON);
vTaskDelay(20 / portTICK_PERIOD_MS);
gpio_set_level(TRIAC_GPIO, HIGH);
}
else
{
gpio_set_level(TRIAC_GPIO, LOW);
vTaskDelay(1 / portTICK_PERIOD_MS);
zh_pcf8574_write_gpio(&led_handle, EXT_LED_BLUE, LED_ON);
zh_pcf8574_write_gpio(&led_handle, EXT_LED_GREEN, LED_OFF);
zh_pcf8574_write_gpio(&relay_handle, EXT_RELAY, RELAY_OFF);
zh_pcf8574_write_gpio(&relay_handle, GROUND_RELAY, RELAY_OFF);
is_ext = false;
}
break;
default:
break;
}
}

View File

@@ -1,51 +0,0 @@
#pragma once
#include "zh_pcf8574.h"
#include "nvs_flash.h"
#include "esp_wifi.h"
#include "zh_ota_server.h"
#define HIGH true
#define LOW false
#define LED_OFF LOW
#define LED_ON HIGH
#define RELAY_OFF LOW
#define RELAY_ON HIGH
#define TRIAC_GPIO GPIO_NUM_4
#define WIFI_SSID "ATE0004"
#define WIFI_PASS "repairlab"
#define WIFI_CHANNEL 1
#define MAX_STA_CONNECTION 4
#define BUTTON_I2C_ADDRESS 0x22 /*!< U7. */
#define LED_I2C_ADDRESS 0x21 /*!< U6. */
#define RELAY_I2C_ADDRESS 0x20 /*!< U5. */
#define GROUND_RELAY 0x00 /*!< Relay K1. RL1 pin on U5. */
#define TS_RELAY 0x03 /*!< Relay K4. RL4 pin on U5. */
#define RET_RELAY 0x02 /*!< Relay K3. RL3 pin on U5. */
#define EXT_RELAY 0x01 /*!< Relay K2. RL2 pin on U5. */
#define TS_BUTTON 0x00 /*!< Connector BT1. B1-0 on U7. */
#define RET_BUTTON 0x01 /*!< Connector BT2. B2-1 on U7. */
#define EXT_BUTTON 0x02 /*!< Connector BT3. B3-2 on U7. */
#define TS_LED_RED 0x00 /*!< Connector LE1. 2 PIN. L1-0 pin on U6. */
#define TS_LED_GREEN 0x01 /*!< Connector LE1. 1 PIN. L1-1 pin on U6. */
#define RET_LED_BLUE 0x02 /*!< Connector LE2. 2 PIN. L2-2 pin on U6. */
#define RET_LED_GREEN 0x03 /*!< Connector LE2. 1 PIN. L2-3 pin on U6. */
#define EXT_LED_BLUE 0x04 /*!< Connector LE3. 2 PIN. L3-4 pin on U6. */
#define EXT_LED_GREEN 0x05 /*!< Connector LE3. 1 PIN. L3-5 pin on U6. */
#ifdef __cplusplus
extern "C"
{
#endif
#ifdef __cplusplus
}
#endif

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

2252
sdkconfig

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
1.0.0