위 소스는 제가 구글링을 통해 발견한 nRF24 모듈을 사용한 무선통신 소스(참고/링크 기재)를 약간 수정해 만든 아두이노 코드입니다.
nRF24L01 모듈을 아두이노 호환보드에 연결해 무선통신을 개시하고, 문에 달린 리드스위치의 상태값을 지속적으로 전송하고, 이 값이 0이 되면 피에조 부저를 울리는 구조입니다.
저는 이 프로젝트를 편의점 출입문과 냉장고 안에 적용해 사람이 들어오면 부저를 울리는 식으로 적용하려고 했습니다.
위 소스를 보면 아시겠지만 디지털 4번핀을 스위치로 삼아 같은 소스를 업로드한 보드라도 4번핀 단락시 수신부, 4번핀 개방시 송신부로 사용되도록 해 두었습니다.
그리고 송신부의 코드는 만약 무선 송신이 실패하면 시리얼 통신 창을 띄웠을 때 Sending failed라는 메세지를 출력하도록 되어 있구요.
그런데 이게 문제가 뭔지, 집에서 테스트할땐 벽이 세개나 있어도 다 뚫고 송신이 잘 되는걸 확인하여 실제로 편의점에서도 잘 동작하는지 확인하기 위해 들고왔는데
통신이 잘 안되고 버벅거리는 수준이 아니라 아예 송신 실패가 떠버립니다... ㅡ.ㅡ;
집과 편의점의 다른 환경이라고 하면 집에는 아이피타임 A1004 공유기 단 한대 빼면 전파를 발생시키는 기기라곤 휴대폰밖에 없는데 비해
편의점은 각종 통신사에서 설치해두고 간 무선공유기가 세대나 있다는 것이지요.
이때문인지 냉장고라는 차폐벽이 있는게 아니라, 바로 앞에 두고 통신을 시도해도 통신이 먹히질 않더군요.
혹시나싶어 통신주소를 변경해보았지만 통하지 않았습니다.
저렴한 맛에 nRF24L01 모듈을 사와서 실험해본거였는데, 역시 와이파이와 같은 전파가 난무하는 환경에선 사용이 불가능한걸까요?
P.S. 아두이노 IDE 기본기능 중, 소스코드를 HTML 소스로 복사해주는 기능이 있는데 기글하드에서 이 소스를 복붙하면 글 등록시에 전부 증발해버리네요. 사이트에서 막아둔걸까요?
2.4GHz ISM 대역 쓰는 통신인데 Nike+에서도 쓰이는 규격이기도 하지요
https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v12.0.0%2Fesb_users_guide.html
가이드가 있긴한데 전 다뤄 본 적이 없어서 잘 모르겠네요 ㅠㅠ
일단은 Nike+ 에 들어간 그것은 생각보다 나쁘지 않았던거 같아요