优化助眠仪及灯光
This commit is contained in:
parent
7d81c0f348
commit
410018accb
@ -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)
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user