在小爱同学通过自定义技能接入hass的教程里立了个flag,说要分享我的全屋智能改装过程,今天发出第二发所有的模型文件我都有,可以分享出来,另外电路板和一些零件还有多余的,有需要的可以免费送
具体的功能是,把家里门厅的8个灯全部实现了触控控制,并且通过esp32刷esphome接入了hass,上面的屏幕显示的是全屋的户型图,点击相应元素即可控制对应的开关,灰色代表关闭,彩色代表开着,非常直观,同时带有接近亮屏功能,一般情况下显示屏不会亮,当检测到半米内有人靠近的时候自动打开显示,主要是为了省电,经过测试我这一套一个月耗电1.5度,总造价不到800,可谓性价比非常之高。
分割线··············································································
下面是制作过程。
下图是家里还在改水电的时候拍的,让电工留了零线,便于后期单片机和esp32取电。
1
最开始装修公司给装的是公牛的两个四位开关,就是下面这样的
这种四开的要改智能其实是很费劲的,真正动手改过的就知道,里面的线非常多,暗盒就那么大,想要塞点东西进去很难的,所以我就想,弄个跟门铃一样突出来的盒子,加上一块自己以前买的lattepanda配上显示屏,用来显示homeassistant界面,调好floorplan后显示户型图,视觉效果应该很棒的说,于是开始做硬件设计。
第一想法是用两个esp8266配上8个继电器,于是有了下面的外壳设计
然后出来了第一版产品
上墙效果是这样
但是重点来了,这也是我遇到的一个坑!
本来以为买一个继电器模块就可以顺利实现强电控制弱电,但是事实证明强电要比想象中复杂。
最开始测试的时候,开关可以正常打开闭合,但是用了几次之后触电就会粘合,继电器一直处于常开状态了。
后来查资料发现,虽然家里的灯具一般都不超过150W,我用的10a继电器看起来绰绰有余,但是灯具属于容性负载,如果打开的时候交流电正处在波峰,就会导致继电器触电在接触的瞬间由于强大的电泳形成电弧,触电烧结,后续无法断开。让继电器过零触发可以解决这个问题,但是这超出了一般人的技术能力范畴,所以我自己画了一个板子,索性用esp32一次性实现8开,用带过零触发的固态继电器代替触点型继电器,最终形成如下设计:
改装后的实物图变成了这样
触控是用8个ttp223模块实现的,后来才知道esp32的esphome里自带touchpad功能,后续有待进一步精简硬件设计。
小电脑和esp32的供电我是藏在了86底盒里,便于缩小整体体积。
esphome里的设置如下
esphome:
name: keting
platform: ESP32
board: nodemcu-32s
wifi:
ssid: "mch_home"
password: "xxxxx"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Keting Fallback Hotspot"
password: "vWIfle59XFo3"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
password: "hachina"
ota:
password: "xxx"
binary_sensor:
- platform: gpio
pin:
number: GPIO23
mode: INPUT_PULLUP
inverted: True
name: "menting_Touchpad"
on_press:
- switch.toggle: relay_1
- platform: gpio
pin:
number: GPIO22
mode: INPUT_PULLUP
inverted: True
name: "zoulang_Touchpad"
on_press:
- switch.toggle: relay_2
- platform: gpio
pin:
number: GPIO21
mode: INPUT_PULLUP
inverted: True
name: "dadeng_Touchpad"
on_press:
- switch.toggle: relay_3
- platform: gpio
pin:
number: GPIO19
mode: INPUT_PULLUP
inverted: True
name: "houshedeng_Touchpad"
on_press:
- switch.toggle: relay_4
- platform: gpio
pin:
number: GPIO18
mode: INPUT_PULLUP
inverted: True
name: "qianshedeng_Touchpad"
on_press:
- switch.toggle: relay_5
- platform: gpio
pin:
number: GPIO5
mode: INPUT_PULLUP
inverted: True
name: "dengdai_Touchpad"
on_press:
- switch.toggle: relay_6
- platform: gpio
pin:
number: GPIO17
mode: INPUT_PULLUP
inverted: True
name: "canting_Touchpad"
on_press:
- switch.toggle: relay_7
- platform: gpio
pin:
number: GPIO16
mode: INPUT_PULLUP
inverted: True
name: "function_Touchpad"
- platform: status
name: "keting_ctl Status"
switch:
- platform: gpio
name: "menting_Relay"
pin: GPIO13
id: relay_1
- platform: gpio
name: "zoulang_Relay"
pin: GPIO15
id: relay_2
- platform: gpio
name: "dadeng_Relay"
pin: GPIO32
id: relay_3
- platform: gpio
name: "houshedeng_Relay"
pin: GPIO33
id: relay_4
- platform: gpio
name: "qianshedeng_Relay"
pin: GPIO25
id: relay_5
- platform: gpio
name: "dengdai_Relay"
pin: GPIO26
id: relay_6
- platform: gpio
name: "canting_Relay"
pin: GPIO27
id: relay_7
- platform: gpio
name: "idle_Relay"
pin: GPIO14
id: relay_8
最后的成品是这样:
其实有了这个触控显示屏,相当于门厅就有了一个homeassistant的控制中心,后续可以自定义其他更多玩法,家里来了人装个13啥的,还是很带劲的。
如果大家有想法做个类似的,我可以把原理图电路板还有外壳模型啥的都分享出来,也可以帮你们参谋设计。
|