ラズパイでなんちゃってスマートホームを構築するにあたり、初心者の私がwebや書籍を調べてやったことを備忘録のようにつづっています。
ラズパイと温湿度センサを使って、部屋の状態を喋るためには、、、
前回に引き続き、ラズパイで検出した温湿度をBluetoothスピーカーに喋らせます。そして、不快指数を計算し、部屋の状態をLEDで表現します。さらに、外気の温湿度をBluetoothスピーカーに喋らせる。そして、不快指数を計算し、外の状態をLEDで表現します。今回は、
について説明します。
簡単にできます。全体の流れ
流れは以下のような感じです。難しいことは何もやっていません。
中身が非常に長くなるので、四部作で紹介します。
第二部 不快指数に応じて部屋の状態を判断し、部屋の状態(暑い、寒い)をスピーカーから喋らせる
第三部 外気温をwebAPIで取得して、不快指数により外の状態をスピーカーから喋らせる
第四部 部屋の状態、外の状態をLEDで表現する。
今回は第二部です。
不快指数に基づき、部屋の状態を判定(暑い、寒い、心地よい)
- 比較した結果から、部屋の状態を決定する。
- 部屋の状態をスピーカーに喋らせる。
ラズパイと温湿度センサとBluetoothスピーカがあれば、準備OK
準備するものは、
- ラズパイ
- 温湿度センサ(DHT11)
- ラズパイとセンサをつなぐケーブル類
- Bluetoothスピーカー
となります。
今回使用した温湿度センサはこれです。簡単に温湿度を表示させることができておすすめです。
![]() |
|

それでは実際の作業について説明します。
部屋の状態を表す不快指数の判定基準を決定する
前回計算した不快指数を使って、部屋の状態を判定します。まずは、部屋の状態を判定する基準をつくります。次のような判定基準1から10を設けました。
不快指数 | 部屋の状態 | |
---|---|---|
1 | 40未満 | 寒くてたまらない状態 |
2 | 40以上、45未満 | 非常に寒い状態 |
3 | 45以上、50未満 | 寒い状態 |
4 | 50以上、55未満 | 肌寒い状態 |
5 | 55以上、60未満 | 寒くはない状態 |
6 | 60以上、65未満 | 非常に心地よい状態 |
7 | 65以上、70未満 | 暑くはない状態 |
8 | 70以上、75未満 | 少しだけ暑い状態 |
9 | 75以上、80未満 | 暑くて汗が出る状態 |
10 | 80以上、85未満 | 暑くてたまらない状態 |
例えば、不快指数が52.0であれば、4行目なので、”肌寒い状態”としました。
判定基準を使って、実際に判定する
ifコマンドは、もし〇〇ならば、△を実行しなさい。という使い方です。実際の使い方を見てみましょう。
subprocess.call(talk + fukai85 ,shell=True)
こんな使い方です。
これが意味するものは、もし”fukai_say_round”が85を超えたら、“talk + fukai85″で定義されたコマンドを実行しなさい。ということです。85未満であれば、次に80以上であれば、次のコマンドを実行する、という風にやればよいです。
cript type="text/javascript" src="https://xml.affiliate.rakuten.co.jp/widget/js/rakuten_widget.js">
判定に応じて、スピーカーに喋らせる
事前に、talkコマンドを定義する必要があります。
として、talkコマンドを定義します。sh~には、”Open JTalk”を使って喋らせるプログラムが入っています。
Open JTalkの紹介記事(本ブログの過去記事)↓

さて、本題に戻ります。喋らせるコマンドに加えて、実際に喋るテキストを”fukai85″としています。”fukai85″を以下のようにテキストとして定義します。

今の部屋の状態は、暑くてたまらない状態です。クーラーを付けるか、クーラーの温度を下げた方が良いです。
と、喋るようになりました。以上で、第二部は終了です。続きは、第三部です。
ソースコードは、第一部で紹介しています。
本ブログの過去記事↓
コメント