SPRESENSE LTE 확장 보드를 사용하여 GPS 정보를 Blynk 앱에서 원격 모니터링

Spresense에 내장된 GPS 기능을 사용하여 GPS 트래커 돌아가기를 만듭니다. GPS에서 얻은 위치 정보를 LTE를 사용하여 클라우드로 발사하여 스마트폰의 Blynk 앱에서 이를 모니터링합니다. 스마트 폰으로부터 감시하기 때문에, 자신의 위치라면 스마트 폰의 GPS를 사용하면 좋지만, 어느 쪽이라고 하면, 물건에 달아 물류 감시나, 아이·노인에게 갖게 하는 지켜보는 단말이나, 누군가의 가방에 숨어 바람 조사 , 같은 것을 이미지하고 있습니다. 이렇게 용도는 무한합니다.

준비하는 것


  • SPRESENSE 메인보드
  • SPRESENSE LTE 확장 보드
  • Blynk 스마트 폰 앱
  • 모바일 배터리 (다이소의 500 엔의 녀석 등)

  • 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.ino
    char 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이 그러한 사양입니까? .

    원래 생각했던 것은 아니었지만 불필요한 긴급한 외출은 삼가는 것이 좋다. 최근 이동 궤적은 필요하지 않다.

    좋은 웹페이지 즐겨찾기