jarvis_chan 发表于 2017-10-23 08:30:13

铁熊玩创客 | Hey Siri,请告诉我传感器数据

这是 Hey Siri 系列的第 2 期,这一期主要专注于获取传感器数据,上一期主要专注于对外部设备的控制。

上一期见:
【Hey Siri 智能家居 DIY 系列 1】Hey Siri, 打开 HAY 旋转灯:https://mc.dfrobot.com.cn/thread-26865-1-1.html

废话不多说,照例先上视频看看效果:

https://www.bilibili.com/video/BV1wx411u7Jp?share_source=copy_web

其实程序和硬件早就弄好了,一直躺在我家客厅的角落里,默默监测了我家环境数据一个月了,就是一直没时间设计外壳。因为如果只是做一个简单的方盒子倒是没什么难度,可是这样不好看,最近事情也比较多,所以进度就一直拖着。

直到去了上海创客嘉年华,花了 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 !!!

Mingming.Zhang 发表于 2017-10-23 14:02:14

HEY SIRI很贴合,既不突兀又很实用。 大写加粗的 赞

细颗粒物 发表于 2017-10-23 19:21:40

可以啊。66666

1973742214 发表于 2017-10-27 21:38:51

厉害了厉害了厉害了{:5_198:}

Ash 发表于 2017-10-29 14:40:47

厉害厉害~

pATAq 发表于 2017-10-30 13:21:32

10块钱好便宜,支持楼主~

gray6666 发表于 2017-11-2 18:16:15

这个淘宝有卖吗?

北岛 发表于 2017-11-9 21:16:31

厉害了 实用

lkl0305 发表于 2017-11-18 18:41:00

厉害了,很全面

qx1 发表于 2019-4-16 16:22:23

您好,能不能问一下你那个温湿度、光照、人体感应的传感器是在哪一家买的,我也想买一套,谢谢!

铁熊 发表于 2019-4-22 19:35:38

qx1 发表于 2019-4-16 16:22
您好,能不能问一下你那个温湿度、光照、人体感应的传感器是在哪一家买的,我也想买一套,谢谢! ...

都是在DF这边买的
页: [1]
查看完整版本: 铁熊玩创客 | Hey Siri,请告诉我传感器数据