搭建个人智能家居 7 - 空气颗粒物检测

搭建个人智能家居 7 - 空气颗粒物检测

  • 前言
  • 说明
  • PMS5003
  • ESPHome
  • HomeAssistant
  • 结束

前言

到目前为止,我们这个智能家居系统添加了4个外设,分别是:LED灯、RGB灯、DHT11温度传感器和SGP30。今天继续添加环境测量类传感器“PMS5003空气颗粒物检测传感器”,可检测周围环境空气中的颗粒物浓度,比如PM2.5。
前文回顾:
搭建个人智能家居 6 -SGP30 CO₂与TVOC测量
搭建个人智能家居 5 -DHT11温湿度测量
搭建个人智能家居 4 -WS2812B-RGB灯
搭建个人智能家居 3 -第一个设备“点灯”
搭建个人智能家居 2 -安装ESPHome
搭建个人智能家居 开篇(搭建Home Assistant)
在这里插入图片描述

说明

步骤和前面文章一样,都是先在ESPHome仪表台编辑.yaml文件,让后在HomeAssistant的控制台看结果,一般都是这样的步骤,后续的文章就不在啰嗦的做说明了。
本次实验需要用到:ESP32开发板、PMS5003激光颗粒物检测传感器和一个电源模块。
进入主题。

PMS5003

由PMS5003的手册可知,PMS5003是通过uart串口进行通讯的,默认主动上传数据,每帧32字节,传输协议如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一帧数据包含了PM1.0、PM2.5和PM10这三个大小颗粒物的两种测量数据,并且还包含了大于0.3um、0.5um、1.0um等6个颗粒物大小的计数输出。由于我们是用在房间这样的室内小空间,只取大气环境下PM2.5的数据。

ESPHome

PMS5003激光颗粒物检测传感器是通过UART串口通讯的,所以我们需要用到ESP32上的UART串口,由于ESP32的串口UART0被Logger组件占用了,我们可以另外定义UART串口使用。
官方的UART组件提供了以下可修改参数:

tx_pin — 写引脚定义
rx_pin — 读引脚定义
baud_rate — 波特率设置
data_bits — 数据位
stop_bits — 停止位
parity — 校验位
id — 总线ID
rx_buffer_size — 接收缓冲区

PMS5003的UART通讯参数为“默认波特率:9600bps、校验位:无、停止位:1 位”。定义UART串口时需要主要些参数,默认是一样的不需要改。
以下是串口定义的代码:

#UART串口定义
uart:tx_pin: GPIO19rx_pin: GPIO18baud_rate: 9600id: uart_1

定义的是软件UART,IO口可改,只要IO口可以正常读写高低电平就可以。
注意,id不能是数字开头
PMS5003可以输出PM1.0-PM10的数据,由于在室内使用,所以只输出大气环境下PM2.5浓度数据
PMS5003输出PM2.5数据代码:

#PMS5003- platform: pmsx003type: PMSX003pm_2_5:name: "PM2.5 concentration"uart_id: uart_1

工业生产车间等环境的测量需要用标准颗粒物质量浓度值测量可以用pm_2_5_std替换掉pm_2_5这个语句,其他大小颗粒物数据输出可以按下面方法修改:
如输出大气环境下PM1.0:pm_1_0
输出0.1 升空气中直径在 2.5um 以上颗粒物个数:pm_2_5um
上面代码是传感器主动上传数据,并实时更新在HomeAssistant的,如果需要调节数据上传间隔的即传感器被动上传数据,可以在代码后面加上update_interval: +数字来控制数据更新间隔。
这里不做演示,有需要的可以自行更改。

目前项目整合代码:

captive_portal:#I2C总线定义
i2c:- id: bus_a sda: GPIO12scl: GPIO13scan: true#UART串口定义
uart:tx_pin: GPIO19rx_pin: GPIO18baud_rate: 9600id: uart_1#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: 1baseline:eco2_baseline: 0x86C5tvoc_baseline: 0x8B38#store_baseline: yesupdate_interval: 1s#PMS5003- platform: pmsx003type: PMSX003pm_2_5:name: "PM2.5 concentration"uart_id: uart_1

编译.yaml文件,并生成.bin文件
在这里插入图片描述
烧录进ESP32
在这里插入图片描述

HomeAssistant

进入HomeAssistant控制台,怎么进入HomeAssistant控制台可参考前面的文章,这里不做赘述。

在这里插入图片描述
在浏览器输入相应的域名进入
在这里插入图片描述
进去后可以看到HomeAssistant的控制台已经把刚才添加的PMS5003的PM2.5测量实体更新输出了。
在这里插入图片描述
由于传感器还没连接到ESP32开发板上,所以上面的实体都没有数据或不可用,现在按.yaml文件里的定义接好线供电,重启一下即可获取数据。
在这里插入图片描述
我们这个智能家居系统的第5个外设添加完成,PMS5003用于其他环境、或者其他大小颗粒物的测量根据上文说的方法更改变量即可。
系统现状:(线有点乱)
在这里插入图片描述

结束

在前面的文章里,有收到一些小伙伴的反馈,说HomeAssistant的控制台在浏览器上打开是空白的,或者可以尝试重置浏览器看看是否能解决,这边用的是"扣扣"浏览器和“Chrome”打开正常,如果大家也有这样的问题可以换浏览器或者重置浏览器试一下。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

前端JS特效第45集:js实现图片放大和拖拽特效

js实现图片放大和拖拽特效&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>js实现图片放大和拖拽特效</title><meta…

开放式耳机哪个品牌最好?2024年度首发推荐榜单来了!

在很多专业运动人士中&#xff0c;开放式耳机正变得越来越受欢迎。无论是享受纯净的音质、沉浸式的听觉体验&#xff0c;还是舒适度和通透感方面的追求&#xff0c;开放式耳机都展现出了独特的魅力。本文将带您深入探索开放式耳机的世界&#xff0c;揭示其不可忽视的优点和无限…

拒绝废话:computed、watch和methods的区分和使用场景

computed、watch和methods是用于处理数据和响应数据变化的不同方式&#xff0c;三者之间有什么不同呢&#xff0c;贝格前端工场作为10年前端老司机&#xff0c;用浅显的语言给大家分享一下。 computed&#xff1a; computed属性是用来定义一个基于依赖的响应式属性。它会根据…

CVPR2024论文解读|对齐人类审美!MPS让图像生成评估更“懂你”

导读 当人类从不同角度评估不同类型的图像时&#xff0c;偏好结果会有所不同。因此&#xff0c;为了学习多维的人类偏好&#xff0c;我们提出人类多元偏好模型&#xff08;MPS&#xff09;&#xff0c;这是第一个评估文本生成图像的多维评分模型。MPS在3个公开数据集上表现出色…

医疗设备安全、可靠,国产大功率医疗电源功不可没,旭之源医疗电源拥有高可靠性、优异EMC性能、满足医疗认证等优势!

我国作为人口大国&#xff0c;人均医疗资源相较于发达国家仍有不足&#xff0c;医疗健康产业还有很大提升空间。卡脖子的现象在医疗器械中十分明显&#xff0c;这也是医疗产业重点需要解决的。“国产化”便是有效的解决方案。 受益于医疗行业对产品自主可控意识的提升&#xff…

MySQL----初始数据类型

前言 一、tinyint 范围&#xff1a;-128-----127 在MySQL中&#xff0c;整型可以指定是有符号的和无符号的&#xff0c;默认是有符号的。可以通过UNSIGNED来说明某个字段是无符号的。如果我们向mysqlt特定的类型中插入不合法的数据&#xff0c;Mysq一般会直接拦截&#xff0c…

【python】Python高阶函数--map函数的详细语法分析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

哪个无线麦克风音质最好,无线领夹麦克风哪个牌子好,麦克风推荐

​如今&#xff0c;网络世界丰富多彩&#xff0c;每个人都有机会成为焦点。从旅行博主的精彩游记&#xff0c;到健身达人的锻炼分享&#xff0c;再到音乐爱好者的才艺展示&#xff0c;优质的内容层出不穷。如果你也渴望在这个舞台上大放异彩&#xff0c;一款出色的无线麦克风将…

vue3前端开发-小兔鲜项目-人气推荐栏目的前端渲染

vue3前端开发-小兔鲜项目-人气推荐栏目的前端渲染&#xff01;今天和大家分享一下&#xff0c;人气推荐栏目的前端页面如何渲染内容。 经历过上一次的&#xff0c;新鲜好物的栏目渲染之后&#xff0c;我们已经熟练了&#xff0c;vue3的接口调用&#xff0c;数据渲染到页面中的整…

2024年7月17日(nodejs,npm设置国内镜像,vue脚手架,远程管理ssh,踢出用户,scp命令,ssh免密登录)

1、安装nodejs服务 nodejs是一个运行1环境&#xff0c;和javajdk运行环境格式一样 [roota ~]# yum -y install nodejs.x86_64 安装完成之后&#xff0c;使用node -v 查看版本 [roota ~]# node -v v16.20.2 2、简易服务器的环境安装npm 安装包管理器 npm node packae manger [ro…

【计算机毕设论文】基于SpringBoot学生作业管理系统

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】关注并且私信我 感兴趣的可以先收藏起来&#xff0c;同学门有不懂的毕设选题&#xff0c;项目以及论文编写等相…

【MySQL-17】存储过程-[变量篇]详解-(系统变量&用户定义变量&局部变量)

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

修改单链表时传入二级指针详解

修改单链表时传入二级指针详解 我们先来看一个例子&#xff1a; 1.int *p &a; notice: p的值&#xff0c;*p&#xff0c;&p注意区分 p的值&#xff1a;就是变量a的地址&#xff1a;0x11 *p: 就是变量a的值&#xff1a;1 &p:就是p的地址&#xff1a;ox22 p代表的…

气膜篮球馆:理想的运动空间选择—轻空间

快速建造 气膜篮球馆的建造速度快&#xff0c;通常只需几周即可完成。这与传统建筑需要数月甚至数年的时间相比&#xff0c;显著缩短了工期。快速建造不仅能迅速投入使用&#xff0c;还减少了因工期延长而产生的额外费用。 成本效益 气膜结构相比传统建筑成本更低&#xff0c;特…

基于Llama Index构建RAG应用(Datawhale AI 夏令营)

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;本文参与活动是2024 DataWhale AI夏令营&#xff1b;&#x1f632; 在本文中作者将通过&#xff1a; Gradio、Streamlit和LlamaIndex介绍 LlamaIndex 构…

【C++题解】1212. 移动数组元素

问题&#xff1a;1212. 移动数组元素 类型&#xff1a;数组找数 题目描述&#xff1a; 在一个不重复的数组中&#xff0c;请将这个数组的最小数和数组第一个数交换&#xff0c;最大数和数组最后一个数交换。 输入&#xff1a; 第一行有一个整数 n ( 5≤n≤100 &#xff09;…

【C】C语言静态链表转动态链表的技术探讨与实现

引言 在数据结构与算法的学习中&#xff0c;链表作为一种常用的线性表链式存储结构&#xff0c;具有灵活的内存分配和高效的插入删除操作等特点。根据链表在内存中的分配方式&#xff0c;链表可以分为静态链表和动态链表两种。静态链表在创建时预先分配一块连续的内存空间&…

微服务:nacos

Nacos 由Alibaba推出的集成于SpringCloudAlibaba中的一款开源注册中心框架 主要功能: 注册中心 配置管理 nacos的安装和部署 nacos默认访问端口8848 docker pull nacos/nacos-server:1.2.0 docker run --env MODEstandalone --name nacos --restartalways -d -p 8848:8…

Elasticsearch基础(五):使用Kibana Discover探索数据

文章目录 使用Kibana Discover探索数据 一、添加样例数据 二、数据筛选 三、保存搜索 使用Kibana Discover探索数据 一、添加样例数据 登录Kibana。在Kibana主页的通过添加集成开始使用区域&#xff0c;单击试用样例数据。 在更多添加数据的方式页面下方&#xff0c;单击…

idea2019版本创建JavaWeb项目并配置Tomcat步骤

一、创建JavaWeb项目 1.新建项目File->New->Project 2. 选择JavaWeb应用在New Project窗口中选择Java后勾选Java EE中的Web Application后点击next即可 3.设置项目名称后点击finish即可 4.至此项目创建完成&#xff0c;检查文件是否齐全&#xff0c;开始配置Tomcat 二、…