使用ESPHome烧录固件到ESP32-C3并接入HomeAssistant
文章目录
- 一、安装ESPHome
- 二、配置ESP32-C3控制灯
- 1.主配置文件esp32c3-luat.yaml
- 2.基础通用配置base.yaml
- 3.密码文件secret.yaml
- 4.围栏灯four_light.yaml
- 5.彩灯rgb_light.yaml
- 6.左右柱灯left_right_light.yaml
- 三、安装固件
- 四、HomeAssistant配置ESPHome
- 1.直接访问
- 2.配置ESPHome地址
- 3.接入成功
一、安装ESPHome
uv init
uv add esphome
uv run esphome dashboard ./esphome
二、配置ESP32-C3控制灯
注意事项
1. id和name要用英文,不要用中文
2. wifi连接要用2.4GHz,不要用5GHz
3. i2c要注意frequency的设置
文件目录如下
ESP32-C3开发板
1.主配置文件esp32c3-luat.yaml
# https://wiki.luatos.com/chips/esp32c3/board.html
esphome:name: esp32c3-luatfriendly_name: esp32c3-luat
# name_add_mac_suffix: trueplatformio_options:board_build.flash_mode: dioboard_build.mcu: esp32c3esp32:# HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flashboard: esp32-c3-devkitm-1variant: esp32c3framework:type: esp-idf# Enable logging
logger:hardware_uart: USB_SERIAL_JTAGpackages:# MAC: 60:55:f9:73:59:68base: !include common/base.yaml
# luat_light: !include common/light/luat_light.yaml
# luat_switch: !include common/switch/luat_switch.yamlfour_light: !include common/light/four_light.yamlrgb_light: !include common/light/rgb_light.yamlleft_right_light: !include common/light/left_right_light.yaml
captive_portal:
#<<: !include common/mechanical/matrix_keypad.yaml#WARNING GPIO2 is a strapping PIN and should only be used for I/O with care.
#WARNING GPIO8 is a strapping PIN and should only be used for I/O with care.
#WARNING GPIO9 is a strapping PIN and should only be used for I/O with care.
#Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
#See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
#12 13 This pin cannot be used on ESP32-C3s and is already used by the SPI/PSRAM interface (function: SPIHD).
2.基础通用配置base.yaml
# https://esphome.io/components/wifi
wifi:ssid: !secret wifi_ssidpassword: !secret wifi_passwordfast_connect: true# https://esphome.io/components/ota
ota:platform: esphomepassword: !secret ota_password# https://esphome.io/components/api
api:encryption:key: !secret api_encryption_key# 没有连接HA,默认15min会重启一次,设置为0s,将不再重启reboot_timeout: 0s# https://esphome.io/components/web_server
web_server:port: 80# https://esphome.io/components/mdns
mdns:disabled: falsetext_sensor:# https://esphome.io/components/text_sensor/version- platform: versionname: "Version"# https://esphome.io/components/text_sensor/wifi_info- platform: wifi_infomac_address:name: "Mac"ip_address:name: "IP"update_interval: 1mindns_address:name: "DNS"update_interval: 1minssid:name: "SSID"update_interval: 1minbssid:name: "BSSID"update_interval: 1min
3.密码文件secret.yaml
上面base.yaml中!secret wifi_ssid
就是引用secret.yaml里面的wifi_ssid的值
# Your Wi-Fi SSID and password
wifi_ssid: "xxx"
wifi_password: "xxx"api_encryption_key: "xxx"
ota_password: "xxx"
ap_password: "xxx"
4.围栏灯four_light.yaml
# https://esphome.io/components/light/binary
light:- platform: binaryname: four_lightoutput: four_light_outputoutput:- id: four_light_outputplatform: gpiopin: 0
5.彩灯rgb_light.yaml
# https://esphome.io/components/light/rgb
light:- platform: rgbid: colorful_lightname: colorful_lightred: output_component_redgreen: output_component_greenblue: output_component_blue
# https://esphome.io/components/light/#pulse-effect
# effects:
# - pulse:
# - pulse:
# name: "Fast Pulse"
# transition_length: 0.5s
# update_interval: 0.5s
# min_brightness: 0%
# max_brightness: 100%
# - pulse:
# name: "Slow Pulse"
# # transition_length: 1s # defaults to 1s
# update_interval: 2s
# - pulse:
# name: "Asymmetrical Pulse"
# transition_length:
# on_length: 1s
# off_length: 500ms
# update_interval: 1.5s
output:# https://esphome.io/components/output/ledc
# - platform: ledc
# id: output_component_red
# pin:
# number: 4
# inverted: true
# - platform: ledc
# id: output_component_blue
# pin:
# number: 3
# inverted: true
# - platform: ledc
# id: output_component_green
# pin:
# number: 2
# inverted: true- platform: ledcid: output_component_redpin:number: 1inverted: true- platform: ledcid: output_component_bluepin:number: 18inverted: true- platform: ledcid: output_component_greenpin:number: 19inverted: true#output:
# - platform: esp8266_pwm
# id: output_component_red
# pin: D1
# - platform: esp8266_pwm
# id: output_component_green
# pin: D2
# - platform: esp8266_pwm
# id: output_component_blue
# pin: D3
6.左右柱灯left_right_light.yaml
# https://esphome.io/components/light/binary
light:- platform: binaryname: left_lightoutput: left_light_output- platform: binaryname: right_lightoutput: right_light_output
output:- id: left_light_outputplatform: gpiopin: 6- id: right_light_outputplatform: gpiopin: 7
三、安装固件
四、HomeAssistant配置ESPHome
1.直接访问
2.配置ESPHome地址
如果配置了api_encryption_key,需要填写密钥
3.接入成功
相关文章:

使用ESPHome烧录固件到ESP32-C3并接入HomeAssistant
文章目录 一、安装ESPHome二、配置ESP32-C3控制灯1.主配置文件esp32c3-luat.yaml2.基础通用配置base.yaml3.密码文件secret.yaml4.围栏灯four_light.yaml5.彩灯rgb_light.yaml6.左右柱灯left_right_light.yaml 三、安装固件四、HomeAssistant配置ESPHome1.直接访问2.配置ESPHom…...
【漫话机器学习系列】237. TSS总平方和
深度理解 TSS(总平方和):公式、意义与应用 在机器学习与统计建模领域,评价模型好坏的重要指标之一就是方差与误差分析。其中,TSS(Total Sum of Squares,总平方和)扮演着非常关键的角…...

DeepSeek多尺度数据:无监督与原则性诊断方案全解析
DeepSeek 多尺度数据诊断方案的重要性 在当今的 IT 领域,数据如同石油,是驱动各类智能应用发展的核心资源。随着技术的飞速发展,数据的规模和复杂性呈爆炸式增长,多尺度数据处理成为了众多领域面临的关键挑战。以计算机视觉为例,在目标检测任务中,小目标可能只有几个像素…...

Spring Framework 6:虚拟线程支持与性能增强
文章目录 引言一、虚拟线程支持:并发模型的革命二、AOT编译与原生镜像优化三、响应式编程与可观测性增强四、HTTP接口客户端与声明式HTTP五、性能比较与实际应用总结 引言 Spring Framework 6作为Spring生态系统的基础框架,随着Java 21的正式发布&#…...
用Redisson实现库存扣减的方法
Redisson是一个在Redis基础上实现的Java客户端,提供了许多高级功能,包括分布式锁、计数器、集合等。使用Redisson实现库存扣减可以保证操作的原子性和高效性。本文将详细介绍如何使用Redisson实现一个简单的库存扣减功能。 一、初始化Redisson客户端 首…...
视频转GIF
视频转GIF 以下是一个使用 Python 将视频转换为 GIF 的脚本,使用了 imageio 和 opencv-python 库: import cv2 import imageio import numpy as np """将视频转换为GIF图参数:video_path -- 输入视频的路径gif_path -- 输出GIF的路径fp…...

一场静悄悄的革命:AI大模型如何重构中国产业版图?
一场静悄悄的革命:AI大模型如何重构中国产业版图? 当ChatGPT在2022年掀起全球AI热潮时,很少有人意识到,这场技术变革正在中国产业界掀起更深层次的革命。在浙江宁波,一个纺织企业老板打开"产业链智能创新平台",30秒内就获得了原料采购、设备升级、海外拓客的全…...
kotlin 02flow-sharedFlow 完整教程
一 sharedFlow是什么 SharedFlow 是 Kotlin 协程中 Flow 的一种 热流(Hot Flow),用于在多个订阅者之间 共享事件或数据流。它适合处理 一次性事件(如导航、弹窗、Toast、刷新通知等),而不是持续状态。 ✅ …...

CentOS网络之network和NetworkManager深度解析
文章目录 CentOS网络之network和NetworkManager深度解析1. CentOS网络服务发展历史1.1 传统network阶段(CentOS 5-6)1.2 过渡期(CentOS 7)1.3 新时代(CentOS 8) 2. network和NetworkManager的核心区别3. ne…...
【AI】模型与权重的基本概念
在 ModelScope 平台上,「模型」和「权重」的定义与工程实践紧密结合,理解它们的区别需要从实际的文件结构和加载逻辑入手。以下是一个典型 ModelScope 模型仓库的组成及其概念解析: 1. ModelScope 模型仓库的典型结构 以 deepseek-ai/deepse…...
设计模式-基础概念学习总结(继承、多态、虚方法、方法重写)
概念使用例子的方式介绍(继承,多态,虚方法,方法重写),实现代码python 1. 继承(Inheritance) 概念:子类继承父类的属性和方法,可以直接复用父类的代码&#…...
2025年小程序DDoS与CC攻击防御全指南:构建智能安全生态
2025年,小程序已成为企业数字化转型的核心载体,但随之而来的DDoS与CC攻击也愈发复杂化、智能化。攻击者利用AI伪造用户行为、劫持物联网设备发起T级流量冲击,甚至通过漏洞窃取敏感数据。如何在高并发业务场景下保障小程序的稳定与安全&#x…...

当当狸智能天文望远镜 TW2 | 用科技触摸星辰,让探索触手可及
当科技邂逅星空,每个普通人都能成为宇宙的追光者 伽利略用望远镜揭开宇宙面纱的 400 年后,当当狸以颠覆传统的设计,让天文观测从专业领域走入千家万户。当当狸智能天文望远镜 TW2,重新定义「观星自由」—— 无需专业知识ÿ…...
QT实现曲线图缩放、拖拽以及框选放大
.h文件 protected: void saveAxisRange();void wheelEvent(QWheelEvent *event) override;void mousePressEvent(QMouseEvent *event) override;void mouseMoveEvent(QMouseEvent *event) override;void mouseReleaseEvent(QMouseEvent *event) override;private:QPoint m_…...
C# | 基于C#实现的BDS NMEA-0183数据解析上位机
以下是一个基于C#实现的BDS NMEA-0183数据解析上位机的示例代码,包含基础功能和界面: using System; using System.Collections.Generic; using System.IO.Ports; using System.Windows.Forms; using System.Drawing; using System.Globalization;namespace BDS_NMEA_Viewer…...

科学发现 | 源于生活的启示与突破计划的创新
注:本文为“科学发现”相关文章合辑。 略作重排,未全整理。 哪些重大科学发现,来自生活的启示 ︱ 科学史 2020/10/29 导读 好奇心是最好的向导和老师。 撰文 | 陈敬全(东华大学人文学院教授) 英国进化论者赫胥黎…...

【ArcGIS微课1000例】0145:如何按照自定义形状裁剪数据框?
文章目录 一、添加数据二、绘制形状三、裁剪格网和经纬网一、添加数据 打开软件,添加配套实验数据包中0145.rar中的影像数据,如下图所示: 二、绘制形状 1. 在数据视图中,使用绘图 工具条上的新建圆工具 可创建一个椭圆,使其包含要在该数据框中显示的数据范围。 修改椭圆…...

网络安全防火墙技术有哪些?网络防火墙的主要作用
网络安全防火墙技术有哪些?网络防火墙的主要作用 网络安全防火墙技术是保护网络免受未经授权访问和攻击的关键工具。以下是常见的防火墙技术及其主要作用: 一、网络安全防火墙技术分类 包过滤防火墙(Packet Filtering Firewall) 原理&#x…...

数据集-目标检测系列- 印度人脸 检测数据集 indian face >> DataBall
数据集-目标检测系列- 印度人脸 检测数据集 indian face >> DataBall DataBall 助力快速掌握数据集的信息和使用方式。 贵在坚持! * 相关项目 1)数据集可视化项目:gitcode: https://gitcode.com/DataBall/DataBall-detections-100s…...

Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.
版本: 原因 在 Dart Sass 3.0.0 中, @import 规则将被弃用,推荐使用 @use 和 @forward 规则来替代。 1.@use替代@import @use 规则允许你引入其他 Sass 文件中的变量、混合器和函数,并且可以避免命名冲突。 示例: style.scss @use variables;body {color: variables.$pr…...
通过CIDR推出子网掩码和广播地址等
写在前面 不知道你遇到过这种面试题没,给你CIDR,让你推理子网掩码等信息。如果你不会,那本文刚好适合你。 1:一个面试题16.158.165.91/22 这个 CIDR。求一下这个网络的第一个地址、子网掩码和广播地址。 一般如果你对CIDR知识有…...

【工具教程】批量提取PDF指定内容并重命名,PDF文档根据指定识别文字改名,基于java的实现方案
物流单据处理:每天处理大量发货单PDF,提取订单编号、发货方信息等关键字段重命名文件 合同管理:从合同PDF中提取合同编号、签署方名称等作为文件名 学术论文整理:根据论文标题或作者信息重命名PDF文件 财务票据…...
std::iota(C++)
std::iota 1. 概述2. 函数原型3. 使用示例示例 1:填充 vector<int>示例 2:从非零起始值开始 4. 应用场景5. 注意事项6. 与其它算法比较小结 1. 概述 std::iota 定义在头文件 中,C11 起引入。 它用于向前迭代器区间依次填入连续递增的数…...
【IP101】图像特征提取技术:从传统方法到深度学习的完整指南
🌟 特征提取魔法指南 🎨 在图像处理的世界里,特征提取就像是寻找图像的"指纹",让我们能够识别和理解图像的独特性。让我们一起来探索这些神奇的特征提取术吧! 📚 目录 基础概念 - 特征的"体…...

苍穹外卖(用户下单、订单支付)
用户下单、订单支付 导入地址簿功能代码 接口设计 数据库设计(address_book表) 代码导入 功能测试 用户下单 接口设计 数据库设计 订单表 orders 订单明细表 order_detail 代码开发 根据用户下单接口的参数设计DTO 根据用户下单接口的…...
数据结构-非线性结构-二叉树
概述 /** * 术语 * 根节点(root node):位于二叉树顶层的节点,没有父节点。 * 叶节点(leaf node):没有子节点的节点,其两个指针均指向 None 。 * 边(edge)&…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】3.2 缺失值检测与处理(NULL值填充/删除策略)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 缺失值检测与处理全攻略:NULL值填充与删除策略实战3.2 缺失值检测与处理3.2.1 缺失值类型与业务影响3.2.1.1 缺失值的三种形态3.2.1.2 业务影响分级 3.2.2 缺失值…...

2025年渗透测试面试题总结-某步在线面试(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 一、操作系统相关问题总结与分析及扩展回答 1. Linux命令熟悉度 2. 查看进程的命令 3. 查看网络进程…...

Java后端程序员学习前端之JavaScript
1.什么是JavaScript 1.1.概述 JavaScript是一门世界上最流行的脚本语言javaScript 一个合格的后端人员,必须要精通JavaScript 1.2.历史 JavaScript的起源故事-CSDN博客 2.快速入门 2.1.引入JavaScript 1.内部标签 <script>//.......</script> --…...
ARM Linux 设备树
Linux 设备驱动开发详解:基于最新的Linux 4.0内核, 机械工业出版社, 宋宝华, 2015 1. 设备树的起源 • 背景: ARM架构中大量板级代码冗余,硬编码在mach-xxx目录,设备树(Device Tree)引入结构化描述硬件。 • 目的: 减…...