尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

ESP32--web 控制官方开发板上七彩led灯光

ESP32--web 控制官方开发板上七彩led灯光 前言今天要做的实验主要依赖前面的文章官方web demo。然后我们在前面的web 网页上看到了一个控制led的页面那现在我们就用那个页面控制板子上的七彩led闪烁。一、七彩LED灯RGB LED 可寻址 RGB 发光二极管由 GPIO18 驱动。二、使用步骤1.引入LED的代码官方led例程esp-idf/examples/get-started/blink/* 注意这些代码要放入 esp_rest_main.c文件中这里我只是摘出来你要放进去的内容 */#includeled_strip.h#includedriver/gpio.h#defineBLINK_GPIO18staticled_strip_handle_tled_strip;/* 这个函数是参考的上述官方的led demo修改的 */voidblink_led(intr,intg,intb){/* Set the LED pixel using RGB from 0 (0%) to 255 (100%) for each color */led_strip_set_pixel(led_strip,0,r,g,b);/* Refresh the strip to send data */led_strip_refresh(led_strip);}/* 初始化led灯这个函数要放入 app_main 中*/staticvoidconfigure_led(void){ESP_LOGI(TAG,Example configured to blink addressable LED!);/* LED strip initialization with the GPIO and pixels number*/led_strip_config_tstrip_config{.strip_gpio_numBLINK_GPIO,.max_leds1,// at least one LED on board};led_strip_spi_config_tspi_config{.spi_busSPI2_HOST,.flags.with_dmatrue,};ESP_ERROR_CHECK(led_strip_new_spi_device(strip_config,spi_config,led_strip));}在rest_server.c 中放入上述的 blink_led函数接口externvoidblink_led(intr,intg,intb);staticesp_err_tlight_brightness_post_handler(httpd_req_t*req){inttotal_lenreq-content_len;intcur_len0;char*buf((rest_server_context_t*)(req-user_ctx))-scratch;intreceived0;if(total_lenSCRATCH_BUFSIZE){/* Respond with 500 Internal Server Error */httpd_resp_send_err(req,HTTPD_500_INTERNAL_SERVER_ERROR,content too long);returnESP_FAIL;}while(cur_lentotal_len){receivedhttpd_req_recv(req,bufcur_len,total_len);if(received0){/* Respond with 500 Internal Server Error */httpd_resp_send_err(req,HTTPD_500_INTERNAL_SERVER_ERROR,Failed to post control value);returnESP_FAIL;}cur_lenreceived;}buf[total_len]\0;cJSON*rootcJSON_Parse(buf);intredcJSON_GetObjectItem(root,red)-valueint;intgreencJSON_GetObjectItem(root,green)-valueint;intbluecJSON_GetObjectItem(root,blue)-valueint;ESP_LOGI(REST_TAG,Light control: red %d, green %d, blue %d,red,green,blue);/* 注意这句才是重点这句会直接去控制led灯光的变化 */blink_led(red,green,blue);cJSON_Delete(root);httpd_resp_sendstr(req,Post control value successfully);returnESP_OK;}3.添加依赖这个是重要的后面你们会用到这个用到很多次你看官方led闪烁的demo 就知道添加这个依赖了4.结果展示紫色灯光展示褐色灯光展示后台日志信息总结上述的介绍可能还是不完善还是那句话。请大家多多指教欢迎大家到评论区交流。我们下期来个esp32 调用echats图表案例。
返回列表