私のものはどこにありますか?
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
| ||||
|
アプリとオンラインサービス
> |
| |||
| ||||
|
このプロジェクトについて
背景
何かを探そうとしても、それを探すのに非常に長い時間を費やしても、それを見つけることができないという状況に陥ったことはありますか? RFIDテクノロジーを活用し、RFIDリーダーとアイテムに取り付けられた複数のRFIDタグを使用することで、保管したアイテムを簡単に見つけることができます。新しいアイテムを購入するたびに、RFIDタグを貼り付けて、アイテムの詳細をシステムに登録するだけです。アイテムを探す必要があるのにどこにあるのか思い出せなくなったら、モバイルアプリケーションで検索するだけで、現在あなたの家のどの部屋にあるかがわかります。
アイデア全体
このプロジェクトのコンポーネントは、UHF RFIDリーダーモジュール、UHF RFIDアンテナ、Arduino UNO、Windows10IoTコアを実行するRaspberryPi2で構成されます(http://ms-iot.github.io/content/enを参照してください)。 -US / GetStarted.htm(Windows10 IoTコアのインストール方法がわからない場合)、モバイルアプリケーション、およびデータストレージ用のAzureWebサービス。家の中には複数のUHFRFIDモジュールがあり、各UHFRFIDモジュールはArduinoUNOに接続され、ArduinoはRaspberryPi2に接続されます。システムによる追跡を希望するアイテムには、RFIDタグが付けられます。システムに登録するには、アイテムの詳細とRFID値が必要です。すべてのレコードのデータは、Azure WebAPIを介してAzureSQLデータベースに保存されます。ユーザーが自宅でアイテムを検索しようとしているが、そのアイテムが自分の家のどの部屋にあるかわからないときはいつでも。彼/彼女は彼らのモバイルアプリケーションをオンにすることができます。モバイルアプリケーションは、Wifiネットワークを介して検索リクエストをRaspberryPi2に送信します。 Raspberry Pi2が検索リクエストを受信すると、それに接続されているすべてのArduinoUnoにリクエストを送信します。 ArduinoUNOは読み取りコマンドをUHFRFIDモジュールに送信します。別の場所にあるUHFRFIDリーダーのいずれかが必要なRFIDをキャプチャできるようになると、ArduinoUNOに値が返されます。 ArduinoUNOはRFIDリーダーの場所をRaspberryPi2に戻し、RaspberryPi2はさらに検索結果を処理してモバイルアプリケーションに戻ります。
もし、あんたが
方法は?
Windows 10IoTコアで実行されるバックグラウンドアプリを開発します。RaspberryPi2のIPアドレスを知っている必要があるかもしれません。ディスプレイは必要ありません。全能のWindowsIoT CoreWatcherに感謝します。必要なのは、以下に示すようにRaspberryPi2モデルBを接続することだけです。
<図>PCとRaspberryPI2をネットワークケーブルで接続することにより、全能のWindows IoT CoreWatcherはRaspberryPi2のIPアドレスを教えてくれます。
<図>Visual Studio2015でプロジェクトを作成する
次に、Visual Studio 2015を使用して開発を開始し、ここで共有したコードをダウンロードして、Visual Studio2015を使用して実行できます。
githubからコードをダウンロードすると、プロジェクトを直接実行できるようになります。新しいプロジェクトを作成しようとしている場合は、次の方法で試すことができます。
1. [ファイル]-> [新規]-> [プロジェクト]
に移動します <図>2. Visual C#テンプレートで、「バックグラウンドアプリケーション(IoT)」を探します。プロジェクトが作成されたプロジェクト名を入力します。
<図>3.プロジェクトが作成されたら、次はデバッグ設定を構成します。プロジェクトを右クリックして、[プロパティ]を選択します
<図>4.プロジェクトのプロパティウィンドウで、[デバッグ]タブをクリックし、次の設定を行います。
- プラットフォーム:ARM
- ターゲットデバイス:リモートマシン
- リモートマシン:
- [認証を使用する]のチェックを外します
構成を保存すると、新しく作成したプロジェクト内でStartupTask.csファイルへのコーディングを開始できます。
Visual Studio2015でのデバッグ
コーディングが完了し、デバッグを開始したい場合は、次の手順とスクリーンショットに従うことができます。
1.左側の灰色のバーをクリックして、調査するコード行にブレークポイントを設定します。
<図>2.次に、緑色の[リモートマシン]ボタンをクリックして、デバッグを開始します。
<図>3.デバッグモードに入ると、緑色のボタン「リモートマシン」が「続行」に変更され、同時にステップボタンが有効になります。
- 次へ-次のステートメントを表示
- ステップイン-関数にステップインし、関数内のコードを調べます
- ステップオーバー-現在の行をステップオーバーして、コードの次の行を調べます
- ステップアウト-関数を終了し、前のコードでデバッグを続行します。
[次へ]、[ステップイン]、[ステップオーバー]、[ステップアウト]のボタンを続行
デバッグの実行中に、マウスカーソルをロールオーバーして変数の特定の値を調べるか、変数をハイライトして右クリックし、[ウォッチの追加]を選択して変数をウォッチリストに追加します。
<図> <図>Azure上にWebAPIを作成して、IoTおよびモバイルアプリのトランザクションを提供します
Asp.NETWebアプリケーションプロジェクトを作成する
1. ASP.NET Webアプリケーションを作成し、プロジェクト名を入力して、下部にある[OK]ボタンをクリックします
<図>2.次の画面で、[ASP.NET 4.5.2テンプレート]の下の[MVCの選択]をクリックします(冒険心がある場合は、MVC6フレームワークを使用したASP.NET 5プレビューテンプレートを試してみてください。手順は同じです)
<図>
3.次に、認証方法を「認証なし」に設定します
<図>4.このWebAPIをクラウドサーバーでホストする場合は、以下に示すように[クラウドでホストする]オプションをオンにすることもできます。
<図>Microsoft Azureアカウントをお持ちでない場合は、無料トライアルにサインアップして、200ドルの無料クレジットをお楽しみいただけます。ここをクリックしてください:https://azure.microsoft.com/en-us/pricing/free-trial/
5. WebAPIをAzureWeb Appでホストすることを選択した場合、[OK]をクリックすると、次の画面でMicrosoftAzureにログインする必要があります。
<図>6.正常にログインしたら、次のフォームに表示されているように、Webアプリ名と後続の詳細を入力するだけです。
<図>すべての情報を入力したら、[OK]をクリックし、VS2015がAzureアカウントにWebアプリとデータベースを作成するまでしばらく待ちます。
ローカルとクラウドの両方のWebアプリが正常に作成されたら、次にアプリのデータベースを作成することをお勧めします。 MVCのEntityFrameworkに感謝します。これで、いくつかの簡単な手順でWebアプリのデータベースをセットアップできます。
EntityFrameworkの使用
インストールにはNuGetパッケージマネージャーコンソールを使用します。そのため、最初に次のようにNugetパッケージマネージャーを起動する必要があります:[ツール]-> [NuGetパッケージマネージャー]-> [パッケージマネージャーコンソール]
<図>2.次に、以下のパッケージマネージャーコンソールにコマンド「Install-PackageEntityFramework」を入力します。
<図>3.次に、データベースのテーブルとフィールドを記述するためのModelクラスを作成する必要があります。モデルフォルダを右クリックして、[追加]-> [クラス]をクリックするだけです。
<図>新しいクラスが作成されたら、次の行を追加します。
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
モデルクラスを作成したら、次のステップは、EntityFrameworkを使用してアクションとともにWebAPIコントローラーを作成することです。下の印刷画面に従って、Controllersフォルダを右クリックし、[追加]-> [新しい足場アイテム]を選択します:
<図>次の画面の[WebAPI]カテゴリで[エンティティフレームワークを使用したアクション付きのWebAPI2コントローラー]を選択します。
<図>[追加]ボタンをクリックすると、次の画面が表示されます。
<図>
' + をクリックします 'データコンテキストクラスフィールドのボタンをクリックして、新しいデータコンテキストクラスを作成します:
<図>次の画面で[追加]をクリックして作成します:
<図>すべてのフィールドに入力したら、[追加]をクリックしてスキャフォールドアイテムを生成します。
<図>足場アイテムが正常に生成されると、コントローラーとデータコンテキストクラスがControllersフォルダーとModelsフォルダーにドロップするのを確認できます。
<図>次に、 Enable-Migrations を実行します パッケージマネージャーコンソールのコマンド:
<図>
有効化後-移行 コマンドの後に、 Add-Migration
最後に更新-データベース コマンドは、モデルから生成された移行スクリプトに基づいてデータベースを作成します。新しく作成されたデータベースは、 Add_Data の下にあります。 テーブル:
<図> <図>WEBAPIを公開する
データベースが正常にセットアップされると、Web APIは完了したと見なされます(ScaffoldedコントローラーはRESTful呼び出しの基本関数を生成します)。これらのGetMything(GET)、PostMything(POST)、PutMything(PUT)、およびDeletemything(DELETE)関数がMyThingsControllerに存在することを確認するためだけに。
WebAPIプロジェクトが完了したら。次に、次の手順でWebAPIをAzureWebAPPに公開できます。
1. [ビルド]メニュー> [MyThingAPIの公開]を次のスクリーンショットのように選択します。:
<図>2.次のポップアップが表示され、公開ターゲットを選択できます。 WebAPIにASP.NET5MVC 6テンプレートを使用している場合は、Microsoft Azure API Apps(プレビュー)を選択できます。
<図>3. Microsoft Azure Web Appsをクリックすると、次の画面が表示され、azureアカウントにログインする必要があります。
<図>Azureのクレデンシャルを入力してログインします:
<図>4.ログインに成功すると、azureでホストされている既存のWebアプリを取得できるようになります(VS2015でこのプロジェクトを作成するときに以前に作成する必要があります):
<図>5. Webアプリを選択し、[OK]をクリックすると、次の画面が表示されます。
<図>接続設定が代用されます。[次へ]をクリックして続行します
6. [設定]タブにデータベース接続文字列が表示され、他の情報が自動的に入力されますが、[実行時にこの接続文字列を使用する]と[コードの最初の移行を実行する]の両方のチェックボックスがオンになっていることを確認してください。
<図>6.すべての設定が入力されたら、[公開]をクリックします。VisualStudioは、公開が成功するとすぐにAzureWebアプリを起動します。
<図>Web APIが公開されたら、RESTAPIをテストできます。テストにChromeの拡張機能「AdvanceRESTClient」を使用しています:
<図>POST呼び出しには以下のjson文字列を試すことができます:
<コード> {コード>
id:1、
status: "0"、
rfid: "1009622005390623"、
image: ""、
name: "some tool"、
type: "tool"、
場所: "寝室"、
createdAt: "2015-10-13T10:26:01.14"、
lastUpdatedAt: "2015-10-13T10:26:01.14"
<コード>} コード>
Windowsユニバーサルアプリを作成する
IotバックグラウンドアプリとRESTAPIの準備ができているので、次はクライアントとしてWindowsユニバーサルアプリを構築します。ユニバーサルアプリを使用すると、複数のデバイスに1セットのコードを使用できます。ここでは、例としてタブレット用のユニバーサルアプリを作成します(携帯電話またはラップトップのレイアウト設定を変更するだけです)。
ユニバーサルアプリを作成するには、Visual Studio2015で[ファイル]> [新規]> [プロジェクト]をクリックし、次のようにユニバーサルアプリを選択します。
<図>新しいソリューションを作成したら、csスクリプトと.xamlファイルをGitHubで共有したMyThingAppに置き換えることができます。
Windowsユニバーサルアプリでのデバッグ:
Windowsユニバーサルアプリは、ARM、x64、x86プラットフォームを含むいくつかのデバッグ構成を提供しました。 Windows 64ビットを実行しているローカルPCでデバッグを実行している場合は、x64を選択し、緑色のボタンをクリックする必要があります([ローカルマシン]を選択)
<図>アプリがエラーなしで実行されている場合は、次のようになります。
<図>設定通知ハブとUWPプッシュ通知
1. Web APIとユニバーサルアプリが完成したら、ここからログインできます
https://dev.windows.com/en-us/dashboard/Application/Newアプリ名を予約します。
<図>2.アプリ名が作成されたら、MyThingAppに戻り、プロジェクトを右クリックします。 [ストア]> [アプリをストアに関連付ける]を選択します
<図> <図><図> <図>
通知ハブの作成については、こちらを参照してください:
https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-windows-store-dotnet-get-started
3.次に、次の関数をApp.xaml.cs
に追加します
private async void InitNotificationsAsync()
<コード> {コード>
var channel =await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
var Hub =new NotificationHub( "notification"、 "Endpoint =sb://smartwardrobe.servicebus.windows.net/; SharedAccessKeyName =DefaultListenSharedAccessSignature; SharedAccessKey =MlHoVfn1Ub / c2ThUha + Crn7hHSGmqofrW3cJ6IK89Ok =");
var result =awaithub.RegisterNativeAsync(channel.Uri);
<コード>} コード>
また、OnLaunched関数内でこの新しい関数を呼び出します:
protected override void OnLaunched(LaunchActivatedEventArgs e)
<コード> {コード>
InitNotificationsAsync();
最後に、このコード行をMainPage.cs、MainPage()関数に追加します:
this.NavigationCacheMode =NavigationCacheMode.Required;
4.最後に、次のコードを使用してMyThing Web API> MyThingController内にスレッドタスクを設定します。
public class NotificationClass {
internal async System.Threading.Tasks.Task
<コード> {コード>
<コード> NotificationHubClientハブ=NotificationHubClient
.CreateClientFromConnectionString( "<接続文字列>"、 "<ハブ名>");
var toast =@ "
awaithub.SendWindowsNativeNotificationAsync(toast);
return null;
<コード>} コード>
<コード>} コード>
新しいレコードが正常に作成されると、以下のコードが表示されます。
NotificationClass notClass =new NotificationClass();
<コード>スレッドnotificationThread =new Thread(async x => {await notClass.SendNotificationAsync(myThing.rfid);});
<コード> notificationThread.Start();
5.セットアップが成功すると、レコードが正常に作成されると、次のようなトースト通知が受信されます。
<図>6.通知をクリックすると、PCにインストールされているMyThingAppが起動します。
<図>「OK」をクリックすると、新しいRFIDが入力フォームに追加されます。残りの情報を入力して更新します。
<図>
参照リンク:
1. Windows10 Iot Coreをセットアップするためのステップバイステップガイド:-http://ms-iot.github.io/content/en-US/GetStarted.htm
2.PCでのVisualStudio 2015のセットアップ:-http://ms-iot.github.io/content/en-US/win10/SetupPCRPI.htm
3. RaspberryPi2でWindows10IoT Coreをセットアップするためのステップバイステップの説明:-http://ms-iot.github.io/content/en-US/win10/SetupRPI.htm
4. IoTアプリケーションの開発方法(Blinkyサンプル):-http://ms-iot.github.io/content/en-US/win10/samples/Blinky.htm
5.Windows IoTシリアルサンプル:-http://ms-iot.github.io/content/en-US/win10/samples/SerialSample.htm
6.Ms-IoT GitHubリポジトリ:-https://github.com/ms-iot
7.GitHub上のWindows:-http://microsoft.github.io/windows/
8.Arduinoソフトウェアシリアルの例(UARTを使用):-https://www.arduino.cc/en/Tutorial/SoftwareSerialExample
9.SparkFunシリアル通信チュートリアル:-https://learn.sparkfun.com/tutorials/serial-communication
10.Azure Notification Hubの使用を開始します:-https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-android-get-started/
11.モバイルサービスアプリにプッシュ通知を追加します:-https://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-android-get-started-push/
12.コードの最初の移行:-https://msdn.microsoft.com/en-sg/data/jj591621.aspx
13. VisualStudioを使用してAzureWebアプリに公開します:-http://docs.asp.net/en/latest/tutorials/publish-to-azure-webapp-using-vs.html
14.アプリをAzureAzure App Serviceに公開します:-http://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part-10
コード
- RFIDリーダーモジュールのArduinoコード
RFIDリーダーモジュールのArduinoコード C / C ++
/ *読み取りコマンドはRFIDモジュールに送信されます。タグが読み取られると、シリアルポートに戻ります* /#includeSoftwareSerial mySerial(10、11); // RX、TXvoid setup(){//シリアル通信を開き、ポートが開くのを待ちます:Serial.begin(9600); while(!Serial){; //シリアルポートが接続するのを待ちます。 Leonardoにのみ必要} // SoftwareSerialポートのデータレートを設定mySerial.begin(9600);} void loop(){//何度も実行if(mySerial.available()){//読み取りコマンドを送信RFIDモジュールへのバイトメッセージ[] ={0xA0,0x06,0x80,0x00,0x01,0x02,0x01,0xD6}; mySerial.write(message、sizeof(message)); //データをシリアルに送り返しますif(Serial.available())Serial.write(mySerial.read()); }}
GitHubの私のものはどこにありますか
https://github.com/seeyouu87/where-is-my-thing カスタムパーツとエンクロージャー
UHFRFIDリーダーモジュール。 RFIDタグの読み取りに使用されます。 回路図
フリッツの私のことはどこにありますか
Fritzing.orgの回路図製造プロセス