基于ESP8266的三路86面板智能开关

去年进了智能家居的坑之后,就想给自己家里打造一套廉价实用极具科技感的智能家居设备。所以我也详细了解了市面上的一些智能家居的产品,浏览了一圈,功能非常丰富,但是价格非常高,而且也并不完全满足我的想法,所以最终打算自己做一整套生态出来。自己做肯定有难度,但是不断摸索我也有不小的进展。我自己也有不少的装备设备,烙铁热风枪焊板子,3D打印机打外壳,不说媲美商品成品,基本上能够满足我自己的需求就OK啦!
首先放一张成品图:
99dce5dc26d61c5481fdbe9f1e8a8b0~1.jpg
目前智能开关智能插座市面上有非常多。小米以及旗下各种颜色的米是应用范围最广的品牌,颜值高,价格高,但是灯具选择范围很小,几乎指定用自家的设备,对穷人非常不友好。易微联的模块,价格便宜,但是做工不是特别考究,一大块不知道放在哪里,内部继电器的容量过小,AC电源线飞线。。。
于是我只能自己动手,做一款真正属于我自己的设备,或者说产品。我并不打算复制小米的模式,只是想打造一个属于自己的系统,自己对系统有完完全全的支配权,能够随心所欲地跟着自己的想法去走,产品设计也更加灵活和丰富。

首先是确定需求。
1、整个电路板尺寸小,集成度高,能放进86暗盒里,安装方便;
2、三路开关,容量大,继电器16A以上,让开关和插座通吃;
3、220V直接供电,方便取电(开关、插座内有零火线);
4、预留三路自复位开关的连接座,自复位开关可以直接连接;
5、能够离线控制。当路由器故障、WiFi断开时,按动自复位开关仍然能够响应动作;
6、稳定,稳定,稳定!

基于以上的设计理念,我前前后后花了两个月的时间,一共改了10版,板子都打了N多次,最终我的设计:

68dcd19267388492fe687f3f440cd34~1.jpg

8a84283a5ccd2f3c2b3ad2a55f3e36d~1.jpg

1、尺寸小,集成度高,安装方便。
尺寸63mmx63mm,可直接放进86暗盒,直接安装在开关或插座面板下方;
220V直接供电,无需单独电源。

3、预留自复位开关连接座,自复位开关可直接连接,组成智能开关。

4、保护齐备,安全稳定。采用海凌科220v开关电源,稳定工作时间10000万小时+;
带独立保险和抗雷击放浪涌MOV电阻,每一路均有光耦隔离,保护后级设备。

5、设计电电流大,发热量耗电量小,
继电器与布线设计电流为16A,大电流设计。接线端子可连接2.5平方线缆;

6、功耗低,上线后功耗为1w。

90c583450a9832586b17461d9de100d~1.jpg

0c0f4f7eab2806d23d0e859132eaa18~1.jpg

59546879d2aa72a37f67713cf9fd373.jpg

功耗测试:
空载状态下(继电器不工作):5V 0.05A
QQ图片20200322125827.jpg
满载状态下(三路继电器接通):5V 0.27A
QQ图片20200322125838.jpg

程序部分,我采用ESPHOME,这个平台相当强大,功能非常丰富,有机会详细写一写。
直接贴出配置代码:

esphome:
  name: jesse
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: "Jesse"
  password: "xxx"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Jesse Fallback Hotspot"
    password: "VU9G6hcwfnpP"

web_server:
  port: 80   
captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

switch:
  - platform: gpio
    name: "开关1"
    id: kaiguan1
    pin:
      number: 12
      inverted: yes
      
  - platform: gpio
    name: "开关2"
    id: kaiguan2    
    pin:
      number: 13
      inverted: yes
      
  - platform: gpio
    name: "开关3"
    id: kaiguan3    
    pin:
      number: 16
      inverted: yes
      
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO2
      mode: INPUT_PULLUP
      inverted: True
    name: "自复位开关1"
    on_press:
      - switch.toggle: kaiguan1
    

  - platform: gpio
    pin:
      number: GPIO4
      mode: INPUT_PULLUP
      inverted: True
    name: "自复位开关2"
    on_press:
      - switch.toggle: kaiguan2
    
  - platform: gpio
    pin:
      number: GPIO5
      mode: INPUT_PULLUP
      inverted: True
    name: "自复位开关3"
    on_press:
      - switch.toggle: kaiguan3

需要注意,在我进行稳定性测试的过程中,在继电器闭合的情况下,继电器有时候会跳变一下。后来发现,去掉log配置即可解决这个问题。

测试视频:
b4a004f55452e66c80afd3d32368c29e~1.gif

相关内容已开源:https://github.com/meijie-jesse/Spark-ESP8266-Smart-Device

我来吐槽

*

*