
이 예는 AVR64DD32가 온도, 습도, 기압 및 토양 수분을 모니터링하는 로라완 엔드 노드를 생성하는 데 사용될 수있는 방법을 보여주고 TTN (Things Network)을 통해 3 분마다 해당 데이터를 적용하여 해당 데이터를 전송합니다. 노드는 도시 환경의 로라완 게이트웨이에서 10 미터에서 5km 사이의 어느 곳에도 배치 할 수 있지만 교외 지역의 경우 범위가 더 넓습니다. 이 설계는 장거리에서도 엔드 노드가 어떻게 저전력을 소비하도록 구성 될 수 있는지, 배터리 수명이 길고 귀중한 데이터를 안전하게 움직이는 방법을 보여줍니다. 이 설계는 추가 게이트웨이 나 인프라를 추가 할 필요없이 농업 플롯 전체에 추가 노드를 배치하여 토양 변동성 데이터를 캡처 할 수 있도록 쉽게 조정될 수 있습니다.
이 데모는 915 MHz 주파수 대역에서 작동하며 미국 및 호주 기반 프로젝트에 적합한 RN2903A 모듈을 사용하지만이 프로젝트는 해당 지역의 Alternate Click Board ™ 및 게이트웨이를 선택하여 다른 지역에서 쉽게 작업 할 수 있습니다.
Nano 어댑터 보드에 구성 요소를 추가하십시오.
LR2 배치 Mikrobus ™ 2를 클릭하면 날씨가 Mikrobus 1을 클릭하십시오.
그림 1과 같이 수분 센서 리드를 연결하십시오.
마지막으로 (PA1)와 PD1 사이에 점퍼 와이어를 추가하여 LR2 클릭을 재설정 할 수 있습니다. (PA1)은 기본적으로 연결되어 있지 않으며 (이미 외부 시계에 연결되어 있기 때문에)이 프로젝트를 사용하면 PD1 핀이 재설정 신호를 구동 할 수 있습니다.
| 점퍼 와이어 | 핀 |
|---|---|
| VCC- 수분 센서의 빨간색 와이어 | VCC |
| GND- 수분 센서의 블랙 와이어 | Gnd |
| AOUT- 수분 센서의 노란색 와이어 | PD2 |
| (PA1) - 점퍼 사이에 점퍼를 배치하십시오 | PD1 |

그림 1. 하드웨어 설정

그림 2. MPLAB X에서 프로젝트를 엽니 다
프로젝트가 열리면 센서를 교정하여 시작하십시오.
수분 센서를 보정하려면 application.c 파일을 열고 초기 상태를 TEST_MOISTURE 로 변경하십시오.

그림 3. 초기 상태를 test_moisture로 설정합니다
나중에이 설정은 토양 및 식물의 요구에 따라 이루어질 수 있지만 간결하게는 건조한 공기와 물 컵을 테스트하여 측정을 위해 상위 및 하한으로 시작합니다.
센서를 건조한 공기로 매달 리도록하십시오.

그림 4. 건조 공기에 위치한 센서
다음 설정으로 데이터 영상화를 시작하십시오.
보드 비율 : 9600
숯 길이 : 8 비트
패리티 : 없음
스톱 비트 : 1
터미널로 보내기를 클릭 한 다음 장치를 만들고 프로그래밍하십시오.

그림 5. 데이터 영상화는 터미널로 전송됩니다

그림 6. 장치를 만들고 프로그래밍하십시오
프로그램이 시작되면 버튼을 눌러 아날로그-디지털 변환기 (ADC) 읽기를 생성하라는 메시지가 표시됩니다. 건조 공기로 센서로 버튼을 몇 번 누른 다음 센서에 물 컵을 놓고 버튼을 몇 번 더 누릅니다.
그림 7은 두 가지 판독 값을 보여줍니다. 건식 공기 샘플을 수집 할 때 ADC 판독 값은 3000에 가깝습니다. 물 샘플을 수집 할 때는 판독 값이 1400에 가깝습니다.

그림 7. 건조 공기 및 물 컵의 ADC 값
결과를 기록하고 application.h 파일을 엽니 다. 결과를 사용하여 IN_MAX 및 IN_MIN 의 정의를 교체 한 다음 해당 값을 사용하여 표시된 공식을 사용하여 CONVERSION_PERCENT 계산하십시오.

그림 8. 토양 수분 정의
날씨 클릭을 보정하려면 하나의 작은 변화 만 필요합니다. 나머지는 소프트웨어에서 처리됩니다. 정확한 압력 판독 값을 얻으려면 장치는 현재 해발 상승을 사용해야합니다. bme.h 파일의 24 행 에이 값을 입력하십시오.

그림 9. 날씨를위한 고도를 클릭하십시오
다음으로 프로젝트의 TTN 측을 설정하십시오.
아직 그렇게하지 않은 경우 TTN으로 계정을 설정하십시오. Community Edition은 공정하게 사용하기 위해 무료입니다. 계정 설정은 지역 클러스터를 선택하는 것으로 시작하여 여기를 클릭하여 시작하십시오.
계정을 설정 한 후 콘솔로 이동하여 응용 프로그램으로 이동하십시오 .

그림 10. 응용 프로그램 설정
응용 프로그램 작성 버튼을 클릭하고 지침을 따라 응용 프로그램을 작성하십시오.

그림 11. 응용 프로그램을 만듭니다
Payload Formatters를 클릭 한 다음 업 링크 에서 클릭하십시오.

그림 12. 응용 프로그램 업 링크 페이로드 포맷터
Setup Formatter 유형*에서 Custom JavaScript Formatter를 선택하십시오.

그림 13. 사용자 정의 JavaScript Formatter를 선택하십시오
기본 decodeUplink 함수를 다음 스 니펫으로 바꾸십시오.
function decodeUplink ( input ) {
var data = { } ;
data . temp = input . bytes [ 0 ] ;
data . humidity = input . bytes [ 1 ] ;
data . moisture = input . bytes [ 2 ] ;
data . pressure = ( input . bytes [ 3 ] + 900 ) ;
return {
data : data
} ;
}그림 14. 디코드 업 링크 코드 스 니펫
저장을 클릭하고 개요 페이지로 돌아갑니다.
응용 프로그램 개요 페이지에서 레지스터 엔드 장치 버튼을 클릭하십시오.

그림 15. OTAA의 최종 장치 등록
장치를 등록하려면 모듈의 몇 가지 세부 정보가 필요합니다. application.c 파일을 다시 열고 상태를 변경하여 등록하십시오.

그림 16. 등록 상태 변경
데이터 영상화를 시작하고 장치를 다시 빌드하고 프로그래밍하십시오. 프로그램이 실행되면 Hweui를 복사하고 Lorawan 사양에 유의하십시오.

그림 17. 데이터 영상화의 엔드 장치 세부 사항
TTN의 레지스터 엔드 장치 창으로 돌아가서 수동으로 엔드 장치 특성을 입력하십시오. 위치에 따라 주파수 계획을 선택하고 Lorawan 사양을 선택하십시오. 프로비저닝 정보 섹션에서 choineui 필드의 모든 0을 입력 한 다음 확인을 클릭하십시오.

그림 18. 새 장치 등록
이전에 복사 한 hweui를 Deveui 필드에 붙여 넣은 다음 생성을 클릭하여 새로운 앱 키를 생성하십시오.

그림 19. 새로운 앱 키를 생성합니다
최종 장치가 이제 생성되었으며 페이로드 포맷터가 필요합니다.
Formatter를 설정하는 가장 빠른 방법은 Paste Application Formatter 버튼을 사용하는 것입니다. Payload Formatters 버튼을 클릭 한 다음 Custom JavaScript Formatter 옵션을 선택하고 Paste Application Formatter를 누릅니다.

그림 20. 응용 프로그램 포맷터를 붙여 넣으십시오
TTN에서는 최종 장치 개요 페이지를 열면 프로젝트의 RN2XX3 헤더 파일에 복사하여 붙여 넣을 필드가 있습니다. Deveui를 클릭하여 RN2xx3.h 정의의 HWEUI 필드에 붙여 넣습니다. AppKey 필드를 복사하여 AppKey 정의에 붙여 넣습니다.

그림 21. Deveui와 Appkey를 클립 보드에 복사하십시오.

그림 22. Hweui 및 Appkey 정의를 업데이트하십시오
이 예제는 당신이 가까운 공개 TTN 게이트웨이를 가지고 있거나 직접 설정했다고 가정합니다. 자신의 게이트웨이를 갖는 것은 문제가 발생하면 문제 해결에 매우 도움이됩니다. 자신의 게이트웨이를 설정하려면 Hackster Project 및 Rak Developer Gateway의 두 가지 유용한 가이드를 찾을 수 있습니다.
게이트웨이에 액세스 할 수 있으면 application.c 파일을 다시 열고 상태를 init로 변경하여 테스트를 계속하십시오.

그림 23. 이어로 다시 변경하십시오
데이터 영상화를 다시 시작하고 장치를 다시 프로그래밍하십시오.

그림 24. 데이터 시각화 시작
응용 프로그램이 시작되면 모듈이 초기화됩니다. 조인 TTN 절차를 시작하려면 버튼을 누릅니다.
채널 주파수 계획을 설정하는 데 약 10 초가 걸립니다. 그 후, 조인 요청이 수락되면 장치는 첫 번째 페이로드를 보냅니다. 장치가 연결되지 않으면 일부 제안이 제공됩니다. 일반적인 문제는 게이트웨이, 잘못된 키에 너무 가깝거나 게이트웨이가 일시적으로 연결이 끊어 졌을 수 있습니다. 일반적으로 그림 25의 출력과 같은 출력이 표시됩니다.

그림 25. 출력 가입 요청이 허용되는 경우 출력
이 프로젝트의 경우 노드는 3 분마다 새 데이터를 보냅니다. 하루에 한 번,이 첫 번째 전송에서와 같이 데이터를 확인 된 페이로드로 보냅니다. 확인 된 메시지는 네트워크에서 승인이 필요하지만 게이트웨이에서 방송 시간과 노드의 추가 배터리 수명을 소비합니다. 따라서 매일 다음 479 개의 메시지는 확인되지 않은 메시지로 전송됩니다.
이 프로젝트는 포트 10에서 확인 된 모든 메시지와 확인되지 않은 메시지를 포트 11에서 보냅니다. 아래 그림 26에서 Application Live Data Window를 보여주는 그림 26에서 확인할 수 있습니다. 초기 확인 된 메시지를 결합하고 전송 한 후 노드는 3 분마다 확인되지 않은 메시지를 응용 프로그램에 보냅니다.

그림 26. 포트 10에서 확인 된 메시지 및 포트 11의 확인되지 않은 메시지
이 예제는 Mikroe LR2 클릭, Mikroe 날씨 클릭 및 토양 수분 센서와 함께 AVR64DD32를 사용하여 Lorawan 엔드 노드를 설정하는 방법을 보여줍니다.