搭建个人智能家居 3 -第一个设备“点灯”

搭建个人智能家居 3 -第一个外设“点灯”

  • 前言
  • ESPHome
    • 点灯
  • HomeAssistant

前言

前面我们已经完成了搭建这个智能家居所需要的环境HomeAssistant和ESPHome,今天我们开始在这个智能家居中添加我们的第一个设备(一颗LED灯),如果环境还没有搭建好,可以参考前面的两篇文章。
搭建个人智能家居 开篇(搭建Home Assistant)
搭建个人智能家居 2 -安装ESPHome
在这里插入图片描述
本次可以分成两步:
第一步是ESPHome编写yaml文件并烧录到ESP32开发板
第二步是HomeAssistant添加控制组件

ESPHome

点灯

这次点亮LED的演示会用ESP32开发板上的板载的LED,通过控制ESP32的某一个IO口输出高/低电平来控制LED灯的点亮和熄灭,这同样适用于用来控制继电器开关,这一类只有高低电平的两种状态的执行器、传感器在ESPHome中叫二进制传感器,在ESPHome中有专门的二进制组件去实现对这一类传感器的控制使用,但是ESPHome官方提供的Light组件中就包含有二进制LED,所以这一次控制的LED将会用ESPHome官方的Light组件去写yaml文件实现。那么现在开始在ESPHome创建设备并编写yaml文件。
在“ESPHome安装”(跳转)的那篇文章中有新建ESPHome的工程的演示,这里就不做过多的赘述,跳过新建工程的过程。
进入ESPHome的控制页面后点击“新建设备”
在这里插入图片描述
点击新建设备后会弹出一个对话框提示输入设备名称,按要求输入就行
在这里插入图片描述
接着点击“NEXT”下一步,然后跳过在线安装,选择设备,这边演示用的是ESP32的板子,所以选ESP32,如果用的是ESP32-S2、S3或者8266等选择相应的型号就行了
在这里插入图片描述
选择好开发板型号后,完成设备创建。
在这里插入图片描述
出现上面弹窗,里面的key可以记录一下,后续HomeAssistant里连接设备需要用,yaml文件里也有体现。点击跳过,到这里工程雏形已经创建好了,点击“EDIT”,进入编辑yaml文件
在这里插入图片描述

创建好的工程里面有一些默认的配置,开发板类型、框架、联网参数等,把鼠标的光标移到相应的地方会出现说明,感兴趣的可以去了解一下他的构成内容,这里不做过多讲解,继续“点灯”。
第一个要编辑的是把ESP32需要连接的wifi的SSID和Password填进去,注意ESP32不支持5G频段的WIFI,所以填入一个和HomeAssistant控制页面主机在同一个局域网的2.4GWIFI参数
在这里插入图片描述
然后在最后面插入我们调用Light组件控制LED亮起熄灭的代码。

light:- platform: binaryname: "led"output: bin_led
//说明:
//创建一个名字为led的设备,创建的这个led继承Light组件,属于Light组件中的“binary(二进制)”类型的设备
//因为这个led是通过GPIO输出高低电平实现的,所以定义一个output的ID,与下面output的实现对应起来output:- id: bin_ledplatform: gpiopin: GPIO2 
//说明:
//id对应上面的led这个设备的id,说明这个output是上面led设备的实现
//通过GPIO2来控制led的亮灭

由于这次用的ESP32板载的LED灯是用GPIO2控制的,所以配置的是GPIO2,如果你们控制led的引脚不同可以通过更改

pin: GPIOxx

实现。
到这里,控制手上ESP32开发板上的led需要写的yaml文件内容已经完成了点击右上角的“SAVE”保存再点“INSTALL”,弹窗选择安装yaml文件的,由于是第一次烧录,选择最后一个手动烧录
在这里插入图片描述
点击后开始编译
在这里插入图片描述
编译完成后弹窗提示选择烧录方式,选择第一个,生成bin文件用Flash Download Tools烧录
在这里插入图片描述
在这里插入图片描述
用Flash Download Tools(点击下载)把生成的bin文件烧录到ESP32开发板中,烧录过程这里不做赘述,跳过…
烧录完成后,打开串口助手,看串口返回的日志可以确认是否连上WIFI。
确认好ESP32成功联网并成功运行后,在和ESP32连的WIFI在同一局域网的主机运行HomeAsstant,并进入控制台。

HomeAssistant

运行HomeAssistant
在这里插入图片描述
打开控制台,点击左边导航栏的配置
在这里插入图片描述
在这里插入图片描述
如果上面配置的ESP32和这HomeAssistant主机是在同一个局域网,在“集成”中的已发现会出现在ESPHome中创建的设备名称。
点击配置
在这里插入图片描述
在这里插入图片描述
在文本框中输入上面ESPHome创建设备时的密钥,如果忘记了可以打开ESPHome控制台进入设备的yaml文件看
在这里插入图片描述
在这里插入图片描述
填入后,完成添加设备的一些个性化配置即可。
配置完成后回到控制台的“概览”,你会发现主页中多了一个控制组件。
在这里插入图片描述
这就是,通过点击这个控制组件的开关就可以控制LED的亮灭了。
关灯状态
在这里插入图片描述
在这里插入图片描述
开灯状态
在这里插入图片描述
在这里插入图片描述

点灯完成。
其他更多的二进制设备可以通过ESPHome官方提供的二进制组件去开发控制。
移动端安装了HomeAssistant的APP通过局域网登录电脑端注册时的账号也是可以控制的,感兴趣的可以去试一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/743587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 如何搭建Lua的运行环境

一、Lua简介 Lua 是一种强大的、高效的、轻量级的、可嵌入的脚本语言。它支持过程(procedural)编程、面向对象编程、函数式编程以及数据描述。Lua 是动态类型的,运行速度快,支持自动内存管理,因此被广泛用于配置、脚本…

【Redis内存数据库】NoSQL的特点和应用场景

前言 Redis作为当今最流行的内存数据库,已经成为服务端加速的必备工具之一。 NoSQL数据库采用了非关系型的数据存储模型,能够更好地处理海量数据和高并发访问。 内存数据库具有更快的读写速度和响应时间,因为内存访问速度比磁盘访问速度快…

使用OCC进行旋转扫掠

旋转扫掠是将物体以某一个坐标轴为参照,按照指定的角度旋转生成新的图形的过程 这里使用面的案例,使用线的逻辑处理其实是一样的 //构造旋转轴 gp_Ax1 anAxis; //设置轴的原点 anAxis.SetLocation(0,0,0); //设置轴的方向 anAxis.SetDirection(gp_Dir(0…

Docker与Nacos的下载与安装配置

文章目录 docker作用docker的下载nacos 下载1. 首先搜索需要的下载2. 拉取stars最多的即可3. 启动nacos4. 打开防火墙8848端口5. 访问nacos docker 作用 Docker 是一种开源的容器化平台,它的作用主要包括以下几个方面: 应用程序的打包和分发&#xff1…

如何使用数字万用表测量接地是否良好

如何使用数字万用表测量接地是否良好 引言 在电器设备的安装和维护过程中,接地是非常重要的一项工作。良好的接地能够保证电器设备的安全运行,并防止因电气故障引起的火灾和人身伤害。数字万用表是一种常用的测试工具,本文将介绍如何使用数…

【软考高项】五、信息化发展之数字化转型与元宇宙

1、数字化转型 定义:数字化转换、数字化升级基础上,对其业务进行系统性、彻底的(或重大和完全的)重新定义。 驱动因素: 生产力飞升:第四次科技革命:第一科学范式为经验范式,第二科学范式为理论范式。第三…

Java高级编程—泛型

文章目录 1.为什么要有泛型 (Generic)1.1 泛型的概念1.2 使用泛型后的好处 2.在集合中使用泛型3.自定义泛型结构3.1 自定义泛型类、泛型接口3.2 自定义泛型方法 4.泛型在继承上的体现5.通配符的使用5.1 基本使用5.2 有限制的通配符的使用 1.为什么要有泛型 (Generic) Java中的…

红黑树笔记分享

【有道云笔记】红黑树 https://note.youdao.com/s/MLWAvCau

2023年常见消息队列 面试题解析!!!

2023年常见消息队列面试题解析 一、基础概念 什么是消息队列? 消息队列是一种通信方法,用于在应用程序的不同部分或不同应用程序之间传递数据。它提供了一个临时的消息存储,允许发送者和接收者异步地进行通信。 消息队列的优点有哪些&…

深入理解与使用go之中间件--实现

深入理解与使用go之--中间件实现 目录 引子 中间件 定义 原理 简单实现 多个中间件 优化 扩展 gin框架实现 引子 我们在做web开发的时候,经常会遇到下面一些需求: 统计耗时:想程序内部统计某个路由的请求耗时 预处理:接口需要登录鉴权后才能继续进行 错误捕获:当…

win11 ubuntu子系统 开代理 调试 openai 接口

我的是laravel项目,步骤如下 步骤1:配置WSL以使用代理 首先,确保WSL中的所有请求都通过你的代理服务器。你可以通过在WSL的shell配置文件(如~/.bashrc或~/.zshrc)中设置环境变量来实现。打开终端,编辑对应…

重学SpringBoot3-WebMvcConfigurer接口

摘要: 本文详细介绍了SpringBoot 3中的WebMvcConfigurer接口,旨在帮助读者深入理解其原理和实现,从而能够更好地使用SpringBoot进行Web开发。阅读本文需要大约30分钟。 关键词:SpringBoot, WebMvcConfigurer, SpringMVC, Web开发…

51-29 开环端到端自动驾驶中自车状态是你所需要的一切吗?

​本论文是南京大学、英伟达最新CVPR 24工作。蛮幸运的,该论文提出了很多思考,证明了很多最优Paper在落地上车方面的无效性。咱们对待新方法能否成为自动驾驶的最佳实践要审慎。 论文名称:Is Ego Status All You Need for Open-Loop End-to-End Autonomous Driving? 论文链…

数据结构知识点总结00-知识点目录

专栏主页: 数据结构算法程序设计基础C语言知识点总结https://blog.csdn.net/seeker1994/category_12585732.html C语言知识点总结00-C语言知识点目录 最优算法100例00-最优算法100例目录 ...... 数据结构知识点目录 要求: (1&#xff…

08.JavaScript中的编程思想,构造函数和原型对象

一、编程思想 学习 JavaScript 中基于原型的面向对象编程序的语法实现,理解面向对象编程的特征。 1.面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次 调用就可以了。 举个…

opencv编解码base64字符串

cpp-base64代码地址&#xff1a; https://github.com/ReneNyffenegger/cpp-base64 下载仓库&#xff0c;并将base64.h&#xff0c;Base64.cpp 加入代码中&#xff0c; 将Mat对象编码为base64字符串 Mat img imread("xxx.png"); std::vector<uchar> buf; cv::…

小明的背包——01背包问题

经典版 题目链接&#xff1a;1.小明的背包1 - 蓝桥云课 (lanqiao.cn) 01背包问题中&#xff0c;每种物品只有两种状态&#xff0c;即拿或不拿。设状态dp[i][j]max(dp[i-1][j],dp[i-1][j-w]v)&#xff1b;如果不拿物品i&#xff0c;那么最大价值就是dp[i-1][j]&#xff0c;如果…

探索Java高并发编程之道:理论与实践

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 简介 随着互联网和信息技术的快速发展&#x…

【2024 R1 版本更新】Ansys Fluent(上)

​​Ansys2024R1来了&#xff0c;小宇赶紧将新功能给大家汇报一下。GPU求解器功能势头最强&#xff0c;pyFluent又开始迭代了&#xff0c;CPU模型中又更新了很多功能&#xff0c;fluent meshing中的thin volume mesh功能也来了。

libusb_Qt使用

Libusb libusb_github 建议直接下载库&#xff0c;编译好麻烦 QT调用 .pro文件添加&#xff1a; win32: LIBS -L$$PWD/LIB/libusb/x64/ -llibusb-1.0.cpp调用即可 #include "LIB/libusb/libusb.h" void class_name::fun(){/* 1. */libusb_init(NULL);/**/str…