搭建个人智能家居 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: binary
name: "led"
output: bin_led
//说明:
//创建一个名字为led的设备,创建的这个led继承Light组件,属于Light组件中的“binary(二进制)”类型的设备
//因为这个led是通过GPIO输出高低电平实现的,所以定义一个output的ID,与下面output的实现对应起来
output:
- id: bin_led
platform: gpio
pin: 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通过局域网登录电脑端注册时的账号也是可以控制的,感兴趣的可以去试一下。