diff --git a/bk_aidk/projects/beken_wss_paopao/CMakeLists.txt b/bk_aidk/projects/beken_wss_paopao/CMakeLists.txt index 18d7eeee..0db61af6 100755 --- a/bk_aidk/projects/beken_wss_paopao/CMakeLists.txt +++ b/bk_aidk/projects/beken_wss_paopao/CMakeLists.txt @@ -24,4 +24,4 @@ set(EXTRA_COMPONENTS_DIRS ) include($ENV{ARMINO_PATH}/tools/build_tools/cmake/project.cmake) -project(beken_wss) +project(beken_wss_paopao) diff --git a/bk_aidk/projects/beken_wss_paopao/config/bk7258/config b/bk_aidk/projects/beken_wss_paopao/config/bk7258/config index c531b509..f053a354 100755 --- a/bk_aidk/projects/beken_wss_paopao/config/bk7258/config +++ b/bk_aidk/projects/beken_wss_paopao/config/bk7258/config @@ -84,3 +84,5 @@ CONFIG_LWIP_PPP_SUPPORT=y CONFIG_SYS_CPU1_OFFSET=0x22b0000 CONFIG_WEBSOCKET=y CONFIG_WEBSOCKET_TLS=y +CONFIG_HTTPS=y +CONFIG_OTA_HTTPS=y \ No newline at end of file diff --git a/bk_aidk/projects/beken_wss_paopao/config/bk7258_cp1/config b/bk_aidk/projects/beken_wss_paopao/config/bk7258_cp1/config index 7645717d..b25d0db6 100755 --- a/bk_aidk/projects/beken_wss_paopao/config/bk7258_cp1/config +++ b/bk_aidk/projects/beken_wss_paopao/config/bk7258_cp1/config @@ -101,7 +101,7 @@ CONFIG_FATFS=y CONFIG_LCD_FONT_BLEND=n CONFIG_LCD_DMA2D_BLEND=n CONFIG_AUD_TRAS_DAC_PA_CTRL=y -CONFIG_AUD_DAC_PA_CTRL_GPIO=50 +CONFIG_AUD_DAC_PA_CTRL_GPIO=0 CONFIG_BT_REUSE_MEDIA_MEMORY=y CONFIG_BT_REUSE_MEDIA_MEM_SIZE=0x1B000 CONFIG_DEBUG_DUMP=y diff --git a/bk_aidk/projects/beken_wss_paopao/main/app_main.c b/bk_aidk/projects/beken_wss_paopao/main/app_main.c index ae9de2a7..ec2e5ad8 100755 --- a/bk_aidk/projects/beken_wss_paopao/main/app_main.c +++ b/bk_aidk/projects/beken_wss_paopao/main/app_main.c @@ -371,7 +371,7 @@ static void handle_system_event(key_event_t event) ws2812_led_wifi_disconnect(); // bk_gpio_enable_output(0); - bk_gpio_set_output_high(0); + //bk_gpio_set_output_high(0); #endif } break; @@ -656,6 +656,7 @@ static void handle_system_event(key_event_t event) ws2812_init(); thing_init(); // spi_led_init(); + bk_printf("VER:1.0.3 2025.05.27\r\n"); #endif #endif diff --git a/bk_aidk/projects/beken_wss_paopao/main/iot/iot_sleep_helper.c b/bk_aidk/projects/beken_wss_paopao/main/iot/iot_sleep_helper.c index 68bd0b4b..3827706e 100755 --- a/bk_aidk/projects/beken_wss_paopao/main/iot/iot_sleep_helper.c +++ b/bk_aidk/projects/beken_wss_paopao/main/iot/iot_sleep_helper.c @@ -27,7 +27,7 @@ #define LOGE(...) BK_LOGE(TAG, ##__VA_ARGS__) #define LOGD(...) BK_LOGD(TAG, ##__VA_ARGS__) -#define SLEEP_MODE_LEVEL_NUM 9 +#define SLEEP_MODE_LEVEL_NUM 9 /* *PWM 通道 */ @@ -151,7 +151,8 @@ static mode_info_t mode_3[49] = { {-1, 20}, }; -static uint32_t g_mode_level[SLEEP_MODE_LEVEL_NUM] = {50, 55, 60, 65, 70, 75, 80, 85, 90}; +static uint32_t g_mode_level[SLEEP_MODE_LEVEL_NUM] = {25, 30, 35, 40, 45, 50, 55,60,60}; +//static uint32_t g_mode_level[SLEEP_MODE_LEVEL_NUM] = { 30, 35, 40, 45, 50, 55}; static int helper_start = 0; static beken_queue_t sleep_helper_msg_que = NULL; @@ -160,6 +161,9 @@ static beken_thread_t sleep_helper_thread_hdl = NULL; static sleep_mode current_mode = SLEEP_MODE_OFF; static sleep_model_level current_level = SLEEP_MODEL_LEVEL_1; + +static int socket_insert = 0; + typedef struct { sleep_mode mode; @@ -254,6 +258,11 @@ void sleep_helper_init(){ bk_gpio_enable_output(44); bk_gpio_enable_output(45); + gpio_dev_unmap(GPIO_50); + bk_gpio_enable_input(GPIO_50); + bk_gpio_enable_pull(GPIO_50); + bk_gpio_pull_up(GPIO_50); + pwm_init_config_t config = {0}; config.period_cycle = 100; //默认初始化不输出波形 @@ -293,17 +302,31 @@ void sleep_helper_set_mode(sleep_mode mode){ bk_gpio_set_output_low(GPIO_44); bk_gpio_set_output_low(GPIO_45); } - /* + + uint8_t insert_value = bk_gpio_get_input(GPIO_50); + LOGE("sleep_helper insert_value %d \n",insert_value); + socket_insert = insert_value; + if(socket_insert == 1){ + LOGE("sleep_helper open fail!! cable not insert %d \n",insert_value); + return ; + } if (sleep_helper_msg_que) { sleep_msg_t msg; msg.mode = mode; rtos_push_to_queue(&sleep_helper_msg_que, &msg, BEKEN_NO_WAIT); - }*/ + } } void sleep_helper_set_level(sleep_model_level level){ + if(current_mode == SLEEP_MODE_OFF){ + pwm_init_config_t config = {0}; + config.period_cycle = 100; + config.duty_cycle = g_mode_level[0]; + bk_pwm_init(pwm_chan, &config); + bk_pwm_start(pwm_chan); + } if(level>0 && level< 10){ current_level = level; pwm_period_duty_config_t config = {0}; @@ -339,7 +362,7 @@ cJSON* iot_sleep_helper_get_device_desc() cJSON *parameters = cJSON_CreateObject(); cJSON *p_mode = cJSON_CreateObject(); cJSON_AddStringToObject(p_mode, "type", "number"); - cJSON_AddStringToObject(p_mode, "description", "0到3之间的整数 0代表关闭"); + cJSON_AddStringToObject(p_mode, "description", "0到3之间的整数 0代表关闭助眠仪"); cJSON_AddItemToObjectCS(parameters,"mode",p_mode); cJSON_AddItemToObjectCS(setMode,"parameters",parameters); cJSON_AddItemToObjectCS(methods,IOT_SLEEP_HELPER_DEVICE_FUNS_SET_MODE,setMode); diff --git a/bk_aidk/projects/beken_wss_paopao/main/spi_led.c b/bk_aidk/projects/beken_wss_paopao/main/spi_led.c index 58e2444e..fb9cf2bf 100755 --- a/bk_aidk/projects/beken_wss_paopao/main/spi_led.c +++ b/bk_aidk/projects/beken_wss_paopao/main/spi_led.c @@ -65,6 +65,44 @@ const int TEST_7 = 0xFFFFFF; static uint8_t led_data[WS2812_LED_NUM *24*sizeof(uint8_t)]; static int ws2812_start = 0; + +//static beken_timer_t timer_led_ota_handle; +static int ota_led_state = 0; +static beken_thread_t ota_led_thread_hdl = NULL; + + +static void ws2812_led_ota_task(void *arg){ + + while(ws2812_start){ + if(ota_led_state){ + ota_led_state = 0; + ws2812_set_all_led(WHITE,0); + }else{ + ota_led_state = 1; + ws2812_set_all_led(WHITE,100); + } + rtos_delay_milliseconds(100); + } +} + +void ws2812_led_start_ota(){ + bk_err_t ret = BK_OK; + ret = rtos_create_thread(&ota_led_thread_hdl, + 4, + "ota_led", + (beken_thread_function_t)ws2812_led_ota_task, + 5 * 1024, + NULL); + if (ret != kNoErr) + { + ota_led_thread_hdl = NULL; + } +} + +void ws2812_led_stop_ota(){ + //rtos_stop_timer(&timer_led_ota_handle); +} + typedef struct { beken_thread_t handle; @@ -88,8 +126,8 @@ static spi_data_test_config_t s_spi_test; static int colorIndex = 0; static int colors[] = {RED, GREEN, WHITE}; - - +static int current_color = RED; +static float current_brightness = 100; static beken_queue_t spi_led_msg_que = NULL; static beken_thread_t spi_led_thread_hdl = NULL; //static beken_thread_t spi_led_thread_hdl_gsensor = NULL; @@ -129,17 +167,19 @@ static void spi_led_task(void *arg) switch(msg.type){ //唤醒词 灯效果 case TYPE_WAKEUP: - ws2812_set_all_led(0xFFFFFF,0); - ws2812_set_all_led(0xFFFFFF,1); - rtos_delay_milliseconds(50); - ws2812_set_all_led(0xFFFFFF,0); - rtos_delay_milliseconds(50); - ws2812_set_all_led(0xFFFFFF,1); - rtos_delay_milliseconds(50); - ws2812_set_all_led(0xFFFFFF,0); + ws2812_set_all_led(current_color,0); + ws2812_set_all_led(current_color,current_brightness); + rtos_delay_milliseconds(100); + ws2812_set_all_led(current_color,0); + rtos_delay_milliseconds(100); + ws2812_set_all_led(current_color,current_brightness); + rtos_delay_milliseconds(100); + ws2812_set_all_led(current_color,0); + rtos_delay_milliseconds(100); + ws2812_set_all_led(current_color,current_brightness); break; case TYPE_OFF: - ws2812_set_all_led(0xFFFFFF,0); + ws2812_set_all_led(current_color,0); break; case TYPE_CHANGE_COLOR: @@ -168,9 +208,16 @@ static void spi_led_task(void *arg) void ws2812_set_all_led(int color,int brightness){ bk_printf("ws2812_set_all_led\n"); + if(!ws2812_start){ + bk_printf("ws2812 is not init\n"); + return; + } + current_color = color; + current_brightness = brightness; memset(led_data,0x0C,sizeof(led_data)); // 对颜色进行亮度调整 - int adjustedColor = adjustColorBrightness(color, brightness); + float br = (float)brightness/100; + int adjustedColor = adjustColorBrightness(color, br); int index = 0; // 为灯填充数据 for (int j = 0; j < WS2812_LED_NUM; j++) @@ -253,30 +300,49 @@ void ws2812_deinit(){ void ws2812_led_wifi_disconnect(){ //bk_printf("hi ws2812_led_wifi_disconnect777777\n"); //open_dmaspi(RED, 1); - ws2812_set_all_led(RED,1); + ws2812_set_all_led(RED,current_brightness); } void ws2812_led_wifi_connected(){ //bk_printf("hi ws2812_led_wifi_connected22\n"); //open_dmaspi(WHITE, 1); - ws2812_set_all_led(WHITE,1); + ws2812_set_all_led(WHITE,current_brightness); } void ws2812_led_asr_wakeup(){ if (spi_led_msg_que != NULL) { - ws2812_msg_t msg; - msg.type = TYPE_WAKEUP; - rtos_push_to_queue(&spi_led_msg_que, &msg, BEKEN_NO_WAIT); + //ws2812_msg_t msg; + //msg.type = TYPE_WAKEUP; + //rtos_push_to_queue(&spi_led_msg_que, &msg, BEKEN_NO_WAIT); } } +void ws2812_set_all_led_brightness(int brightness){ + if(brightness<0 || brightness>100){ + return; + } + + bk_printf("ws2812_set_all_led_brightness br:%d\n",brightness); + if(current_color ==0x000000 && brightness > 0){ + ws2812_set_all_led(WHITE, brightness); + }else{ + ws2812_set_all_led(current_color, brightness); + } + +} +void ws2812_set_all_led_color(int color){ + ws2812_set_all_led(color, current_brightness); +} + void spi_led_init_gsensor() { - int currentColor = colors[colorIndex]; - // 调用设置颜色的函数 - ws2812_set_all_led(currentColor, 1); - // 更新颜色索引,实现循环 colorIndex = (colorIndex + 1) % 3; + //int colorIndex = colors[colorIndex]; + // 调用设置颜色的函数 + ws2812_set_all_led(colors[colorIndex], current_brightness); + // 更新颜色索引,实现循环 + + //current_color = colorIndex; } void ws2812_led_change_color(){ @@ -288,6 +354,6 @@ void ws2812_led_change_color(){ void ws2812_led_clear_all(){ //bk_printf("hi ws2812_led_clear_all8888\n"); //clearallled(); - ws2812_set_all_led(0x000000,1); + ws2812_set_all_led(0x000000,0); } diff --git a/bk_aidk/projects/beken_wss_paopao/main/spi_led.h b/bk_aidk/projects/beken_wss_paopao/main/spi_led.h index 2b18f5bd..3773dd8e 100755 --- a/bk_aidk/projects/beken_wss_paopao/main/spi_led.h +++ b/bk_aidk/projects/beken_wss_paopao/main/spi_led.h @@ -33,8 +33,10 @@ uint8_t get_binary_data_status(); void ws2812_init(); void ws2812_deinit(); void ws2812_set_all_led(int color,int brightness); +void ws2812_set_all_led_brightness(int brightness); void ws2812_led_asr_wakeup(); void ws2812_led_change_color(); +void ws2812_led_start_ota(); #ifdef __cplusplus } #endif