はじめに
RaspberryPi PicoでMicroPythonを使って、Pico本体の搭載の温度センサの情報を取得する方法を解説します。
巷たでは、Picoで使える温度センサが数多く販売されていますが、実はPico本体にも温度センサは搭載されており、簡単なプログラムで温度を取得することができます。
今回はその「Pico本体の温度センサ」から温度を取得する方法を解説したいと思います。
~ この記事の内容 / Contents ~
- 部屋やベランダの温度を測る。
- 部品を購入せずにセンサーの扱い方を学ぶ。
- Pythonで組み込みプログラミングを体験する。
環境
この記事は以下の環境で作成しています。
環境 | バージョン | 備考 |
開発用PCのOS | Windows 11 | Windows7,10でもOKです |
言語 | MicroPython | |
開発環境 Thonny | 4.1.4 | |
ボード | RaspberryPi Pico |
※ Picoのセットアップ方法については、こちらの記事をご覧ください。
RaspberryPi Picoとの接続
今回はPico本体に搭載されている温度センサのみを使います。外部の部品・回路に接続する必要はありません。
使用する部品
今回の記事で使用する部品は以下の通りです。
RaspberryPi Pico
Pico本体です。ベーシックスターターキットで買えば、「PCとつなぐためのUSBケーブル」「ブレッドボードで使うためのピンヘッダ」がセットになっているので、到着後すぐに使うことができます。
実行結果
後述する、温度センサの値を取得するコードを実行結果は以下の通りです。
全体コード
Picoに搭載されている温度センサから、温度情報を読み取るコードです。
公式のGitHubの以下ページに掲載されています。
import machine
import utime
# 温度センサが接続されている、
# 4つ目の ADC(アナログデジタルコンバータ) を取得します
sensor_temp = machine.ADC(4)
# ADCの最大電圧3.3Vを16bit(65535)で割って、
# 16bitの 1 目盛りのあたりの電圧(変換係数)を計算します( 約 0.00005V)
conversion_factor = 3.3 / (65535)
while True:
# センサから取得した値(0~65535) を電圧に変換します。
reading = sensor_temp.read_u16() * conversion_factor
# 温度を計算します。センサは27度を基準にしているため、
# 温度センサの数値を27度から引いて計算します。
temperature = 27 - (reading - 0.706)/0.001721
print(temperature)
utime.sleep(2)
コードのポイント
変換係数の計算
センサから取得した16bitの値に変換係数をかけて、温度センサの値を電圧値に変換します。
# センサから取得した値(0~65535) を電圧に変換します。
reading = sensor_temp.read_u16() * conversion_factor
温度の計算
Picoに搭載されている温度センサは、27度(0.706V)を基準としているようで、
取得される電圧は、27度からの差分/傾き(どれだけ変化しているか?)の値として考える必要があります。
そのため、単純に取得した値をそのまま温度として積算するのではなく、
27度を基準とした際の変化量として計算することで、温度を算出することができます。
1度につき、0.001721V 変化するので、以下の式で温度を計算します。計算の流れは以下の通りです。
# 温度を計算します。センサは27度を基準にしているため、
# 温度センサの数値を27度から引いて計算します。
temperature = 27 - (reading - 0.706)/0.001721
基準分を引き算して、基準からの変化量を求めます
reading(電圧値) – 0.706
基準からの変化量が、何度分であるかを計算します。
(reading – 0.706)/0.001721
基準の27度からの温度の変化量を引いて、現在の温度を計算します。
temperature = 27 – (reading – 0.706)/0.001721
まとめ
Raspberry Pi Pico に搭載されている温度センサの使い方について解説しました。
参考になればうれしいです。
はじめての方は『ベーシックスターターキット』が安心です
この記事をみて「やってみたいな」「自分でもできるかも」と思ったら、ベーシックスターターキットで始めることをおすすめします。ピンヘッダとケーブルもセットでついてくるので初心者でも安心。”ベーシック”なキットなので、使わないパーツも付いてきません。
お知らせ
MicroPythonのプログラミングガイドブックが遂に発売!
「MicroPython」の本が遂にでました。
この一冊で、MicroPythonの言語仕様から、プログラミングの仕方まで”ガッツリ”学べます!。
内容は、普段別言語で開発している人や、これからマイコンを始める(工学系の)学生を対象としているので「初心者向け」ではありません。しかし、「自前のライブラリの作成」が目標なので、これ一冊で「ガッツリ」とMicroPythonを学ぶことができます。
全ての内容はここでは紹介しきれないので、詳細は以下のAmazonページをご覧ください。目次だけでも”ガッツリ”なのが確認できると思います。
Pico/Pico W関連のおすすめ本
RaspberryPi Pico / Pico W関連のおすすめ本を独断と偏見で3つ選んでみました。Picoやるならとりあえずこれ買っとけ的な本や、電子工作全般で使える本などを厳選しています。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。