//GPSモジュール:VK2828U7G5 // //接続(色に注意) //赤 1:PPS Time standard pulse output //黒 2:VCC Power supply input 3.3V-5V //黄 3:TX UART/TTL Interface //緑 4:RX UART/TTL Interface //青 5:GND Ground //白 6:EN 有効・無効 // #include const int rxPin = 20; const int txPin = 21; TinyGPSPlus gps; void setup(void) { Serial.begin(115200); while(!Serial) delay(200); Serial.print(" rxPin: "); Serial.print(rxPin); Serial.print(" txPin: "); Serial.print(txPin); Serial.println(); Serial1.begin(9600, SERIAL_8N1, rxPin, txPin); while(!Serial1) delay(200); } void loop(void) { if(Serial1.available() > 0) { //If anything comes in Serial1 (pins 0 & 1) if(gps.encode(Serial1.read())) { GpsTimeRead(); //時刻 } } } uint16_t year; uint8_t month; uint8_t day; uint8_t hour; uint8_t minutes; uint8_t second; uint8_t week; void GpsTimeRead(void) { tm t; time_t tim; tm* ltim; if(gps.time.isUpdated()) { t.tm_year = gps.date.year() - 1900; t.tm_mon = gps.date.month() - 1; //0からカウントするので-1 t.tm_mday = gps.date.day(); t.tm_hour = gps.time.hour() + 9; //日本:世界標準時から9時間ずれ t.tm_min = gps.time.minute(); t.tm_sec = gps.time.second(); tim = mktime(&t); //UNIX時間からの経過 ltim = localtime(&tim); //ローカル時間に置き換え(経過時間をtm構造体に置き換え) year = ltim->tm_year + 1900; month = ltim->tm_mon + 1; day = ltim->tm_mday; hour = ltim->tm_hour; minutes = ltim->tm_min; second = ltim->tm_sec; week = ltim->tm_wday; Serial.print(year); Serial.print("/"); if(month > 9) { Serial.print(month); } else { Serial.print("0"); Serial.print(month); } Serial.print("/"); if(day > 9) { Serial.print(day); } else { Serial.print("0"); Serial.print(day); } Serial.print("/"); if(hour > 9) { Serial.print(hour); } else { Serial.print("0"); Serial.print(hour); } Serial.print(":"); if(minutes > 9) { Serial.print(minutes); } else { Serial.print("0"); Serial.print(minutes); } Serial.print(":"); if(second > 9){ Serial.print(second); } else { Serial.print("0"); Serial.print(second); } Serial.print("-"); switch(week){ case 0: Serial.println("SUN"); break; case 1: Serial.println("MON"); break; case 2: Serial.println("TUE"); break; case 3: Serial.println("WED"); break; case 4: Serial.println("THU"); break; case 5: Serial.println("FRI"); break; case 6: Serial.println("SAT"); break; } } }