LoRaWAN 대응 무선 모듈의 Rhino WAN을 움직여 보았습니다.
경위
Rhino WAN 모듈 가 스위치 사이언스 씨로부터 발매되었으므로, 조속히, 구입해, 자택에서 움직이고 있는 TTN(The Things Nwtwork)에 연결해 보았다.
Arduino 설정
지원 페이지 에 있는 순서로, 하면 설정은 완료한다.
*Arduino IDE의 [파일] - [환경 설정] - [추가 보드 관리자 URL]에 다음 URL을 등록합니다.
htps //w w. cy로. 이. jp / 아 r ゔ ぇ / ぱ c 가게 _ cy 로 _ r 히노 _ 어서 x. j 그런
*[도구]-[보드]-[보드 관리자...]에서 "STM32L0 Boards by Cyrola Inc"패키지를 설치합니다.
EUI 취득
구입하고 스케치를 아무것도 쓰지 않으면 EUI 값이 직렬로 출력되므로 삼가하십시오.
TTN(OOTA) 연결 샘플 이동
Arduino 메뉴에서 스케치 예제 → Rhino-WAN-LO82CZ용 스케치 예제의 LoRaWAN → LoRaWAN_TTN_OOTA를 선택하면 샘플 스케치가 표시됩니다.
LoRaWAN_TTN_OOTA.ino/* Simple OTAA join for TheThingNetwork LoRaWAN network
*
* Uncomment one of the region defined below to select the
* proper radio setup.
*
* EU868/IN865 have duty cycle restrictions. For debugging it makes sense
* to disable those via setDutyCycle(false);
*
* For an external antenna one should set the proper antenna gain
* (default is 2.0) via setAntennaGain().
*
* Please edit the keys below as they are just debugging samples.
*
*
* This example code is in the public domain.
*/
#include "LoRaWAN.h"
// #define REGION_AS923_920_923 /* Japan, Malaysia, Singapore */
// #define REGION_AS923_923_925 /* Brunei, Cambodia, Hong Kong, Indonesia, Laos, Taiwan, Thailand, Vietnam */
// #define REGION_AU915
// #define REGION_EU868
// #define REGION_IN865
// #define REGION_KR920
// #define REGION_US915
const char *appEui = "0101010101010101";
const char *appKey = "2B7E151628AED2A6ABF7158809CF4F3C";
const char *devEui = "0101010101010101";
void setup( void )
{
Serial.begin(9600);
while (!Serial) { }
#if defined(REGION_AS923_920_923)
LoRaWAN.begin(AS923);
#endif
#if defined(REGION_AS923_923_925)
LoRaWAN.begin(AS923);
#endif
#if defined(REGION_AU915)
LoRaWAN.begin(AU915);
LoRaWAN.setSubBand(2);
#endif
#if defined(REGION_EU868)
LoRaWAN.begin(EU868);
LoRaWAN.addChannel(1, 868300000, 0, 6);
#endif
#if defined(REGION_IN865)
LoRaWAN.begin(IN865);
#endif
#if defined(REGION_KR920)
LoRaWAN.begin(KR920);
#endif
#if defined(REGION_US915)
LoRaWAN.begin(US915);
LoRaWAN.setSubBand(2);
#endif
// LoRaWAN.setDutyCycle(false);
// LoRaWAN.setAntennaGain(2.0);
LoRaWAN.joinOTAA(appEui, appKey, devEui);
Serial.println("JOIN( )");
}
void loop( void )
{
if (LoRaWAN.joined() && !LoRaWAN.busy())
{
Serial.print("TRANSMIT( ");
Serial.print("TimeOnAir: ");
Serial.print(LoRaWAN.getTimeOnAir());
Serial.print(", NextTxTime: ");
Serial.print(LoRaWAN.getNextTxTime());
Serial.print(", MaxPayloadSize: ");
Serial.print(LoRaWAN.getMaxPayloadSize());
Serial.print(", DR: ");
Serial.print(LoRaWAN.getDataRate());
Serial.print(", TxPower: ");
Serial.print(LoRaWAN.getTxPower(), 1);
Serial.print("dbm, UpLinkCounter: ");
Serial.print(LoRaWAN.getUpLinkCounter());
Serial.print(", DownLinkCounter: ");
Serial.print(LoRaWAN.getDownLinkCounter());
Serial.println(" )");
LoRaWAN.beginPacket();
LoRaWAN.write(0xef);
LoRaWAN.write(0xbe);
LoRaWAN.write(0xad);
LoRaWAN.write(0xde);
LoRaWAN.endPacket();
}
delay(10000);
}
다음 세 줄을 자신의 매개 변수로 바꾸십시오.
const char *appEui = "0101010101010101";
const char *appKey = "2B7E151628AED2A6ABF7158809CF4F3C";
const char *devEui = "0101010101010101";
자, 쓰기라고 생각하면!
오류가!
fork/exec /Users/kazuyuki/Library/Arduino15/packages/cyrola/hardware/stm32l0/0.0.1/tools/macosx/dfu-suffix: permission denied
ボードRhino-WAN-L082CZに対するコンパイル時にエラーが発生しました。
그래서 우선 해당 권한을 살펴보면
kazuyuki@MBP-16-2019 macosx % ls -al
total 408
drwxr-xr-x 7 kazuyuki staff 224 11 7 16:09 .
drwxr-xr-x 6 kazuyuki staff 192 11 7 16:09 ..
-rw-r--r-- 1 kazuyuki staff 23244 11 7 16:09 dfu-prefix
-rw-r--r-- 1 kazuyuki staff 23244 11 7 16:09 dfu-suffix
-rw-r--r-- 1 kazuyuki staff 154524 11 7 16:09 dfu-util
drwxr-xr-x 3 kazuyuki staff 96 11 7 16:09 openocd
-rw-r--r-- 1 kazuyuki staff 390 11 7 16:09 stm32l0-upload
kazuyuki@MBP-16-2019 macosx %
오, dfu- 안녕, stm 안짱에게 실행 권한이 없다는 것,
chmod로 실행 권한 추가
kazuyuki@MBP-16-2019 macosx % chmod 755 dfu-prefix
kazuyuki@MBP-16-2019 macosx % chmod 755 dfu-suffix
kazuyuki@MBP-16-2019 macosx % chmod 755 dfu-util
kazuyuki@MBP-16-2019 macosx % chmod 755 stm32l0-upload
kazuyuki@MBP-16-2019 macosx % ls -al
total 408
drwxr-xr-x 7 kazuyuki staff 224 11 7 16:09 .
drwxr-xr-x 6 kazuyuki staff 192 11 7 16:09 ..
-rwxr-xr-x 1 kazuyuki staff 23244 11 7 16:09 dfu-prefix
-rwxr-xr-x 1 kazuyuki staff 23244 11 7 16:09 dfu-suffix
-rwxr-xr-x 1 kazuyuki staff 154524 11 7 16:09 dfu-util
drwxr-xr-x 3 kazuyuki staff 96 11 7 16:09 openocd
-rwxr-xr-x 1 kazuyuki staff 390 11 7 16:09 stm32l0-upload
kazuyuki@MBP-16-2019 macosx %
그래서, 빌드할 수 있어 실제로 데이터를 TTN Console에서 확인할 수 있었습니다!
짱짱!
빌드할 수 없다면 고민하시는 분에게 도움이 되면 좋구나~!
Reference
이 문제에 관하여(LoRaWAN 대응 무선 모듈의 Rhino WAN을 움직여 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KazuyukiEguchi/items/76dcaf59673b502c3d48
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Arduino 메뉴에서 스케치 예제 → Rhino-WAN-LO82CZ용 스케치 예제의 LoRaWAN → LoRaWAN_TTN_OOTA를 선택하면 샘플 스케치가 표시됩니다.
LoRaWAN_TTN_OOTA.ino
/* Simple OTAA join for TheThingNetwork LoRaWAN network
*
* Uncomment one of the region defined below to select the
* proper radio setup.
*
* EU868/IN865 have duty cycle restrictions. For debugging it makes sense
* to disable those via setDutyCycle(false);
*
* For an external antenna one should set the proper antenna gain
* (default is 2.0) via setAntennaGain().
*
* Please edit the keys below as they are just debugging samples.
*
*
* This example code is in the public domain.
*/
#include "LoRaWAN.h"
// #define REGION_AS923_920_923 /* Japan, Malaysia, Singapore */
// #define REGION_AS923_923_925 /* Brunei, Cambodia, Hong Kong, Indonesia, Laos, Taiwan, Thailand, Vietnam */
// #define REGION_AU915
// #define REGION_EU868
// #define REGION_IN865
// #define REGION_KR920
// #define REGION_US915
const char *appEui = "0101010101010101";
const char *appKey = "2B7E151628AED2A6ABF7158809CF4F3C";
const char *devEui = "0101010101010101";
void setup( void )
{
Serial.begin(9600);
while (!Serial) { }
#if defined(REGION_AS923_920_923)
LoRaWAN.begin(AS923);
#endif
#if defined(REGION_AS923_923_925)
LoRaWAN.begin(AS923);
#endif
#if defined(REGION_AU915)
LoRaWAN.begin(AU915);
LoRaWAN.setSubBand(2);
#endif
#if defined(REGION_EU868)
LoRaWAN.begin(EU868);
LoRaWAN.addChannel(1, 868300000, 0, 6);
#endif
#if defined(REGION_IN865)
LoRaWAN.begin(IN865);
#endif
#if defined(REGION_KR920)
LoRaWAN.begin(KR920);
#endif
#if defined(REGION_US915)
LoRaWAN.begin(US915);
LoRaWAN.setSubBand(2);
#endif
// LoRaWAN.setDutyCycle(false);
// LoRaWAN.setAntennaGain(2.0);
LoRaWAN.joinOTAA(appEui, appKey, devEui);
Serial.println("JOIN( )");
}
void loop( void )
{
if (LoRaWAN.joined() && !LoRaWAN.busy())
{
Serial.print("TRANSMIT( ");
Serial.print("TimeOnAir: ");
Serial.print(LoRaWAN.getTimeOnAir());
Serial.print(", NextTxTime: ");
Serial.print(LoRaWAN.getNextTxTime());
Serial.print(", MaxPayloadSize: ");
Serial.print(LoRaWAN.getMaxPayloadSize());
Serial.print(", DR: ");
Serial.print(LoRaWAN.getDataRate());
Serial.print(", TxPower: ");
Serial.print(LoRaWAN.getTxPower(), 1);
Serial.print("dbm, UpLinkCounter: ");
Serial.print(LoRaWAN.getUpLinkCounter());
Serial.print(", DownLinkCounter: ");
Serial.print(LoRaWAN.getDownLinkCounter());
Serial.println(" )");
LoRaWAN.beginPacket();
LoRaWAN.write(0xef);
LoRaWAN.write(0xbe);
LoRaWAN.write(0xad);
LoRaWAN.write(0xde);
LoRaWAN.endPacket();
}
delay(10000);
}
다음 세 줄을 자신의 매개 변수로 바꾸십시오.
const char *appEui = "0101010101010101";
const char *appKey = "2B7E151628AED2A6ABF7158809CF4F3C";
const char *devEui = "0101010101010101";
자, 쓰기라고 생각하면!
오류가!
fork/exec /Users/kazuyuki/Library/Arduino15/packages/cyrola/hardware/stm32l0/0.0.1/tools/macosx/dfu-suffix: permission denied
ボードRhino-WAN-L082CZに対するコンパイル時にエラーが発生しました。
그래서 우선 해당 권한을 살펴보면
kazuyuki@MBP-16-2019 macosx % ls -al
total 408
drwxr-xr-x 7 kazuyuki staff 224 11 7 16:09 .
drwxr-xr-x 6 kazuyuki staff 192 11 7 16:09 ..
-rw-r--r-- 1 kazuyuki staff 23244 11 7 16:09 dfu-prefix
-rw-r--r-- 1 kazuyuki staff 23244 11 7 16:09 dfu-suffix
-rw-r--r-- 1 kazuyuki staff 154524 11 7 16:09 dfu-util
drwxr-xr-x 3 kazuyuki staff 96 11 7 16:09 openocd
-rw-r--r-- 1 kazuyuki staff 390 11 7 16:09 stm32l0-upload
kazuyuki@MBP-16-2019 macosx %
오, dfu- 안녕, stm 안짱에게 실행 권한이 없다는 것,
chmod로 실행 권한 추가
kazuyuki@MBP-16-2019 macosx % chmod 755 dfu-prefix
kazuyuki@MBP-16-2019 macosx % chmod 755 dfu-suffix
kazuyuki@MBP-16-2019 macosx % chmod 755 dfu-util
kazuyuki@MBP-16-2019 macosx % chmod 755 stm32l0-upload
kazuyuki@MBP-16-2019 macosx % ls -al
total 408
drwxr-xr-x 7 kazuyuki staff 224 11 7 16:09 .
drwxr-xr-x 6 kazuyuki staff 192 11 7 16:09 ..
-rwxr-xr-x 1 kazuyuki staff 23244 11 7 16:09 dfu-prefix
-rwxr-xr-x 1 kazuyuki staff 23244 11 7 16:09 dfu-suffix
-rwxr-xr-x 1 kazuyuki staff 154524 11 7 16:09 dfu-util
drwxr-xr-x 3 kazuyuki staff 96 11 7 16:09 openocd
-rwxr-xr-x 1 kazuyuki staff 390 11 7 16:09 stm32l0-upload
kazuyuki@MBP-16-2019 macosx %
그래서, 빌드할 수 있어 실제로 데이터를 TTN Console에서 확인할 수 있었습니다!
짱짱!
빌드할 수 없다면 고민하시는 분에게 도움이 되면 좋구나~!
Reference
이 문제에 관하여(LoRaWAN 대응 무선 모듈의 Rhino WAN을 움직여 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KazuyukiEguchi/items/76dcaf59673b502c3d48텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)