Mqtt 스마트 스위치 문제 해결

반응형
아쉽게도 사진은 많이 못 찍었지만 그래도 작성해본다 누군가에게 도움이 될 수도 있으니...

https://dazabamuker.tistory.com/entry/Home-Assistant-mqtt-스위치-수정

 

Home Assistant - mqtt 스위치 수정

mqtt 스위치가 다 좋은데 정말 때때로 잘때 오류가 나서 불이 켜지는 경우가 있다. 어제도 그랬다. 화가 난다!!1 부들~부들~ 잘 자는데 눈뽕 당하는 일은 군대에서만 당해도 충분한데..... 그런데 도

dazabamuker.tistory.com

문제: 내가 먼저 이걸 설계하고(설계는 풀 다운 저항으로 설계했다) 만들면서 실제로는 풀업이나 풀다운 저항을 구성하지 못하고 달았다. 그래서 전 글처럼 서버에서 일정 시간대에 자동으로 켜지면 바로 다시 꺼지도록 구성했는데 역시 너무 불편했다. 그런데 풀업이나 다운 마저 완벽한 해결핵이 아니었다.
해결방법: Esp32 Devkit v1에는 터치 센서가 존재한다. 이 부분의 저항을 읽어보면 손을 가져다 대면 읽어들이는 값이 감소한다.
이것을 이용하여 스위치의 상태가 변하고 손으로 만지는 것이 동시에 감지 되었을 때 불이 켜지거나 꺼지도록 구성했다.
결과: 약 한달이 지났지만 자동으로 켜지는 일 없이 잘 작동한다. 당연히 서버 일정 시간 때 강제 켜짐 코드 등은 삭제 했다.

 

코드


if ((digitalRead(5) != SW_state) && (touchRead(T5) < 50) ) {
    state2 = state;
    state = state1;
    state1 = state2;
    digitalWrite(4, state);
    snprintf(messages, 75, "%ld", state);
    client.publish(TOPIC, messages);
  }
  SW_state = digitalRead(5);

해당 부분만 보면 touchRead(T5) < 50 일 때 터치를 감지하고 동시에 스위치 상태가 변화할 때에 불을 키거나 끄고 상태를 서버에 전달한다.

T5가 그림의 D12(touch5)핀이다.

 

 

사진을 모르고 삭제... 했다.

1.  스위치를 분리해서 스위치에 인두로 구멍을 내고 선을 빼낸 뒤

2. 피복을 벗기고 구리 선을 은박지에 절연테이프(흔히 검은 테이프로 부를는)로 붙이고 은박지를 스위치에 붙인다.

3. 점퍼 케이블을 touch 5 핀에 꼽는다.

반응형