V1.0 2020/10/27

抜粋版
クラウド型温湿度ロガー開発キット～ＡＷＳを使って、温湿度情報の活用により、感染予防、農業等に貢献～

実践編

AWS IoT
スペクトラム・テクノロジー株式会社
https://spectrum-tech.co.jp
sales@spectrum-tech.co.jp
all rights reserved 2020 spectrum technology co.

1

温湿度ロガー開発キット 目次
Pi運用マニュアルページ

ＡＷＳ ＩｏＴ開発

ページ 抜粋版のため、ペー

1.
2.
3.
4.

①
②
③
④

RaspberryPiについてLinux基本コマンド
基本操作
日常運用（ウイルススキャン、更新）

3
4
5
6

メニュー
ＡＷＳ設定
ＡＷＳ ＩｏＴ設定
温湿度ロガー

8 ジと本文は一致しま
9 せん
16• 全体構成• 絶対湿度• BME280接続• 単体試験• AWS IoTルール設定• プログラム設定• IoT折り返し試験• ＤｙｎａｍｏＤＢ確認• リアルタイム表示設定、確認• ＩＡＭユーザ追加• CSVデータ取得• Ｃｌｏｕｄｗａｔｃｈ使い方
all rights reserved 2020 spectrum technology co.

293135363743454648515557

2

RaspberryPi運用マニュアル
1. Raspberry Piについて既に全世界で1000万台以上販売された手のひらサイズのコンピュータです。
ＬｉｎｕｘベースのＲａｓｂｉａｎＯＳで動作しております。

2. Linux基本コマンド① システム関係• 起動：電源を入れると自動で起動します。
• 再起動：$ reboot
又は、menu>shutdown>reboot；左上のメニューから• 終了：$ shutdown
又は、menu>shutdown>shutdown；左上のメニューから• ログアウト $ exit
又は、menu>shutdown>logout；左上のメニューから• 日本語／英語の入力切替：キーボードのＣＴＬとｊを同時に押します（コントロール：左下とｊ）

all rights reserved 2020 spectrum technology co.

3

RaspberryPi運用マニュアル
2.

Linux基本コマンド② ディレクトリ操作、コピー、移動、削除
pi@raspberrypi:~$ cd /home/pi/Documents ディレクトリの切り替え
pi@raspberrypi:/home/pi/Documents$ ls
ファイルとディレクトリの表示（表示したら操作したいファイルを右クリックでコピペして操作します
pi@raspberrypi:~$ cp ファイル名 ディレクトリ
配下のディレクトリのファイルを別のディレクトリへコピー
pi@raspberrypi:~$ mv ファイル名 ディレクトリ
配下のディレクトリのファイルを別のディレクトリへ移動
pi@raspberrypi:~$ sudo rm ファイル名
ファイルの削除
便利な機能
rm –help
コマンドのオプションが分からない場合は、ヘルプで問い合わせる。すべてのコマンド共通(マイナスを２個とhelp)③ ユーザ権限、プロセス他
pi@raspberrypi:~ $ su スーパーユーザ（root)に切り替え、パスワードを入力
pi@raspberrypi:~$ ps a
現状の動いているプロセスを表示
pi@raspberrypi:~$ kill特定のプロセスを強制終了
pi@raspberrypi:~$ sudo apt-get install pkg
パッケージのインストールなどに使用
pi@raspberrypi:~$ date
日付、時間の設定を行います。
pi@raspberrypi:~$ sudo leafpad /etc/network/interfaces
インタフェースに記述してい内容を変更します。Viよりも使いやすいです。

④ モジュール、usb、メモリ、ＨＤＤなどの表示
pi@raspberrypi:~$ lsmod
pi@raspberrypi:~$ lsusb
pi@raspberrypi:~$ free –mt
pi@raspberrypi:~$ df

linuxのモジュールリスト表示
usbのデバイス表示
メモリ使用状態表示
ＨＤＤ（マイクロＳＤ）の使用状態表示

all rights reserved 2020 spectrum technology co.

4RaspberryPi運用マニュアル
デスクトップ上によく使うコマンド.txtがあります。
コピペして使ってください

3. Raspberry Piの基本操作① 表示画面と内容トップ画面（上段のタスクバーで選択）• メニュー• ブラウザ• ファイルマネジャ• ターミナル• マルチ画面選択

•
•
•
•
•
•
•

ＶＮＣ
日本語入力
ＢＬＥWiFi
音量
ＣＰＵ使用率時刻

all rights reserved 2020 spectrum technology co.

5RaspberryPi運用マニュアル
4. 日常運用①

セキュリティ対策（アンチウイルス更新、スキャン）• アンチウイルス対策として無料のclamAVをインストールしてます。
• 手動での運用を基本としてます。
パターンファイル更新

手動スキャン時に更新されます
手動でスキャン
$ sudo clamscan --infected --remove --recursive
自動化可能ですが、バックグランドで重くなる可能性大。コマンド入力後約５分位かかります。

all rights reserved 2020 spectrum technology co.

6RaspberryPi運用マニュアル
4. 日常運用②

インストール済パッケージの更新リスト、アップグレード• Linuxの場合は、頻繁に更新が発生します。アップグレードを定期的に実施してください。
• 更新前には、バックアップを取ることをお勧めします。特にアップグレードはまれに動作不良、戻せない状態が発生します。自己責任で実施してください。

更新リスト取得$ sudo apt-get update
アップグレード実施$ sudo apt-get upgrade

all rights reserved 2020 spectrum technology co.

7

ＡＷＳ ＩｏＴ開発①．メニュー• ＡＷＳ設定ＡＷＳ ＩｏＴを実施するためのＡＷＳの設定
ＡＷＳの詳細説明は以下のＵＲＬへ
https://aws.amazon.com/jp/cloud/?nc2=h_l2_cc• ＡＷＳ ＩｏＴ設定
ＡＷＳ ＩｏＴのデバイス、証明書、ポリシー、ルールなどの設定を行います。
開発者ガイトは以下のＵＲＬへ
https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/what-is-aws-iot.html• 温湿度ロガー
ＢＭＰ２８０センサを使いＭＱＴＴプロトコルを介して、ＡＷＳ ＩｏＴに接続し、ＡＷＳ ＤｙｎａｍｏＤＢにデータを保存し、そのデータを外部ツールでリアルタイム表示します。またその過程の、Ｒａｓｐｂｅｒｒｙ Ｐｉでのセンサ単体試験、ＡＷＳ ＩｏＴ折り返し試験などのプログラムも提供。順序だてて構築して行きます。

（参考）• Ｇｉｔｈｕｂなど• https://github.com/aws/aws-iot-device-sdk-python3（一部のプログラムはＴＬＳエラーで動きません）• https://github.com/eclipse/paho.mqtt.python3• ＭＱＴＴ• https://www.ibm.com/developerworks/jp/iot/library/iot-mqtt-why-good-for-iot/（ＩＢＭの資料でわかりやすい）all rights reserved 2020 spectrum technology co.

8

ＡＷＳ ＩｏＴ開発②．ＡＷＳ設定• 手順１：アカウントの作成• https://aws.amazon.com/jp/register-flow/• 必要なメールアドレス、パスワードなどを入力します。

all rights reserved 2020 spectrum technology co.

9ＡＷＳ ＩｏＴ開発②．ＡＷＳ設定• ＡＷＳトップ画面• 利用する場合に、地域を意識して設定してください。地域毎に料金が変わったり、利用できるサービスが限定されている場合があります。

all rights reserved 2020 spectrum technology co.

10

ＡＷＳ ＩｏＴ開発③．ＡＷＳ ＩｏＴ設定

AWS IoT Core

• 画面説明１• ＡＷＳトップ画面からＡＷＳ ＩｏＴのサービスを選択します。
• モニタリング：接続状況がひとめで分かりますall rights reserved 2020 spectrum technology co.

11

ＡＷＳ ＩｏＴ開発③．ＡＷＳ ＩｏＴ設定

AWS IoT Core• ポリシー作成４• ポップアップしたポリシーの一覧から該当のポリシーを選んでアタッチします。

all rights reserved 2020 spectrum technology co.

12

ＡＷＳ ＩｏＴ開発AWS IoT Core

④ 温湿度ロガー全体構成ロガー開発キット

取得データと用途
温度
•相対湿度
•
気圧
•
容積絶対湿度：感染症•
重量絶対湿度：空調•
露点温度：農業•IoT MQTT
protocolAWS IoT Core Amazon DynamoDB

リアルタイムグラフ

BME280

ＢＭＥ２８０センサの気温、湿度、気圧、絶対湿度等データをＡＷＳ ＩｏＴに送信し、ＤｙｎａｍｏＤＢに確保します。ＤｙｎａｍｏＤＢの値を外部からリアルタイムのグラフ表示します。またＤｙｎａｍｏＤＢを温湿度ロガーとしてデータを保存します。
all rights reserved 2020 spectrum technology co.

13

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー
取得データ一覧

BME280から取得したデータと算出したデータ一覧です。10秒毎にdynamoDBに格納します。
取得データ名

値(例）

内容

count

18806

カウンタ

Timestamp

2020/10/22 15:52:55

取得時刻

deviceidbme280

デバイス名

Temp(C)

22.840765323402593温度Humid(%)

48.499156482511886

相対湿度

Pressure(hPa)1005.34559519194

気圧

volumetrichum(g/m3)

9.892641569438664

容積絶対湿度

計算式、医療系に利用

mix ratio(g/kg)

8.359050575661259

重量絶対湿度

計算式、空調、建築系で利用

dew point(C)11.415924788405619

露点温度

計算式、農業で利用

all rights reserved 2020 spectrum technology co.

利用用途

dynamoDBのテーブル内での装置区分に利用します。

14

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー
容積絶対湿度• 容積絶対湿度(volumetric humidity)について
大気中に含まれる水蒸気の密度（容積あたりの質量）である。単位はグラム毎立方メートル（g/m3）が用いられている。
医療系で使用される。

•容積絶対湿度計算式
温度と相対湿度から算出します。以下の計算式サイトを参照
https://www.shinyei.co.jp/stc/service/water_converter.html
飽和水蒸気圧＝6.1078*10^{7.5*温度/(温度+237.3)}
飽和水蒸気量＝217*飽和水蒸気圧/(温度+273.15)
容積絶対湿度＝飽和水蒸気量*相対湿度/100

all rights reserved 2020 spectrum technology co.

15

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー
露点温度• 露点温度(dew point)について
露点温度は、水蒸気を含む空気を冷却した時に凝結し始める温度です。つまり空気中の水蒸気分圧が飽和水蒸気圧となる時の温度です。
露点温度が高いと空気が湿っている。低いと乾燥している状態。特に農業では重要。

•露点温度計算式
温度と相対湿度から算出します。
飽和水蒸気圧＝6.1078*10^{7.5*温度/(温度+237.3)}
水蒸気圧＝飽和水蒸気圧*相対湿度/100
露点温度＝237.3*log10(6.1078/水蒸気圧)/(log10(水蒸気圧/6.1078)-7.5)

露点温度

全体容積に対する
相対湿度：50％

全体容積に対する相対湿度：75％

全体容積に対する相対湿度：100％

all rights reserved 2020 spectrum technology co.

16

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー
絶対湿度と感染症の関係• 絶対湿度について
大気中に含まれる水蒸気の量を質量で表すものである。単位あたりの水蒸気量が質量（gあるいはkg）で表される。1m3の空気の中に水蒸気が質量として何gあるかを実際の量として表現するものである。
なお、一般的に使われている相対湿度は、その気温の空気が水分を保有できる最大量に対してどれだけの水分があるかどうかを割合で表現したものである。

https://komoriss.com/relativehumidity-volumetric-humidity/• 本キットでは、以下の計算式で温湿度から絶対湿度を算出しています。

絶対湿度=217*(6.1078*10^(7.5*t/(t+237.3)))/(t+273.15)*RH/100
t:気温、ＲＨ：相対湿度

宮城県医師会より絶対湿度とインフルエンザの関係〜7g/㎥ ：より起こりやすい：危険7〜11g/㎥：流行しやすい：注意
11〜g/㎥ ：流行しにくい：快適

all rights reserved 2020 spectrum technology co.

17

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー
Ｒａｓｐｂｅｒｒｙ ＰｉとＢＭＥ２８０の接続

メスーオスのジャンパで接続
Ｐｉ ブレッドボード ＢＭＥ２８０
１-----＋1(VDD),3(CSB)
３-----------------------4(SDA)
５----------------------- 6(SCL)
９-----ー2(GND), 5(SDD)
all rights reserved 2020 spectrum technology co.

AWS IoT Core
ＢＭＥを接続するためにハンダでＰｉｎを付けます。Ｊ３のハンダは実施しないでください。
下の3（ＣＳＢ）と3.3Ｖ接続で代用します。

3(csb):I2C設定
5(SDD):アドレスを0ｘ76に指定

18

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー

AWS IoT Core$ cd /home/pi/Documents/paho2$ python3 bme280_sample.py

ＢＭＥ２８０単体試験• Ｐｉコンソールでbme280_sample.pyを動作させます。
• 気温、気圧、湿度が出力されます。
• 出力されない場合は、Ｉ２Ｃの設定を確認。0ｘ76に値が表示されれば正常。
$ i2cdetect -y 1

all rights reserved 2020 spectrum technology co.

19

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー

AWS IoT CoreAWS IoTのルール設定• ＡＷＳ ＩｏＴのコンソールからＡＣＴ＞ルール• ルール作成を押します。（メール送信と同様）

all rights reserved 2020 spectrum technology co.

20

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー

AWS IoT Core

mqtt_subscribe_json.pyのプログラム設定••

Windows PCにさくらエディタなどをインストール
Ｗｉｎｄｏｗｓネットワークからｒａｓｂｅｒｒｙ ｐｉをクリックしてpi>documents>paho2• mqtt_subscribe_json.pyをｗｉｎｄｏｗｓのローカルにコピペします。
• エディタでローカルのmqtt_subscribe_json.pyを開きます。
• 電子証明書などの情報を設定します。5-14行

MQTT_TOPIC = “pi3” ａｗｓ ｉｏｔルールのトピック
MQTT_HOST = “xxx.amazonaws.com"エンドポイントの値を入れます
CA_ROOT_CERT_FILE = "root-CA.crt"
THING_CERT_FILE = “xxx-certificate.pem.crt"電子証明書番号
THING_PRIVATE_KEY = “xxx-private.pem.key”電子証明書番号•
秘密鍵のペアである公開鍵は使用しません•

証明書をフォルダにアップロード• 最初にダウンロードした証明書のうち• root-CA.crt, xxx-certification.pem.crt,• Xxx-private.pem.keyの３個を• pi>documents>pahoのフォルダにアップロード
書き換えたmqtt_subscribe_json.pyをアップロード
all rights reserved 2020 spectrum technology co.

21

ＡＷＳ ＩｏＴ開発AWS IoT Core

④ 温湿度ロガー
ＡＷＳ ＩｏＴ折り返し試験••

Ｐｉのコマンド画面からsubscriber, publisherのやりとりを実施
subscribe側に気温、湿度、気圧のデータが受信できていればＯｋ$ cd /home/pi/Documents/paho2$ python3 mqtt_subscribe_json.py 受信側を先に立ち上げ
別のウインドを開き$ python3 bme280_mqtt_publish_logger.py 送信側立ち上げ

all rights reserved 2020 spectrum technology co.

22

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー

Amazon DynamoDBＡＷＳ ＤｙｎａｍｏＤＢでの確認• テーブル＞設定したテーブル＞項目• やりとりのデータが入っていればＯＫ

all rights reserved 2020 spectrum technology co.

23

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー

AWS IoT Core

リアルタイム表示• ＩｏＴ．Ｋｙｏｔｏ様の利用＞グラフ• Ｄｅｖｉｃｅｉｄ：bme２８０（python3で書き込み済）• 表示対象をチェックすると自動で表示されます。

all rights reserved 2020 spectrum technology co.

24

ＡＷＳ ＩｏＴ開発④ 温湿度ロガー

AWS IoT Core

ＤｙｎａｍｏＤＢのＣＳＶエキスポート• コマンドを入力し、抽出します。便利です。
• -ｔ の後ろはテーブル名• ＞の後ろは、出力ファイル名$ cd /home/pi/Documents/DynamoDBtoCSV$ node dynamoDBtoCSV.js -t pi2_db > output.csv

all rights reserved 2020 spectrum technology co.

25