カテゴリー
Raspberry Pi

Raspberry Pi で 暑さ指数 WBGT その3: ラズパイ Pico 2

発売されたばかりの Raspberry Pi Pico 2 を使って 暑さ指数 WBGT を推定してみました。推定式は4種類の中から選べます。

前回と今回の WBGT 記事

前回は、日本生気象学会が改定した「日常生活における熱中症予防指針 Ver.4」について説明しました。

今回は、古いVer.3と最新のVer.4の両方に対応した推定式を用います。前回の記事は、下記をご覧ください。

Raspberry Pi Pico 2

2024年9月3日に発売された 小型のマイコンボードです。詳しくは、ボクが購入時に書いたブログをご覧ください。

実行例

はじめに、今回の製作品の実行例から説明します。

下図は、暑さ指数 WBGT 推定用のプログラムを Thonny Python IDE 上で動作させたときの実行例です。右下の折れ線グラフの青色は温度値(℃)、橙色が湿度値(%)、緑色が推定 WBGT 値(℃)です。温度と同じ単位(℃)なので、直感的な指標です。

Thonny Python IDE 上で動作させたときの実行例。
折れ線グラフの青色は温度値(℃)、橙色が湿度値(%)、緑色が推定 WBGT 値(℃)

ハードウェアの製作

下図はハードウェアの製作例です。Raspberry Pi Pico 2 の5番ピンから9番ピンに秋月電子通商製 AE-SHT31 を半田付けしました。AE-SHT31の+V端子が Raspberry Pi Pico 2 の5番ピンにくるようにしてください。

Raspberry Pi Pico 2 の5番ピンから9番ピンに秋月電子通商製 AE-SHT31 を半田付けする
(本図はイメージです。半田付けせずに撮影)

ブレッドボードで製作する方法もあります。配線は同様です。Raspberry Pi Pico 2 の5番ピンから9番ピンに AE-SHT31 を接続します。

ブレッドボードで製作することもできる

上図では、Raspberry Pi Pico 2 の VSYS端子(39番ピン)から電源を供給しました。単3電池であれば直列2本で供給できます。他のDC 1.8V~5Vの電源で駆動することもできます。

回路図

回路図は以下のようになります。AE-SHT31の電源+V、GNDはRaspberry Pi Pico 2の GPIO から供給します。

AE-SHT31の接続方法と、電源供給用VSYS端子(39番ピン)

温湿度センサーモジュール AE-SHT31

使用した 温湿度センサーモジュール AE-SHT31 を下図に示します。上部に実装されている黒色の半導体は、SENSIRION 製の温湿度センサー SHT31 です。

SENSIRION 製の温湿度センサー SHT31 を搭載したモジュール AE-SHT31
(秋月電子通商、SHT31使用 高精度温湿度センサーモジュールキット)

温湿度センサーモジュール AE-SHT31 :
https://akizukidenshi.com/catalog/g/g112125/

WBGT 推定プログラム

プログラムは下記からダウンロードできます。

Raspberry Pi Picoシリーズ用 WBGT:
https://github.com/bokunimowakaru/wbgt/blob/master/raspi-pico/example04_wbgt.py

熱中症予防指針の Ver.3 と Ver.4の切り替えは、変数wbgt_verで行えます。また、wbgt_wide に True にすると低温時の WBGT に対応します。

wbgt_ver = 3        # WBGTバージョン 3 または 4
wbgt_wide = True    # 筆者の独自拡張Wide版

以下のように、変数 wbgt_ver と wbgt_wide の状態に応じたWBGT推定式を定義しました。

if wbgt_ver == 3 and wbgt_wide == False:
    wbgt = 0.687*temp + 0.0360*hum + 0.00367*temp*hum - 2.062
elif wbgt_ver == 3 and wbgt_wide == True:
    wbgt = 0.725*temp + 0.0368*hum + 0.00364*temp*hum - 3.246
elif wbgt_ver == 4 and wbgt_wide == False:
    wbgt = 0.724*temp + 0.0342*hum + 0.00277*temp*hum - 3.007
elif wbgt_ver == 4 and wbgt_wide == True:
    wbgt = 0.754*temp + 0.0382*hum + 0.00264*temp*hum - 3.965
else:
    print("ERROR:WBGTバージョンが不正")

低消費電力

本機は、パソコンやRaspberry PiにUSB接続して、WBGT値を転送することができます。

ところで、Raspberry Pi 単体ではダメなのでしょうか?

Raspberry Pi は動作時に発熱して、センサ値に影響することがあります。また、ACアダプタが必要なので、必ずしも測定したい場所に設置できるとは限りません。

下図のように低消費電力の Raspberry Pi Pico シリーズを使った場合は、発熱が少なく乾電池でも動作します。このため、測定したい場所にコンセントが無くても動作させることができるようになります。

Raspberry Pi 5 と Raspberry Pi Pico シリーズの消費電流比較。Pico シリーズの場合、ディープスリープを併用すれば、本図よりもさらに1/10以下に低減できる。

応用方法(案)

例えば、暑さ指数 WBGT が31℃以上になったときに、赤外線リモコン信号を出力して、エアコンを運転するような応用例があるでしょう。

また、下図のように Bluetooth などを使ってワイヤレスシステムにすることも出来ます。

Raspberry Pi Pico シリーズにワイヤレス通信機能を付加する方法の一例

Wi-Fi 対応 Raspberry Pi Pico W

Raspberry Pi Pico 2 にはワイヤレス通信機能が搭載されていません。Wi-Fiによるワイヤレス通信が可能な Raspberry Pi Pico W も販売されています。

SHT31とRaspberry Pi Pico
Wi-Fiによるワイヤレス通信が可能な Raspberry Pi Pico W を使用したときの一例

Raspberry Pi Pico W 用プログラム

下記は、CSVxUDP 方式で Wi-Fi 送信が可能な Raspberry Pi Pico W 用のプログラムです。

Raspberry Pi Pico W用 WBGT:
https://github.com/bokunimowakaru/wbgt/blob/master/raspi-pico/example04_wbgt_udp.py

CSVxUDP方式:
https://bokunimo.net/iot/CSVxUDP/

CSVxUDPデータの受信用プログラム:https://github.com/bokunimowakaru/udp/blob/master/udp_monitor/udp_monitor_chart.py

CSVxUDP Sensor Monitoring Software
CSVxUDPデータの受信用プログラムの画面例

Wi-Fi+乾電池駆動可能な プログラム

Raspberry Pi Pico W を使えば、Wi-Fi通信と乾電池駆動が可能です。接続図は、Raspberry Pi Pico 2 の場合と同じです。

Raspberry Pi Pico W を使った Wi-Fi+乾電池駆動のようす

センサ値を送信するとき以外はディープスリープにすることで、乾電池の消耗を減らすことができます。

ディープスリープに対応したプログラムは、下記に公開しました。

乾電池駆動可能な Raspberry Pi Pico W用 WBGT:
https://github.com/bokunimowakaru/wbgt/blob/master/raspi-pico/example04_wbgt_udp_le.py

ディープスリープ中は Thonny Python IDE との通信ができなくなります。このため、プログラムは Raspberry Pi Pico W に書き込んでおく必要があります。再び Thonny Python IDE に接続するには、一度USBを切断してから再接続し、速やかに Thonny Python IDE 上の停止ボタンをクリックして接続してください。

by bokunimo.net

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

 - 
Chinese (Simplified)
 - 
zh-CN
Chinese (Traditional)
 - 
zh-TW
English
 - 
en
French
 - 
fr
German
 - 
de
Italian
 - 
it
Japanese
 - 
ja
Korean
 - 
ko
Russian
 - 
ru
Spanish
 - 
es