SPRESENSE LTE 확장 보드 시작하기

Spresense 보드와 확장 보드는 이전부터 사용했지만 이전부터 신경이 쓰여 있던 Spresense LTE 확장 보드를 새로 구입했습니다. SIM 카드의 선정이나 처음으로 움직였을 때의 메모를 도입편으로서 기입해 둡니다. 결론부터 말하면 공식 매뉴얼대로 움직이면 특히 아무것도 빠지지 않고 깔끔하게 움직였습니다 :->

SIM 카드 구매



공식 사이트의 LTE-M 동작 확인 SIM List 를 참고로 하면서, 몇 가지 조사한 뒤 이쪽을 구입했습니다.
IIJ 아이아이제이 IM-B281 [Japan Travel SIM 1.5GB 타입 I]
htps //w w. 요도바시. 이 m/p 로즈 ct/100000001005357527/
요도바시.com에서 2-3일에 도착합니다. 난카가이 코쿠진 니나타 키분데이스.



SIM 카드 등록



htps : // tr. 좋은 j 미오. jp/ㅉ긴/
SIM 카드에 동봉된 PASSCODE를 넣고 로그인합니다. 여행 SIM이므로 등록에는 여권 번호가 필요합니다.

조속히 움직여 보자



LTE 튜토리얼에 정리되어 있기 때문에 이것을 추적하는 것만으로 바로 사용할 수있었습니다.
htps : //로 ゔぇぺぺr. 그 ny. 이 m/로 ゔぉぉp/sp 센세/도 cs/아 r즈이의_개인 ls_그럼. html # _ 트립 l_l


examples
내용


LteTestModem
버전 표시

LteScanNetworks
네트워크 개통 확인

LteWebClient
HTTP 클라이언트

LteHttpSecureClient
HTTPS 클라이언트 TLS 통신

LteNtpClient
NTP 통신

LteGnssTracker
MQTT 통신


모뎀 정보 얻기 (LteTestModem.ino)



스케치 그대로 빌드하고 움직이면 IMEI와 Version이 반복해서 표시됩니다.

네트워크 정보 얻기 (LteScanNetworks.ino)



SIM 카드에 맞게 LteScanNetworks 스케치의 APN 정보를 다시 씁니다.

LteScanNetworks.ino

// APN data
#define LTE_APN       "iijmio.jp"
#define LTE_USER_NAME "mio@iij"
#define LTE_PASSWORD  "iij"

첫회 접속에는 1분 정도 걸렸습니다. (2회째 이후는 20초 정도)
LTE 확장 보드 LED(D3)가 천천히 깜박임--> 그 후 켜짐--> 그 후 attach succeeded. 로그가 나타납니다.

시리얼 모니터에 다음과 같이 표시되었습니다. 제대로 연결되어 있는 것 같습니다.
IP address: 100.79.9.54
Current carrier: IIJ
Signal Strength: -104 [dBm]

HTTP GET 메서드를 서버로 전송하여 데이터를 가져옵니다 (LteWebClient.ino)



아까처럼 LteWebClient 스케치의 APN 데이터를 다시 씁니다.

LteWebClient.ino
// APN data
#define LTE_APN       "iijmio.jp"
#define LTE_USER_NAME "mio@iij"
#define LTE_PASSWORD  "iij"

시리얼 모니터에 코코 와 같은 Arduino 로고가 표시되면 성공입니다! (아사리)

TLS 프로토콜을 사용하여 HTTP Client의 동작 확인 (LteHttpSecureClient.ino)



Arduino HTTP Client 라이브러리를 설치합니다.
아까처럼 LteHttpSecureClient 스케치의 APN 데이터를 다시 씁니다.

LteHttpSecureClient.ino
// APN data
#define LTE_APN       "iijmio.jp"
#define LTE_USER_NAME "mio@iij"
#define LTE_PASSWORD  "iij"

htps : //로 ゔぇぺぺr. 그 ny. 이 m/로 ゔぉぉp/sp 센세/도 cs/아 r즈이의_개인 ls_그럼. HTML # 1 _ _ w w e x x rt _ rt
이 절차에 따라 루트 인증서를 얻고 SD 카드의 CERTS 폴더에 저장합니다.CERT_FILEKEY_FILE 는 디폴트에서는 사용하지 않기 때문에 ROOTCA_FILE 만 다음과 같이 재기록합니다.

LteHttpSecureClient.ino
#define ROOTCA_FILE "CERTS/httpbin-org.pem"   // Define the path to a file containing CA 
                                       // certificates that are trusted.
#define CERT_FILE   "path/to/certfile" // Define the path to a file containing certificate
                                       // for this client, if required by the server.
#define KEY_FILE    "path/to/keyfile"  // Define the path to a file containing private key
                                       // for this client, if required by the server.

mbedTLS가 뒤에서 움직이는 것 같습니다. 이것도 깔끔하게 작동합니다.

UDP 프로토콜을 사용하여 NTP 클라이언트의 동작 확인 (LteNtpClient.ino)



Arduino NTP Client 라이브러리를 설치합니다.
아까처럼 LteNtpClient 스케치의 APN 데이터를 다시 씁니다.

LteNtpClient.ino
// APN data
#define LTE_APN       "iijmio.jp"
#define LTE_USER_NAME "mio@iij"
#define LTE_PASSWORD  "iij"

NTP에서 얻은 시간이 초 단위로 표시됩니다. 시보(117)와 비교하면 표시가 1초 가까이 어긋나 있는 것 같은 생각이 듭니다. loop() 함수의 sleep(1);을 코멘트 아웃하면 1초 정도의 어긋남은 없어집니다만, 그래도 약간 표시될 때까지의 타임 러그가 있을 것 같습니다.

AWS 서버에 GNSS 위치 정보 게시(LteGnssTracker.ino)



AWS 계정 생성은 나중에 합니다.

기타



보드의 하드웨어 정보는 여기에 정리되어있는 것 같습니다.
htps : //로 ゔぇぺぺr. 그 ny. 이 m/로 ゔぉぉp/sp 센세/도 cs/hw_도 cs_l해서_그럼. HTML

IIJ 사이트에 로그인하면 데이터 이용료/잔량 등을 확인할 수 있습니다. 종량 과금이 아니고 용량 제한 첨부이므로 지나치게 사용하는 일도 없고 안심입니다만, 1.5GB로 얼마나 사용할 수 있는지 검증해 가고 싶습니다. LTE-M이고 1개월은 여유(라고 하는지 다 사용하지 않고 남아 버릴 것 같다)입니다.
htps : // tr. 좋은 j 미오. jp / 쏙 rt /

좋은 웹페이지 즐겨찾기