月曜日に、さまざまな種類のデータの処理に使用できるクラウドと、Raspberry Pi 2またはIntel Minnowboardにインストール可能な新しいWindows 10オペレーティングシステムで、モノのインターネットの見方について書きました。 水曜日に、Microsoftテクノロジーセンターの同僚が、スマートオフィスの作り方について話しました。 昨日、 @ shwarsはArduinoをRaspberry Pi2に接続する方法に関するコラムを書きました。 今日は、Intel GalileoとEdisonをMicrosoft Azureに接続し、簡単なデータを送信し、Azureサービスを使用してそれらを視覚化するプロセスについて少しお話します。 来週、Windows 10 IoTをMinnowboard MAXにインストールした経験。
ガリレオから始めましょう。 GalileoはIntelのブログ( 1回 、 2回 )で多くのことを書き、同僚は何回も( 例えばSergey Baydachny )書いたので、私たちとIntelのハッカソンでテストした実用的な部分のみに集中します。
Galileoをコンピューターに接続するために、いくつかのオプションがあります-イーサネット、USB、デバッグ6ピンケーブル。 最も簡単で手頃な価格はイーサネット接続です。
問題は、デフォルトではガリレオのネットワークが設定されておらず、ケーブルで接続した後でも表示できないことです。
この問題には2つの解決策があります。
- GalileoをIPアドレスを与えるルーターに接続します(イーサネットまたはWi-Fi経由)。 これは最も便利で機能的な方法です-ボードはオンラインに移行できます。
- ボードをコンピューターに接続し、独自のDHCPサーバーを使用してIPアドレスを与えます。 OpenDHCPServerを使用できます。 構成するには、ガリレオが静的アドレス(たとえば、192.168.0.1)に接続するインターフェイスを構成し、このアドレスをOpenDHCPServer構成で盗聴用に追加してから、サービスまたはスタンドアロンとして実行する必要があります。 この場合、ボードがインターネットを見るためには、追加の設定を行う必要があります。
IPアドレスを受け取ったら、SSH経由でボードに接続できます。 Edisonをお持ちの場合は、すべてがより簡単です-./configureを呼び出すだけです
Galileoには、Yocto Linuxのデフォルトイメージがインストールされており、独自の仕様がありますが、必要なソフトウェアをインストールできます。 Windows 8をインストールすることもできます 。 Galileo&EdisonのWindows 10はそうではありません。
これを行うには、SSH経由で接続する必要があります。
Puttyを使用します。
- 最初のステップは、マシンのIPアドレスを判別することです。 ルーターに接続している場合、ルーターの管理者パネルで、DHCPによって配布されたIPアドレスを確認できます。 OpenDHCPServerの場合、コンソールでIPが配布されていることがわかります。
- 必要なデータを入力してください。
![](https://habrastorage.org/files/731/457/362/7314573624a44e56baf9a972a02a628f.jpg)
ログインルート、デフォルトパスワードなし。
エコシステムのセットアップを開始します。 Pythonを使用してPython用Azure SDKをインストールしますが、他の利用可能なSDKをインストールするか、必要なコードを自分で記述できます。
Python用Azure SDKのダウンロード:
git clone https://github.com/Azure/azure-sdk-for-python.git cd azure-sdk-for-python/ python setup.py install
現在の日付を設定します。
rdate -s time.nist.gov
(
401
ExpiredTokenエラーが発生しないようにする必要があります:Azureキューにメッセージを送信する場合)
必要なソフトウェアをインストールして更新します。
opkg update opkg install openssl opkg install curl
PIPパッケージマネージャーをインストールします-Pythonモジュールの便利な管理に必要です。
インストールプロセスは、非常に長い(約5〜10分)場合がありますが、表示されない場合があります。 壊さないでください。
curl https://bootstrap.pypa.io/get-pip.py -k | python
この例のファイルを作成します。 このキューはテスト用です。
from azure.servicebus import ServiceBusService,Message, Queue import base64 service_namespace = 'demostand-ns' key_name = 'AuthRead' key_value = 'ax2UKT7ppf0ti8uslO8p+HSF4qfprqLKTdY893Io+to=' queue_name = 'galileo' message = Message(base64.b64encode('Hello World')) sbs = ServiceBusService(service_namespace, shared_access_key_name=key_name, shared_access_key_value=key_value) sbs.send_queue_message(queue_name,message)
新しいキューを作成する場合は、新しいMicrosoft AzureアカウントとService Busキューを作成する必要があります。 名前空間では、他のキューなどを作成できます。
![](https://habrastorage.org/files/b1b/dbd/30b/b1bdbd30b62743bf81b4d64d68842b2a.png)
作成されたキューのページに移動します。
![](https://habrastorage.org/files/d2b/aa6/29b/d2baa629bb9e47fe9851b01bd8c49637.png)
「接続情報」をクリックします。
キューと対話するには、アクセスルールを作成する必要があります。 「ここをクリックして設定」をクリックします。
下のブロックにフルアクセスルールの名前を入力し、「管理」アクセスレベル(キューへのフルアクセス)を選択します。 [保存]をクリックします。
![](https://habrastorage.org/files/adc/3fa/ddc/adc3faddcce04ae0b07ca569d0a60567.png)
「接続情報」をもう一度クリックして、名前とアクセスキーをコピーします。
これで、コード内のテスト値を独自のキューの新しい値に置き換えることができます。
この例を実行するには、モジュールをインストールする必要があります。
pip install python-dateutil
これで例を実行できます。
python 1.py
この例では、単純なメッセージをキューに送信します。
同様に、イベントハブが作成されます(メッセージを収集するためのメカニズムで、小さなメッセージにはるかに適しています)。
Event Hubsを管理およびアクセスするには、独自のセキュリティメカニズムが使用されます。
Python Event Hubにメッセージを送信する例はGithubにあります。
APIを使用するアプリケーション、Service Bus ExplorerまたはStream Analytics-ストリーミングデータ処理に便利なサービスからそれらを取得できます。 つまり、ソース(この場合はキュー)から(ほぼ)リアルタイムでデータを収集するメカニズム、単純な処理(たとえば、一定期間の集約または平均化)、さらに転送するメカニズムを個別に実装する代わりに、接続できます既成のサービスとしてのストリーム分析。
Stream Analyticsは、 手順に従って作成できます。
Stream Analytics内の温度を平均化するSQLスクリプトは次のとおりです。 これは2つのスクリプトで構成されます。1つはストリームを取得し、それをSQL Server(対応する名前で出力として構成)に転送し、履歴とPowerBIで視覚化します。
SELECT DateAdd(second,-5,System.TimeStamp) as WinStartTime, system.TimeStamp as WinEndTime, DeviceId, Avg(Temperature) as AvgTemperature, Count(*) as EventCount INTO outputbi FROM input GROUP BY TumblingWindow(second, 5), DeviceId SELECT DateAdd(second,-5,System.TimeStamp) as WinStartTime, system.TimeStamp as WinEndTime, DeviceId, Temperature as Temperature, Count(*) as EventCount INTO outputsql FROM input GROUP BY TumblingWindow(second, 5), DeviceId
使用可能なイベントハブデータの代わりにデータを置き換えて、受信データストリームをデバイスから必要な場所(別のイベントハブキュー、ストレージ(JSON形式など)など)にリダイレクトできます。
そこから、このデータを取得して、任意の手段(HDInsightなど)を使用して処理したり、ExcelまたはPowerBIを使用して視覚化したりできます。
たとえば、PowerBI:
![](https://habrastorage.org/files/c02/892/67f/c0289267f05a474fb96354eff9ac7bd2.png)
またはAzure SQL:
![](https://habrastorage.org/files/071/da1/293/071da12939b749a69f60d4726e6e8174.png)
またはExcelでも:
![](https://habrastorage.org/files/a6a/8b0/0ec/a6a8b00ec9074baa8ee06a2694d73364.png)