이 IoT2050 응용 프로그램에는 데이터 분산화 된 데이터를 수집하고 라디오를 통해 전송하는 작업이 있습니다. LPWAN 기술 장거리 (LORA)는이 목적으로 사용됩니다. IoT2050은 Lorawan 게이트웨이 역할을합니다. Things Network 또는 Things Stack Community Edition의 글로벌 프리 로라완 (장거리 광란 네트워크)은 네트워크 서버로 사용됩니다. 이 설명서는 게이트웨이의 소프트웨어 및 하드웨어 구조를 설명합니다 (예 : 엔드 장치의 구성 및 기능 (예 : 센서) 은이 매뉴얼에서 설명되지 않습니다. 응용 프로그램의 개별 목적에 따라 다름).

애플리케이션에는 다음과 같은 하드웨어 구성 요소가 필요합니다.
주문 목록에서 모든 개별 부품을 볼 수도 있습니다.
Simatic IoT2050의 Arduino UNO 인터페이스는 IC880A 농축기를 통합하는 데 사용됩니다. 이 목적에는 어댑터 방패가 필요하며,이를 위해 핀 할당을 결합합니다. 농축기에는 5V가 공급됩니다.
이 애플리케이션에 사용 된 어댑터 방패는 자체 제작되었습니다. 필요한 구성 요소는 주문 목록에서 가져올 수 있습니다. 구조에 대한 추가 정보는 프로젝트 파일 (.Pro), 회로도 파일 (.Sch) 및 레이아웃 파일 (.kicad_pcb)에서 확인할 수 있습니다.
Lorawan 농축기 IC880A는 여러 채널에서 다른 확산 계수를 사용하여 동시에 여러 LORA 패킷을 수신하도록 설계된 다 채널 고성능 송신기/수신기 모듈입니다. 농축기 모듈 IC880A는이 게이트웨이의 완전한 RF 프론트 엔드로 게이트웨이에 통합 될 수 있습니다.
다음 그림은 Lorawan Gateway의 완전한 하드웨어 구조를 보여줍니다. 안테나 (2 DBI 쌍극자 안테나 863-870MHz를 RP SMA와 연결하려면 IC880A 모듈에 연결하려면 U.FL 대리 SMA 어댑터가 사용됩니다. 농축기는 어댑터 방패와 함께 IoT2050의 Arduino UNO 인터페이스에 연결됩니다.

이 매뉴얼에는 다음 소프트웨어가 사용됩니다.
IoT2050의 첫 번째 시운전은 설정을 참조하십시오. SIMATIC IOT2050 포럼에서 추가 도움을받을 수 있습니다.
설정을 통해 작업 한 후 시스템에 대한 업데이트를 수행해야하며 GIT를 설치해야합니다. 다음 명령이 실행됩니다.
sudo apt-get update
sudo apt-get install git
퍼티를 통해 SHH 연결을 설정하고 다음 명령을 사용하십시오.
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable SPI on IO10-IO13" -> "Enable"
Use ESC to exit the iot2050setup


GitHub에서 Lora Basics ™ 스테이션의 최신 버전을 복제하려면 다음 명령을 사용하십시오.
cd /home
git clone https://github.com/lorabasics/basicstation.git
이제 클론의 일부인 setup.gmk 파일은 툴체인의 올바른 디렉토리를 저장하려면 ioT2050에 적합해야합니다. 이렇게하려면 다음 명령을 사용하여 편집기에서 파일을 엽니 다.
cd /home/basicstation/
nano setup.gmk
주요 조합을 사용하여 CTRL+C 사용하면 나노 편집기에 라인 사양이 표시 될 수 있습니다.

55-66 행은 # 로 댓글을 달아야하며 68-72 행은 다음으로 변경해야합니다.
CC=/usr/bin/gcc
LD=/usr/bin/ld
AR=/usr/bin/ar
OD=/usr/bin/objdump
OC=/usr/bin/objcopy
또한 76 행은 다음과 같이 편집해야합니다.
export LD_LIBRARY_PATH=/usr/local/lib
다음 명령으로 파일을 저장하고 닫습니다.
CTRL+X -> to exit editing
Y -> to save the changes
Enter -> to confirm the filename
패키지 포워더 스테이션을 구축하려면 디렉토리 /home/basicstation/ 에서 다음 명령을 사용하십시오.
make platform=rpi variant=std
기본 스테이션이 컴파일 된 후 4 개의 하위 폴더가있는 build-rpi-std 라는 새로운 폴더가 나타났습니다. 하위 폴더 bin 에서 컴파일 된 바이너리 station 찾을 수 있습니다.
달리 명시되지 않는 한, 다음 명령 및 작업은이 디렉토리에서 항상 실행됩니다 ( /home/basicstation/build-rpi-std/bin/ ).
기본 스테이션에는 일부 구성이 필요하며 파일 station.conf 에 지정됩니다. 기성품 파일 스테이션을 디렉토리에 복사하십시오 (팁 : 도구 WinSCP를 사용하여 파일을 전송할 수 있음).
LORA BASICS ™ 스테이션에는 LNS (Lorawan® Network Server)가 제공되어야합니다. 이 예에서는 포트 8887이 장착 된 스택 커뮤니티 에디션 서버가 사용됩니다. 이것은 tc.uri 파일에 지정됩니다. 기성품 파일 tc.uri를 디렉토리에 복사하십시오.
루트 인증서가 필요합니다. 다음 명령은 인증서를 얻고 파일 tc.trust 직접 작성하는 데 사용될 수 있습니다.
curl https://letsencrypt.org/certs/isrgrootx1.pem.txt -o tc.trust
다른 루트 인증서를 사용할 수도 있습니다. 다른 tc.trust 인증서를 사용할 수도 있습니다 <>
-----BEGIN CERTIFICATE-----
<insert root certificate here>
-----END CERTIFICATE-----
SX1301베이스 밴드 칩이 장착 된 IC880A 모듈은 전환 할 때마다 재설정해야합니다. 그러나이 재설정은 칩의 HAL에 의해 수행되지 않습니다. 따라서 Python 스크립트는 외부에서이를 수행하도록 작성됩니다. Python 스크립트 IC880A_RESET.PY를 디렉토리에 복사하십시오. 그 후 디지털 I/O 핀 4는 재설정 핀으로 사용되므로 출력으로 설정해야합니다.
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable GPIO" -> Set PIN 4 as output
Use ESC to exit the iot2050setup

다음 단계는 Python 스크립트를 실행하는 쉘 스크립트를 추가하는 것입니다. 이 스크립트는 나중에 station 바이너리의 시작으로 실행됩니다. 기성품 파일 reset_gw.sh를 디렉토리에 복사하십시오. 이 쉘 스크립트에서 집중 장치의 하드웨어 재설정을위한 이전에 만든 Python 스크립트가 호출됩니다. 스크립트에는 다음과 같은 명령으로 실행 가능한 권한이 제공되어야합니다.
chmod 755 reset_gw.sh
서버에서 등록을 위해 게이트웨이의 EUI를 얻으려면 한 번 프로그램 station 시작해야합니다 (Execution은 아직 완전히 작동하지 않습니다).
./station
게이트웨이의 EUI는 IoT2050의 MAC 주소로 구성되며 스테이션이 시작된 후 콘솔 출력에 표시됩니다.

키 조합 CTRL+C 로 응용 프로그램을 중지 할 수 있습니다.
마지막으로, Things Stack Community Edition으로 게이트웨이를 승인하려면 API 키를 tc.key 라는 파일에 저장해야합니다. 이렇게하려면 게이트웨이는 Things Stack Community Edition에 등록되어야합니다. 다음 단계에서 설명합니다. 웹 페이지에 로그인 한 후 해당 지역이 선택됩니다. 그 후 새 게이트웨이를 추가 할 수 있습니다. 이를 위해서는 고유 한 게이트웨이 ID와 이전 그림의 게이트웨이 EUI를 입력해야합니다. 또한 해당 지역의 주파수 계획이 선택됩니다. 또한 게이트웨이의 상태가 공개적으로 보이는지 여부를 선택할 수 있습니다. 필요한 모든 구성은 다음 그림에 나와 있습니다.

새 게이트웨이를 등록한 후 API 키가 승인을 위해 생성되어야합니다. 키가 생성되기 전에 이름이 할당됩니다. 또한 데이터 교환을위한 게이트웨이 서버와 게이트웨이로 연결할 수있는 개별 권리가 부여됩니다. API 키를 생성 한 후에는 나중에 암호화되어 더 이상 보이지 않기 때문에 복사하고 긴급하게 저장해야합니다.


다음 명령을 사용하여 tc.key 파일을 작성하고 xxx 대신 이전에 복사 한 API 키를 사용하십시오.
export LNS_KEY="xxx"
echo "Authorization: Bearer $LNS_KEY" | perl -p -e 's/rn|n|r/rn/g' > tc.key
이는 기본 스테이션의 설치 및 구성을 완료합니다. 이제 스테이션을 명령으로 수동으로 시작할 수 있습니다.
./station
설치 및 인증이 성공하면 스테이션이 시작되고 게이트웨이가 Things Stack Community Edition의 콘솔에 connected 대로 표시됩니다.

The Things Stack 웹 사이트 - 게이트웨이 추가에 대한 추가 정보를받을 수 있습니다.
station 바이너리를 호출하는 기성품 쉘 스크립트 start.sh를 디렉토리에 복사하십시오. 그런 다음 스크립트에는 실행 가능 권한이 제공되어야합니다.
chmod 755 start.sh
기성품 시스템 서비스 파일 IoT-2050-Lora-Gateway.service를 디렉토리 /etc/systemd/system 에 복사하십시오. 해당 디렉토리로 변경하려면 다음 명령을 사용하십시오.
cd /etc/systemd/system
서비스 파일은 이제 수동으로 시작하여 다음 명령으로 테스트 할 수 있습니다.
sudo systemctl start iot2050-lora-gateway.service
서비스와 스테이션을 성공적으로 시작한 후 다음 명령으로 종료 할 수 있습니다.
sudo systemctl stop iot2050-lora-gateway.service
서비스의 자동 스타트를 활성화하려면 명령을 사용하십시오.
sudo systemctl enable iot2050-lora-gateway.service
다음 재부팅 후에는 모든 부팅으로 게이트웨이가 시작됩니다.
게이트웨이는 이제 사용할 준비가되었습니다. END 장치는 이제 Things Stack Community Edition을 통해 응용 프로그램에 추가 할 수 있으며, 이는 게이트웨이를 통해 서버로의 데이터를 전송할 수 있습니다. 여기에서 가능한 최종 장치를 찾을 수 있습니다. 서버에서 엔드 장치를 추가하는 방법은 여기에 설명되어 있습니다.
Node-Red는 수집 된 데이터를 시각화하는 데 사용됩니다. 웹 편집기는 IoT2050 및 Port 1880의 IP 주소를 통해 액세스 할 수 있습니다. Node-Red는 예제 이미지의 기본적으로 AutosTart에 있습니다. 액세스하려면 IoT2050에 연결된 PC에서 브라우저를 열고 http://<IP of the IOT2050>:1880/ 엽니 다.
이제 flows.json 파일을 Node-Red로 가져올 수 있습니다.
Menu -> Import -> Select file for Upload

노드는 다음과 같이 조정해야합니다.
MQTT : 연결 탭에 서버 주소와 스택 포트를 삽입하십시오. 모든 메시지를 구독하려면 주제를 # 로 설정하십시오.

사용자 이름 과 MQTT-API-Key를 암호 로 입력하십시오. 응용 프로그램의 통합 설정 에서이 API Key를 생성 할 수 있습니다.



구문 분석 노드 : 함수 구문 분석 노드 에서 다른 device_id 조정해야합니다 (응용 프로그램에 따라 다름).

흐름에 대한 설명 : 들어오는 메시지를 처리하기 위해 JavaScript 객체가 먼저 작성됩니다. 그런 다음 기능 구문 분석 노드 에서 업 링크가 구문 분석되어 각 끝 장치의 개별 메시지를 추출합니다. 또한 노드는 3 개의 출력으로 확장됩니다. 따라서 각 메시지는 출력에 할당되며 최종 장치를 나타냅니다. 대시 보드 라이브러리와 게이지 노드를 사용하여 대시 보드에 개별적으로 내장 할 수 있습니다.
사전 건축 흐름은 구문 분석 노드에서 3 개의 엔드 장치의 조합의 예를 보여줍니다. 응용 프로그램 및 Things Network의 설정에 따라 ID를 조정해야합니다.
대시 보드 : 데이터를 표시하려면 이제 대시 보드 팔레트를 설치하고 개별적으로 구성 할 수 있습니다.
Menu -> Manage Palette -> Install Tab -> Search and install the given libraries
완료 : IoT2050으로의 흐름을 다운로드하려면 Deploy 버튼을 클릭하십시오.
노드 레드의 대시 보드 http://<IP of the IOT2050>:1880/ui 엽니 다
기여에 관심을 가져 주셔서 감사합니다. 누구나 문제 섹션 에서이 저장소에 관한 버그, 명확하지 않은 문서 및 기타 문제를 자유롭게보고 할 수 있습니다. 또한 모든 사람은 풀 요청을 사용 하여이 저장소의 변경 사항을 자유롭게 제안 할 수 있습니다.
이전에 Siemens 기고자 라이센스 계약 (CLA)에 서명하지 않은 경우, 풀 요청을 제출할 때 시스템이 자동으로 프롬프트됩니다. CLA Assistant의 온라인 플랫폼을 통해 편리하게 수행 할 수 있습니다. CLA에 서명되면 다른 모든 테스트 단계가 성공하면 풀 요청이 자동으로 지워지고 병합 할 준비가됩니다.
법적 정보를 읽으십시오.