ラズパイ(ラズベリーパイ)で部屋の状態(暑い・寒いなど)を喋らせる

アイキャッチ画像ラズパイ

ラズパイでなんちゃってスマートホームを構築するにあたり、初心者の私がwebや書籍を調べてやったことを備忘録のようにつづっています。

ラズパイと温湿度センサを使って、部屋の状態を喋るためには、、、

前回に引き続き、ラズパイで検出した温湿度をBluetoothスピーカーに喋らせる。そして、不快指数を計算し、部屋の状態をLEDで表現します。さらに、外気の温湿度をBluetoothスピーカーに喋らせる。そして、不快指数を計算し、外の状態をLEDで表現します。今回は、”不快指数に応じて部屋の状態を判断し、部屋の状態をスピーカーから喋らせる”について説明します。

 

 

簡単にできます。全体の流れ

流れは以下のような感じです。難しいことは何もやっていません。初心者の私でもできるようなことしかやっていませんので、初心者の方も安心してチャレンジしてください。中身が非常に長くなるので、四部作で紹介します。

第一部 センサをつないで温湿度を計測し、不快指数を計算して、テキスト化する
第二部 不快指数に応じて部屋の状態を判断し、部屋の状態(暑い、寒い)をスピーカーから喋らせる
第三部 外気温をwebAPIで取得して、不快指数により外の状態をスピーカーから喋らせる
第四部 部屋の状態、外の状態をLEDで表現する。

今回は第二部です。

不快指数に基づき、部屋の状態を判定(暑い、寒い、心地よい)

計算した不快指数と、部屋の状態を判定する判定基準とを比較する。

  1. 比較した結果から、部屋の状態を決定する。
  2. 部屋の状態をスピーカーに喋らせる

ラズパイと温湿度センサとBluetoothスピーカがあれば、準備OK

準備するものは、

  • ラズパイ
  • 温湿度センサ(DHT11)
  • ラズパイとセンサをつなぐケーブル類
  • Bluetoothスピーカー

となります。

今回使用した温湿度センサはこれです。簡単に温湿度を表示させることができておすすめです。

 

by カエレバ

 

ラズパイとBluetoothスピーカーを接続する方法については、本ブログで紹介した記事を参考にしてください。↓

【ラズパイ】Google Homeの連携。エラーで音が出なくなったときの対処方法。
ラズパイ(ラズベリーパイ)とGoogle Homeの連携。時報としてGoogle Homeに喋らせる方法を紹介します。時々、Google Homeが喋らなくなるトラブルへの対処方法を初心者の方にも分かるように紹介します!

それでは実際の作業について説明します。

部屋の状態を表す不快指数の判定基準を決定する

前回計算した不快指数を使って、部屋の状態を判定します。まずは、部屋の状態を判定する基準をつくります。次のような判定基準1から10を設けました。

 不快指数部屋の状態
40未満寒くてたまらない状態
40以上、45未満非常に寒い状態
45以上、50未満寒い状態
50以上、55未満肌寒い状態
55以上、60未満寒くはない状態
60以上、65未満非常に心地よい状態
65以上、70未満暑くはない状態
70以上、75未満少しだけ暑い状態
75以上、80未満暑くて汗が出る状態
1080以上、85未満暑くてたまらない状態

例えば、不快指数が52.0であれば、4行目なので、”肌寒い状態”としました。

判定基準を使って、実際に判定する

判定には、ifコマンドを使います。ifコマンドは、もし〇〇ならば、△を実行しなさい。という使い方です。実際の使い方を見てみましょう。

if fukai_say_round > 85:
    subprocess.call(talk + fukai85 ,shell=True)

こんな使い方です。

これが意味するものは、もし”fukai_say_round”が85を超えたら、“talk + fukai85″で定義されたコマンドを実行しなさい。ということです。85未満であれば、次に80以上であれば、次のコマンドを実行する、という風にやればよいです。判定のやり方はこのように非常に簡単です。

 

 

判定に応じて、スピーカーに喋らせる

事前に、talkコマンドを定義する必要があります。

talk = “sh ~”

 として、talkコマンドを定義します。sh~には、”Open JTalk”を使って喋らせるプログラムが入っています。

Open JTalkについては、本ブログでも紹介済なので、興味がある方は参考にしてください。

Open JTalkの紹介記事(本ブログの過去記事)↓

ラズパイ(ラズベリーパイ)を使って喋らせる3つの方法を比較
ラズパイ(ラズベリーパイ)からどうやって音声を出そうか悩んでいる初心者の人向けです!目的に応じた、ラズパイ(ラズベリーパイ)を喋らせる方法を紹介します。3つ紹介しますので、その中から選べば簡単に喋らせることができます。

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

fukai85 = “今の部屋の状態は、暑くてたまらない状態です。クーラーを付けるか、クーラーの温度を下げた方が良いです。”
これで、”fukai85″のテキストが定義されたので、不快指数が85を超えたら、

今の部屋の状態は、暑くてたまらない状態です。クーラーを付けるか、クーラーの温度を下げた方が良いです。

と、喋るようになりました。以上で、第二部は終了です。続きは、第三部です。

ソースコードは、第一部で紹介しています。
本ブログの過去記事↓

ラズパイ(ラズベリーパイ)を使って、温度・湿度、不快指数をテキスト化する
ラズパイでなんちゃってスマートホームを構築するにあたり、初心者の私がwebや書籍を調べてやったことを備忘録のようにつづっています。温湿度センサを使って測定今回のネタは、ラズパイで検出した温湿度をBluetoothスピーカーに喋らせる。そ...

コメント