micro:bitを使ったWGBT計(暑さ指数測定器)

校外での部活動の時の熱中症が心配です。
せっかくmicro:bitを授業で使っているのでうまく生かしてAGBT計を作ることができないか考えました。本来のWGBT計は乾球(気温)、湿球(湿度)、黒球(輻射熱)を測定して暑さ指数を割り出しています。

残念ながらmicro:bitを使って黒球の測定が難しいことが分かったので、乾球と湿球を使って簡易的に割り出す早見表(https://sbs-smc.or.jp/memo/detail/14)があることがわかりました。活動先はエアコンの利かない屋内なので早見表から割り出すことにしました。
温度と湿度を測定してディスプレイに暑さ指数が表示できるようにしました。そして、危険度が一目でわかるようにmicro:bitのLEDを使って光るところが多いほど危険度が高いことを示すようにしました。

使った物
micro:bit v2
TFab✖️Works TFW-EN1 

micro:bit用 VIEW Graphics128 OLEDディスプレイ 
https://www.switch-science.com/products/7445?srsltid=AfmBOoqYr7LAg4ckom-THTfFmQjfZeUFt1vldUzAEZCvYaDhj7hoPVz_

プログラム

JavaScriptのコード

let t = 0
let h = 0
let a = 0
let W = 0
basic.forever(function () {
    t = stem.getTemperature(OutputNumberFormat.INTEGER)
    h = stem.getHumidity(OutputNumberFormat.INTEGER)
    a = stem.getPressure()
    W = 0.725 * t + 0.0368 * h + 0.00364 * t * h - 3.246
    if (W >= 33) {
        kitronik_VIEW128x64.show("" + t + "'C" + "  " + ("" + h) + "%", 1, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("" + a + "hpa", 2, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("WGBT " + ("" + W), 3, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("FUKA   ", 4, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        basic.showLeds(`
            # # # # #
            # # # # #
            # # # # #
            # # # # #
            # # # # #
            `)
    } else if (W >= 31) {
        kitronik_VIEW128x64.show("" + t + "'C" + "  " + ("" + h) + "%", 1, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("" + a + "hpa", 2, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("WGBT " + ("" + W), 3, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("KIKEN      ", 4, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        basic.showLeds(`
            . . . . .
            # # # # #
            # # # # #
            # # # # #
            # # # # #
            `)
    } else if (W >= 28) {
        kitronik_VIEW128x64.show("" + t + "'C" + "  " + ("" + h) + "%", 1, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("" + a + "hpa", 2, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("WGBT " + ("" + W), 3, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("GENJUKEIKAI", 4, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        basic.showLeds(`
            . . . . .
            . . . . .
            # # # # #
            # # # # #
            # # # # #
            `)
    } else if (W >= 25) {
        kitronik_VIEW128x64.show("" + t + "'C" + "  " + ("" + h) + "%", 1, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("" + a + "hpa", 2, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("WGBT " + ("" + W), 3, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("KEIKAI      ", 4, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        basic.showLeds(`
            . . . . .
            . . . . .
            . . . . .
            # # # # #
            # # # # #
            `)
    } else {
        kitronik_VIEW128x64.show("" + t + "'C" + "  " + ("" + h) + "%", 1, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("" + a + "hpa", 2, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("WGBT " + ("" + W), 3, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        kitronik_VIEW128x64.show("TYUI        ", 4, kitronik_VIEW128x64.ShowAlign.Left, kitronik_VIEW128x64.FontSelection.Big)
        basic.showLeds(`
            . . . . .
            . . . . .
            . . . . .
            . . . . .
            # # # # #
            `)
    }
})


                     投稿者 依田 実(千葉県)
Footer Image

投稿者プロフィール

管理者

関連するお勧め教材

\ 最新情報をチェック /


コメントを残す

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

CAPTCHA


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