[レポート] IoT もくもく会(SORACOMとラズパイ編)

こんにちは、坂巻です。

先日、株式会社ソラコム様のイベント、
IoT もくもく会(SORACOMとラズパイ編)に参加してきました。

ハンズオンの様子についてレポートします。

目次

  • はじめに
  • 機材について
  • ハンズオン
    • ユーザーコンソールを使用してAir SIMを管理する
    • Raspberry Piへの接続
    • Air SIMを使って、インターネットに接続する
    • ユーザーコンソールによる通信の確認
    • 超音波センサーを使って距離を計測する
    • クラウドにデータを送る
    • Twitterと連携してみる
  • おわりに

はじめに

本イベントの概要です。

IoTもくもく会は、IoT に取り組み始めた方向けに、ラズパイ(Raspberry Pi)とセンサー、3Gのドングルをソラコムからお貸し出しし、テキストに沿ってセルフラーニング(自習形式)で進めていただくイベントです。この会では、センシングデータを SORACOM のセルラーネットワークを経由して、可視化をするまでを体験いただくハンズオンテキストと、機材一式をご用意しています。

機材について

ハンズオンにて提供された機材一式です。

Raspberry

ハンズオン

ユーザーコンソールを使用してAir SIMを管理する

テキストに従い、SORACOMユーザーコンソール(以降、ユーザーコンソール)を使用して、
SORACOM AirのSIM(以降、Air SIM)をSORACOMのユーザーアカウントに登録します。

Raspberry

Raspberry Piへの接続

Raspberry Piは事前に設定が済んでいるようで、
電源をいれると応答がありsshで接続ができました。

$ ping 192.168.123.106
PING 192.168.123.106 (192.168.123.106): 56 data bytes
64 bytes from 192.168.123.106: icmp_seq=0 ttl=64 time=8.108 ms
(略)
ssh pi@192.168.123.106
(略)
pi@raspberrypi ~ $

Air SIMを使って、インターネットに接続する

USBドングルにAir SIMをはめ込みます。
物理的にはめ込むだけですが、このハンズオンの一番の難関との事です。

don

多少苦戦しましたが、
USBドングルにAir SIMをはめ込むことができましたので、
Raspberry Piに接続します。    don2

USBドングルを使用するために、
Raspberry Piにパッケージをインストールします。

pi@raspberrypi ~ $sudo apt-get install -y usb-modeswitch wvdial

Raspbianのバージョンによっては、
usb-modeswitchパッケージがデフォルトでインストールされている事があるようです。

続いて、接続設定スクリプトをダウンロードして実行します。

pi@raspberrypi:~ $ curl -O https://soracom-files.s3.amazonaws.com/setup_air.sh

環境が整いインターネット接続が確認できました。

pi@raspberrypi ~ $ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=58 time=331 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=58 time=389 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=58 time=389 ms

ユーザーコンソールによる通信の確認

ユーザーコンソールでは、
データ通信量をAir SIMごとにチャート形式で確認することができます。  don2

なお、データ通信量が反映されるまでに5〜10分程度かかるそうです。

また、ユーザーコンソールで、通信量にしきい値を設定を行うと、
メール通知や通信帯域制限行うことができます。

今回は、通知を有効にし通信量1MiBでしきい値を設定してみました。
意図的に1MiBのダウンロードを実施したところ、以下のメール通知がありました。

 don2  

超音波センサーを使って距離を計測する

Raspberry PiのGPIOとブレッドボードを接続します。

 don2

GPIOの配線を間違えると、煙があがったり燃えたりする事があるようです。
GPIOの詳細についてはこちらをご確認ください。

続いて、センサー値を読み込むプログラムをダウンロードします。

pi@raspberrypi:~ $ curl -O http://soracom-files.s3.amazonaws.com/sensor_test.py

プログラムを実行して、
センサーの前に障害物をおくと、リアルタイムで距離を確認することができました。

pi@raspberrypi ~ $ python sensor_test.py
距離: 40.8 cm
距離: 40.4 cm
距離: 39.8 cm
(略)

ちなみに、センサーは超音波を出力し、 戻りの速度で距離を計算しているようです。

クラウドにデータを送る

センサーで障害物を検知した時に、SORACOM Beamを使ってクラウド(Kibana)へデータを送ります。
以下の仕組みでクラウドにデータが送信されます。

 don2

ユーザーコンソールより、SORACOM Beamの設定の転送先を指定します。

 don2

データ送信用のプログラムをダウンロードし実行します。

pi@raspberrypi:~ $ curl -O http://soracom-files.s3.amazonaws.com/send_to_cloud.py
pi@raspberrypi:~ $ python send_to_cloud.py
- メタデータサービスにアクセスして IMSI を確認中 ... 440103217184488
- 条件設定
障害物を 10 cm 以内に連続 3 回検知したらクラウドにデータを送信します
センサーを手で遮ったり、何か物を置いてみたりしてみましょう
- 準備完了
距離(cm): 5.0 <= 10 , 回数: 1 / 3
距離(cm): 5.1 <= 10 , 回数: 2 / 3
距離(cm): 5.1 <= 10 , 回数: 3 / 3
- ステータスが 'in'(何か物体がある) に変化しました
- Beam 経由でデータを送信します

Kibanaにアクセスすると、データの送信が確認できました。

don

Twitterと連携してみる

IFFTTでアプレット(サービス同士の組み合わせ)を作成します。

don

先程同様、ユーザーコンソールより、SORACOM Beamの設定の転送先を指定します。    don2

センサーの前に障害物をおくと、Twitterとの連携が確認できました。  don2

おわりに

はじめてソラコム様のハンズオンに参加させて頂きました。
当日使用した手順書は、解説付きで親切な手順書になっており、
短い時間のなかでもIoTの楽しさを実感することができました。

Raspberry Piを入手したら、AWS Greengrassと連携してみたいと思いました。