搭建个人智能家居 6 -SGP30 CO₂与TVOC测量

前言

上一篇文章我们给这个智能家居系统添加了第三个外设,温湿度传感器。今天添加第四个外设,用于测量环境中CO₂与TVOC的传感器“SGP30”。
前文回顾:
搭建个人智能家居 开篇(搭建Home Assistant)
搭建个人智能家居 2 -安装ESPHome
搭建个人智能家居 3 -第一个设备“点灯”
搭建个人智能家居 4 -WS2812B-RGB灯
搭建个人智能家居 5 -DHT11温湿度测量

在这里插入图片描述

说明

本次添加外设会接着前面文章创建的Demo,在yaml文件里继续添加SGP30测量CO₂与TVOC相应的驱动代码。需要用到一个SGP30传感器模块和5v电源。
本次依然分成两步:
第一步是ESPHome编写yaml文件并烧录到ESP32开发板
第二步是HomeAssistant添加控制组件

ESPHome

打开前文创建的工程,找到工程的存放位置,然后在存放工程的文件夹打开“命令提示符”输入启动esphome的指令(可参考“搭建个人智能家居 2 -安装ESPHome”):

esphome dashboard xxx/

“命令提示符”提示打开ESPHome控制台的本地域名后在浏览器输入域名打开

http://localhost:6052/ 
/*或者*/
http://0.0.0.0:6052/

在这里插入图片描述
接着原来的工程,点击“BIN_LED”这个工程左下角的编辑按钮,进入yaml文件的编辑。
由于SGP30是I2C器件,而我们的这个工程里前几篇文章添加的外设都没有I2C器件,所以我们需要在工程里定义、配置I2C总线。
在yaml文件的第一个外设上面添加I2C的配置(个人习惯,把总线配置放在开头,后面继续添加I2C设备好维护)

#I2C总线定义
i2c:
  - id: bus_a  		#多个I2C总线时用与区分,只有一个I2C总线可以不用
    sda: GPIO12		#SDA引脚定义(可自行更改)
    scl: GPIO13		#SCL引脚定义(可自行更改)
    scan: true		

定义、配置完I2C总线后,在yaml文件的最后添加SGP30的驱动代码

#SGP30
  - platform: sgp30			#SGP30传感器平头
    i2c_id: bus_a			#使用I2C总线a,前面I2C总线定义时的ID
    address: 0x58			#传感器I2C地址
    eco2:					#传感器功能信息
      name: "Roome CO2"			#传感器测量功能名称
      accuracy_decimals: 1		#小数点位数
    tvoc:					#传感器功能信息
      name: "Roome TVOC"	#传感器测量功能名称
      accuracy_decimals: 1	#小数点位数
    store_baseline: yes		#计算基线,用于校准传感器
    update_interval: 1s		#间隔5S读取一次数据

工程完整代码:

captive_portal:

#I2C总线定义
i2c:
  - id: bus_a 
    sda: GPIO12
    scl: GPIO13
    scan: true
    


#Bin_LED    
light:
  - platform: binary
    name: "led"
    output: bin_led



#WS2812_RGB
  - platform: neopixelbus
    type: GRB
    variant: WS2812
    pin: GPIO4
    num_leds: 25
    name: "RGB_LED"




output:
  - id: bin_led
    platform: gpio
    pin: GPIO2 


#DHT11
sensor:
  - platform: dht
    pin: GPIO5
    temperature:
      name: "Current temperature"
    humidity:
      name: "Current humidity"
    model: DHT11
    update_interval: 10s


#SGP30
  - platform: sgp30
    i2c_id: bus_a
    address: 0x58
    eco2:
      name: "Roome eCO2"
      accuracy_decimals: 1
    tvoc:
      name: "Roome TVOC"
      accuracy_decimals: 1
    store_baseline: yes
    update_interval: 1s

输入上面SGP30的驱动代码后点击保存和编译生成bin文件。
在这里插入图片描述
用flash download tools把编译生成的.bin文件烧录到esp32开发板中
在这里插入图片描述
烧录完成后把SGP30模块连接到ESP32开发板上,给开发板复位等待开发板连接上WIFI。

HomeAssistant

启动HomeAssistant,(可参考“搭建个人智能家居 开篇(搭建Home Assistant)”)
在这里插入图片描述
在HomeAssistant启动完成后,打开浏览器输入HomeAssistant控制面板的连接进入控制页面,由于前面文章已经在HomeAssistant里面添加了这个ESPhome设备,这里只是添加一个实体,所以不需要重新添加设备,HomeAssistant会自动刷出来。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
SGP30 环境CO₂与TVOC传感器添加完成。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐