当前位置:
文章详情

homeassistant接入光线传感器和二氧化碳传感器

2022-09-11 14:34:20 17点赞 139收藏 10评论

本文用两个模块来演示HA通过ESPHOME接入I2C,UART设备

本文还是以WROOM为例,针脚定义如图

homeassistant接入光线传感器和二氧化碳传感器

知识基础

本部分看下就行,不理解也不影响使用

I2C、SPI、UART都是常见的低速板级通信协议,目前主流的SoC都内置了这些通讯协议的控制器,同样,各种传感器、Touch控制器、指纹模块、蓝牙模块、WIFI模块也都兼容这三种通信方式的一种或几种。

分别说下:

1. I2C是两根线,SDA(数据)和SCL(时钟),也是一种同步传输协议。主机在发送开始信号之后,先发送7个比特的地址位和1个比特的读写位,每个从机有自己的I2C地址,当发现该条指令是发给自己的时候,拉低SDA线(即回复ACK信号),然后主机发送或接收数据,完成传输。传输完成之后,主机发送停止位,完成该次传输。

2. UART一般由TXD、RXD、GND三根线组成,是一种异步传输协议。无论是主机还是从机,均可以自由发送数据,但是由于UART总线并没有时钟线,所以需要提前约定对应的波特率,这是一种很简单的传输协议。

3. SPI是四根线,分别是CS(片选)、MOSI(主发从收)、MISO(从发主收)、CLK(时钟),是一种同步传输协议。主机送出CLK信号,主机到从机的数据在MOSI线上传输,从机到主机的数据在MISO线上传输。在启动传输之前,需要先拉低(一般是这样,也有各别芯片是CS高有效)对应从机的CS管脚,在传输完成之后,再拉高CS管脚,从机的SPI Slave模块进入休眠。

I2C传感器接

I2C用BH1750环境光传感器做示例

接线

GY-302GY30数字光强度光照传感器BH1750FVI模块代码5.8元天猫精选去购买

homeassistant接入光线传感器和二氧化碳传感器

接线示意图

BH1750接线示意图BH1750接线示意图

BH1750针脚示意图BH1750针脚示意图

实际接线图

homeassistant接入光线传感器和二氧化碳传感器

之前接好的温湿度就不撤下来了

可以看到SCL是绿线接在33 ,SDA是白线接在25

代码

i2c首先设置总线

传感器SCL——主板SCL

传感器SDA——主板SDA

添加i2c总线添加i2c总线

i2c:

#指定scl引脚

scl: 33

#指定sda引脚

sda: 25

#id。如果有多条i2c会用到

id: bus_a

之后在sensor:分支添加传感器即可

之前已经有一个温湿度传感器了

添加之后代码是这样的

homeassistant接入光线传感器和二氧化碳传感器

#型号 bh1750

- platform: bh1750

#提交给HA的名称

name: "BH1750 Illuminance"

#id,设备联动会用到

id: illuminance

#地址,厂商设定好的

address: 0x23

#每60秒采集上报一次数据

update_interval: 60s

之后参考篇3,保存安装即可

uart传感器

uart用SenseAir S8 二氧化碳传感器做示例

接线

由于模块是反向排针

就只能用杜邦线连接

官方文档介绍说要用4-5v供电

这里就要从5v针脚另取电了

SenseAir S8 参数SenseAir S8 参数

针脚定义和接线示意图如下

SenseAir S8 接线示意图SenseAir S8 接线示意图

左边5v取电左边5v取电

RX绿色接在GPIO27

TX橙色接在GPIO26

homeassistant接入光线传感器和二氧化碳传感器

代码

uart和i2c类似也要先设置总线

不过这里要注意收发关系对应

传感器RX(接收)——主板TX(发送)

传感器TX(接收)——主板RX(发送)

波特率官方文档介绍SenseAir S8只支持9600

整体代码如下

homeassistant接入光线传感器和二氧化碳传感器

#添加uart总线

uart:

#主板接收针脚

rx_pin: 26

#主板发送针脚

tx_pin: 27

#波特率官方文档介绍SenseAir S8只支持9600 .

baud_rate: 9600

# #id。如果有多条uart会用到

id: uart_a

然后在sensor下面继续添加代码即可

现在已经有3个传感器了

homeassistant接入光线传感器和二氧化碳传感器

对应代码很简单,就不注释了

- platform: senseair

co2:

name: "SenseAir CO2 Value"

update_interval: 60s

OTA更新固件后就可以正常采集数据了

homeassistant接入光线传感器和二氧化碳传感器

最后附上配套视频



展开 收起
10评论

  • 精彩
  • 最新
  • 大神,esp32c3能加蓝牙模块吗?esp32_ble_tracker。试了成功不了

    校验提示文案

    提交
    我试了下好像有bug,等等过段时间更新吧

    校验提示文案

    提交
    收起所有回复
  • 接线需要焊接吗?

    校验提示文案

    提交
    不需要,用杜邦线一样的

    校验提示文案

    提交
    那很友好啊,可以折腾一下

    校验提示文案

    提交
    收起所有回复
  • 大神请教下,为啥UART是GPIO26和27,而不是1和3啊,我看图上是RX/TX是1和3

    校验提示文案

    提交
    这个都行的,有多组uart选一个就行

    校验提示文案

    提交
    收起所有回复
  • 有一行写错了
    传感器TX(发送)——主板RX(接收)

    校验提示文案

    提交
  • 很棒,

    校验提示文案

    提交
  • 好家伙,面包板都来了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

最新文章 热门文章
139
扫一下,分享更方便,购买更轻松