Sense HAT を使用して温度を監視する方法

Raspberry Pi シングルボードコンピュータを使用して周囲の温度を監視する方法にはいくつかあります。天気予報のセットアップの一環として使用することもできます。Raspberry Pi の GPIO ピンに接続された外部センサーを使用することもできますが、ここでは Sense HAT を搭載した Raspberry Pi で温度を監視する方法を説明します。

Sense HAT とは何ですか?

Raspberry Pi 社が設計および製造した公式 Raspberry Pi HAT (Hardware Attached on Top) アドオンボードである Sense HAT は、もともと国際宇宙ステーションの宇宙飛行士が使用する目的で作成されました。2015 年以降、Sense HAT を搭載した 2 台の Raspberry Pi コンピュータが、進行中の Astro Pi チャレンジに参加した学童が設計した科学実験に使用されています。この 2 台のユニットは、Raspberry Pi 4 をベースにしたアップグレード版に置き換えられ、高品質カメラが搭載されました。

宇宙での使用のために設計された特別な銀色のケースはありませんが、標準の Sense HAT ボードはまったく同じ機能を備えています。40 ピン GPIO ヘッダーを備えたすべての Raspberry Pi モデルと互換性があり、周囲の環境を監視し、独自の向きと動きを検出できるオンボードセンサーを備えています。さらに、テキスト、データ、画像を表示するための 8x8 RGB LED マトリックスがあります。ミニ 5 方向ジョイスティックもあります。

Sense HAT の感覚機能の完全な配列は以下のとおりです。

  • 湿度: 0 ~ 100% の相対湿度範囲を持つ STMicro HTS221 センサー、および 32°F ~ 149°F (0°C ~ 65°C ± 2°C) の温度感知。
  • 気圧: 260 ~ 1260 hPa の範囲を持つ STMicro LPS25HB センサー、および 59°F ~ 104°F (15°C ~ 40°C ±0.5°C) の温度感知。
  • 温度: 湿度センサーまたは圧力センサーから読み取ることができます。または、両方の読み取り値の平均を取得して測定することもできます。
  • ジャイロスコープ: STMicro LSM9DS1 IMU は、Sense HAT の地球の表面に対する回転 (および回転速度) を測定できます。
  • 加速度計: IMU のもう 1 つの機能であるこれは、複数の方向の加速度を測定できます。
  • 磁気計: IMU は地球の磁場を感知することによって、磁気北の方向を特定し、方位角を読み取ることができます。

この多目的 Raspberry Pi HAT ができることを理解したら、プロジェクトを開始する時が来ました。

ステップ 1: Sense HAT をマウントする

Sense HAT を接続するには、まず Raspberry Pi の電源を切り、電源から外してください。次に、Sense HAT (付属の黒いヘッダーエクステンダーを取り付けたもの) を Raspberry Pi の 40 ピン GPIO ヘッダーに慎重に押し込み、Sense HAT ボードが Raspberry Pi ボードの上に来るようにします。すべてのピンが正しく並んでいて、両方の列が接続されていることを確認してください。ネジで固定して固定することもできます。

40 ピン GPIO ヘッダーを備えた標準の Raspberry Pi モデルを使用できます。ただし、Raspberry Pi 400 の主な制限の 1 つは、GPIO ヘッダーが統合キーボードの背面にあることです。これは、Sense HAT が背面を向くことを意味するため、GPIO 延長ケーブルを使用して接続することをお勧めします。

ステップ 2: Raspberry Pi をセットアップする

他のプロジェクトと同様に、USB キーボードとマウスを接続し、Raspberry Pi をモニターまたはテレビに接続する必要があります。標準の Raspberry Pi OS がインストールされた microSD カードも挿入する必要があります。まだインストールしていない場合は、Raspberry Pi にオペレーティングシステムをインストールする方法を確認してください。これで電源を入れる準備が整いました。

または、モニターを接続せずにヘッドレスモードで Sense HAT を搭載した Raspberry Pi を使用し、別のコンピュータまたはデバイスから SSH を使用して Raspberry Pi にリモートで接続することもできます。これを行うと、Thonny Python IDE を使用することはできませんが、nano テキストエディタを使用してプログラムを編集し、コマンドラインから実行することはできます。

Sense HAT ファームウェアはデフォルトでインストールされているはずです。念のため、ターミナルウィンドウを開いて以下を入力します。

sudo apt install sense-hat

次に、パッケージが新しくインストールされたばかりの場合は、Raspberry Pi を再起動します。

sudo reboot

ステップ 3: Python でプログラミングを開始する

Raspberry Pi Sense HAT を Scratch ブロックベースのプログラミング言語で使用できますが、Python を使用してセンサーの読み取り値を読み取って表示します。

Thonny IDE (統合開発環境) は、Raspberry Pi で Python プログラミングを行うのに適した方法です。デバッグ機能など、多くの機能を備えています。Raspberry Pi OS のデスクトップ GUI で、メニュー (左上のラズベリーアイコン) > プログラミング > Thonny IDE に移動して起動します。

ステップ 4: 温度を読み取る

Thonny IDE のメインウィンドウに、次のコード行を入力します。

from sense_hat import SenseHatsense = SenseHat()sense.clear()temp = sense.get_temperature()print(temp)

最初の行は、SenseHatクラスをsense_hat Python ライブラリ (Raspberry Pi OS にプリインストールされています) からインポートします。これはsense変数に代入されます。3 行目は Sense HAT の LED マトリックスをクリアします。

次に温度を読み取って、Thonny IDE のシェル領域に出力します。これは摂氏で表されるため、華氏に変換したくなるかもしれません。

temp = (sense.get_temperature() * 1.8 + 32)

温度センサーの読み取り値には小数点以下に複数の桁があります。そのため、round関数を使用して小数点以下 1 桁に丸めます。

temp = round(temp, 1)

sense.get_temperature()関数は、湿度センサーに内蔵された温度センサーを読み取ります。または、sense.get_temperature_from_pressure()を使用して圧力センサーから温度を読み取ったり、両方の読み取り値を取得して平均値を計算したりすることもできます (それらを足して 2 で割ります)。

ステップ 5: Sense HAT に温度を表示する

単一の温度読み取り値を Python シェルに出力するのは少し退屈なので、代わりに新しい読み取り値を定期的に取得して、Sense HAT の RGB LED マトリックスに表示します。スクロールするテキストメッセージを表示するには、show_message関数を使用します。また、while: Trueループを使用して、10 秒ごとに新しい読み取り値を取得し続けます。これには、timeライブラリのsleep関数を使用します。

完全なプログラムを次に示します。

from sense_hat import SenseHatfrom time import sleepsense = SenseHat()sense.clear()while True:temp = (sense.get_temperature() * 1.8 + 32)temp = round(temp, 1)message = "Temp: " + str(temp)sense.show_message(message)sleep (10)

このコードを実行すると、新しい温度読み取り値が LED マトリックスにスクロール表示されます。Sense HAT に息を吹きかけて温度が変化するかどうかを確認してみてください。

温度の読み取り値は、そのすぐ下にある Raspberry Pi の CPU から伝達される熱の影響を受ける可能性があるため、より正確な数値を得るために調整が必要になる場合があります。もう 1 つの解決策は、スタッキングヘッダーを使用して Sense HAT を Raspberry Pi より高く持ち上げることです。

Raspberry Pi を使用して温度を監視する

このプロジェクトの代わりにスタンドアロンの温度センサーを使用することもできますが、Sense HAT を使用すると Raspberry Pi で温度を簡単に監視できます。また、気圧や相対湿度などの他のセンサーの読み取り値も取得して、LED マトリックスに表示することもできます。