Skip to content

liwei19920307/ESPMMW

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESPMMW-X

简介

讨论群: 810581215

ESPMMW-X

雷达特点:

  • 外观精致
  • 支持磁吸底座
  • 多功能:人体存在,距离调节,呼吸检测,环境亮度,红外遥控(支持收发,自定义功能),蓝牙网关(测试过米家低功耗
  • 方便二次开发:TYPE-C 接口,支持串口调试(USB Serial/JTAG
  • 成本低廉(总体硬件成本 60 左右)
  • 稳定性极好
  • 主控 ESP32C3

SLEEP

固件特点:

  • 支持运动、静止状态显示
  • 检测距离显示
  • 动静距离显示,能量显示
  • 动静灵敏度调节
  • 动静距离调节
  • ESP32 状态显示(IP、MAC、CPU 温度,运行时间)
  • 蓝牙代理
  • 红外收发
  • OTA

GPIO

GPIO 功能
0 红外接收
1 红外发射
2 背部自定义按键
3 光敏电阻电压
4 毫米波状态
5、6 毫米波串口

DIY 步骤

打板(板厚选 1mm)-->焊接-->组装-->刷机

材料清单

名称 型号 数量 PCB 标注 链接
X-RA2413MT 毫米波雷达模块 1 X-RA2413MT 购买
VS/HX1838/PC638 红外接收头 1 HX1838 购买
3MM 940nm 红外发射管 2 LA / LB 购买
光敏电阻 5516 1 GL5516 购买
ME1117A33B3G 线性稳压器 1 1117-3 购买
ESP32-C3-WROOM-02-H4 模块 1 ESP32-C3-WROOM-02-H4 购买
贴片 S8050 J3Y 贴片三极管 500MA SOT-23 1 J3Y 购买
0603 贴片电阻 1MΩ 1 兆欧 1/10W 精度 ±1% 1 R1 购买
0603 贴片电阻 10KΩ 10 千欧 1/10W 精度 ±1% 3 R2 / R3 / R4 购买
直插固态电解电容 1000uF 6.3V 6.3*11.5mm 1 C1 购买
1206 贴片电容 4.7UF 1 C2 购买
2.54mm 间距 单排母 2.54mm-1*5P 单排母 5.0 塑高!!! 1 X-RA2413MT 购买
贴片 USB-3.1 插座 Type-C 母座 16P 1 TYPE-C 购买
直插 6*6 轻触开关 5、0 高 1 BUTTON 购买
红外转发器外壳 1 - 购买
304 不锈钢平头自攻螺丝 M1.7*6 3 外壳商家也会送 购买
车载磁吸出风口手机支架 1 - 购买

ESPHome

  • 配置

    substitutions:
      device_name: master_espmmw
    
    esphome:
      name: ${device_name}
    
    esp32:
      board: esp32-c3-devkitm-1
      framework:
        type: arduino
        version: latest
    
    external_components:
      - source: github://liwei19920307/ESPMMW
        components: [ ra2413mt ]
    
    logger:
      level: debug
    
    debug:
      update_interval: 5s
    
    api:
      encryption:
        key: !secret api_encryption_key
    
    ota:
      - platform: esphome
        password: !secret ota_password
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
      fast_connect: on
    
    web_server:
      port: 80
      version: 3
      include_internal: true
    
    uart:
      - id: ra2413mt_uart
        rx_pin: 5
        tx_pin: 6
        baud_rate: 256000
        data_bits: 8
        stop_bits: 1
    
    ra2413mt:
      uart_id: ra2413mt_uart
    
    text_sensor:
      - platform: wifi_info
        ip_address:
          name: ${device_name}_ip
          icon: mdi:ip-outline
          internal: true
        mac_address:
          name: ${device_name}_mac
          icon: mdi:map-marker-outline
          internal: true
    
    binary_sensor:
      - platform: gpio
        pin: 4
        name: ${device_name}_mmw
        device_class: occupancy
        icon: mdi:motion-sensor
      - platform: gpio
        pin:
          number: 2
          mode:
            input: true
            pullup: true
          inverted: true
        name: ${device_name}_button
        icon: mdi:radiobox-marked
        internal: true
        on_press:
          then:
            - button.press: ${device_name}_reset_conf
    
    sensor:
      - platform: wifi_signal
        name: ${device_name}_signal
        icon: mdi:signal
        internal: true
      - platform: debug
        free:
          name: ${device_name}_free
          unit_of_measurement: "KB"
          internal: true
          filters:
            - lambda: |-
                return x / 1024;
        block:
          name: ${device_name}_max_block
          unit_of_measurement: "KB"
          internal: true
          filters:
            - lambda: |-
                return x / 1024;
        loop_time:
          name: ${device_name}_loop_time
          internal: true
      - platform: adc
        pin: 3
        name: ${device_name}_brightness
        attenuation: 11db
        update_interval: 5s
        unit_of_measurement: "%"
        icon: mdi:brightness-6
        accuracy_decimals: 0
        filters:
          - lambda: |-
              return ( 3 - x ) / 0.03;
      - platform: internal_temperature
        name: ${device_name}_cpu_temprature
        icon: mdi:thermometer
        internal: true
      - platform: ra2413mt
        move_distance:
          name: ${device_name}_move_distance
          internal: true
        move_energy:
          name: ${device_name}_move_energy
          internal: true
        static_distance:
          name: ${device_name}_static_distance
          internal: true
        static_energy:
          name: ${device_name}_static_energy
          internal: true
    
    number:
      - platform: ra2413mt
        max_move_distance:
          name: ${device_name}_max_move_distance
          default: 4.5
          internal: true
        max_static_distance:
          name: ${device_name}_max_static_distance
          default: 4.5
          internal: true
        move_sensitivity:
          name: ${device_name}_move_sensitivity
          default: 99
          internal: true
        static_sensitivity:
          name: ${device_name}_static_sensitivity
          default: 15
          internal: true
        unattended_duration:
          name: ${device_name}_unattended_duration
          default: 5
          internal: true
    
    button:
      - platform: restart
        name: ${device_name}_reboot
        internal: true
      - platform: ra2413mt
        get_conf:
          name: ${device_name}_get_conf
          internal: true
        reset_conf:
          id: ${device_name}_reset_conf
          name: ${device_name}_reset_conf
          internal: true
      - platform: template
        name: ${device_name}_tv_on_off
        icon: mdi:remote-tv
        on_press:
          - remote_transmitter.transmit_raw:
              carrier_frequency: 38kHz
              code:
                [9045, -4500, 585, -520, 578, -527, 580, -525, 578, -527, 586, -518, 579, -525, 580, -525, 585, -519, 569, -1641, 583, -1626, 585, -1624, 580, -1628, 586, -1677, 579, -1630, 580, -526, 583, -1625, 586, -1623, 586, -519, 586, -1622, 582, -1628, 587, -518, 580, -524, 585, -520, 586, -519, 584, -520, 585, -1650, 584, -521, 588, -517, 580, -1630, 584, -1624, 585, -1624, 586, -1623, 585]
    
    remote_transmitter:
      pin: 1
      carrier_duty_percent: 50%
    
    remote_receiver:
      pin:
        number: 0
        inverted: true
      dump: all
  • 中文含义

    ESPHOME

    组件 含义
    espmmw_brightness 环境亮度
    espmmw_button 毫米波背后按钮
    espmmw_get_conf 获取当前毫米波配置
    espmmw_max_move_distance 最大运动检测距离调节
    espmmw_max_static_distance 最大静止检测距离调节
    espmmw_mmw 毫米波状态(ON-有人,OFF-无人)态
    espmmw_move_distance 当前运动物体距离
    espmmw_move_energy 当前运动物体能量值
    espmmw_move_sensitivity 运动灵敏度调节
    espmmw_reset_mmw 重置毫米波设置
    espmmw_static_distance 当前静止物体距离
    espmmw_static_energy 当前静止物体能量值
    espmmw_static_sensitivity 静止灵敏度调节
    master_espmmw_tv_on_off 红外遥控 demo
    espmmw_unattended_duration 无人持续时间调节

触发过程

有人无人触发过程

  1. 当 espmmw_move_energy 超大于设定的 espmmw_move_sensitivity 时 espmmw_mmw 触发 ON

  2. 当 espmmw_static_energy 小于设定的 espmmw_static_sensitivity 时 espmmw_mmw 触发 OFF

  3. espmmw_mmw 触发 ON 之前都是通过 espmmw_move_energy 的值判断的,一旦触发 ON 后,后面的检测都是通过 espmmw_static_energy 来判断是否 OFF 的

  4. 把 espmmw_move_sensitivity 设置成 99 是为了防止一些轻微的动作误触有人,比如阳台的衣服或者窗帘微动

  5. 把 espmmw_static_sensitivity 设置成 15 是为了更好的检测呼吸,防止误触无人

  6. 实际使用中大家可以根据环境内的 espmmw_static_energy 值来设置,因为有些环境 espmmw_static_energy 就是高于 15 的,我自己家用 15 是没啥问题的,但有些地方调高一点比如阳台,防止衣服微动导致无法触发 espmmw_mmw 的 OFF

红外收发

红外接收一般用来学习遥控器后模拟,或者接收指定代码后,执行特定操作

  • 收 RAW 码

    remote_receiver:
      pin:
        number: 0
        inverted: true
      rmt_channel: 2
      dump: all
  • 发 RAW 码

    将学习到的 RAW 码填入

    remote_transmitter:
      pin: 1
      carrier_duty_percent: 50%
    
    button:
      - platform: template
        name: ${device_name}_tv_on_off
        on_press:
          - remote_transmitter.transmit_raw:
              carrier_frequency: 38kHz
              code:
                [#这里放入日志中打印的RAW码]
  • SmartIR

    看看这里

蓝牙网关

目前蓝牙网关相关功能还有问题不建议用, 蓝牙的 2.4G 和 WiFi 的 2.4G 有会干扰,建议长期测试再使用

  • 直接采集

    米家低功耗

    Bindkey 获取

    esp32_ble_tracker:
      - platform: xiaomi_lywsd03mmc
        mac_address: #mac
        bindkey: #bindkey
        temperature:
          name: ${device_name}_mi_temperature
        humidity:
          name: ${device_name}_mi_humidity
        battery_level:
          name: ${device_name}_mi_battery
  • ESPHOME 蓝牙代理

    ESPHOME 和 HA 添加配置后重启,HA 集成里就会出现支持的设备,配置如下

    HA 的 configuration.yaml 添加

    # Bluetooth
    bluetooth:

    ESPHOME 配置添加

    esphome:
      name: ${device_name}
      on_boot:
        - priority: 600
          then:
            - esp32_ble_tracker.stop_scan:
    
    esp32_ble_tracker:
      scan_parameters:
        interval: 1100ms
        window: 1100ms
    
    bluetooth_proxy:
      active: true
    
    time:
      - platform: sntp
        on_time:
          # Every 1 minutes
          - seconds: 0
            minutes: /1
            then:
              - esp32_ble_tracker.start_scan:

    BLE1

注意事项

  • 安装尽量选择墙上安装,不建议吸顶安装
  • 尽量将电源口对地或天,使天线平行地面获得最大范围
  • 安装及雷达范围参考X-RA2413MT.pdf AERIAL

问题

  • You tell me

细节

MMW1

MMW2

MMW3

MMW4

MMW5

场景

DEMO1

DEMO2

DEMO3

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors