오래전에 IoT 환경 만들어 보겠다고 구매했던 Broadlink RM mini3 입니다.
알리에서 $12.49 에 구매했었네요
요놈이 IR 허브 기능을 할 수 있을거라 생각했는데
그냥 만능리모컨 역할이더군요
TV와 에어컨 무선선풍기 키고 끄는거 이외에 딱히 할 수 있는게 없더라구요
그래서 구매 후 2년정도 방치 해 두었었습니다.
그러다가 최근에 esp8266 과 tasmota 를 알게 되면서
hoxy.. esp8266 이 올라가 있으려나? 하고 한번 뜯어보게 되었습니다.
상단의 서브보드는 이렇게 생겼습니다.
메인보드에는 broadlink 3323-sbsl 모듈..
내부에는 어떤 ic 를 쓰고 있을까 정보를 찾아보니 안타깝게도 마벨칩이 들어가 있다고 하네요
정보를 검색하던 도중에
RM mini 3에 ESP8266 을 올린 사람을 발견하게 되었습니다.
https://www.hackster.io/ccxx/broadlink-rm-mini-3-from-broadlink-3323-to-esp8266-cc1493
오..? 해볼만 하겠는데 라는 생각이 들어 알리에서 ESP8266 모듈을 바로 구매..
2주도 안되어 도착하였습니다. 요즘 알리 배송 빠르네요
바로 기존 모듈 제거에 착수...
열풍기가 없어서 구리선 잘라서 제거를 시도하였습니다.
다행히도 잘 떨어졌습니다.
모듈 크기 비교..
기존 칩셋의 핀맵과 ESP 12F 의 핀맵을 비교하여 대충 매칭시켜보았습니다.
나중에 알게 된거지만 이 broadlink pinout 이미지상에 오류가 있어서
IR SIG(OUT) 핀이 SDO 핀과 바뀌어 있더군요
와이어로 하나하나 연결 해 주었습니다.
공중부양하고 있습니다. H/W 초짜인지라 딱히 깔끔하게 처리할 방법이 안떠오르더라구요
다음 ESP 8266 에 타스모타 펌웨어 업로드를 위해 업로드 회로를 구성 해 보았습니다.
- GPIO0(Prog) 에 그라운드 연결
- 향후 펌웨어 재 업로드를 대비하여 스위치 열결 & Pull-up
- Reset 과 En핀(CH_PD) Pull-up
- GPIO15(CS) Pull-down
- 추가로 VCC 입력 전원과 Ground 사이에 전원 노이즈 제거 목적 디커플링 캐패시터를 달아 주었다.
- 100nF => 104k
한참동안 여러 방법으로 해도 좀처럼 잘 안올라갔는데
tasmotizer 라는 놈을 써보니 쉽게 올라가더군요
https://github.com/tasmota/tasmotizer
reset버튼을 누르고 프로그램 스위치를 누른 상태에서 Tasmotize를 수행 한 뒤에 reset 버튼에서 손을 때고 기다렸더니 이렇게 올라갔습니다.
버전 업로드를 수행 후 리셋을 하면 tasmota 장치는 AP모드로 부팅하여 3분간 클라이언트의 접속을 기다리는데
이 때 휴대폰으로 tasmota로 시작하는 ap를 찾아 접속하고
사용중인 공유기의 인증정보를 세팅 후 리셋!
이제 집안 어디서든 접속 가능한 상태가 되었습니다.
UART 콘솔에서 보여지는 IP 로 접속 후 CONFIGURATION 에서 GENERIC TASMOTA로 설정 후 GPIO는 아래와 같이 설정 하였습니다.
LED는 Blue LED만 tasmota 전송시에 연동 되도록
18:11:18.750 CMD: ledmask
18:11:18.756 MQT: stat/tasmota_8C5CA7/RESULT = {“LedMask”:”1 (0x0001)”}
18:11:21.676 CMD: ledstate
18:11:21.682 MQT: stat/tasmota_8C5CA7/RESULT = {“LedState”:4}
과 같이 설정
이렇게 쓸 목적으로 이미 MQTT 브로커 연동 해 둔 홈어시스턴트에 연동 하였습니다.
홈어시스턴트에서 자동화를 추가 해 줍니다.
Configuration => CREATE AUTOMATION => Start with an empty automation
Home Assistant 의 Automation 설정은 Triggers / Conditions / Actions 의 세 단계로 나누어 지는데 각 설정은 다음과 같이..
- Triggers
Tasmota 로 부터 수신하는 MQTT가 트리거가 되는데 topic은 tasmota의 콘솔상에서 IR 수신시에 전달 되는 MQT 메시지 상에서 확인하여 적으면 됩니다.
하지만 어차피 MQTT 인증 설정을 해 놓은 관계로 보안에 크게 문제는 없을듯하여 ‘+’ 문자를 사용하여 향후 IR Receiver 가 추가 될 가능성에 대비하였습니다.
- Conditions
RM mini3에서 json 으로 작성 된 mqtt 메시지는 다음과 같습니다. 이를 이용해서 설정 해 줍니다.
{
"Time": "2022-04-24T06:24:38",
"IrReceived": {
"Protocol": "NEC",
"Bits": 32,
"Data": "0x94696C93"
}
}
- Actions
Actions에는 tasmota를 올린 SONOFF Device를 mapping 하고 action은 toggle로 키고 끼는것으로 하였습니다.
여기까지 해서 리모컨을 이용한 IoT Device 가 문제 없이 잘 동작하는 것을 확인 하였습니다.
결론: 그냥 돈 주고 IR 허브 제대로 된거 사는게 최고