『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 33418|回复: 10

[新奇玩法] DIY低成本ESPHome二合一86旋钮开关

[复制链接]

12

主题

108

帖子

3032

积分

论坛技术达人

积分
3032
金钱
2904
HASS币
118
发表于 2021-6-3 22:51:04 | 显示全部楼层 |阅读模式

DIY低成本ESPHome二合一86旋钮开关

简介

IMG_5365.jpg
IMG_5546.jpg

玩ESPHome时发现了旋钮传感器,突发奇想,是不是可以DIY一个旋钮开关。看看品牌的旋钮开关动辄上百的,于是淘宝找了找材料。

硬件

材料清单

开关面板不推荐我发的型号质量一般,可以找找其他质量稍好的

名称 型号 数量 链接
360度编码器模块 - 1 购买
ESP-12S模块 - 1 购买
315MHZ/433MHZ弹簧天线 信号不佳可买 1 购买
40P彩排杜邦线 母对母 21CM 1 购买
AMS1117-3.3 稳压电源芯片降压IC AMS1117-3.3 1 购买
220转5V AC-DC降压模块输出 5V700mA 1 购买
灯光调节器旋钮式开关面板 - 1 购买
金属膜电阻 1/4W 1% 五色环 100千欧 100K 可以不买从其他电路板找 1 购买

DIY

1、焊接

刷机焊接:注意把IO0和GND短路,RX,TX与编程器TX、RX反接

IMG_5246.jpg
IMG_5248.jpg

电源焊接

Snipaste_2021-06-03_22-29-40.png

线路焊接
注意电阻焊接的位置,一定要焊接一个电阻,否则会有开关乱跳问题
IMG_6301.jpg

2、刷机

刷机教程可以参考之前帖子视频

3、安装

软件

ESPHome

旋钮相关连接

esphome:
  name: esp12s_demo
  platform: ESP8266
  board: esp12e

wifi:
  ssid: "#WIFI名称#"
  password: "#WIFI密码#"

captive_portal:

logger:

api:
  password: '#api密码#'
  services:
    - service: send_raw_command
      variables:
        command: int[]
      then:
        - remote_transmitter.transmit_raw:
            code: !lambda 'return command;'

ota:
  password: '#ota密码#'

web_server:
  port: 80

# 旋钮GPIO(左右转)
sensor:
  - platform: rotary_encoder
    name: "esp12s_demo_rotary_encoder"
    pin_a: 12
    pin_b: 13

# 旋钮按下GPIO
binary_sensor:
  - platform: gpio
    pin: 14
    name: "esp12s_demo_switch" 

Node-RED

Snipaste_2021-06-03_22-48-43.png


[
    {
        "id": "9eba36dd.43cf28",
        "type": "tab",
        "label": "旋钮",
        "disabled": false,
        "info": ""
    },
    {
        "id": "295516e5.00099a",
        "type": "server-state-changed",
        "z": "9eba36dd.43cf28",
        "name": "主卧旋钮-按下",
        "server": "58e79fdb.2d76d",
        "version": 1,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "binary_sensor.esp12s_demo_switch",
        "entityidfiltertype": "exact",
        "outputinitially": false,
        "state_type": "str",
        "haltifstate": "on",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "outputs": 2,
        "output_only_on_state_change": true,
        "for": 0,
        "forType": "num",
        "forUnits": "minutes",
        "ignorePrevStateNull": false,
        "ignorePrevStateUnknown": false,
        "ignorePrevStateUnavailable": false,
        "ignoreCurrentStateUnknown": false,
        "ignoreCurrentStateUnavailable": false,
        "x": 150,
        "y": 320,
        "wires": [
            [
                "8130d24b.c8486"
            ],
            [
                "8130d24b.c8486"
            ]
        ]
    },
    {
        "id": "8130d24b.c8486",
        "type": "api-current-state",
        "z": "9eba36dd.43cf28",
        "name": "主卧吸顶灯状态",
        "server": "58e79fdb.2d76d",
        "version": 1,
        "outputs": 1,
        "halt_if": "",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "override_topic": false,
        "entity_id": "light.master_ceil",
        "state_type": "str",
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "blockInputOverrides": false,
        "x": 380,
        "y": 320,
        "wires": [
            [
                "2aa414d4.df309c"
            ]
        ]
    },
    {
        "id": "2aa414d4.df309c",
        "type": "switch",
        "z": "9eba36dd.43cf28",
        "name": "转换",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "on",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "off",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 550,
        "y": 320,
        "wires": [
            [
                "72cb5e2.f4e74a"
            ],
            [
                "dd76d0ed.e7109"
            ]
        ]
    },
    {
        "id": "dd76d0ed.e7109",
        "type": "api-call-service",
        "z": "9eba36dd.43cf28",
        "name": "打开灯",
        "server": "58e79fdb.2d76d",
        "version": 1,
        "debugenabled": false,
        "service_domain": "light",
        "service": "turn_on",
        "entityId": "light.master_ceil",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 710,
        "y": 380,
        "wires": [
            []
        ]
    },
    {
        "id": "72cb5e2.f4e74a",
        "type": "api-call-service",
        "z": "9eba36dd.43cf28",
        "name": "关闭灯",
        "server": "58e79fdb.2d76d",
        "version": 1,
        "debugenabled": false,
        "service_domain": "light",
        "service": "turn_off",
        "entityId": "light.master_ceil",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 710,
        "y": 260,
        "wires": [
            []
        ]
    },
    {
        "id": "8e932f35.3d2b1",
        "type": "server-state-changed",
        "z": "9eba36dd.43cf28",
        "name": "主卧旋钮旋转",
        "server": "58e79fdb.2d76d",
        "version": 1,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "sensor.esp12s_demo_rotary_encoder",
        "entityidfiltertype": "exact",
        "outputinitially": false,
        "state_type": "str",
        "haltifstate": "",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "outputs": 1,
        "output_only_on_state_change": true,
        "for": 0,
        "forType": "num",
        "forUnits": "minutes",
        "ignorePrevStateNull": false,
        "ignorePrevStateUnknown": false,
        "ignorePrevStateUnavailable": false,
        "ignoreCurrentStateUnknown": false,
        "ignoreCurrentStateUnavailable": false,
        "x": 150,
        "y": 540,
        "wires": [
            [
                "9a7a924d.11674"
            ]
        ]
    },
    {
        "id": "105df0ff.3e258f",
        "type": "api-call-service",
        "z": "9eba36dd.43cf28",
        "name": "调节亮度",
        "server": "58e79fdb.2d76d",
        "version": 1,
        "debugenabled": false,
        "service_domain": "light",
        "service": "turn_on",
        "entityId": "light.master_ceil",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 700,
        "y": 540,
        "wires": [
            []
        ]
    },
    {
        "id": "9a7a924d.11674",
        "type": "change",
        "z": "9eba36dd.43cf28",
        "name": "处理亮度",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"data\":{\"brightness_pct\"number(payload)*10}}",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 360,
        "y": 540,
        "wires": [
            [
                "105df0ff.3e258f"
            ]
        ]
    },
    {
        "id": "58e79fdb.2d76d",
        "type": "server",
        "name": "Home Assistant",
        "legacy": false,
        "addon": false,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": false
    }
]

最后

这个DIY最后自己也没用起来,因为NR这块写的比较简单,调整Yeelight时速度一快就控制超时,希望高手优化下,而且应该还可以有更多玩法,希望大家给给意见




评分

参与人数 2金钱 +21 HASS币 +20 收起 理由
ekingfan + 1 厉害了word楼主!
+ 20 + 20 厉害了word楼主!

查看全部评分

回复

使用道具 举报

33

主题

2196

帖子

5847

积分

论坛元老

Rank: 8Rank: 8

积分
5847
金钱
3651
HASS币
60
QQ
发表于 2021-6-3 23:55:33 | 显示全部楼层
膜拜大佬……
我不生产技术,我只是技术的搬运工。
回复

使用道具 举报

4

主题

337

帖子

2502

积分

金牌会员

Rank: 6Rank: 6

积分
2502
金钱
2165
HASS币
0
发表于 2021-6-4 00:26:41 | 显示全部楼层
30以内成本?
回复

使用道具 举报

12

主题

108

帖子

3032

积分

论坛技术达人

积分
3032
金钱
2904
HASS币
118
 楼主| 发表于 2021-6-4 08:47:16 | 显示全部楼层

差不多吧 看壳子买多少钱的
回复

使用道具 举报

23

主题

254

帖子

1617

积分

金牌会员

Rank: 6Rank: 6

积分
1617
金钱
1363
HASS币
0
发表于 2021-6-6 18:33:35 | 显示全部楼层
本帖最后由 ekingfan 于 2021-6-6 18:35 编辑

正想搞这个做 新风机的电压控制 ,楼主已经做出来了, 我可以参考,多谢先。楼主, 有220v  转3.3v 或者 220V 转3.3V+5V的模块,不用你两个模块, 这样可以减少体积。
回复

使用道具 举报

12

主题

108

帖子

3032

积分

论坛技术达人

积分
3032
金钱
2904
HASS币
118
 楼主| 发表于 2021-6-7 08:53:47 | 显示全部楼层
ekingfan 发表于 2021-6-6 18:33
正想搞这个做 新风机的电压控制 ,楼主已经做出来了, 我可以参考,多谢先。楼主, 有220v  转3.3v 或者 22 ...

有推荐的模块吗 发出来
回复

使用道具 举报

0

主题

44

帖子

168

积分

注册会员

Rank: 2

积分
168
金钱
124
HASS币
0
发表于 2021-6-7 09:13:56 | 显示全部楼层
就是很厉害
回复

使用道具 举报

0

主题

67

帖子

314

积分

中级会员

Rank: 3Rank: 3

积分
314
金钱
247
HASS币
0
发表于 2021-10-28 16:59:14 | 显示全部楼层
收藏分享
谢谢
回复

使用道具 举报

7

主题

208

帖子

1650

积分

金牌会员

Rank: 6Rank: 6

积分
1650
金钱
1442
HASS币
0
发表于 2021-10-28 17:31:39 | 显示全部楼层
yeelight那款不是已经破解了嘛
回复

使用道具 举报

3

主题

80

帖子

779

积分

高级会员

Rank: 4

积分
779
金钱
699
HASS币
0
发表于 2021-10-28 20:47:20 来自手机 | 显示全部楼层
散步d小螃蟹 发表于 2021-10-28 17:31
yeelight那款不是已经破解了嘛

那款好像不能多模网关接入用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-1-17 13:54 , Processed in 0.081355 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表