IoT PnP BridgeをRaspberry Piでコンパイルしてみた

IoT Plug and Playで、ちょっとワクワクする情報が流れてきました。

github.com

どうやら、UARTやBluetooth、I2Cのデータを、IoT Plug and PlayでAzure IoT Hubへ転送するソフトウェアのようです。

f:id:matsujirushix:20191128200820p:plain

対応OSは、

の2つだけですが、、、

みんなだいすきRaspberry Piコンパイル、実行できそうか確認してみることに。

インストール手順がここにありますが、残念ながら未だWindows向けしか書かれていません。

とりあえず雰囲気で、コマンドを叩いてみます。

まずはリポジトリをクローン。

$ cd
$ git clone https://github.com/Azure/AzurePnPBridgePreview.git
$ cd AzurePnPBridgePreview

手順に沿って、submoduleをダウンロードします。

$ cd pnpbridge
$ git submodule update --init --recursive

ビルドは、、、setup.shbuild.shがそれらしいので、実行します。

$ cd scripts/linux
$ chmod a+x setup.sh
$ ./setup.sh
$ ./build.sh

cmakeが動いて、makeが動いて、なんとなく実行ファイルが出来たっぽいです♪

表示されたメッセージから、次の2つの実行ファイルが生成された模様。

[ 99%] Linking C executable pnpbridge_environmentalsensor
[100%] Linking C executable pnpbridge_bin
$ cd ~/AzurePnPBridgePreview
$ ls -l pnpbridge/cmake/pnpbridge_linux/src/adapters/samples/environmental_sensor/pnpbridge_environmentalsensor
-rwxr-xr-x 1 pi pi 1113520 Nov 28 10:45 pnpbridge/cmake/pnpbridge_linux/src/adapters/samples/environmental_sensor/pnpbridge_environmentalsensor
$ ls -l pnpbridge/cmake/pnpbridge_linux/src/pnpbridge/samples/console/pnpbridge_bin
-rwxr-xr-x 1 pi pi 1115892 Nov 28 10:45 pnpbridge/cmake/pnpbridge_linux/src/pnpbridge/samples/console/pnpbridge_bin

pnpbridge_binを実行してみます。

$ cd ~/AzurePnPBridgePreview/pnpbridge/cmake/pnpbridge_linux/src/pnpbridge/samples/console
pi@raspberrypi:~/AzurePnPBridgePreview/pnpbridge/cmake/pnpbridge_linux/src/pnpbridge/samples/console $ ./pnpbridge_bin
Info:
 -- Press Ctrl+C to stop PnpBridge

Info: Starting Azure PnpBridge
Info: Tracing is disabled
Info: Connection_type is [connection_string]
Error: Time:Thu Nov 28 11:14:04 2019 File:/home/pi/AzurePnPBridgePreview/pnpbridge/deps/azure-iot-sdk-c-pnp/iothub_client/src/iothub_client_core_ll.c Func:IoTHubClientCore_LL_CreateFromConnectionString Line:1496 Unknown token <[To fill in];SharedAccessKey> in connection string.  Ignoring error and continuing to parse
Error: Time:Thu Nov 28 11:14:04 2019 File:/home/pi/AzurePnPBridgePreview/pnpbridge/deps/azure-iot-sdk-c-pnp/iothub_client/src/iothub_client_core_ll.c Func:IoTHubClientCore_LL_CreateFromConnectionString Line:1504 iotHubName is not found
Error: Time:Thu Nov 28 11:14:04 2019 File:/home/pi/AzurePnPBridgePreview/pnpbridge/deps/azure-iot-sdk-c-pnp/iothub_client/src/iothub_client_core.c Func:create_iothub_instance Line:1035 Failure creating iothub handle
Error: Time:Thu Nov 28 11:14:04 2019 File:/home/pi/AzurePnPBridgePreview/pnpbridge/src/pnpbridge/src/iothub_comms.c Func:IotComms_InitializeIotHubDeviceHandle Line:315 Failed to create device handle

Error: Time:Thu Nov 28 11:14:04 2019 File:/home/pi/AzurePnPBridgePreview/pnpbridge/src/pnpbridge/src/iothub_comms.c Func:IotComms_InitializeIotDeviceHandle Line:396 IotComms_InitializeIotDevice failed

Error: Time:Thu Nov 28 11:14:04 2019 File:/home/pi/AzurePnPBridgePreview/pnpbridge/src/pnpbridge/src/pnpbridge.c Func:PnpBridge_Initialize Line:80 IotComms_InitializeIotHandle failed

Info: Cleaning DeviceAggregator resources
Error: Time:Thu Nov 28 11:14:04 2019 File:/home/pi/AzurePnPBridgePreview/pnpbridge/src/pnpbridge/src/pnpbridge.c Func:PnpBridge_Main Line:407 PnpBridge_Initialize failed: 7
pi@raspberrypi:~/AzurePnPBridgePreview/pnpbridge/cmake/pnpbridge_linux/src/pnpbridge/samples/console $

接続文字列が~なエラーが出ました。
config.jsonに、接続先とかブリッジするデバイスを設定しないといけないみたい。

まだ動作確認とれていませんが、なんとなくRaspberry Piでも動かせそうな感じでした。