![]() 演示今天要给大家演示的,通过浏览器访问网页进行IoT控制。 需要完成的工作包括: 1. 开发板连接WiFi 2. 开发板连接WiFi后,提供web服务 3. 电脑或者手机通过浏览器访问开发板提供的web服务 4. 在网页界面上,控制开发板上LED等的点亮和关闭 先来一段演示视频: ![]() 再来完整代码: ![]() 讲解如下: 1. 拷贝examples中的http_server/simple,以此为基础进行:
2. 修改配置:
因为本实例参考了blink例子,进行板载LED的控制,所以EXTRA_COMPONENT_DIRS中需要添加examples/common_components/led_strip 3. 主代码:具体代码,请查看完整代码包中的main.c文件
4. 逻辑讲解:
在wifi事件IP_EVENT_STA_GOT_IP(成功连接并获得ip地址)的回调中,有两个关键的httpd_register_uri_handler注册:
通过index_config、ctrl_config的设置:
我们可以看到,分别注册了两个网址回调,一个是/,用来访问默认的网页界面,一个是/ctrl,用来提供控制指令的发送。 两者对应的回调函数,分别为:
而控制led,则由两个函数完成:
上述控制界面网页,由index_config.user_ctx来提供:
这里引用了bootstrap,用于界面样式的控制,引用jquery用于ajax请求的控制。 该界面上,有两个按钮,以及一个状态显示,具体如下: ![]() 其处理逻辑如下:
5. 具体操作:
![]()
![]()
![]()
![]() 该处默认为512,浏览器访问时,可能会出现错误: Header fields are too long for the server to interpret
![]()
![]()
![]()
![]()
![]()
![]() 现在就把你的ESP32-C开发版用起来,试试控制家里的设备吧。 |
WechatIMG2710.jpeg (109.34 KB, 下载次数: 0)
1.23 MB , 下载次数: 4
2024 RISC-V 中国峰会:华秋电子助力RISC-V生态!
1016 浏览 0 评论
【昉·星光 2 高性能RISC-V单板计算机体验】移植IEC61850协议助力电子电子发展
975 浏览 0 评论
【昉·星光 2 高性能RISC-V单板计算机体验】在Docker 中运行 OpenWrt
2038 浏览 0 评论
【昉·星光 2 高性能RISC-V单板计算机体验】以容器的方式安装 HomeAssistant
2478 浏览 0 评论
【昉·星光 2 高性能RISC-V单板计算机试用体验】开箱及装载Debian系统
1961 浏览 2 评论
电子发烧友网
电子发烧友开云(中国)官方