SPRESENSE LTE 확장 보드를 사용하여 GPS 정보를 Blynk 앱에서 원격 모니터링
준비하는 것
LTE에는 SIM이 필요합니다. 도입에 대해서는 SPRESENSE LTE 확장 보드를 처음 보자. 에 정리하고 있습니다.
Blynk를 LTE 확장 보드와 호환
Blynk라고 나니라고 하는 분은 Blynk 앱으로 SPRESENSE 원격 제어 를 참조해 주세요. 전회는 이더넷을 사용해 통신하고 있었습니다만, 이번은 목적이 이동 단말이므로 LTE 통신에 대응해 보았습니다. 스마트 폰에서 LTE를 넘어 기기를 제어 할 수 있습니다. WiFi 들어가지 않습니다.
blynk 라이브러리를 fork하고 확장한 것을 여기에 넣었습니다.
htps : // 기주 b. 코 m / 바기 오 63446333 / blyn k-bb 등 ry
TinyGSM을 참고로 하면서 Spresense LTE용 Adapter를 추가하고 있습니다.
Arduino의 libraries 폴더 아래에 설치하십시오 (아래는 Linux의 예입니다).
$ cd ~/Arduino/libraries
$ git clone https://github.com/baggio63446333/blynk-library
이미 clone된 경우 원격 리포지토리로 추가합니다.
$ cd ~/Arduino/libraries/blynk-library
$ git remote add baggio https://github.com/baggio63446333/blynk-library
$ git checkout -b baggio-master baggio/master
샘플
Blynk
-> Boards_GSM
-> Spresense_LTE
의 스케치를 엽니다.
~/Arduino/libraries/blynk-library/examples/Boards_GSM/Spresense_LTE/Spresense_LTE.ino
샘플 스케치의 AuthToken, APN, 사용자 이름 및 암호를 환경에 맞게 다시 작성하십시오.
Spresense_LTE.ino// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "YourAuthToken";
// Your GPRS credentials
// Leave empty, if missing user or pass
char apn[] = "YourAPN";
char user[] = "";
char pass[] = "";
auth
는 Blynk 앱을 등록할 때 이메일로 전송되는 32자 정도의 문자열입니다.apn
, user
, pass
는 IIJmio라면 이런 느낌입니다.
Spresense_LTE.inochar auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // ユーザに合わせて変更
char apn[] = "iijmio.jp";
char user[] = "mio@iij";
char pass[] = "iij";
빌드하고 움직일 때 시리얼 모니터에 Ready
라고 표시되면 잘 연결되어 있습니다.
GPS를 사용하여 현재 위치 획득
Blynk 앱
Blynk의 Map Widget을 사용합니다.
절차
Map Widget을 추가합니다.
지도가 표시됩니다.
맵 설정을 열고 선택 핀에서 Virutal의 V1 핀을 선택합니다. 이것은 나중에 나오는 스케치에서 V1 핀을 사용하기 때문에 그에 맞습니다.
Map 스케치
GPS 정보를 발사하는 스케치는 여기입니다. 디버깅의 용이성은 놓아두고 필요 최소한의 기술로 하고 있습니다.
Map.ino/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <BlynkSimpleSpresenseLTE.h>
#include <GNSS.h>
static SpGnss Gnss;
char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // ユーザに合わせて変更
char apn[] = "iijmio.jp"; // SIMに合わせて変更
char user[] = "mio@iij";
char pass[] = "iij";
WidgetMap myMap(V1);
void setup()
{
// Debug console
Serial.begin(115200);
Blynk.begin(auth, apn, user, pass);
// If you want to remove all points:
myMap.clear();
// Start GPS
Gnss.begin();
Gnss.select(GPS);
Gnss.select(QZ_L1CA);
Gnss.start(COLD_START);
}
void loop()
{
Blynk.run();
static int index = 0;
if (Gnss.waitUpdate(-1)) {
SpNavData nav;
Gnss.getNavData(&nav);
if (nav.posFixMode != FixInvalid) {
// Get the location
float lat = (float)nav.latitude;
float lon = (float)nav.longitude;
char utc[10];
sprintf(utc, "%02d:%02d:%02d",
nav.time.hour, nav.time.minute, nav.time.sec);
// Send the location to my map
myMap.location(index++, lat, lon, utc);
}
}
}
완성
Map 스케치를 움직여 Blynk 앱에서 감시한 모습이 여기.
지도에 검은 원이 표시되어 있음을 알 수 있습니다.
이것 1초마다 위치 정보를 보내고 있기 때문에 궤적을 그려줄까라고 생각하고 있었습니다만, 앱측의 위치 정보의 갱신이 아무래도 부정기에만 행해집니다. Blynk 앱을 일단 끊고 다시 연결하면 확실하게 좌표 위치를 업데이트해줍니다. Map Widget이 그러한 사양입니까? .
원래 생각했던 것은 아니었지만 불필요한 긴급한 외출은 삼가는 것이 좋다. 최근 이동 궤적은 필요하지 않다.
Reference
이 문제에 관하여(SPRESENSE LTE 확장 보드를 사용하여 GPS 정보를 Blynk 앱에서 원격 모니터링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/baggio/items/76587b5b05cdd5361028
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ cd ~/Arduino/libraries
$ git clone https://github.com/baggio63446333/blynk-library
$ cd ~/Arduino/libraries/blynk-library
$ git remote add baggio https://github.com/baggio63446333/blynk-library
$ git checkout -b baggio-master baggio/master
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "YourAuthToken";
// Your GPRS credentials
// Leave empty, if missing user or pass
char apn[] = "YourAPN";
char user[] = "";
char pass[] = "";
char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // ユーザに合わせて変更
char apn[] = "iijmio.jp";
char user[] = "mio@iij";
char pass[] = "iij";
Blynk 앱
Blynk의 Map Widget을 사용합니다.
절차
Map Widget을 추가합니다.
지도가 표시됩니다.
맵 설정을 열고 선택 핀에서 Virutal의 V1 핀을 선택합니다. 이것은 나중에 나오는 스케치에서 V1 핀을 사용하기 때문에 그에 맞습니다.
Map 스케치
GPS 정보를 발사하는 스케치는 여기입니다. 디버깅의 용이성은 놓아두고 필요 최소한의 기술로 하고 있습니다.
Map.ino
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <BlynkSimpleSpresenseLTE.h>
#include <GNSS.h>
static SpGnss Gnss;
char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // ユーザに合わせて変更
char apn[] = "iijmio.jp"; // SIMに合わせて変更
char user[] = "mio@iij";
char pass[] = "iij";
WidgetMap myMap(V1);
void setup()
{
// Debug console
Serial.begin(115200);
Blynk.begin(auth, apn, user, pass);
// If you want to remove all points:
myMap.clear();
// Start GPS
Gnss.begin();
Gnss.select(GPS);
Gnss.select(QZ_L1CA);
Gnss.start(COLD_START);
}
void loop()
{
Blynk.run();
static int index = 0;
if (Gnss.waitUpdate(-1)) {
SpNavData nav;
Gnss.getNavData(&nav);
if (nav.posFixMode != FixInvalid) {
// Get the location
float lat = (float)nav.latitude;
float lon = (float)nav.longitude;
char utc[10];
sprintf(utc, "%02d:%02d:%02d",
nav.time.hour, nav.time.minute, nav.time.sec);
// Send the location to my map
myMap.location(index++, lat, lon, utc);
}
}
}
완성
Map 스케치를 움직여 Blynk 앱에서 감시한 모습이 여기.
지도에 검은 원이 표시되어 있음을 알 수 있습니다.
이것 1초마다 위치 정보를 보내고 있기 때문에 궤적을 그려줄까라고 생각하고 있었습니다만, 앱측의 위치 정보의 갱신이 아무래도 부정기에만 행해집니다. Blynk 앱을 일단 끊고 다시 연결하면 확실하게 좌표 위치를 업데이트해줍니다. Map Widget이 그러한 사양입니까? .
원래 생각했던 것은 아니었지만 불필요한 긴급한 외출은 삼가는 것이 좋다. 최근 이동 궤적은 필요하지 않다.
Reference
이 문제에 관하여(SPRESENSE LTE 확장 보드를 사용하여 GPS 정보를 Blynk 앱에서 원격 모니터링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/baggio/items/76587b5b05cdd5361028텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)