Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Raspberry PiとMicrosoft Azureを連携してIoTを活用しよう

Raspberry Pi Zeroではじめよう! おうちで楽しむIoTレシピ 第3回

2017/12/21 14:00

 この連載では、約650円で買えるマイコンボードRaspberry Pi Zeroを使って、ITエンジニアがIoTを学べたり、家族で楽しんだりできるIoTレシピをご紹介していきます。今回紹介するのは、Microsoft Azureのクラウドサービスの一つであるIoT HubとRaspberry Piを繋ぎ、Raspberry Piで収集した情報をIoT Hubへ送るレシピです。Microsoft Azureのサインアップ方法から、Microsoft Azure IoT SDKs for Pythonのインストール、IoT Hubの設定方法を解説します。

目次

Microsoft Azureへサインアップしよう

 まず、Azure IoTを始めるにはMicrosoft Azureへのサインアップが必要です。初めてMicrosoft Azureに登録する場合、無料評価版のサブスクリプションの利用ができますので、この機会にぜひ登録してみましょう。

 また、制限はありますが、1日あたり8000メッセージまで、かつメッセージサイズ0.5KBまでならAzure IoT Hubをいつでも無料で利用することができます。

 無料枠の詳細については以下をご確認ください。

swapの領域を拡張する

 Raspberry Pi ZeroおよびZero Wの搭載メモリーは512MBです。

 そのため、メモリー1GB未満の場合、メモリー不足のため 後述する「Microsoft Azure IoT SDKs for Python」のビルドが失敗する恐れがあります。そのため、実メモリーの退避場所としてswap領域を拡張します。

 メモリーの使用状況を確認するには、freeコマンドを実行します。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:            434          41         332           5          60         340
Swap:            99          63          36

 Raspbian Stretchの場合、デフォルトで割り当てられているswap領域は100MBになっているため、この値を拡張します。swap領域はdphys-swapfileで管理されていて、設定を変更するには/etc/dphys-swapfileを編集します。

 今回はswap領域を1024MB(1GB)に拡張するため、以下のようにCONF_SWAPSIZEの値を1024(MB)に変更します。

$ sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE=100

CONF_SWAPSIZE=1024

 編集後、dphys-swapfileを再起動します。

$ sudo systemctl restart dphys-swapfile

 swaponコマンドでswap領域が拡張されたか確認してみましょう。Siseが以下のようになっていれば成功です。

$ swapon -s
Filename                                Type            Size    Used    Priority
/var/swap                               file            1048572 0       -1

Microsoft Azure IoT SDKs for Pythonのインストール

 swap領域の拡張が終わったら、次はMicrosoft Azure IoT SDKs for Pythonをインストールします。このツールはRaspberry Pi ZeroとAzure IoT Hubを繋ぐために必要となるツールです。

 なお、Microsoft Azure IoT SDKs for Pythonには以下の2つのSDKが含まれています。

  • Azure IoT Hub Device SDK for Python:Azure IoT Hubにクライアントデバイスを接続
  • Azure IoT Hub Service SDK for Python:Azure IoTのバックエンドアプリケーションの開発

 インストールするには、まずgitコマンドでRaspberry Pi Zeroにクローンします。ターミナルでRaspberry Pi Zeroにログインし、以下のコマンドを実行します。

$ git clone --recursive https://github.com/Azure/azure-iot-sdk-python.git

 注意点としては、このリポジトリは依存関係のためにGitHubサブモジュールを使用しています。サブモジュールを自動的にクローンするには、--recursiveオプションを必ず使用します。

 次に、以下のコマンドsetup.shbuild.shの順番で続けて実行します。ビルドするには20分程度の時間が必要になってきますので、その間は待ちましょう。

$ cd azure-iot-sdk-python/build_all/linux
$  ./setup.sh
$  ./build.sh

著者プロフィール

  • 平 愛美(タイラ マナミ)

     熊本県出身のITエンジニア。エクストリームデザイン株式会社所属。2児の母で、趣味は写真とグルメ。最近はRaspberry Pi、Arduinoを使った家庭内IoTについて日々研究するIT系母ちゃんとして活躍中。主な著書は、『改訂3版 Linuxエンジニア養成読本』(寄稿、技術評論社 刊)、『Lin...

バックナンバー

連載:Raspberry Pi Zeroではじめよう! おうちで楽しむIoTレシピ
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5