这是 Hey Siri 系列的第 2 期,这一期主要专注于获取传感器数据,上一期主要专注于对外部设备的控制。
上一期见:
【Hey Siri 智能家居 DIY 系列 1】Hey Siri, 打开 HAY 旋转灯:https://mc.dfrobot.com.cn/thread-26865-1-1.html
废话不多说,照例先上视频看看效果:
其实程序和硬件早就弄好了,一直躺在我家客厅的角落里,默默监测了我家环境数据一个月了,就是一直没时间设计外壳。因为如果只是做一个简单的方盒子倒是没什么难度,可是这样不好看,最近事情也比较多,所以进度就一直拖着。
直到去了上海创客嘉年华,花了 10 块钱掏到一个好物,当时眼睛就亮了,这个东西搭配我家的智能家居传感器系统简直是绝配啊!
阳台上放了人体红外传感器和温湿度传感器。
侧墙上放了光照强度传感器。
这篇教程需要一些前置知识和设置,请参考我的 Hey Siri 系列第一篇:https://mc.dfrobot.com.cn/thread-26865-1-1.html
下面就开始正式介绍怎么做了!由于这个房子是嘉年华淘来的,我也没有图纸,所以结构这部份大家就自己发挥了吧哈哈哈,着重介绍电路、程序和 Siri 设置。
## 传感器系统
## 传感器系统电路
传感器我用了温湿度传感器、人体红外传感器和光照强度传感器,主控用了 Wemos D1 mini,也可以用 ESP8266 NodeMCU,或者 DF 的 FireBeetle ESP8266 等,只要能够联网理论上都行的,上面这三个主控的电路连线方式基本一样,以 Wemos D1 mini 为例,电路图如下:
大家可以根据自己的需求,搭配不同的传感器,也欢迎大家将成果发上来一起交流。
## 传感器系统程序
传感器系统的程序已经在附件中上传了,如果你用的传感器跟我一样,那你就不需要更改其他地方了,只需要更改我圈出来的几个地方就好:
- WiFi 名字
- WiFi 密码
- MQTT 服务器地址(也就是运行 Home Assistant 的电脑或者树莓派的地址)
- MQTT 用户名(可以不设置,推荐设置)
- MQTT 用户密码(可以不设置,推荐设置)
然后烧写程序即可~
## Home Assistant 与 Siri 设置
### Home Assistant 配置文件设置
如果你在 Home Assistant 里面,跟我一样也有很多东西要控制,那么你的配置文件 configuration.yaml 就会很长,建议你新建几个文件,把不同的配置放在不同的文件中,显得清晰一些:
- automations.yaml,用来配置一些自动化的功能,比如检测到人,自动开灯等;
- customize.yaml,自定义配置,比如配置在 Siri 中显示的名字,以及是否汉化等;
- group.yaml,分组配置,有时候你的传感器或者设备很多,Home Assistant 上的页面就会很乱,建议配置一下分组方便管理;
- scripts.yaml,一些可运行脚本的配置;
- sensors.yaml,比如今天讲的传感器,基本在这里面配置。
首先,打开 configuration.yaml,配置链接到这些外部文件:
- <font face="微软雅黑"><font face="微软雅黑">sensor: !include sensors.yaml
- script: !include scripts.yaml
- group: !include groups.yaml
- automation: !include automations.yaml</font></font>
复制代码
如下图,大家在对应的位置设置一下就好了。
另外 customize.yaml 的配置比较特殊,是在 homeassistant 标签下的,如图:
接下在还是在 configuration.yaml 中设置一下 MQTT:
- <font face="微软雅黑"><font face="微软雅黑"> mqtt:
- broker: 127.0.0.1
- port: 1883
- client_id: home-assistant-1
- username: pi
- password: raspberry
- discovery: true</font></font>
复制代码
以上,configuration.yaml 文件就配置好了。
### sensor 设置
接下来打开 sensors.yaml 文件,加入以下配置:
- <font face="微软雅黑"><font face="微软雅黑">- platform: mqtt
- state_topic: "livingroom/sensornode1"
- name: "Living Room Temperature"
- unit_of_measurement: "°F"
- value_template: '{{ value_json.temperature | round(1) }}'
-
- - platform: mqtt
- state_topic: "livingroom/sensornode1"
- name: "Living Room Humidity"
- unit_of_measurement: "%"
- value_template: '{{ value_json.humidity | round(1) }}'
-
- - platform: mqtt
- state_topic: "livingroom/sensornode1"
- name: "Living Room LDR"
- unit_of_measurement: "LUX"
- value_template: '{{ value_json.ldr }}'
-
- - platform: mqtt
- state_topic: "livingroom/sensornode1"
- name: "Living Room PIR"
- value_template: '{{ value_json.motion }}'
-
- - platform: mqtt
- state_topic: "livingroom/sensornode1"
- name: "Living Room Real Feel"
- unit_of_measurement: "°F"
- value_template: '{{ value_json.heatIndex | round(1) }}'</font></font>
复制代码
从上至下,分别是温度传感器设置、湿度传感器设置、光照强度传感器设置、人体红外传感器设置、体感温度设置(可忽略)。
### 分组设置
打开 groups.yaml 文件,加入以下配置,将以上传感器弄到一个分组里:
- <font face="微软雅黑"><font face="微软雅黑">####################################################################
- # Sensor Node Group
- ####################################################################
- living_room_sensor_node:
- name: Sensor Node
- entities:
- - sensor.living_room_temperature
- - sensor.living_room_humidity
- - sensor.living_room_real_feel
- - sensor.living_room_ldr
- - sensor.living_room_pir </font></font>
复制代码
### Siri 和汉化设置
打开 customize.yaml 文件,在最顶端加入以下配置,将传感器节点显示在主页:
- <font face="微软雅黑"><font face="微软雅黑">default_view:
- name: Home
- view: yes
- entities:
- - group.living_room_sensor_node</font></font>
复制代码
如图红色圈出来部分,其他几个可以忽略,如果你有其他东西的话,也可以在此处一起加上。
然后在 customize.yaml 文件中继续加入以下配置,给这些传感器一个在网页中显示的名字(friendly_name)和在 Siri 中显示的名字(homebridge_name,我这边是英文,如果你的 Siri 设置的是中文的话,可以设置成中文)。
- <font face="微软雅黑"><font face="微软雅黑">####################################################################
- # Sensor Node customize
- ####################################################################
- group.living_room_sensor_node:
- friendly_name: 传感器
- homebridge_hidden: true
- sensor.living_room_temperature:
- icon: mdi:temperature-celsius
- friendly_name: 温度
- homebridge_name: "Temperature"
- sensor.living_room_real_feel:
- # icon: mdi:temperature-celsius
- friendly_name: 体感温度
- homebridge_name: "Apparent Temperature"
- sensor.living_room_humidity:
- icon: mdi:water-percent
- friendly_name: 湿度
- homebridge_name: "Humidity"
- sensor.living_room_ldr:
- icon: mdi:led-on
- friendly_name: 光照强度
- homebridge_name: "LDR"
- sensor.living_room_pir:
- icon: mdi:run-fast
- friendly_name: 人体运动
- homebridge_name: "Motion Sensor"</font></font>
复制代码
## 效果
检查以上设置有没有问题并保存,将你的传感器系统接上电源,重启 Home Assistant,这个时候你就可以在 Home Assistant 主页面见到我圈出来的部啦~
然后再打开 iPhone 的“家庭” app,是不是有这些传感器啦~
Mission Complete !!!
|