看了各位大神的教程,发现ESP32做BLE扫描的时候最大的问题是和wifi相互干扰。有大神的解决方案是关闭wifi发现ble信号后再打开wifi传出数据。这样一点程度上规避了干扰问题,但是会有比较大的延迟
我觉得可以换个思路:用另一个设备来传出信号。在这里我使用了一个米家门磁(也可以用esp8266),固件我用了设置简单的esphome。
esphome:
name: esp32
platform: ESP32
board: nodemcu-32s
# Enable logging
logger:
esp32_ble_tracker:
scan_parameters:
interval: 320ms
window: 320ms
# uart:
# baud_rate: 9600
# tx_pin: GPIO16
i2c:
scan: True
id: bus_a
switch:
- platform: gpio
pin: GPIO16
name: "Living Room Dehumidifier"
id: relay
- platform: gpio
pin: GPIO17
name: "Living Room Door"
id: menci
- platform: template
name: "Gate Remote"
id: relay_switch
turn_on_action:
- switch.turn_on: relay
- switch.turn_on: menci
- delay: 60s
- switch.turn_off: relay
- switch.turn_off: menci
sensor:
- platform: bh1750
name: "light"
address: 0x23
update_interval: 6s
- platform: ble_rssi
mac_address: 03:4f:d0:00:00:00
name: "信标_2"
on_value:
then:
- switch.turn_on: relay_switch
- platform: ble_rssi
mac_address: 06:34:b0:00:00:00
name: "信标_3"
on_value:
then:
- switch.turn_on: relay_switch
同时设置了一个60秒的延时开关
|