PhoneLocator:Arduino YúnとBlynkでスマホをどこでも特定
必要なパーツと用品
| パーツ | 数量 | 備考 |
|---|---|---|
| ジャンパーワイヤー | 1式 | |
| Arduino Yún | 1 | Wi-Fi内蔵、Linux搭載 |
| 抵抗 220Ω | 1 | ボタン用プルダウン |
| タクトスイッチ (12mm) | 1 | トリガーボタン |
| ブレッドボード | 1 |
使用アプリ・オンラインサービス
- Arduino Web Editor
- Blynk(IoTプラットフォーム、アプリ・クラウド)
プロジェクト概要
概要
友達の家にスマホを忘れた、盗まれた——そんな経験は誰にでもあります。PhoneLocatorは、ボタン一つでスマホの位置情報(緯度・経度)をメールで受け取れるデバイスです。Blynkアプリをスマホに入れておけば、バックグラウンド動作・スリープ中でも位置情報を取得可能です。Blynkアカウントが必要です(作成手順は後述)。
動作原理
シンプルなフローです:
- ボタン押下検知(ピン2)
- Blynk経由でスマホの位置情報を要求(Virtual Pin V0)
- 受信した緯度・経度をメール本文に整形(Google Mapsリンク付き)
- Blynkのメール送信機能でユーザー宛てに送信
ボタン押下からメール受信まで約8秒。スマホがスリープ中でも、Blynkアプリがバックグラウンド実行許可されていれば動作します。Blynkプロジェクトがスマホ側で「オン」状態である必要があります。
メリット
- 紛失・盗難時のスマホ特定が可能
- ボタン一つの簡単操作
製作手順
ステップ1:必要な機材
- ジャンパーワイヤー
- Arduino Yún ×1
- タクトスイッチ ×1
- ブレッドボード ×1
- 抵抗 220Ω ×1
- スマートフォン(Blynkアプリインストール済み) ×1
ステップ2:回路接続
シンプルな構成:ボタンをピン2にプルダウン接続。記事内の回路図画像を参照してください。
ステップ3:コード構成
3つの主要パートで構成:
1. getLocation(位置取得)
BLYNK_WRITE(V0) // Virtual Pin V0で座標受信
{
latitude = param[0].asDouble();
longitude = param[1].asDouble();
altitude = param[2].asDouble();
speed = param[3].asDouble();
}
BlynkはデータをVirtual Pinに格納。BLYNK_WRITE(V0)でV0の値を変数に格納。緯度・経度を使用。スマホ側Blynkプロジェクトの正しい設定が必須。
2. Process Location Data(データ整形)
if (latitude != 0.00 && longitude != 0.00) { // 有効な座標なら
String toSend = "Phone Located! \n received co-ordinates \n LAT ";
toSend += latitude;
toSend += " LNG ";
toSend += longitude;
toSend += ". View location on Maps: ";
toSend += "www.google.com/maps/?q=";
toSend += latitude;
toSend += ",";
toSend += longitude;
delay(500);
}
メールは文字列で送信するため本文を文字列構築。座標が0(無効)の場合は送信せず、最大10回まで再要求ループ。
3. Send Email(メール送信)
Blynk.email(userEmail, "PhoneLocator | Notification", toSend);
if (proDebug == 1) {
Serial.println("Success");
Serial.println("Email Sent");
Serial.println("Restarting Protocol");
Serial.println();
}
proDebugはデバッグ用フラグ。1ならシリアルモニタ必須、0ならスタンドアロン動作。本番は0に設定。
変数設定(TODO項目を編集)
- 送信先メールアドレス
- Blynk認証トークン(メールで届く)
proDebug(0推奨)
必要ライブラリ
- Bridge(Arduino LLC、パブリックドメイン)
- Blynk(MITライセンス)
Blynkセットアップ手順
- BlynkアプリをiOS/Androidにダウンロード
- アカウント作成(記事内のスクリーンショット手順を参照)
- 新規プロジェクト作成 → 認証トークンがメールで届く
- プロジェクト設定:
- 「GPS Stream」ウィジェットを追加、Virtual Pin V0に割り当て
- 「Run」モードで動作確認
※記事内に詳細なスクリーンショット付き手順あり(9枚の画像でステップバイステップ解説)。
最終セットアップ
TODO変数をすべて設定済みなら、Arduino YúnをPCに接続してコード書き込み。ボタンを押せばメールが届きます。
背景
紛失スマホを簡単に見つける方法を考えて作成。Blynkならアプリがバックグラウンド/スリープでも位置情報取得可能。iPhone (iOS 11) で動作確認済み。
コード
完全なコードは記事内に掲載(長いためここでは省略)。主要関数は上記の通り。
回路図
Fritzingファイル:schematics_UhOTpO8N1Z.fzz
ブレッドボード配線図:記事内画像参照
製造プロセス
- Arduinoデジタルダイス: LCD表示の乱数ジェネレーター自作
- Arduinoでアイアンマンを自作:部品・センサー・手順ガイド
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduino駆動3Dプリントロボットアームの製作:ステップバイステップガイド
- DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
- 非接触温度スクリーニングゲート:Arduino MKR1000で迅速・高精度な検温
- PiBot:Arduino駆動の精密ピアノ演奏ロボット
- Arduino Nanoで作るNeoPixelマトリックス版Pongゲーム
- ArduinoとThingSpeakで作るリアルタイム気象モニタリングシステム
- ゲーム用カスタムArduinoジョイスティックハンドルの製作
- ArduinoとTEA5767で作る高性能FMラジオ受信機