코딩정보




● HA작업) 슈퍼 미니 와이파이 블루투스, ESP32 C3에 센서 연결 작업

♨ 카랜더 일정 : 2024년03월11일
  • 링크

  • 첨부

  • 컨텐츠 정보

    본문

    ● HA작업) 슈퍼 미니 와이파이 블루투스, ESP32 C3에 센서구성 작업 추천구성

    동작)home assistant  esphome에 연결 작업
    용도) 센서 구성을 1~2초 간격으로 REAL TIME  센서 구성 가능
    활용) esphome에 연결 간단한 영구 센서를 동작 5v 휴대폰 아답터 
    평가) 최고의 초보자 초기 ESPHOME  구성 센서 구성입니다.


    구입정보)

    아두이노용 ESP32-C3 개발 보드, 슈퍼 미니 와이파이 블루투스, ESP32 C3

    https://ko.aliexpress.com/item/1005005967641936.html

    3232235521_1710157418.6395.png

    TZT HC-SR501 HC-SR505, IR 초전기 적외선 미니 PIR 모듈, Arduino용 모션 센서 감지기 모듈, AM312 SR602 조정

    https://ko.aliexpress.com/item/32921030810.html

    https://ko.aliexpress.com/item/32731348914.html

    3232235521_1710157403.0893.png


    3232235521_1710157213.0118.png


    binary_sensor:
      - platform: gpio
        pin: GPIO2
        name: "PIR_Sensor"
        device_class: motion
        id: pin_d2

          - id: pir_sensor
            name: Living PIR
            device_class: motion

    3232235521_1710157832.555.png


    초기 연결작업

    1)pc의 USB에 연결후 esphome 에 기기 추가 작업

    3232235521_1710158924.254.png

    3232235521_1710158897.3477.png

    3232235521_1710158968.5489.png

    자동 구성  상태 확인

    log 확인 > wifi 연결 > 114

    3232235521_1710159057.1469.png

    소스 구성 초기 상태

    3232235521_1710159241.9749.png


    기본구성 정보

    https://esphome.io/cookbook/arduino_port_extender.html?highlight=pir_sensor

    참조 합니다


    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
      power_save_mode: none  
      manual_ip:
        static_ip: 192.168.0.201
        gateway: 192.168.0.1
        subnet: 255.255.255.0
        dns1: 8.8.8.8
        dns2: 8.8.4.4


    time:
      - platform: homeassistant
        id: homeassistant_time    
        timezone: Asia/Seoul

    switch:
      - platform: restart
        name: "Restart Node"


    output:
      - platform: ledc
        pin: GPIO12
        id: backlight
        inverted: true

      - platform: gpio
        pin: GPIO23
        id: led_output


    light:
      - platform: binary
        name: "LED_GPIO23"
        output: led_output

      - platform: monochromatic
        output: backlight
        name: "LCD Display Backlight"
        id: light_backlight
        restore_mode: ALWAYS_ON
     
    binary_sensor:
      - platform: gpio
        pin: GPIO2
        name: "PIR_Sensor"
        device_class: motion
        id: pin_d2



    sensor:
      - platform: uptime
        name: Uptime Sensor  
      - platform: wifi_signal
        name: "WiFi Signal dB"
        id: wifi_signal_db
        update_interval: 60s
        entity_category: "diagnostic"

      - platform: copy
        source_id: wifi_signal_db
        name: "WiFi Signal Percent"
        filters:
          - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
        unit_of_measurement: "Signal %"
        entity_category: "diagnostic"
        device_class: ""


    상기 정보를 확인하여 아래 하드웨어 구성에 연결정보로 변경 합니다

    3232235521_1710159771.9998.png


    단독으로 구성 연결 install 합니다.

    3232235521_1710159952.4261.png



    최종구성

    3232235521_1710166752.1432.png




    3232235521_1710166884.6911.png

    3232235521_1710166845.5512.png



    3232235521_1710179011.4957.png


    ESPHOME의 ESP32의 기본 구성  추천 기본 파일  ( 감지 3초 대기 1초)

    esphome:
      name: sensor-only
      friendly_name: sensor_only

    esp32:
      board: esp32-c3-devkitm-1
      framework:
        type: arduino

    # Enable logging
    logger:

    # Enable Home Assistant API
    api:
      encryption:
        key: "nxGwadGiDSeD70gQ9r2NQEtdYfEK8Dzs1Q4HUglbFwM="

    ota:
      password: "c36f7630154e258a8cf96eeb77c86f49"

    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
      power_save_mode: none  
      manual_ip:
        static_ip: 192.168.0.114
        gateway: 192.168.0.1
        subnet: 255.255.255.0
        dns1: 8.8.8.8
        dns2: 8.8.4.4
      ap:
        ssid: "Sensor-Only Fallback Hotspot"
        password: "t7ruV7BBiU2i"

    captive_portal:
    # ------------------------------------------------------------

    switch:
      - platform: restart
        name: "Restart Node"
        id: restart_node

    output:
      - platform: gpio
        pin: GPIO3
        id: led_output

    light:
      - platform: binary
        name: "LED_Sensor_only_GPIO3"
        output: led_output

    binary_sensor:
      - platform: gpio
        pin: GPIO2
        name: "PIR_Sensor"
        device_class: motion
        id: sensor_only_GPIO2
        on_press:
          then:
            - text_sensor.template.publish:
                id: pir_countup
                state: !lambda |-
                  static int pir_counter = 0;
                  pir_counter++;
                  id(pir_last_trigger).publish_state(std::string(id(pir_countup).state.c_str()));
                  return std::to_string(pir_counter);
            # - switch.turn_on: restart_node  # 여기서는 switch를 사용하여 GPIO를 제어합니다.

    sensor:
      - platform: uptime
        name: Uptime Sensor  
        id: Uptime_Sensor
        update_interval: 1s
        entity_category: "diagnostic"

      - platform: wifi_signal
        name: "WiFi Signal dB"
        id: wifi_signal_db
        update_interval: 30s
        entity_category: "diagnostic"

      - platform: copy
        source_id: wifi_signal_db
        name: "WiFi Signal Percent"
        filters:
          - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
        unit_of_measurement: "Signal %"
        entity_category: "diagnostic"    

    text_sensor:
      - platform: version
        name: "Install restart time ESPHome Version"
      - platform: template
        name: "PIR Sensor Countup"
        id: pir_countup
        update_interval: never
      - platform: template
        name: "PIR Sensor Last Trigger"
        id: pir_last_trigger
        update_interval: never



    자동화 구성)

    으로  LED ON/OFF 구성 

    --------------------------
    alias: 새로운 자동화_sensor_only_LED_ON
    description: binary_sensor.sensor_only_pir_sensor
    trigger:
      - platform: state
        entity_id:
          - binary_sensor.sensor_only_pir_sensor
        from: "off"
        to: "on"
    condition: []
    action:
      - type: turn_on
        device_id: e96622a74f26a33af9cd8cc8e8d2101f
        entity_id: 27d9cd9e698151fd9b470e4dad52b919
        domain: light
    mode: single
    =================
    alias: 새로운 자동화_sensor_only_LED_OFF
    description: binary_sensor.sensor_only_pir_sensor
    trigger:
      - platform: state
        entity_id:
          - binary_sensor.sensor_only_pir_sensor
        from: "on"
        to: "off"
    condition: []
    action:
      - type: turn_off
        device_id: e96622a74f26a33af9cd8cc8e8d2101f
        entity_id: 27d9cd9e698151fd9b470e4dad52b919
        domain: light
    mode: single
    ======================

    ☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠1.png

    [ 추가 정보 ... 더보기) ]
    뷰PDF 1,2



    office view

    관련자료

    댓글목록

    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    alias: 새로운 자동화_서재불 센서로 스위치on
    description: 서재불 센서로 스위치on
    trigger:
      - platform: device
        type: turned_on
        device_id: e997aaf3817e8491b53536a20cd6e87c
        entity_id: 4cb34ced863c4e604d0e654bbf7f0326
        domain: light
        for:
          hours: 0
          minutes: 0
          seconds: 1
    condition: []
    action:
      - choose:
          - conditions: []
            sequence:
              - type: turn_on
                device_id: d9dd4bf3078ddf5e91339c871e01abe2
                entity_id: 70659c4a9c2132d2f4e867af204f7778
                domain: switch
          - conditions:
              - condition: numeric_state
                entity_id: binary_sensor.motion_sensor
                below: 1
            sequence:
              - delay:
                  minutes: 5
              - type: turn_off
                device_id: d9dd4bf3078ddf5e91339c871e01abe2
                entity_id: 70659c4a9c2132d2f4e867af204f7778
                domain: switch
    mode: single

    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    esphome:
      name: sensor-only
      friendly_name: sensor_only


     
    esp32:
      board: esp32-c3-devkitm-1
      framework:
        type: arduino

    # Enable logging

    logger:
      # level: VERY_VERBOSE
    # Enable Home Assistant API
    api:
      encryption:
        key: "nxGwadGiDSeD70gQ9r2NQEtdYfEK8Dzs1Q4HUglbFwM="

    ota:
      password: "c36f7630154e258a8cf96eeb77c86f49"

    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
      power_save_mode: LIGHT 
      manual_ip:
        static_ip: 192.168.0.114
        gateway: 192.168.0.1
        subnet: 255.255.255.0
        dns1: 8.8.8.8
        dns2: 8.8.4.4
      ap:
        ssid: "Sensor-Only Fallback Hotspot"
        password: "t7ruV7BBiU2i"

    captive_portal:

    # ====================================================================
    output:
      - platform: gpio
        pin: GPIO0
        id: led_output

    light:
      - platform: binary
        name: "LED_Sensor_only_GPIO3"
        output: led_output
    # wifi 옵션 power_save_mode: LIGHT 적용햐야 컴파일 됩니다esp32_ble_tracker:
    esp32_ble_tracker:

    binary_sensor:
      - platform: ble_presence
        ibeacon_uuid: 'a26fbca9-870e-4293-ad0b-aab3e0defc4e'
        name: "myphone"

      - platform: ble_presence
        ibeacon_uuid: '7cad13d3-e06e-4493-b771-c2a27e46695c'
        name: "mywife"

      - platform: gpio
        pin: GPIO2
        name: "PIR Sensor"
        device_class: motion
        id: pir_sensor_only_GPIO2
        on_press:
          then:
            - text_sensor.template.publish:
                id: pir_countup
                state: !lambda |-
                  static int pir_counter = 0;
                  pir_counter++;
                  id(pir_last_trigger).publish_state(std::to_string(pir_counter));
                  // 매 60분마다 초기화
                  if ((millis() / 60000) % 60 == 0) pir_counter = 0;
                  return std::to_string(pir_counter);

    switch:
      - platform: restart
        name: "Restart Node"
        id: restart_node

      - platform: template
        name: "Reset PIR Sensor Count"
        id: reset_pir_count
        icon: "mdi:refresh"
        turn_on_action:
          - text_sensor.template.publish:
              id: pir_countup
              state: "0"
          - text_sensor.template.publish:
              id: pir_last_trigger
              state: "0"

    sensor:

      - platform: uptime
        name: Uptime Sensor 
        update_interval: 1s
        entity_category: "diagnostic"
        id: uptime_sensor

      - platform: wifi_signal
        name: "WiFi Signal dB"
        id: wifi_signal_db
        update_interval: 30s
        entity_category: "diagnostic"

      - platform: copy
        source_id: wifi_signal_db
        name: "WiFi Signal Percent"
        filters:
          - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
        unit_of_measurement: "Signal %"
        entity_category: "diagnostic" 

    text_sensor:
      - platform: version
        name: "Install restart time ESPHome Version"

      - platform: template
        name: Uptime
        update_interval: 1s
        lambda: |-
          auto s = millis() / 1000;
          return str_snprintf("%02d:%02d:%02d:%02d", 11, s / 86400, s / 3600 % 24, s / 60 % 60, s % 60);

      - platform: template
        name: "PIR Sensor Counter"
        id: pir_countup
      - platform: template
        name: "PIR Last Trigger"
        id: pir_last_trigger

      - platform: template
        name: Uptime_PIR_Off
        update_interval: 1s
        entity_category: diagnostic
        lambda: |-
          static unsigned long last_pir_time = 0;
          if (id(pir_sensor_only_GPIO2).state) {
            last_pir_time = millis();
          }
          unsigned long uptime_seconds = (millis() - last_pir_time) / 1000;
          return esphome::optional<std::string>(std::to_string(uptime_seconds));

    답변



    ♥간단_메모글♥


    최근글


    새댓글



    PHP 안에 HTML ☞ 홈페이지 화면갱신 시간은 ♨
    ▶ 2024-04-28 17:25:26

    오늘의 홈 현황


    • 현재 접속자♨ 133 명
    • 오늘 가입자※ 1 명
    • 어제 가입자※ 3 명
    • 주간 가입자※ 18 명
    • 오늘 방문자 1,397 명
    • 어제 방문자 1,561 명
    • 최대 방문자 13,042 명
    • 전체 방문자 4,293,163 명
    • 전체 게시물※ 8,538 개
    • 전체 댓글수※ 24,523 개
    • 전체 회원수 10,934 명

    QR코드


    ☞ QR코드 스캔은 kakao앱 자체 QR코드

    알림 0








    최신글↑