工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

PhoneLocator:Arduino YúnとBlynkでスマホをどこでも特定

必要なパーツと用品

パーツ数量備考
ジャンパーワイヤー1式
Arduino Yún1Wi-Fi内蔵、Linux搭載
抵抗 220Ω1ボタン用プルダウン
タクトスイッチ (12mm)1トリガーボタン
ブレッドボード1

使用アプリ・オンラインサービス

プロジェクト概要

概要

友達の家にスマホを忘れた、盗まれた——そんな経験は誰にでもあります。PhoneLocatorは、ボタン一つでスマホの位置情報(緯度・経度)をメールで受け取れるデバイスです。Blynkアプリをスマホに入れておけば、バックグラウンド動作・スリープ中でも位置情報を取得可能です。Blynkアカウントが必要です(作成手順は後述)。

動作原理

シンプルなフローです:

  1. ボタン押下検知(ピン2)
  2. Blynk経由でスマホの位置情報を要求(Virtual Pin V0)
  3. 受信した緯度・経度をメール本文に整形(Google Mapsリンク付き)
  4. Blynkのメール送信機能でユーザー宛てに送信

ボタン押下からメール受信まで約8秒。スマホがスリープ中でも、Blynkアプリがバックグラウンド実行許可されていれば動作します。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セットアップ手順

  1. BlynkアプリをiOS/Androidにダウンロード
  2. アカウント作成(記事内のスクリーンショット手順を参照)
  3. 新規プロジェクト作成 → 認証トークンがメールで届く
  4. プロジェクト設定:

※記事内に詳細なスクリーンショット付き手順あり(9枚の画像でステップバイステップ解説)。

最終セットアップ

TODO変数をすべて設定済みなら、Arduino YúnをPCに接続してコード書き込み。ボタンを押せばメールが届きます。

背景

紛失スマホを簡単に見つける方法を考えて作成。Blynkならアプリがバックグラウンド/スリープでも位置情報取得可能。iPhone (iOS 11) で動作確認済み。

コード

完全なコードは記事内に掲載(長いためここでは省略)。主要関数は上記の通り。

回路図

Fritzingファイル:schematics_UhOTpO8N1Z.fzz
ブレッドボード配線図:記事内画像参照

製造プロセス

  1. Arduinoデジタルダイス: LCD表示の乱数ジェネレーター自作
  2. Arduinoでアイアンマンを自作:部品・センサー・手順ガイド
  3. ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
  4. Arduino駆動3Dプリントロボットアームの製作:ステップバイステップガイド
  5. DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
  6. 非接触温度スクリーニングゲート:Arduino MKR1000で迅速・高精度な検温
  7. PiBot:Arduino駆動の精密ピアノ演奏ロボット
  8. Arduino Nanoで作るNeoPixelマトリックス版Pongゲーム
  9. ArduinoとThingSpeakで作るリアルタイム気象モニタリングシステム
  10. ゲーム用カスタムArduinoジョイスティックハンドルの製作
  11. ArduinoとTEA5767で作る高性能FMラジオ受信機