잘 잃어버리기 때문에 인공위성 "미치비키"를 사용하여 현재지를 쉽게 취득해 보았다②

소개



여러분 안녕하세요
RHEMS 기연의 아라키입니다.

이번은 실제로 GY-NEO6MV로 위치 정보를 취득해, 미치노리를 맵에 플롯 해 잃어버려도 괜찮게 했습니다

①은 이쪽

사용한 기기・서비스


  • ESP-WROOM-02
  • GY-NEO6MV
  • Ambient

  • 대략 이런 느낌

    Ambient란?



    Ambient는 간단히 설명하면 IoT의 귀찮은 부분을 전부 간단하게 해주는 서비스입니다
    Ambient로 데이터를 보내는 것만으로 그래프화하거나 저장합니다.
    그렇기 때문에 매우 편리하다는 것입니다.

    또한 Arduino에 라이브러리가 있으므로 코드도 매우 간단합니다.
    초보자라도 편안하게 IoT를 접할 수 있게 되는 서비스입니다.

    이번에는 Ambient에게 매우 신세를 질 것입니다.

    자세히



    GY-NEO6MV로 위치 정보를 취득→ESP-WROOM-02를 사용해 송신→Ambient가 처리→Web상에서 현재지를 확인→한

    전혀 상세하지는 않지만 이런 식으로 최선을 다할 것입니다.

    우선 코드는 이런 느낌
    #include <ESP8266WiFi.h>
    #include <SoftwareSerial.h>
    #include <TinyGPS++.h>
    #include <Ambient.h>
    // WiFiアクセスポイントの定数
    #define WIFI_SSID     "SSID"
    #define WIFI_PASSWD   "PASSWORD"
    
    //ambientの定数
    unsigned int channelId = ①;
    const char* writekey = "②";
    
    SoftwareSerial mySerial(4, 5); //RX=pin4, TX=pin5
    TinyGPSPlus gps; 
    WiFiClient client;
    Ambient ambient;
    
    
    // 起動時に一度だけ呼ばれるセットアップ関数
    void setup(void) {
    //シリアルコンソールの準備
      Serial.begin(115200);
      while (!Serial) {
        ;
      }
      Serial.begin(9600);
      while (!Serial) {
        ;
      }
    
      // WiFi接続設定を行う
      WiFi.mode(WIFI_STA);
      WiFi.begin(WIFI_SSID, WIFI_PASSWD);
    
      // WiFi接続を開始する
      while ( WiFi.status() != WL_CONNECTED ) {
        delay(500);
      }
      Serial.println(WiFi.localIP());
      ambient.begin(channelId, writekey, &client);
    
    }
    
    //変数の準備
    double ido, keido;
    int zikan,hun;
    
    // メインループ
    void loop() {
    
      while (mySerial.available()) {
        gps.encode(mySerial.read());
      }
      if (gps.location.isUpdated()) {
    
        Serial.print("緯度 :"); Serial.println(gps.location.lat(), 6);
        Serial.print("経度 :"); Serial.println(gps.location.lng(), 6);
        Serial.print("時間 :"); Serial.println(gps.time.hour() + 9);
        Serial.print("分 :"); Serial.println(gps.time.minute());
        Serial.println(" ");
    
    //諸情報を代入
        zikan = gps.time.hour() + 9;
        hun = gps.time.minute();
        ido = gps.location.lat(), 8;
        keido = gps.location.lng(), 8;
    
    //送るデータを準備(set)したあと送信(send)
        ambient.set(1, zikan);
        ambient.set(2, hun);
        ambient.set(9, ido);
        ambient.set(10, keido);
        ambient.send();
      }
    }
    

    Ambient에 데이터를 보내기 위해 도서관을 도입했습니다.
    사용법은
  • ①, ②를 ambient의 my 채널에서 복사해 온다
  • setup내에서 ambient.begin(channelId, writekey, &client)로 보낼 준비를 한다
  • 루프에서 ambient.set ()을 사용하여 첫 번째 인수에 1에서 8 사이의 숫자와 두 번째 인수로 보낼 데이터를 넣습니다.
  • ambient.send ()로 설정 한 데이터를 보냅니다.

    또 Ambient의 사용상, 9에 위도, 10에 경도를 보내는 것으로 자동으로 맵에 플롯 되게 되어 있습니다
    단지 이것만이므로 간단하네요!

    다음은 회로부분


    GY-NEO6MV에 전원을 공급하는데 ESP-WROOM-02만이라면 전혀 부족하지 않았던(미검증)같은 생각이 들었기 때문에 Arduino로부터 5V를 공급하고 있습니다
    그러므로 더 좀더 소형화는 가능하게 되어 있습니다
    회로 부분도 이것만으로 간단한 것이 되어 있으므로 IoT 초보자라도 확실히 쉽다고 생각합니다

    결론



    그럼 어땠어?
    매우 쉽게 현재 위치를 확인할 수 있습니다.
    다음 번은 실제로 사용해보고 정말로 현재 위치를 취득할 수 있어 사용감은 어떠한가를 기사로 하고 싶습니다

    그럼 좋은 IoT에 라이프를!
  • 좋은 웹페이지 즐겨찾기