【micro:bit 2019】micro:bit用の温度・湿度・気圧センサーを試してみる （27記事目）

この記事は 12/30 に執筆して、後から 「[micro:bit Advent Calendar 2019 - Qiita](https://qiita.com/advent-calendar/2019/microbit)」の 21日目 へと登録した記事です。

今年のアドベントカレンダー用に書いた記事の 27記事目で、micro:bit Advent Calendar に登録した記事としては 8記事目になります。

## はじめに

今回の記事にでてくるものは、TFabWorks（ティーファブワークス）さんの「[micro:bit用温度・湿度・気圧センサー【TFW-EN1】](https://tfabworks.com/product/tfw-en1/)」です。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">明日用に買ったものが届いた。<a href="https://twitter.com/hashtag/%E5%B9%B4%E5%BF%98%E3%82%8C%E3%82%82%E3%81%8F%E3%82%82%E3%81%8F%E4%BC%9A?src=hash&amp;ref_src=twsrc%5Etfw">#年忘れもくもく会</a> <a href="https://t.co/CjETUC3Ouh">pic.twitter.com/CjETUC3Ouh</a></p>&mdash; you (@youtoy) <a href="https://twitter.com/youtoy/status/1210399955669512192?ref_src=twsrc%5Etfw">December 27, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## センサーの使い方

[公式ページ](https://tfabworks.com/product/tfw-en1/)に掲載された以下の画像のように、micro:bit を差し込んで利用する製品になります。

<img width="457" alt="micro_bit用温度・湿度・気圧センサー【TFW-EN1】_-_TFabWorks（ティーファブワークス）.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/f01c96d7-8756-6eed-5595-2d7c42f8a7bb.jpeg">

また、プログラミングをする方法は、公式によると下記となります。

> MakeCodeの拡張機能で https://github.com/tfabworks/pxt-stem を追加するか、http://tfab.jp/stem にアクセスすると専用ブロックがご利用いただけます。

今回、[MakeCode](https://makecode.microbit.org/) 上で拡張機能を追加する方法で試してみます。

## MakeCodeでのプログラミング

## LED への表示

[MakeCode](https://makecode.microbit.org/) を開き、拡張機能のメニューで「 https://github.com/tfabworks/pxt-stem 」を検索します。
<img width="446" alt="Microsoft_MakeCode_for_micro_bit_.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/b8d3955f-6e66-a87c-abf2-a93dcfef4b66.jpeg">
追加されたメニューの「STEM」の中に「EN1」という項目がありました。
<img width="311" alt="Microsoft_MakeCode_for_micro_bit_2.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/ecc6fff8-2d10-4bd0-0818-cf4e924b9a71.jpeg">

そして、プログラムはこのようにして、LED に表示される数字を見てみました。

<img width="722" alt="Microsoft_MakeCode_for_micro_bit_3.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/8d77f27b-d9a0-637d-c58d-8457a1604bc6.jpeg">

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/TFabWorks?ref_src=twsrc%5Etfw">@TFabWorks</a> さんの温度・湿度・気圧センサーを試してみた。<br>湿度は 41パーセントらしい。 <a href="https://t.co/LQJfu3P8Fg">pic.twitter.com/LQJfu3P8Fg</a></p>&mdash; you (@youtoy) <a href="https://twitter.com/youtoy/status/1211395612920303618?ref_src=twsrc%5Etfw">December 29, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## グラフの表示

次に、気圧の測定結果をグラフ表示してみます。
以下のようなプログラムを作り、赤丸で示した部分をクリックします。
<img width="321" alt="Microsoft_MakeCode_for_micro_bit_4.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/fedc3eb6-7a29-fd95-9ac4-835c5eeeddb5.jpeg">
そして、追加された「整数/小数」の選択肢で「小数」を選択しました。
<img width="376" alt="Microsoft_MakeCode_for_micro_bit_5.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/2532a866-6b65-b896-69da-127f3d2876b2.jpeg">
そして、数値をコンソールで表示してみます。
<img width="407" alt="Microsoft_MakeCode_for_micro_bit_6.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/b50643b6-b196-6086-6ce9-e0b605fb7ab7.jpeg">
その結果がこちらです。
<blockquote class="twitter-tweet" data-conversation="none"><p lang="ja" dir="ltr">micro:bit用の温度・湿度・気圧センサーで、気圧をグラフ表示。 <a href="https://t.co/VjWd4oyJbl">pic.twitter.com/VjWd4oyJbl</a></p>&mdash; you (@youtoy) <a href="https://twitter.com/youtoy/status/1211402666246455296?ref_src=twsrc%5Etfw">December 29, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 内蔵の温度センサーと比較してみる

このセンサーの話を見て「micro:bit って[温度センサー](https://microbit.org/ja/guide/temperature/)を内蔵していたのでは？」と思われた方もいらっしゃるかもしれませんが、センサーで取得できる温度の値を比較してみました。
<img width="331" alt="Microsoft_MakeCode_for_micro_bit_7.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/6bb90379-ef36-89b4-bb84-9d5819388046.jpeg">

上記のプログラムで出た値は、以下のようになりました。

- micro:bit用の温度・湿度・気圧センサー： 22度前後
- 内蔵の温度センサー： 32度前後

この差分について、以下の公式の説明を見つつ、補足します。

●micro:bitで温度を測る | micro:bit
　https://microbit.org/ja/guide/temperature/

まず、上記のページからの引用です。

> **動作の仕組み**
micro:bitは、気温をはかるための専用の温度センサーを持っているわけではありません。 温度として取得できるのは、実際には、メインCPUのシリコンダイ（チップ）の温度です。 micro:bitのプロセッサ部分（高効率のARMコア）が通常は熱くなったりしないため、この温度でだいたいの気温がわかるわけです。

今回、micro:bit のプログラムを色々と動かして、動作させ続けていた状態だったため、上記のような結果になったと思われます。
さらに比較用として、計測の直前まで動作をさせていなかった別の micro:bit で試してみたら、以下のように計測結果がほとんど変わらない結果となりました。

- micro:bit用の温度・湿度・気圧センサー： 22度前後
- 内蔵の温度センサー： 24度前後

## おわりに

今回、micro:bit用の温度・湿度・気圧センサーを試してみました。
軽くお試し、という感じになりましたが、今後 STEMブロック以外のものと組み合わせたプログラムを作ってみようと思います。