스마트 홈/esp32
Mqtt 스마트 스위치 문제 해결
다자바무커
2022. 7. 27. 22:50
반응형
아쉽게도 사진은 많이 못 찍었지만 그래도 작성해본다 누군가에게 도움이 될 수도 있으니...
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 핀에 꼽는다.
![]() |
![]() |
![]() |
반응형