안녕하세요.
이번에는 지난번 불꽃 감지기 RS485 통신 테스트하는 겸 RS485 to USB 모듈 테스트를 진행해 보았습니다.
별로 차이는 없지만, 불꽃 감지기 본체만 가지고 한다면 소화전과 같은 물리적으로 제어를 하겠지만, 통신이 가능하다면 소프트웨어적으로 제어 및 모니터링 가능한 장점이 있다고 생각합니다. 거두절미(去頭截尾)하고 바로 확인해 보도록 하겠습니다.
1. 제품 확인
- IRT-020-K 제품은 이전 글을 참조하시면 도움이 될 것이라 생각됩니다.
- USB to RS485 모듈 [Bitbus MFA-02]
<스 펙>
- USB Chip : CP2104
- USB 케이블 : B Type
- 표시 LED : Power, Tx, Rx 상태 표시
- 출력 핀 : RS485-A, RS485-B, GND
- 보호회로 : Poly Switch, SN65176B 내장으로 PC 및 타깃 보드를 보호
- 종단 저항( 선로 중간에 종단 저항 설정 시에는 설정한 기기의 이후 선로는 통신이 되지 않으니, 주의)
2. 제품 연결방법
USB to RS485 모듈을 PC에 연결하면 장치 관리자에 아래와 나타납니다. 알 수 없는 장치라고 나타난다면
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads 링크에서 드라이버를 다운로드하여서 설치해야 합니다.
불꽃 감지기 RS485(+)와 RS485모듈 RS485_A와 연결
불꽃 감지기 RS485(-)와 RS485모듈 RS485_B와 연결
3. 불꽃 감지기(IRT-020-K) 프로토콜(Protocol) 확인
불꽃 감지기 제조사에서 통신으로 상태를 확인할 수 있게 RS485 프로토콜을 정의해 놓았습니다. 이 문서 기반으로 간단하게 송수신 데이터를 확인합니다.
4. 통신 설정
USB to RS485를 사용해서 통신 테스트를 하고 있지만, IoT 모듈 등 원격지에서 보려고 한다면 RS485 to TTL 제품으로 바꿔 임베디드 보드에서 송수신을 처리해야 합니다. 현재는 PC에서 프로토콜을 확인하는 차원에서 확인하였습니다.
테스트에 사용한 프로그램은 SerialPortMon을 사용했습니다. 그러나 시리얼 통신하는 다른 프로그램을 사용해도 문제없습니다. 시리얼 통신 설정만 잘 맞춰주면 됩니다.
5. 통신 테스트
1) ID 설정(변경)
장비를 처음 받으면 ID가 FF(0xFF) 이므로 변경이 필요하다고 나옵니다. 그래서 ID를 01(0x01)로 먼저 설정해 줍니다.
HEX 송신-> ) 00 FF 02 01 02 AA
변경 데이터를 송신하면 수신 값 받음
HEX 수신<- ) 00 01 02 01 04 AA
2) 감지기 상태 확인
감지기 상태를 확인하기 위해 명령어 04(0x04) 보내면 알람 단계에 맞게 수신 값을 보내줍니다.
HEX 송신-> ) 00 01 04 00 05 AA
라이터 작은 불을 0.5m 정도 움직이면 1단계, 2단계 알람 상태 데이터를 전달해 주다가 더 가깝게 가면 화재 발생 알람이 발생했습니다.
감지기 상태 데이터는 2초 이내로 요청하면 응답하지 않는 경우가 생기므로 최소 2초 이상의 주기로 상태 데이터를 요청해야 합니다.
3) 불꽃 감지기 재시작
화재감지가 되면 전원을 불꽃 감지기의 전원을 다시 끄고 켜지 않으면 빨간불이 깜박이며 알림 신호를 주기 때문에 전원제어가 아니라면 리셋 명령 01(0x01)로 초기화해 줄 수 있습니다.
HEX 송신-> ) 00 01 01 00 02 AA
HEX 수신<- ) 수신 데이터 없음
4) 처음 전원 인가 시
불꽃 감지기에 전원을 인가하면 FC가 하나 들어오고 Protocol 문서에 없는 command “00”을 전달합니다. 아마 장비 상태 및 아이디 확인 차원에서 전달되는 데이터로 생각됩니다.
리셋 신호를 보내면 FC 없이 00 커멘드가 들어옵니다.
5) 화재 감지 시
감지기 상태 확인 명령어를 보내다가 화재 알람이 발생한 경우 04(0x04)로 데이터 수신됩니다.
개발하려고 하는 응용프로그램에서 알람 데이터를 체크해서 상태를 확인해 주면 될 것으로 보입니다.
6. 최종 후기
- RS485 장비였지만, USB 변환 모듈을 통해서 RS232 통신처럼 쉽게 데이터를 받을 수 있었습니다.
- 불꽃 감지기는 정의된 Protocol에 맞게 데이터가 잘 들어왔습니다. 그런데 감지 단계가 어떤 경우에 1,2,3 단계인지 명확하지 않았습니다.
- 소방법에 맞게 알람이 발생하려면 특정 거리에서 큰 불꽃이라는 것이 인식되기까지 몇 초가 소요되는 것은 맞는데, 애초에 작은 불을 잡겠다고 생각하면 맞지 않을 것으로 생각됩니다.
- 사무실 공간에서 위에서 아래로 내려보는 것이 아니라 책상 높이에 그냥 두었을 때도 비주기적으로 한 두 번 알람이 울려서 현장에서 약간의 잘못된 알람이 발생할 수 있겠다는 생각이 들었습니다. (UV가 장착된 제품을 추가로 테스트해보고 싶은 마음이 듭니다.)
- 향후 임베디드 모듈과 연결하려면 RS485 to TTL제품과 연결해서 통신하는 프로그램 개발이 필요해 보입니다.
감사합니다.
<참고 사이트>
1. USB to RS485 모듈 [MFA-02]
https://www.bitbus.co.kr/module_dev/?idx=26
2. RS232/RS422/RS485에 대해서 2
https://blog.naver.com/jmsin30/220264593087
3. IRT-020-K
https://www.irtkorea.co.kr/page/?M2_IDX=7650
'IT' 카테고리의 다른 글
ESP32-Cam + OV2640 카메라 모듈 테스트 후기 (2) | 2024.11.15 |
---|---|
YF-B10-S(유량센서) 확인해 보기 (0) | 2024.11.13 |
불꽃감지기 IRT-020-K(IR-3Digital 50m) 제품 확인 (10) | 2024.11.01 |
eMMC 타입 micro SD Card 테스트 ( 32GB eMMC Module for Rock Pi ) (2) | 2024.10.30 |
SC-9547-9 (A-Si 박막형 태양전지 실내 발전가능) 테스트 (2) | 2024.10.26 |