こんにちは、FL.OPSの人、山本です。
最近 IoT と言うキーワードをよく耳にしますが、Microsoft Azure を使うと簡単にデータをクラウドに蓄積して、可視化することができます。
ということで今回は、Raspberry Pi から Microsoft Azure にデータを送ってExcel で見ると言うのをやって見ようと思います。
準備するものは、以下です。
・Raspberry Pi (モデル B+ を使いました)
・Microsoft Azure アカウント
・操作/データ表示用パソコン
システム構成と役割は、以下です。
先ずは Raspberry Pi
OSは、ラズビアン8を使っています。
Azure IoT のメッセージを通知するサンプルプログラムを含む開発環境がgit上に公開されていますのでそれを使います。
https://github.com/Azure/azure-iot-sdks
言語は「C」「Node.js」「Java」「.NET」「Python」が用意されています。
ネットで探してみると「Node.js」の環境構築記事は多かったので、今回は「Python」の環境を作ってみます。
では、開始。
1.スワップ領域の変更
Raspberry Pi B+だと搭載メモリが少なく、buildが行えないため、
以下のコマンドを実行しRaspberry Piのスワップ領域を1GBへ拡張。
(1) スワップサービス停止
sudo /etc/init.d/dphys-swapfile stop
(2) スワップ領域変更
sudo vi /etc/dphys-swapfile
ファイル内の以下の値を「1024」へ変更し保存
-------------------------------------------------------------------------------------
CONF_SWAPSIZE=1024
-------------------------------------------------------------------------------------
CONF_SWAPSIZE=1024
-------------------------------------------------------------------------------------
(3) スワップサービス起動
sudo /etc/init.d/dphys-swapfile start
(4) スワップ領域確認
以下のコマンドを実行して、スワップSizeが1GB 程度確保されていること。
swapon -s
-------------------------------------------------------------------------------------
Filename Type Size Used Priority
/var/swap file 1048572 0 -1
-------------------------------------------------------------------------------------
Filename Type Size Used Priority
/var/swap file 1048572 0 -1
-------------------------------------------------------------------------------------
2.Azure IoT SDK をローカルにコピー
Raspberry Pi 上の任意のフォルダで以下の gitクローン コマンドを実行。
git clone --recursive https://github.com/Azure/azure-iot-sdks
※「--recursive」を付けないと、「c-utility」などサブモジュールをクローンしてくれないので注意!
3. Python環境構築
(1) cmakeのバージョンが3.x 以上であることを以下のコマンドで確認
cmake --version
※上記バージョンに満たない場合はバージョンアップをする。
(2) gccのバージョンが4.9以上であることを確認
gcc --version
※上記バージョンに満たない場合はバージョンアップをする。
(3) 2.でクローンした以下のフォルダに格納されているシェルを順番に実行
azure-iot-sdks/python/build_all/linux/setup.sh
azure-iot-sdks/python/build_all/linux/build.sh
4.サンプルプログラムの編集
(1) IoT Hub 接続文字列の埋め込み
以下のフォルダに格納されているサンプルプログラムをエディターで開く
azure-iot-sdks/python/device/samples/iothub_client_sample.py
-------------------------------------------------------------------------------------
connection_string = "[device connection string]"
-------------------------------------------------------------------------------------
connection_string = "[device connection string]"
-------------------------------------------------------------------------------------
上記のダブルクォーテーション(" ")で挟まれた箇所に「Azure IoT Hub」との通信用
文字列(※)をコピペする。
(※) この文字列は次回「Azure IoT Hub 編」で
(2) プロトコルの変更
サンプルプログラムをエディタで開き、protocol をMQTTへ変更。
vi iothub_client_sample.py
-------------------------------------------------------------------------------------
protocol = IoTHubTransportProvider.AMQP
-------------------------------------------------------------------------------------
protocol = IoTHubTransportProvider.AMQP
-------------------------------------------------------------------------------------
上記の「AMQP」を「MQTT」へ変更
以上でRaspberry Pi 側の準備は完了。
次回は、「Azure IoT Hub 編」です。