さくらのIoT Platform α版 準備編その1
Home > IoT > さくらのIoTプラットフォームα版 >
「さくらのIoT Platform α版」のテスト用通信モジュールが5月中に発送される予定ということで、ぼちぼち準備を始めています。
我が家ではこのモジュールを用いて長女ちゃんの行動ログを録ろうと考えています ????
現在地や通学・帰宅移動時間など長いスパンでデータとれれば面白いかなと思ってます♪
そこで今回は通信モジュールに搭載予定のGPSの実験を実施しました!
以下が用いたGPSモジュール。安くで使いやすそうだったのでこちらを選びました。
GPS受信機キット 1PPS出力付き 「みちびき」対応: センサ一般 秋月電子通商 電子部品 ネット通販
電子部品,通販,販売,半導体,IC,マイコン,電子工作GPS受信機キット 1PPS出力付き 「みちびき」対応秋月電子通商 電子部品の通販・販売
GPSモジュールをArduino互換マイコンにつないでシリアル通信(UART)でもって位置情報を取得します。今回マイコンはこちらを使用しました。小さいですがArduino UNOと全くの互換品なので非常に使いやすいです ???? 。
GPSモジュールからの情報は NMEAフォーマット と言われるもので人が見るのには適してないのでTinyGPSPlusというライブラリを使用して生データから位置情報(緯度、経度)と日時を取得できるようにしました。
以下コードです。 TinyGPSPlusライブラリ内のDeviceExample.inoをベースに修正して5秒おきにGPSデータ取得するようにしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
#include <TinyGPS++.h> #include <SoftwareSerial.h> static const int RXPin = 10, TXPin = 11; static const uint32_t GPSBaud = 9600; // The TinyGPS++ object TinyGPSPlus gps; // The serial connection to the GPS device SoftwareSerial ss(RXPin, TXPin); int jpHour = 0; void setup() { Serial.begin(9600); ss.begin(GPSBaud); Serial.println("START!!"); } void loop() { unsigned long start = millis(); do { while (ss.available() > 0){ gps.encode(ss.read()); } } while (millis() - start < 5000); displayInfo(); } void displayInfo() { Serial.print(F("Location: ")); if (gps.location.isValid()) { Serial.print(gps.location.lat(), 6); Serial.print(F(" , ")); Serial.print(gps.location.lng(), 6); } else { Serial.print(F("INVALID")); } Serial.print(F(" Date/Time: ")); if (gps.date.isValid()) { Serial.print(gps.date.month()); Serial.print(F("/")); Serial.print(gps.date.day()); Serial.print(F("/")); Serial.print(gps.date.year()); } else { Serial.print(F("INVALID")); } Serial.print(F(" ")); if (gps.time.isValid()) { jpHour = gps.time.hour() + 9; if(jpHour > 23){ jpHour =- 24; } if (jpHour < 10) Serial.print(F("0")); Serial.print(jpHour); Serial.print(F(":")); if (gps.time.minute() < 10) Serial.print(F("0")); Serial.print(gps.time.minute()); Serial.print(F(":")); if (gps.time.second() < 10) Serial.print(F("0")); Serial.print(gps.time.second()); Serial.print(F(".")); if (gps.time.centisecond() < 10) Serial.print(F("0")); Serial.print(gps.time.centisecond()); } else { Serial.print(F("INVALID")); } Serial.println(); } |
てことで早速、外で実証実験!プラプラ歩いてきましたwww
あやしい ???? !!!
んで取得できたログ
あとはこれをマップにプロットできれば完璧だ!!。。。。それはお母ちゃんにまかすとしよう。。。。