当前位置: 首页 > news >正文

esp32 ap httpsever 控制led

功能:浏览器/open    开 led

         /close    关led

  如不关,则亮灯10秒自动关闭

已买220v 转5V电源,5V固态继电器,开始组装无线开关。

代替家里华为的hlink灯泡,此灯必须要连入网络才能控制开和关,经常时灵时不灵。


#include <stdio.h>
#include <string.h>
#include "esp_wifi.h"
#include "esp_event.h"
#include "esp_log.h"
#include "nvs_flash.h"
#include "esp_http_server.h"
#include "driver/gpio.h"
#include "esp_timer.h"#define WIFI_SSID "ESP32_AP"
#define WIFI_PASS "wz123456"
#define MAX_STA_CONN 4#define GPIO_out  2  
static int bz=0;
static const char *TAG = "ESP32_AP_HTTP";
static int64_t time = 0;// HTTP GET 处理程序,响应 "OK"
esp_err_t open_handler(httpd_req_t *req) {char resp_str[21]="led open"; httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");httpd_resp_set_type(req, "text/plain");httpd_resp_send(req, resp_str, HTTPD_RESP_USE_STRLEN); gpio_set_level(GPIO_out,1);bz=1;return ESP_OK;
}//http GET "/close"处理函数
esp_err_t close_handler(httpd_req_t *req){char resp_str[21]="led close";httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*"); httpd_resp_set_type(req, "text/plain");httpd_resp_send(req, resp_str, HTTPD_RESP_USE_STRLEN);   gpio_set_level(GPIO_out,0);bz=0;return ESP_OK;
}
// 配置 HTTP 服务器并注册 URI 处理程序
httpd_handle_t start_webserver(void) {httpd_config_t config = HTTPD_DEFAULT_CONFIG();httpd_handle_t server = NULL;if (httpd_start(&server, &config) == ESP_OK) {httpd_uri_t ok_uri = {.uri       = "/open",.method    = HTTP_GET,.handler   = open_handler,.user_ctx  = NULL};httpd_register_uri_handler(server, &ok_uri);httpd_uri_t close_uri = {.uri      = "/close",.method   = HTTP_GET,.handler  = close_handler,.user_ctx = NULL};httpd_register_uri_handler(server, &close_uri);	}return server;
}// 初始化 AP 模式
void wifi_init_softap() {wifi_config_t wifi_config = {.ap = {.ssid = WIFI_SSID,.ssid_len = strlen(WIFI_SSID),.password = WIFI_PASS,.max_connection = MAX_STA_CONN,.authmode = WIFI_AUTH_WPA_WPA2_PSK},};if (strlen(WIFI_PASS) == 0) {wifi_config.ap.authmode = WIFI_AUTH_OPEN;}ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP));ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config));ESP_ERROR_CHECK(esp_wifi_start());ESP_LOGI(TAG, "AP initialized. SSID:%s password:%s", WIFI_SSID, WIFI_PASS);
}void app_main(void) {gpio_config_t io_conf = {};      io_conf.intr_type = GPIO_INTR_DISABLE;io_conf.mode = GPIO_MODE_OUTPUT;io_conf.pin_bit_mask = 1ULL<<GPIO_out;  io_conf.pull_down_en = 0;io_conf.pull_up_en = 0;gpio_config(&io_conf);esp_err_t ret = nvs_flash_init();if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {ESP_ERROR_CHECK(nvs_flash_erase());ret = nvs_flash_init();}ESP_ERROR_CHECK(ret);ESP_ERROR_CHECK(esp_netif_init());ESP_ERROR_CHECK(esp_event_loop_create_default());esp_netif_create_default_wifi_ap();wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();ESP_ERROR_CHECK(esp_wifi_init(&cfg));wifi_init_softap();// 启动 HTTP 服务器start_webserver();gpio_set_level(GPIO_out,0);while(1){if(bz){time=esp_timer_get_time();while((esp_timer_get_time()-time)<10000000){  //开灯10秒vTaskDelay(10/portTICK_PERIOD_MS);}gpio_set_level(GPIO_out,0);bz=0;}vTaskDelay(10 / portTICK_PERIOD_MS);}
}

 

 

 

相关文章:

esp32 ap httpsever 控制led

功能&#xff1a;浏览器/open 开 led /close 关led 如不关&#xff0c;则亮灯10秒自动关闭 已买220v 转5V电源&#xff0c;5V固态继电器&#xff0c;开始组装无线开关。 代替家里华为的hlink灯泡&#xff0c;此灯必须要连入网络才能控制开和关&#xff0c;经常时灵时不…...

告别复杂判断!Python中实现函数重载的终极技巧

引言 说到函数重载&#xff0c;学过 Java 的同学应该不陌生&#xff0c;最常用的地方应该就是打印 log 了&#xff0c;对于不同的参数&#xff0c;调用的是不同的重载函数。那么 Python 如何实现函数重载呢&#xff1f; 重载概念 函数重载是指在同一作用域内&#xff0c;允许…...

Clang-Format:让你的代码整齐划一,格式不再烦恼

在现代软件开发中&#xff0c;代码规范和一致性对团队协作和代码质量至关重要。如何保持代码风格一致&#xff0c;避免手动格式化的繁琐操作&#xff1f;clang-format 是一款强大而灵活的代码格式化工具&#xff0c;它为开发者提供了高效的解决方案。本文将详细介绍 clang-form…...

【jvm】Full GC

目录 1. 说明2. 触发条件3. 优化4. 注意事项 1. 说明 1.Full GC&#xff08;Full Garbage Collection&#xff09;是Java垃圾回收过程中最重要且最昂贵的一种操作。2.Full GC涉及对整个堆内存&#xff08;包括年轻代和老年代&#xff09;的垃圾回收。3.当Full GC发生时&#x…...

【Python】实战:请使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息

# 定义汽车基类 class Car:def __init__(self, model, license_plate):self.model model # 车型self.license_plate license_plate # 车牌def start(self):print(f"{self.model} ({self.license_plate}) 启动了。")def stop(self):print(f"{self.model} ({s…...

互联网摸鱼日报(2024-11-07)

互联网摸鱼日报(2024-11-07) 36氪新闻 阿华田再现颓势 中国旅游景区上市公司&#xff0c;三季度财报好看吗&#xff1f; 电动化浪潮下&#xff0c;消费者彻底放弃百年品牌BBA&#xff1f; 估值114亿&#xff0c;海尔系独角兽终止IPO 又一知名品牌门店全关&#xff0c;高端…...

requests库

GET请求 基本实例import requestsresponse requests.get(https://www.httpbin.org/get) print(response.text)params参数import requests data {"name":"Bileton","age":"21" } response requests.get(https://www.httpbin.org/ge…...

大数据之多级缓存方案

多级缓存介绍&#xff1f;多级缓存优缺点&#xff0c;应用场景&#xff1f;多级缓存架构&#xff1f; 多级缓存介绍 多级缓存方案是一种优化手段&#xff0c;通过在多个级别上存储数据来提高应用程序的性能和响应速度。以下是对多级缓存方案的详细解析&#xff1a; 一、多级缓…...

QCon演讲实录|徐广治:边缘云原生操作系统的设计与思考

10月18日&#xff0c;在 QCon 全球软件开发大会 2024&#xff08;上海站&#xff09;&#xff0c;火山引擎边缘云资深架构师徐广治围绕火山引擎边缘计算产品背后的算力底座 - 边缘云原生操作系统&#xff0c;探讨如何实现算力服务的混合部署和跨区域弹性调度&#xff0c;以及在…...

web第二次作业

代码如下 <!DOCTYPE html> <html> <head> <!-- 设置页面的字符编码为utf-8&#xff0c;确保能正确显示各种字符 --> <meta charset"utf-8"> <title></title> <style> /* 全局样式设置 */ *{ …...

大模型技术讲解:大模型参数微调(大模型微调)

转自 秋色稻田公众号 这篇文章讲讲大模型的参数微调&#xff0c;参数微调&#xff08;Fine-tuning&#xff09;是一种机器学习技术&#xff0c;用于调整大型预训练模型的参数&#xff0c;以大模型适应特定应用场景。这种方法通常用于自然语言处理&#xff08;NLP&#xff09;…...

测试自动化如何和业务流程结合?

测试自动化框架固然重要&#xff0c;但是最终自动化的目的都是为了业务服务的。 那测试自动化如何对业务流程产生积极影响&#xff1f; 业务流程的重要性 测试自动化项目并非孤立存在&#xff0c;其生命周期与被测试的应用程序紧密相关。项目的价值在于被整个开发团队所使用&a…...

Python进阶之IO操作

文章目录 一、文件的读取二、文件内容的写入三、之操作文件夹四、StringIO与BytesIO 一、文件的读取 在python里面&#xff0c;可以使用open函数来打开文件&#xff0c;具体语法如下&#xff1a; open(filename, mode)filename&#xff1a;文件名&#xff0c;一般包括该文件所…...

ubuntu如何卸载colmap

如果你是通过源码编译并安装的 COLMAP&#xff0c;可以按照以下步骤手动卸载&#xff1a; 1. **查找安装路径**&#xff1a; 检查 COLMAP 安装时的路径&#xff08;通常是 /usr/local&#xff09;。 2. **删除二进制文件**&#xff1a; 删除已安装的 COLMAP 可执行文…...

【comfyui教程】ComfyUI即将迎来全新界面:升级体验就在11月15日

前言 ComfyUI迎来全新界面&#xff1a;升级体验就在11月15日 想象一下&#xff0c;拥有一个更直观、更智能的用户界面&#xff0c;不再需要在繁杂的设置中摸索。这不再只是梦想&#xff01;从2024年11月15日起&#xff0c;ComfyUI将正式启用新UI (Beta UI)作为默认界面&#…...

Leecode热题100-104.二叉树的最大深度

给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;root [1,null,2] 输出…...

深度学习中的 Dropout:原理、公式与实现解析

8. dropout 深度学习中的 Dropout&#xff1a;原理、公式与实现解析 在神经网络训练中&#xff0c;模型往往倾向于“记住”训练数据的细节甚至噪声&#xff0c;导致模型在新数据上的表现不佳&#xff0c;即过拟合。为了解决这一问题&#xff0c;Dropout 应运而生。通过在训练…...

【大数据学习 | HBASE】habse的表结构

在使用的时候hbase就是一个普通的表&#xff0c;但是hbase是一个列式存储的表结构&#xff0c;与我们常用的mysql等关系型数据库的存储方式不同&#xff0c;mysql中的所有列的数据是按照行级别进行存储的&#xff0c;查询数据要整个一行查询出来&#xff0c;不想要的字段也需要…...

完成程序《大奖赛评分B》

学习目标&#xff1a; 使用代码完成程序《大奖赛评分B》 题目&#xff1a; 如今许多歌手大奖赛评分时&#xff0c;为了体现公平&#xff0c;在评委给出分数后统计平均得分时&#xff0c;都会去掉最高分和最低分。编写程序&#xff0c;读入评委打分&#xff08;分数都是大于0的…...

K8S篇(基本介绍)

目录 一、什么是Kubernetes&#xff1f; 二、Kubernetes管理员认证&#xff08;CKA&#xff09; 1. 简介 2. 考试难易程度 3. 考试时长 4. 多少分及格 5. 考试费用 三、Kubernetes整体架构 Master Nodes 四、Kubernetes架构及和核心组件 五、Kubernetes各个组件及功…...

百川2-13B-4bits量化模型微基准测试:OpenClaw常用任务性能对比

百川2-13B-4bits量化模型微基准测试&#xff1a;OpenClaw常用任务性能对比 1. 测试背景与动机 上周在折腾OpenClaw自动化办公流程时&#xff0c;发现我的RTX 3090显卡在运行13B模型时显存频繁告警。这让我开始关注量化模型的实际表现——特别是当OpenClaw需要连续调用模型完成…...

探索前沿技术:如何利用AI优化现代软件开发流程

1. AI如何改变现代软件开发的面貌 十年前我刚入行时&#xff0c;软件开发还停留在"人肉编程"阶段。每个功能都要手动敲代码&#xff0c;调试全靠print大法&#xff0c;项目管理用Excel表格记录进度。现在回想起来&#xff0c;当时的开发方式就像用手工织布机做衣服—…...

【PyCon官方认证异步实践标准】:基于aiohttp+uvloop+trio的工业级异步架构设计(含GitHub千星项目源码解析)

第一章&#xff1a;Python异步I/O的核心范式与演进脉络Python异步I/O并非一蹴而就的产物&#xff0c;而是从回调驱动、协程模拟&#xff0c;到原生语法支持的渐进式演进结果。其核心范式始终围绕“单线程并发执行I/O密集型任务”这一目标展开——通过事件循环调度可暂停/恢复的…...

时光守护者:一键备份QQ空间历史说说的终极解决方案

时光守护者&#xff1a;一键备份QQ空间历史说说的终极解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字时代&#xff0c;我们的记忆被分散在各个社交平台&#xff0c;QQ空…...

如何使用Photon光影包提升Minecraft视觉体验:从安装到高级配置完全指南

如何使用Photon光影包提升Minecraft视觉体验&#xff1a;从安装到高级配置完全指南 【免费下载链接】photon A shader pack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/photon3/photon Photon光影包是一款为Minecraft: Java Edition设计的高…...

企业级大数据产品架构设计指南

企业级大数据产品架构设计指南&#xff1a;从概念到落地的完整方案 标题选项 企业级大数据架构设计全攻略&#xff1a;从0到1构建可扩展的数据平台大数据产品架构设计指南&#xff1a;如何打造高性能、高可用的企业级解决方案从理论到实践&#xff1a;企业级大数据产品架构设计…...

InnoDB的“身体结构”:页、Buffer Pool与Redo Log的底层奥秘

欢迎来到MySQL InnoDB存储引擎的“解剖室”&#xff1b;很多人每天都在写SQL&#xff0c;却从未见过数据在磁盘上真正的模样。当面试官问&#xff1a;“为什么InnoDB比MyISAM快&#xff1f;”或者“数据库宕机了&#xff0c;数据是怎么恢复的&#xff1f;”如果你只能回答“因为…...

【声纳与人工智能融合——从理论前沿到自主系统实战】第四章 认知声纳与自适应信号处理(AI+SP深度融合)

目录 第四章 认知声纳与自适应信号处理(AI+SP深度融合) 4.1 认知声纳系统架构与感知循环 4.1.1 感知-规划-行动闭环设计 4.1.1.1 动态环境感知与反馈机制 4.1.1.2 基于强化学习的波形自适应选择 4.1.2 开放式认知声纳体系结构 4.1.2.1 硬件可重配置架构(SDR) 4.1.2…...

Divinity Mod Manager:解决《神界:原罪2》模组管理难题的一站式方案

Divinity Mod Manager&#xff1a;解决《神界&#xff1a;原罪2》模组管理难题的一站式方案 【免费下载链接】DivinityModManager A mod manager for Divinity: Original Sin - Definitive Edition. 项目地址: https://gitcode.com/gh_mirrors/di/DivinityModManager 《…...

STM8/STM32 GPIO触摸按键实现与优化

基于STM8/STM32的GPIO触摸按键实现技术解析1. 触摸按键技术概述1.1 传统方案与MCU实现对比在消费类电子产品中&#xff0c;触摸按键的实现通常有两种主流方案&#xff1a;专用触摸IC方案&#xff1a;集成度高但成本较高MCU GPIO方案&#xff1a;利用通用微控制器实现&#xff0…...