Sonoff Tasmota接入温湿度+光照+人体传感器并支持物理开关控制
本帖最后由 27hh 于 2019-4-9 12:21 编辑在本论坛中,先后有大神发出了sonoff接人体、光线的固件和整合固件,但是其所基于的固件,功能根本无法与强大的Tasmota相比。事实上,Tasmota原生支持这些传感器,我们来看看如何把它们加入,并接入HA中。
-----------------------------------------------
可用硬件:
温湿度传感器:DHT22购买>>
光照传感器:BH1750 购买>>
人体传感器:HC-SR501购买>>
-----------------------------------------------
在接入传感器之前,我们首先来认识针脚:
https://camo.githubusercontent.com/f014130fdde36f97f37a5af20fc223621b192e1b/687474703a2f2f74696e6b65726d616e2e6361742f77702d636f6e74656e742f75706c6f6164732f323031362f30362f70696e6f75745f6261636b2e6a7067
https://camo.githubusercontent.com/90d51860fa05a2c0992d9f82e7a8bbaf5b5ebb5c/68747470733a2f2f63646e2e696e73747275637461626c65732e636f6d2f4638512f305538392f4a315745514b374a2f463851305538394a315745514b374a2e4d454449554d2e6a7067
其中,3V3就是3.3V电压输出,连接传感器的正极;GND连接传感器的负极。剩下的三根针,都是数据接口,RX为GPIO3,TX为GPIO1,可以任意选择使用。
-----------------------------------------------
我们以最简单的温湿度传感器为例:
https://bbs.hassbian.com/data/attachment/forum/201705/17/160619o1jer4mooq1ggo1r.jpg
“+”连接3V3,“-”连接GND,“out”为数据,所以连接任意一根,这里我连接到GPIO14。
然后在sonoff的配置页面,设置GPIO14为DHT22。保存后,在主页即可看到温湿度数据。
(欲修改温度和湿度的小数位数,可以分别在Console中执行 tempres # 和 humres #,#为小数位数,0到3。)
要将DHT22加入HA,可以如下配置sensor:
- platform: mqtt
name: "wendu"
state_topic: "tele/sonoff/SENSOR"
value_template: "{{ value_json['DHT22'].Temperature }}"
unit_of_measurement: "°C"
- platform: mqtt
name: "shidu"
state_topic: "tele/sonoff/SENSOR"
value_template: "{{ value_json['DHT22'].Humidity }}"
unit_of_measurement: "%"
(其中sonoff是你配置的MQTT Topic)
成果如下:
-----------------------------------------------
接入光照传感器步骤要多一步,因为他有两条数据线:SCL 和 SDA。但是有了上面的接口对应图,操作也变得简单了。
(图中多出来的一根线是留着做物理开关用的,后文会提到)
如果按照图中所示方法连线的话,那么经过这样一番设置:
亮度也就显示出来了。
配置接入HA:
- platform: mqtt
name: "liangdu"
state_topic: "tele/sonoff/SENSOR"
value_template: "{{ value_json['BH1750'].Illuminance }}"
unit_of_measurement: "lux"
-----------------------------------------------
接下来是接入人体感应器:
【注:人体感应器技术参数工作电压为5V,但本人实测3.3V在低功率下(不调大功率旋钮)可以正常工作】
我们驾轻就熟地连接好线后,问题来了:SR501采用高低电平的形式来指示是否有人,Tasmota官方没有提供相应的接口。但是,当我们把它的数据接口配置为“Switch”时,我们发现,sonoff人来通电,人走断电。这样,我们就有办法了。
在Tasmota的设置界面中,设置GPIO4为Relay2,并将人体传感器的数据针脚设为Switch2。保存重启后,界面上会出现2个开关,第二个指示了人体传感器的状态。为了实现ON为有人,OFF为无人的状态表示,需要在终端里执行:
SwitchMode2 1
然后按下面配置传感器:
binary_sensor:
- platform: mqtt
name: "PIR"
qos: 1
state_topic: "stat/PIR/POWER2"
payload_on: "ON"
payload_off: "OFF"
device_class: motion
即可在HA中看到此传感器了。
-----------------------------------------------
接入物理开关需要两根线,分别连接GND和一根数据针脚。这时出现了针脚冲突的问题。实际上,用于供电的3V3和GND可以并联出多股线来。
制作多股线的方法是:用针将杜邦线的黑色塑料壳的卡榫微微提起,将线和金属头抽出。将另一根杜邦线的头剪下,并剥开1.5cm的外皮,然后将其中0.5cm的部分绕在金属头的凹槽上,然后一起插回塑料壳即可。成品如下:
最后,将用于物理开关的两根线与物理开关的两头相连,并在配置页面设置使用的数据针脚为Switch1。这样,你的物理开关便可以继续发挥余热了。
本方法尤其适合想要控制界面、想要同时支持物理开关控制、想要更强大功能的用户使用。 感谢楼主分享。
事实上tasmota固件可以玩的还远不止这些!
指正一下:接了人体之后还可以再接物理开关哈。把gpio4改为relay2,人体的IO为Switch2.另一个IO就可以接物理开关了。
tasmota固件除了传感器,物理开关。还可以再接继电器,接灯带实现彩灯的效果,还有特效哦。还可以设置虚拟开关以联动控制其他开关,方便实现物理双控甚至多控。接入ws2812灯带甚至可以单独控制每一颗LDE的开关/颜色。。。。 还可以接PMW可以实现电机无极调速。。。
还有什么自锁/点动。 断电通电后接通还是断开还是记忆什么的都可以设置。扩展性相当强大!
更多好玩儿的,大家一起探讨吧
有sonoff开关的朋友们都试试吧 倾微qiwe 发表于 2017-9-9 23:28
感谢楼主分享。
事实上tasmota固件可以玩的还远不止这些!
指正一下:接了人体之后还可以再接物理开关哈。 ...
真的?我马上就去试试! 本帖最后由 27hh 于 2017-9-27 19:39 编辑
实测可用,感谢分享
小白前来学习 新手来学习下 感谢大神分享:lol 感谢分享 感谢分享 自顶:lol