完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
运行例程examplesprotocolshttp_serverrestful_server,在网页里能修改Light control,
I (137485) esp-rest: Light control: red = 50, green = 85, blue = 28。 但是esp32重启后修改的内容又恢复到默认值了。 怎样让网页打开后自动显示以前的设定值,而不是显示默认的160,160,160。 数据保存有例程可以实现,网页刚打开时怎么触发esp32读取保存在flash里的Light control再显示到网页? |
|
相关推荐
1个回答
|
|
要给ESP32的restful_server增加数据保存功能,并在网页打开时自动显示以前的设定值,可以按照以下步骤操作:
1. 首先,需要在ESP32上实现一个数据保存的功能。这可以通过使用非易失性存储器(如SPIFFS或LittleFS)来实现。以下是一个使用SPIFFS的示例: a. 在`CMakeLists.txt`文件中添加SPIFFS支持: ``` set(COMPONENT_REQUIRES esp32) set(COMPONENT_PRIV_REQUIRES spi_flash) set(COMPONENT_ADD_INCLUDEDIRS include) set(COMPONENT_SRCDIRS ".") ``` b. 在`main`函数中初始化SPIFFS: ```c void app_main() { // 初始化SPIFFS esp_err_t ret = esp_spiffs_init(NULL); if (ret != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize SPIFFS (%s)", esp_err_to_name(ret)); return; } // 其他代码... } ``` 2. 接下来,需要在修改Light control的API中添加保存数据的逻辑。例如,当用户通过HTTP请求修改Light control时,将新的设置保存到SPIFFS中。以下是一个示例: ```c esp_err_t restful_set_light_control(httpd_req_t *req) { // 解析请求数据... // 保存新的Light control设置到SPIFFS const char *path = "/light_control.txt"; esp_err_t ret = esp_spiffs_write_file(path, (const char *)&light_control, sizeof(light_control)); if (ret != ESP_OK) { ESP_LOGE(TAG, "Failed to write light control settings to SPIFFS (%s)", esp_err_to_name(ret)); return ret; } // 返回成功 return ESP_OK; } ``` 3. 在网页打开时,需要从SPIFFS中读取保存的Light control设置,并将其显示在网页上。可以在HTTP服务器的初始化函数中添加以下代码: ```c void http_server_init() { // 初始化HTTP服务器... // 从SPIFFS读取Light control设置 const char *path = "/light_control.txt"; light_control_t saved_light_control; esp_err_t ret = esp_spiffs_read_file(path, (char *)&saved_light_control, sizeof(light_control_t)); if (ret == ESP_OK) { // 如果读取成功,使用保存的设置 light_control = saved_light_control; } else { // 如果读取失败,使用默认设置 light_control.red = 160; light_control.green = 160; light_control.blue = 160; } } ``` 通过以上步骤,当ESP32重启后,网页打开时会自动显示以前保存的Light control设置,而不是默认值。 |
|
|
|
只有小组成员才能发言,加入小组>>
310 浏览 1 评论
551浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
443浏览 5评论
445浏览 4评论
415浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 09:26 , Processed in 0.694973 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号