- RFM69HCW RF 모듈
- RFM69HCW
- RFM69 모듈 핀아웃 및 설명
- 맞춤형 개발 보드 준비
3 단계 : PCB 준비,이 홈 메이드 PCB 튜토리얼을 따릅니다. 구리 보드에 발자국을 인쇄하고 에칭 용액에 떨어 뜨 렸습니다.
4 단계 : 보드에 대한 절차를 따르고 모듈을 풋 프린트에 납땜합니다. 두 모듈을 납땜하면 다음과 같습니다.
RFM69HCW RF 모듈 의 핀아웃은 아래 그림에 나와 있습니다.
- 필요한 재료
- 하드웨어 연결
- 예제 스케치 실행
- 예제 스케치 작업
프로젝트에 무선 기능을 제공 할 때 433Mhz ASK 하이브리드 송신기 및 수신기는 저렴한 가격, 사용하기 쉬운 라이브러리 및 커뮤니티 지원으로 인해 엔지니어, 개발자 및 애호가들 사이에서 일반적인 선택입니다. 또한이 433MHz RF 모듈을 사용하여 RF 제어 홈 자동화 및 무선 초인종과 같은 몇 가지 프로젝트를 구축했습니다. 그러나 종종 ASK 하이브리드 송신기 및 수신기로는 충분하지 않으며 범위가 낮고 단방향 통신 특성으로 인해 많은 애플리케이션에 적합하지 않습니다.
이 끊임없이 발생하는 문제를 해결하기 위해에서 개발자 HopeRF이 라는 멋진 새로운 RF 모듈 고안 RFM69HCW을. 이 튜토리얼에서는 RFM69HCW RF 모듈과 그 장점에 대해 알아 봅니다. 먼저 RFM69HCW 용 홈 메이드 PCB를 만든 다음 RFM69HCW를 Arduino와 인터페이스 하여 작동을 확인하여 원하는 프로젝트에서 사용할 수 있도록합니다. 자, 시작합시다.
RFM69HCW RF 모듈
RFM69HCW는 이전 프로젝트에서 사용한 nRF24L01 RF 모듈과 유사한 라이선스가없는 ISM (산업, 과학 및 의학) 대역에서 작동하는 사용하기 쉬운 저렴한 무선 모듈입니다. 두 모듈 간의 통신에 사용하거나 메시 네트워크 로 구성하여 수백 개의 모듈간에 통신 할 수 있으므로 가정 자동화 및 기타 데이터 수집 프로젝트에 사용되는 센서를위한 저렴한 단거리 무선 네트워크 를 구축하는 데 완벽한 선택이 됩니다.
RFM69HCW의 특징:
- + 20dBm-100mW 전원 출력 기능
- 고감도: 1.2kbps에서 최저 -120dBm
- 저 전류: Rx = 16mA, 100nA 레지스터 유지
- 프로그래밍 가능한 Pout: -18 ~ + 20dBm (1dB 단계)
- 모듈의 전압 범위에서 일정한 RF 성능
- FSK, GFSK, MSK, GMSK 및 OOK 변조
- 클럭 복구를 수행하는 내장형 비트 동기화 기
- 115dB + 동적 범위 RSSI
- 초고속 AFC로 자동 RF 감지
- CRC-16, AES-128, 66 바이트 FIFO 내장 온도 센서가있는 패킷 엔진
- 높은 링크 예산
- 매우 저렴한 비용
RFM69HCW
회수
RFM69HCW는 저전력, 단거리 장치를위한 허가되지 않은 무선 주파수 세트 인 ISM (산업, 과학 및 의료) 대역 에서 작동하도록 고안되었습니다. 다른 주파수는 다른 영역에서 합법적이므로 모듈에 315,433,868 및 915MHz 버전이 많이 있습니다. 모든 주요 RF 통신 매개 변수는 프로그래밍 가능하며 대부분은 동적으로 설정할 수 있으며 RFM69HCW는 프로그래밍 가능한 협 대역 및 광대역 통신 모드의 고유 한 이점을 제공합니다.
참고: 비교적 낮은 전력과 단거리 때문에 소규모 프로젝트에서이 모듈을 구현하는 것은 문제가되지 않을 것입니다. 그러나 제품을 만들 생각이라면 올바른 주파수를 사용하고 있는지 확인하십시오. 귀하의 위치.
범위
범위를 더 잘 이해하려면 RF Link Budget 이라는 매우 복잡한 주제를 다루어야 합니다. 그렇다면이 링크 예산은 무엇이며 왜 그렇게 중요한가요? 링크 예산은 다른 모든 예산과 비슷합니다. 처음에는 가지고 있고 예산이 소진되면 더 이상 지출 할 수 없습니다.
링크 예산은 또한 발신자와 수신자 사이의 링크 또는 연결과 관련이 있으며 발신자의 전송 전력과 수신자의 감도로 채워지며 데시벨 또는 dB로 계산되며 또한 주파수입니다. 매달린. 링크 예산은 거리 케이블 벽 나무 건물과 같이 송신기와 수신기 사이의 모든 종류의 장애물과 소음에 의해 공제됩니다. RFM69HCW의 데이터 시트에 따르면 , 그것은이 140dB의 링크 버짓을 의 105dB에 비해 하이브리드 송신기를 ASK하지만이 방법을 수행하면이 중요한 차이점은? 다행히도 우리는라디오 링크 예산 계산기 온라인으로 주제를 더 잘 이해하기 위해 몇 가지 계산을 해봅시다. 먼저 RFM69HCW에 대한 예산이 140dB 라는 것을 알고 있으므로 송신기와 수신기 사이에 가시선 연결이 있고 모든 것이 완벽하다고 가정하겠습니다. 따라서 통신 할 수있는 이론상 최대 거리를 확인하고 모든 것을 0으로 설정하고 거리를 설정합니다. 500KM, 주파수는 433MHz, 수평 수신 전력은 139.2dBm입니다.
이제 모든 것을 0으로 설정하고 9KM 주파수까지의 거리를 433MHz로 설정하고 104.3dBm의 수평 수신 전력을 얻습니다.
따라서 위의 비교를 통해 RFM69 모듈이 ASK 하이브리드 송신기 및 수신기 모듈보다 훨씬 낫다는 데 모두 동의 할 수 있다고 생각합니다.
안테나
주의! 모듈이 없으면 자체 반사 전력으로 인해 모듈이 손상 될 수 있으므로 모듈에 안테나를 부착해야합니다.
안테나를 만드는 것은 소리만큼 어렵지 않습니다. 가장 간단한 안테나는 단일 가닥 22SWG 와이어로만 만들 수 있습니다. 주파수 의 파장은 공식 v / f 로 계산할 수 있습니다. 여기서 v 는 전송 속도이고 f 는 (평균) 전송 주파수입니다. 공중에서 v 는 빛의 속도 인 c 와 같 으며 299.792.458 m / s입니다. 따라서 433MHz 대역의 파장은 299.792.458 / 433.000.000 = 34,54cm입니다. 이것의 절반은 17,27cm이고 1/4은 8,63cm입니다.
433MHz 대역의 경우 파장은 299.792.458 / 433.000.000 = 69,24cm입니다. 이것의 절반은 34,62cm이고 1/4은 17,31cm입니다. 따라서 위의 공식 에서 안테나 와이어의 길이를 계산하는 과정을 볼 수 있습니다.
전력 요구 사항
RFM69HCW의 작동 전압은 1.8V ~ 3.6V이며 전송시 최대 130mA의 전류를 끌어 올 수 있습니다. 아래 표에서 다양한 조건에서 모듈의 전력 소비를 명확하게 볼 수 있습니다.
경고: 선택한 Arduino가 5V 로직 레벨을 사용하여 주변 장치와 통신하는 경우 Arduino에 직접 모듈을 연결하면 모듈이 손상됩니다.
상징 |
기술 |
정황 |
최소 |
Typ |
최대 |
단위 |
IDDSL |
절전 모드의 전류 |
- |
0.1 |
1 |
uA |
|
IDDIDLE |
유휴 모드의 전류 |
RC 발진기 활성화 |
- |
1.2 |
- |
uA |
IDDST |
대기 모드의 전류 |
수정 발진기 활성화 |
- |
1.25 |
1.5 |
uA |
IDDFS |
신디사이저의 전류 방법 |
- |
9 |
- |
uA |
|
IDDR |
수신 모드의 전류 |
- |
16 |
- |
uA |
|
IDDT |
적절한 매칭으로 전송 모드에서 공급 전류, VDD 범위에 걸쳐 안정 |
RFOP = + 20dBm, PA_BOOST에서 RFOP = + 17dBm, PA_BOOST에서 RFOP = + 13dBm, RFIO 핀 RFOP = + 10dBm, RFIO 핀 RFOP = 0dBm, RFIO 핀 RFOP = -1dBm, RFIO 핀 |
- - - - - - |
130 95 45 33 20 16 |
- - - - - - |
엄마 엄마 엄마 엄마 엄마 |
이 튜토리얼에서는 2 개의 Arduino Nano와 2 개의 로직 레벨 변환기를 사용하여 모듈과 통신합니다. 내장 된 내부 레귤레이터가 피크 전류를 매우 효율적으로 관리 할 수 있기 때문에 Arduino nano를 사용하고 있습니다. 아래 하드웨어 섹션의 Fritzing 다이어그램이 더 명확하게 설명합니다.
참고: 전원 공급 장치가 130mA의 피크 전류를 제공 할 수없는 경우 Arduino가 재부팅되거나 모듈이 제대로 통신하지 못할 수 있습니다.이 상황에서는 ESR이 낮은 대용량 커패시터가 상황을 개선 할 수 있습니다.
RFM69 모듈 핀아웃 및 설명
상표 |
함수 |
함수 |
상표 |
개미 |
RF 신호 출력 / 입력. |
전원 접지 |
GND |
GND |
안테나 접지 (전원 접지와 동일) |
디지털 I / O, 소프트웨어 구성 |
DIO5 |
DIO3 |
디지털 I / O, 소프트웨어 구성 |
트리거 입력 재설정 |
RST |
DIO4 |
디지털 I / O, 소프트웨어 구성 |
SPI 칩 선택 입력 |
NSS |
3.3V |
3.3V 공급 (최소 130mA) |
SPI 클록 입력 |
SCK |
DIO0 |
디지털 I / O, 소프트웨어 구성 |
SPI 데이터 입력 |
MOSI |
DIO1 |
디지털 I / O, 소프트웨어 구성 |
SPI 데이터 출력 |
MISO |
DIO2 |
디지털 I / O, 소프트웨어 구성 |
전원 접지 |
GND |
맞춤형 개발 보드 준비
모듈을 구입했을 때 브레드 보드와 호환되는 브레이크 아웃 보드가 함께 제공되지 않았으므로 직접 만들기로 결정했습니다. 동일한 작업을 수행해야하는 경우 다음 단계를 따르십시오. 또한 이러한 단계를 반드시 수행해야하는 것은 아닙니다. 와이어를 RF 모듈에 납땜하고 브레드 보드에 연결하기 만하면 작동합니다. 안정적이고 견고한 설정을 위해서만이 절차를 따르고 있습니다.
1 단계: RFM69HCW 모듈에 대한 회로도 준비
3 단계: PCB 준비,이 홈 메이드 PCB 튜토리얼을 따릅니다. 구리 보드에 발자국을 인쇄하고 에칭 용액에 떨어 뜨 렸습니다.
4 단계: 보드에 대한 절차를 따르고 모듈을 풋 프린트에 납땜합니다. 두 모듈을 납땜하면 다음과 같습니다.
RFM69HCW RF 모듈 의 핀아웃은 아래 그림에 나와 있습니다.
필요한 재료
다음은 모듈과 통신하는 데 필요한 항목 목록입니다.
- 두 개의 RFM69HCW 모듈 (일치 주파수 포함):
- 434MHz (WRL-12823)
- 두 개의 Arduino (나는 Arduino NANO를 사용하고 있습니다)
- 2 개의 로직 레벨 컨버터
- 2 개의 브레이크 아웃 보드 (맞춤 제작 된 브레이크 아웃 보드를 사용하고 있습니다)
- 누름 버튼
- 4 개의 LED
- 4.7K 저항기 1 개 220Ohms 저항기 4 개
- 점퍼 와이어
- 에나멜 구리선 (22AWG)으로 안테나를 만듭니다.
- 그리고 마지막으로 납땜 (아직하지 않았다면)
하드웨어 연결
이 튜토리얼에서는 5V 로직을 사용하는 Arduino nano를 사용하고 있지만 RFM69HCW 모듈은 위의 표에서 명확하게 볼 수 있듯이 3.3V 로직 레벨을 사용하므로 두 장치간에 올바르게 통신하려면 로직 레벨 변환기가 필수입니다. Arduino nano를 RFM69 모듈에 연결하는 방법을 보여 드렸습니다.
Fritzing 다이어그램 발신자 노드
연결 테이블 발신자 노드
Arduino 핀 |
RFM69HCW 핀 |
I / O 핀 |
D2 |
DIO0 |
- |
D3 |
- |
TAC_SWITCH |
D4 |
- |
LED_GREEN |
D5 |
- |
LED_RED |
D9 |
- |
LED_BLUE |
D10 |
NSS |
- |
D11 |
MOSI |
- |
D12 |
MISO |
- |
D13 |
SCK |
- |
Fritzing 다이어그램 수신기 노드
연결 테이블 수신기 노드
Arduino 핀 |
RFM69HCW 핀 |
I / O 핀 |
D2 |
DIO0 |
- |
D9 |
- |
LED |
D10 |
NSS |
- |
D11 |
MOSI |
- |
D12 |
MISO |
- |
D13 |
SCK |
- |
예제 스케치 실행
이 튜토리얼에서는 두 개의 Arduino RFM69 노드를 설정하고 서로 통신하도록 할 것입니다. 아래 섹션에서는 LowPowerLab의 Felix Rusu가 작성한 RFM69 라이브러리를 사용하여 모듈을 시작하고 실행하는 방법을 알 수 있습니다.
라이브러리 가져 오기
바라건대, 당신은 이전에 약간의 Arduino 프로그래밍을했고 라이브러리를 설치하는 방법을 알고 있습니다. 그렇지 않은 경우이 링크 의.zip 라이브러리 가져 오기 섹션을 확인하십시오.
노드 연결
송신자 노드의 USB를 PC에 연결합니다. 새 COM 포트 번호가 Arduino IDE의 "도구 / 포트"목록에 추가되어야합니다. 펜을 꽂은 다음 수신기 노드를 연결하면 다른 COM 포트가 도구 /에 나타납니다. 포트 목록, 또한 포트 번호를 사용하여 스케치를 송신자 및 수신자 노드에 업로드합니다.
두 개의 Arduino 세션 열기
첫 번째 세션이로드 된 후 Arduino IDE 아이콘을 두 번 클릭하여 두 개의 Arduino IDE 세션을 엽니 다. 두 개의 Arduino 직렬 모니터 창을 열고 두 노드의 출력을 동시에 모니터링 할 수 있기 때문에 두 개의 Arduino 세션을 열어야합니다.
예제 코드 열기
이제 모든 것이 설정되면 두 Arduino 세션에서 예제 코드를 열어야합니다.
파일> 예제> RFM6_LowPowerLab> 예제> TxRxBlinky
클릭하여 엽니 다.
예제 코드 수정
- 코드 상단에서 #define NETWORKID를 찾아 값을 0으로 변경합니다.이 ID를 사용하면 모든 노드가 서로 통신 할 수 있습니다.
- 보드 주파수와 일치하도록 #define FREQUENCY 변경을 찾으십시오 (광산은 433_MHz).
- #define ENCRYPTKEY를 찾으십시오. 이것은 16 비트 암호화 키입니다.
- #define IS_RFM69HW_HCW를 찾고 RFM69_HCW 모듈을 사용하는 경우 주석 처리를 제거하십시오.
- 마지막으로 #define NODEID를 찾으십시오. 기본적으로 RECEIVER로 설정되어야합니다.
이제 이전에 설정 한 코드를 수신기 노드에 업로드합니다.
발신자 노드의 스케치를 수정하는 시간
이제 #define NODEID 매크로에서 SENDER로 변경하고 코드를 Sender Node에 업로드합니다.
모든 것을 올바르게 수행했다면 테스트 할 준비가 된 두 개의 완전한 작동 모델이 있습니다.
예제 스케치 작업
Sketch를 성공적으로 업로드 한 후 Arduino의 핀 D4에 연결된 빨간색 LED가 켜지고 이제 Sender Node의 버튼을 누르면 빨간색 LED가 꺼지고 녹색 LED가 아두 이노의 D5 핀에 연결하면 아래 이미지와 같이 불이 들어옵니다.
버튼 누름도 관찰 할 수 있습니다! 아래와 같이 직렬 모니터 창의 텍스트
이제 Sender Node의 Pin D9에 연결된 Blue LED를 관찰하면 두 번 깜박이고 Receive Node의 Serial Monitor 창에서 다음 메시지와 D9 핀에 연결된 Blue LED를 관찰합니다. 수신기 노드가 켜집니다. 수신기 노드의 Serial Monitor 창에 위의 메시지가 표시되고 LED가 켜지면 축하합니다! RFM69 모듈을 Arduino IDE와 성공적으로 통신했습니다. 이 튜토리얼의 전체 작업은이 페이지 하단에 제공된 비디오에서도 찾을 수 있습니다.
이 모든 모듈은 기상 관측소, 차고 문, 지시계가있는 무선 펌프 컨트롤러, 드론, 로봇, 고양이… 하늘이 한계입니다! 튜토리얼을 이해하고 유용한 것을 만드는 것을 즐겼기를 바랍니다. 질문이 있으시면 댓글 섹션에 남겨 주시거나 다른 기술 질문에 대한 포럼을 사용하십시오.