RAK 831 Lora Gateway 및 RPi3 시작하기
이 프로젝트 RAK 831 Lora 게이트웨이 모듈을 시작하고 Wi-Fi를 백홀로 사용하여 실행하는 데 필요한 모든 단계를 안내합니다.
스토리
소개
이 단계별 가이드는 RAK Wireless의 멋진 RAK831 Lora 라디오 프런트 엔드 모듈을 사용하여 자신만의 lora 게이트웨이를 개발하려는 개발자를 대상으로 합니다. 이 가이드는 Raspberry pi 에코 시스템, 하드웨어 및 관련 Debian OS에 대한 기본 지식이 있다고 가정합니다. 또한 이 가이드에서는 Raspberry Pi에 있는 GPIO 및 주변 장치에 대한 기본 지식이 있다고 가정합니다. 시작하겠습니다:
LoRA란 무엇입니까?
로라 Alliance™ 기술. LoRaWAN™은 지역, 국가 또는 글로벌 네트워크에서 배터리로 작동되는 무선 사물을 위한 저전력 광역 네트워크(LPWAN) 사양입니다. LoRaWAN은 안전한 양방향 통신, 이동성 및 로컬라이제이션 서비스와 같은 사물 인터넷의 핵심 요구 사항을 목표로 합니다.
예의 Semtech
위의 다이어그램은 Lora 무선 아키텍처의 다양한 부분을 보여줍니다. 중요한 부분 중 일부는 아래에 간략하게 설명되어 있습니다.
LoRa 기술 및 LoRaWAN 프로토콜의 주요 기능
· GEOLOCATION:GPS가 필요 없는 저전력 추적 애플리케이션 사용
· 낮은 비용:인프라 투자, 운영 비용 및 종단 노드 센서의 세 가지 방법으로 비용을 절감합니다.
· 표준화됨:향상된 글로벌 상호 운용성으로 LoRaWAN 기반 네트워크 및 IoT 애플리케이션의 채택 및 출시 속도 향상
· 저전력:배터리 수명을 최대 20년까지 연장하는 저전력 소비를 위해 특별히 설계된 프로토콜
· 장거리:단일 기지국은 밀집된 도시/실내 지역에 깊은 침투를 제공하고 최대 30마일 떨어진 시골 지역을 연결합니다.
· 보안:내장된 종단 간 AES128 암호화
· 대용량:기지국당 수백만 개의 메시지 지원, 많은 고객에게 서비스를 제공하는 공용 네트워크 운영자에게 이상적
RAK 831은 LorA 라디오 프론트엔드입니다. 즉, 들어오는 lora 데이터 패킷의 수신기 역할을 하여 집계 관리 소프트웨어/하드웨어 호스트로 전달합니다. 호스트 보드 요청에 따라 LoRA 데이터 패킷을 전송할 수도 있습니다. 우리의 경우 라즈베리 파이 3는 RAK 831 프론트엔드를 제어하는 호스트 보드입니다.
백홀 선택
백홀이란 무엇입니까? 백홀은 Raspberry Pi가 인터넷에 연결되는 방식을 나타냅니다. 이 가이드에서는 Wi-Fi를 백홀로 사용하는 데 중점을 두지만 이더넷 또는 3G/4G를 사용할 수도 있습니다. 게이트웨이 근처에 이더넷을 사용할 수 있는 경우 WiFi 또는 3G/4G보다 선호합니다. 인클로저 내부에 추가 무선 신호가 있으면 노이즈가 발생하기 때문입니다. 소프트웨어는 시끄러운 환경을 처리할 수 있으므로 큰 문제는 아니지만 노이즈가 적을수록 좋습니다. 이 선택을 PoE(Power-over-Ethernet)와 결합하여 게이트웨이까지 연결되는 케이블을 최소화할 수 있습니다.
반면에 이더넷 대신 WiFi를 선택하는 경우 외부 안테나가 있는 동글을 사용하고 안테나를 인클로저 외부로 이동하여 상자 내부의 소음을 줄이십시오.
하드웨어 설정:
연결하고 전원을 켜기 전에 raspberry pi와 RAK 831 모듈에서 다음 구성을 수행할 수 있습니다.
라스베리 파이
1) raspberry pi 3 보드와 raspbian 소프트웨어가 포함된 8gb 마이크로 SD 카드를 준비합니다. 소프트웨어가 미리 로드된 noobs sd 카드를 구입할 수도 있습니다. sd 카드에서 os를 플래시하는 방법은 다음 지침을 따르세요. https://www.raspberrypi.org/learning/hardware-guide/
2) raspberry pi를 5v 2amps 전원 공급 장치에 연결합니다. 이건 매우 중요합니다. lora 모듈은 활성 무선 트랜잭션 중에 700mA 피크를 끌어낼 수 있으므로 raspberry pi에 전원을 공급하는 우수한 전원 브릭을 가질 수 있습니다.
라즈베리 파이 v3
RAK 831:
1) 보드의 전원을 켜기 전에 키트에 들어 있는 안테나를 가져와 안테나 나사 터미널에 연결합니다. 이것은 필수적입니다.
Raspberry Pi v3, RAK 831 모듈 및 Lora 노드
연결 세부정보:
다음은 rak831 모듈을 raspberry pi와 연결하는 방법을 보여주는 표입니다.
rpi v3에서 rak 831 핀 연결 rak 831 실크 스크린을 rak 831 핀으로 매핑합니다.
rak 831 실크 스크린을 rak 831 핀으로 매핑
Raspberry Pi 핀 레이아웃을 이해하려면 https://www.raspberrypi.org/documentation/usage/gpio/를 참조하세요.
참고:
- 리셋 핀은 raspberry pi 3의 모든 GPIO에 연결할 수 있습니다.
- RAK 831 보드의 손상을 방지하려면 전원 공급 장치 핀을 올바르게 연결해야 합니다.
SPI 활성화:
SPI 주변기기는 기본적으로 켜져 있지 않습니다. 활성화하려면 다음을 수행하십시오.
- sudo raspi-config를 실행합니다.
- 아래쪽 화살표를 사용하여 9가지 고급 옵션 선택
- SPI를 활성화할지 묻는 메시지가 표시되면 예를 선택합니다. ,
- 또한 커널 모듈을 자동으로 로드할지 묻는 메시지가 표시되면 예를 선택합니다.
- 오른쪽 화살표를 사용하여 <마침> 버튼을 선택합니다.
- 재부팅할지 묻는 메시지가 표시되면 예를 선택합니다.
Raspi-config for SPI
시스템이 재부팅됩니다. 다시 나오면 로그인 후 다음 명령어 입력
>ls /dev/*spi*
Pi는 다음과 같이 응답해야 합니다.
/dev/spidev0.0 /dev/spidev0.1
이것은 각각 칩 인에이블 핀 0과 1의 SPI 장치를 나타냅니다. 이 핀은 Pi 내에 고정 배선되어 있습니다. 일반적으로 인터페이스는 최대 2개의 주변기기를 지원하지만 여러 장치를 데이지 체인 방식으로 연결하여 단일 칩 활성화 신호를 공유할 수 있는 경우가 있습니다.
보드에 전원 공급:
다른 무선 프로젝트와 마찬가지로 호스트 보드가 공급 핀을 통해 제공할 수 있는 것보다 더 많은 전력이 필요한 경향이 있습니다. 아래의 두 가지 구성표는 RAK 831 및 raspberry pi 3에 전원을 공급하는 방법을 나열합니다.
1) Raspberry Pi에서 5v 레일에 전원 공급
2) Raspberry Pi와 RAK831의 5v 레일에 별도로 전원을 공급합니다.
소프트웨어 설치:
Raspberry pi에서 다음 단계를 수행하여 필수 소프트웨어를 설치할 수 있습니다.
raspi-config 유틸리티를 사용하여 SPI([5] 인터페이스 옵션 -> P4 SPI)를 활성화하고 파일 시스템도 확장합니다([7] 고급 옵션 -> A1 파일 시스템 확장).
$ sudo raspi-config
Sudo apt-get 업데이트
Sudo apt-get 업그레이드
Sudo apt-get install git
- WiFi 사용자 인증 정보 구성(자세한 내용은 여기에서 확인)
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
그리고 파일 끝에 다음 블록을 추가하여 네트워크와 일치하도록 SSID와 비밀번호를 바꿉니다.
network={
ssid=“The_SSID_of_your_wifi”
psk=“Your_wifi_password”
}
$ git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~/ic880a-gateway
$cd ~/ic880a-gateway
$ sudo ./install.sh 스피
- 설치 단계에서 원격 구성을 활성화할지 묻는 메시지가 표시됩니다. 'y' 또는 'yes'를 입력하고 설치를 계속합니다. 명령줄 설치를 시작할 때 스크립트는 다음 단계에 중요한 게이트웨이 EUI를 표시합니다. 참고하세요!
- 원격 구성 옵션을 사용하려면 https://github.com/ttn의 게이트웨이 원격 구성 저장소에 게이트웨이 EUI(예:B827EBFFFE7B80CD.json)라는 JSON 파일을 생성했는지 확인하세요. -zh/게이트웨이 원격 구성. 저장소를 분기하고 적절한 구성으로 .json 파일을 추가한 다음 분기된 저장소를 커밋합니다. 완료되면 마스터 리포지토리에 풀 요청을 보내면 파일이 다음날 리포지토리에 표시됩니다. 샘플 json은 다음과 같습니다.
{
“gateway_conf”:{
“gateway_ID”:“install.sh 콘솔 출력에 기록해 둔 ID”,
“서버”:[
{
“server_address”:“연결하려는 라우터”,
“serv_port_up”:1700,
“serv_port_down”:1700,
“serv_enabled”:true
}
],
"ref_latitude":rak 831 게이트웨이의 위도,
"ref_longitude":rak 831 게이트웨이의 길이,
"ref_altitude":40,
"contact_email":"게이트웨이 소유자의 연락처 이메일",
"description":"짧은 설명"
}
}
참고:
유효한 라우터 목록은 https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway에서 링크를 확인하십시오.
- 기본적으로 설치 프로그램은 Raspeberry Pi의 호스트 이름을 ttn-gateway로 변경합니다(네트워크의 다른 Raspberry Pi와의 충돌을 방지하기 위해). 비원격 구성 모드에서 재정의할 수 있습니다.
- 지금 게이트웨이가 작동해야 합니다. json 파일이 RPi3에 제대로 다운로드되도록 다음 날 게이트웨이를 다시 시작해야 합니다.
- global_config.json은 다음과 같이 조정해야 합니다.
https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
여기에서 들은 오래된 폴리 패킷 포워더 대신 mp_pkt_fwd를 사용하고 제공된 지침에 따라 동일한 것을 설치하려는 사람들을 위해:
https://github.com/kersing/packet_forwarder/tree/master/mp_pkt_fwd. 다시 프로젝트 루트에서 global_conf..json 파일을 볼 수 있습니다. 파일을 편집하고(아래에 설명된 imp 섹션) 컴파일 후 동일한 파일을 bin 폴더에 복사합니다.
global_conf.json의 일부 구성 가능한 엔터티:
global_conf.json 파일은 설치 스크립트가 실행된 후 프로젝트 디렉토리 베이스의 ./bin/global_conf.json에서 찾을 수 있습니다. 다음은 특정 게이트웨이 구성에 대해 global_conf.json 파일에서 편집할 수 있는 몇 가지 엔터티 목록입니다.
1) "radio_0" 또는 "radio_1" 구성, 특히 주파수 매개변수와 최소 및 최대 주파수 스위프 매개변수
2) "gateway_conf" 섹션, 특히 게이트웨이 ID 또는 게이트웨이의 EUI.
3) 동일한 gateway_conf 개체의 서버 위아래 포트와 TTN 서버 주소가 있는 경우 자신의 애플리케이션 서버 주소의 주소가 있는 경우
보드 재설정:
라즈베리 파이를 시작할 때마다 첨부된 RAK831 lora 모듈을 재설정하는 것이 좋습니다. 두 가지 방법이 있습니다.
LoRa 드라이버가 하드웨어에 액세스하기 전에 RAK831을 재설정하기 위해 작은 셸 스크립트를 작성할 수 있습니다. 셸 스크립트의 내용은 다음 예와 같을 수 있습니다(Raspberry Pi의 GPIO 17(핀 11)가 RAK831의 재설정 핀에 연결되어 있다고 가정).
#!/bin/bash
에코 "17"> /sys/class/gpio/export
에코 "아웃"> /sys/class/gpio/gpio17/direction
에코 "1"> /sys/class/gpio/gpio17/value
절전 5
에코 "0"> /sys/class/gpio/gpio17/value
절전 1
에코 "0"> /sys/class/gpio/gpio17/value
이 라인은 "rak831_reset.sh"라는 파일에 저장할 수 있습니다. 집선 IC를 깨끗한 상태로 유지하려면 부팅할 때마다 이 스크립트를 한 번만 호출해야 합니다.
호스트 시스템이 Raspberry Pi인 경우 사용자는 작은 C-Tool을 작성하여 RAK831을 재설정할 수 있습니다. Raspberry Pi의 GPIO 핀에 액세스하기 위해 낮은 수준의 세부 사항을 처리하는 "wiringPi"라는 라이브러리가 있습니다. 라이브러리는 http://wiringpi.com에서 다운로드할 수 있습니다. 설치 및 사용 지침을 얻으려면 이 사이트를 참조하십시오. RAK831_reset.c 파일의 내용은 다음과 같습니다.
#include
#include
#define GPIO_RESET_PIN 0 // 와이어링파이 매핑 보기!
int main() {
wiringPiSetup();
pinMode(GPIO_RESET_PIN, OUTPUT);
digitalWrite(GPIO_RESET_PIN, HIGH);
sleep(5);
digitalWrite(GPIO_RESET_PIN, LOW);
반환;
}
집선기 IC를 깨끗한 상태로 유지하려면 부팅할 때마다 이 도구를 한 번만 호출해야 합니다.
gcc -Wall -o 깜박임 깜박임.c -lwiringPi
sudo ./blink
TTN 네트워크에 게이트웨이 등록:
노드가 클라우드로 데이터를 보내도록 하려면 TheThingsNetwork는 lora를 통해 lora 노드가 보낸 데이터를 구문 분석하고 저장하는 클라우드 서비스를 제공합니다.
자세히 보기:RAK 831 Lora 게이트웨이 및 RPi3 시작하기