DIY之智能风扇


如图所示风扇的空洞是非常大,想装什么就装什么!!!!
风扇用了有一年多了,买回来的时候就想改装了 :rofl: :rofl:,太太怀孕了 :pregnant_woman:,所以~~~
微信图片_20200329211436
加一个光感,可以在lx为0的状态下关闭风扇。
深度截图_选择区域_20200329211555
本来想使用esp8266但共需要用10个GPIO,只能使用esp32。

接线原理:
1、强电区------风扇电机是4线,分别是红(高速),白(中速),蓝(低速),和黑(零线); 摇头是独立的低 速电机。以上使用一个4路继电器控制。
2、弱电区------原来的1档2档3档和摇头档位,分别连接GPIO用binary_sensor来接入,目得是纯物理的情况下也可以控制风扇。

固件使用esphome 代码如下:

esphome:
name: esp32_01_fan
platform: ESP32
board: nodemcu-32s

wifi:
ssid: “"
password: "
"
fast_connect: on
ap:
ssid: “Esp32 01 Fan”
password: "
"
manual_ip:
static_ip: 192.168.100.9
gateway: 192.168.100.1
subnet: 255.255.255.0
captive_portal:
logger:
api:
password: "
*****”

ota:
password: “******”

i2c:
sda: 21
scl: 22
scan: True
id: bh_a
sensor:

  • platform: bh1750
    name: “BH1750”
    i2c_id: bh_a
    address: 0x23
    update_interval: 60s

switch:

  • platform: restart
    name: “rst_esp32_fan”

  • platform: gpio
    name: “yaotou”
    pin: 16
    inverted: yes
    id: yt

  • platform: gpio
    name: “fanlow”
    pin: 17
    inverted: yes
    id: low
    interlock: [mid, fast]

  • platform: gpio
    name: “fanmid”
    pin: 18
    inverted: yes
    id: mid
    interlock: [low, fast]

  • platform: gpio
    name: “fanfast”
    pin: 19
    inverted: yes
    id: fast
    interlock: [low, mid]

binary_sensor:

  • platform: status
    #连接状态
    name: “esp32_fan”

  • platform: gpio
    name: “yttouch”
    pin: {number: GPIO14, mode: INPUT_PULLUP, inverted: True}
    filters: [{delayed_on: 40ms}, {delayed_off: 40ms}]
    on_state: [{switch.toggle: yt}]

  • platform: gpio
    name: “lowtouch”
    pin: {number: GPIO25, mode: INPUT_PULLUP, inverted: True}
    filters: [{delayed_on: 40ms}, {delayed_off: 40ms}]
    on_state: [{switch.toggle: low}]

  • platform: gpio
    name: “midtouch”
    id: midt
    pin: {number: GPIO26, mode: INPUT_PULLUP, inverted: True}
    filters: [{delayed_on: 40ms}, {delayed_off: 40ms}]
    on_state: [{switch.toggle: mid}]

  • platform: gpio
    name: “fasttouch”
    pin: {number: GPIO27, mode: INPUT_PULLUP, inverted: True}
    filters: [{delayed_on: 40ms}, {delayed_off: 40ms}]
    on_state: [{switch.toggle: fast}]

-------目前还需在写二个自动化是当风扇1档2档3档都关闭,摇头自动关闭;在19-01时光感为0,关闭风扇。

你这个档位可以参考一下日本佬的 :grinning:他那个貌似有互锁的

用rf不是更简单