セットアップ
配線する
Raspberry Pi の GPIO (General Purpose Input/Output) 端子に、温度センサーを接続します。電源ピン (赤いケーブル) は最後に挿してください。温度センサーの向きにもご注意ください。
使うピンは、3.3 V の電源ピン (01)、Ground、GPIO 4 の 3 つです。
Raspberry Pi でセンサーを使えるように設定する
Raspberry Pi の設定として、2 つのファイルに追記して (以下の例では cat コマンドで追記していますが、vi や nano などのエディタを利用してもよいです)、適用するために再起動します。
実行コマンド
sudo su -
cat >> /boot/config.txt
dtoverlay=w1-gpio-pullup,gpiopin=4
(Ctrl+D を押します)
cat >> /etc/modules
w1-gpio
w1-therm
(Ctrl+D を押します)
reboot
しばらく待つと、再起動が完了します。もう一度 Raspberry Pi にログインしてください。
ログインできたら、Raspberry Pi がセンサーを認識できているか確認します。再起動後、センサーは /sys/bus/w1/devices/ 以下にディレクトリとして現れます (28- で始まるものがセンサーです)。
実行コマンド
ls /sys/bus/w1/devices/
実行例
pi@raspberrypi:~ $ ls /sys/bus/w1/devices/
28-0000072431d2 w1_bus_master1
トラブルシュート
もし 28- で始まるディレクトリが表示されない場合は、配線が間違っている可能性があります。特に温度センサーの向きに注意してください。
センサーごとにディレクトリが異なります。センサー値を cat コマンドで読み出してみましょう。
実行コマンド
cat /sys/bus/w1/devices/28-*/w1_slave
実行例
pi@raspberrypi:~ $ cat /sys/bus/w1/devices/28-*/w1_slave
ea 01 4b 46 7f ff 06 10 cd : crc=cd YES
ea 01 4b 46 7f ff 06 10 cd t=30625
t=30625 で得られた数字は、摂氏温度の 1000 倍の数字となってますので、この場合は 30.625 度です。センサーを指で温めたり、風を送って冷ましたりして、温度の変化を確かめてみましょう。
トラブルシュート
もし数値が 0 となる場合、抵抗のつなぎ方が間違っている可能性があります。
SORACOM Harvest Data にデータを送信する
SORACOM Harvest Data (以下、Harvest Data) を使って、センサーで取得した温度を可視化してみましょう。
SORACOM Harvest Data とは
Harvest Data は、IoT デバイスからのデータを収集、蓄積するサービスです。
SORACOM Air が提供するモバイル通信を使って、センサーデータや位置情報等を、モバイル通信を利用して容易に手間なく SORACOM に蓄積できます。 保存されたデータには受信時刻や IoT SIM の IMSI が自動的に付与され、SORACOM ユーザーコンソールでグラフ化して閲覧したり、API を通じてデータを取得したりできます。なお、Harvest Data のデータ保持期間は、デフォルトで 40 日間です。保存期間を経過したファイルは自動的に削除され、復旧できません。
Harvest Data を使うには追加の費用がかかります。詳しくは、SORACOM Harvest Data/Files の 料金プラン を参照してください。
SORACOM Harvest Data を有効にする
Harvest Data を使うには、Group の設定で、Harvest Data を有効にする必要があります。
グループ設定を開き、
をクリックして、ON にして、保存を押します。
プログラムのダウンロード・実行
実行コマンド
sudo wget http://soracom-files.s3.amazonaws.com/temperature.sh
sudo chmod +x temperature.sh
./temperature.sh
実行例
pi@raspberrypi:~ $ sudo wget http://soracom-files.s3.amazonaws.com/temperature.sh
--2019-09-27 01:45:54-- http://soracom-files.s3.amazonaws.com/temperature.sh
Resolving soracom-files.s3.amazonaws.com (soracom-files.s3.amazonaws.com)... 52.219.1.37
Connecting to soracom-files.s3.amazonaws.com (soracom-files.s3.amazonaws.com)|52.219.1.37|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 515 [text/plain]
Saving to: ‘temperature.sh.3’
temperature.sh.3 100%[=================================================>] 515 --.-KB/s in 0.1s
2019-09-27 01:46:00 (3.61 KB/s) - ‘temperature.sh.3’ saved [515/515]
pi@raspberrypi:~ $ sudo chmod +x temperature.sh
pi@raspberrypi:~ $ ./temperature.sh
sending payload={"temperature":28.437} ... done.
停止する場合は Ctrl + C
(Ctrl キーを押しながら C キーを押す) を行ってください。
トラブルシュート
以下のようなエラーメッセージが出た場合には、設定を確認してください。
{"message":"No group ID is specified: xxxxxxxxxxxxxxx"}
: IoT SIM にグループが設定されていない。{"message":"Configuration for SORACOM Harvest is not found"}
: グループで Harvest Data を有効化していない。
SORACOM ユーザーコンソールで可視化されたデータを確認する
SORACOM ユーザーコンソールで、送信されたデータを確認してみましょう。
IoT SIM を選択して、操作から「データを確認」を選びます。
下記のようなグラフが表示されていると思います。
スクリプトのデフォルト設定では 60 秒に一度データが送信されます。自動更新のボタンをオンにすると、グラフも自動的に更新されます。
さらに高度な可視化をする場合は、Lagoon 3 を利用してください。