搭建个人智能家居 6 -SGP30 CO₂与TVOC测量
- 前言
- 说明
- ESPHome
- HomeAssistant
前言
上一篇文章我们给这个智能家居系统添加了第三个外设,温湿度传感器。今天添加第四个外设,用于测量环境中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总线定义时的IDaddress: 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: GPIO12scl: GPIO13scan: true#Bin_LED
light:- platform: binaryname: "led"output: bin_led#WS2812_RGB- platform: neopixelbustype: GRBvariant: WS2812pin: GPIO4num_leds: 25name: "RGB_LED"output:- id: bin_ledplatform: gpiopin: GPIO2 #DHT11
sensor:- platform: dhtpin: GPIO5temperature:name: "Current temperature"humidity:name: "Current humidity"model: DHT11update_interval: 10s#SGP30- platform: sgp30i2c_id: bus_aaddress: 0x58eco2:name: "Roome eCO2"accuracy_decimals: 1tvoc:name: "Roome TVOC"accuracy_decimals: 1store_baseline: yesupdate_interval: 1s
输入上面SGP30的驱动代码后点击保存和编译生成bin文件。
用flash download tools把编译生成的.bin文件烧录到esp32开发板中
烧录完成后把SGP30模块连接到ESP32开发板上,给开发板复位等待开发板连接上WIFI。
HomeAssistant
启动HomeAssistant,(可参考“搭建个人智能家居 开篇(搭建Home Assistant)”)
在HomeAssistant启动完成后,打开浏览器输入HomeAssistant控制面板的连接进入控制页面,由于前面文章已经在HomeAssistant里面添加了这个ESPhome设备,这里只是添加一个实体,所以不需要重新添加设备,HomeAssistant会自动刷出来。
SGP30 环境CO₂与TVOC传感器添加完成。