PR

ラズパイPico WとDHT11で温湿度を測定する方法|配線図とMicroPythonコード【自作スマートリモコン 第1回】

ハードウェア制御 / 電子工作
スポンサーリンク

はじめに:ラズパイPico Wで作る自作LINE Botとは?

自作スマートリモコン 第1回

スポンサーリンク

はじめに:ラズパイPico WとDHT11で温湿度を測る

こんにちは、ニンジンです🥕

この記事では、Raspberry Pi Pico Wと温湿度センサー「DHT11」を使って、部屋の温度と湿度を測る手順を解説します。必要な部品の選び方、Pico WとDHT11の配線・結線図、開発環境(Thonny)のセットアップ、そして実際に温度を読み取るMicroPythonコード(Temp_get_test.py)まで、実機の写真つきでまとめます。

Raspberry Pi Pico WとDHT11温湿度センサー、ブレイクアウトボードなど今回使う部品一式
▲ 今回使う部品一式

きっかけは、留守番中の愛犬でした。落雷などによる一瞬の停電で自宅のエアコンが切れてしまうと、留守番中の犬が危険な室温にさらされてしまいます。そこで「室温が危険な値になったら自動でスマホのLINEに通知が飛んでくる仕組み」を、格安のマイコンボードで自作することにしました。

この連載は全5回です。第1回の今回は、部品の準備から、PC上で実際に温度を読み取るところまでを進めます。

この記事で分かること

  • 温湿度監視に必要な部品(Pico W・DHT11・ブレイクアウトボード・USBケーブル・ACアダプタ)と選び方
  • 「データ通信対応」Micro USBケーブルを選ばないとPico Wが認識されない理由
  • Pico WとDHT11の配線・結線図(VCC・GND・DATAの3本)
  • ThonnyのインストールとPico WへのMicroPython書き込み手順
  • 温度・湿度を3秒おきに表示するMicroPythonコード(Temp_get_test.py

スポンサーリンク

構成図と仕組み:Pico Wを使ったIoT温湿度監視システムの全体像

完成形のシステムは、次の流れで動きます。

  • 温湿度センサー(DHT11)が部屋の温度・湿度を計測する
  • 小さな頭脳「Raspberry Pi Pico W」がその値を処理する
  • Pico Wの内蔵 Wi-Fi機能 でインターネットに接続する
  • LINE Messaging API を介して、スマホへアラートを送信する

市販のペット見守りカメラや高価なスマートホーム機器を買わなくても、数百円〜数千円の電子部品を組み合わせるだけで、自分好みの見守りシステムが作れます。第1回はこのうち「DHT11で計測する」ところまでを扱います。Wi-FiとLINE通知は第2回・第3回で実装します。


スポンサーリンク

必要な部品と選び方:DHT11センサーと「データ通信対応USBケーブル」の罠

今回使う部品はこちらです。どれもAmazonや電子部品ショップで安価に手に入ります。

Raspberry Pi Pico W

Raspberry Pi Pico W

今回の主役。Wi-Fi機能を搭載した格安のマイコンボードです。末尾に「W」が付いているものを必ず選んでください。ピンヘッダが最初からはんだ付けされている「Pico WH」なら、はんだ付けなしで始められます。

DHT11 温湿度センサーモジュール

DHT11 温湿度センサーモジュール

温度と湿度を同時に測れる定番センサーです。基板に抵抗などが実装済みの「モジュールタイプ(ピンが3本のもの)」を選ぶと配線が楽になります。

Pico WH用ブレイクアウトボード(またはブレッドボード)

Pico WH用ブレイクアウトボード(またはブレッドボード)

あると配線が一気に楽になります。ジャンパーワイヤーを抜き差しするだけで回路が組めるので、はんだ付けなしで実験できます。

Micro USBケーブル(データ通信対応のもの)

Micro USBケーブル(データ通信対応のもの)

今回いちばんの重要ポイントです。見た目が同じでも「充電専用ケーブル」ではPCがPico Wを認識しません。必ずデータ通信対応のものを用意してください(理由は後述)。

5V ACアダプター

5V ACアダプター

最終的にコンセントから電源を取るために使います。スマホの古い充電器(USB型・5V出力)で代用できます。

※リンクにはアフィリエイトを含みます。


スポンサーリンク

Pico WとDHT11の配線・結線図

Pico WのGP15・3V3(OUT)・GNDとDHT11のDATA・VCC・GNDを結ぶ結線図
▲ Pico W と DHT11 の結線図

部品がそろったら、Pico WとDHT11をジャンパーワイヤーで接続します。DHT11モジュールのピンは3本だけです。下の配線表のとおりにつなぎます。

DHT11側のピン表記役割つなぐ先:Pico Wのピン(物理番号)
VCC(+ / 5V / 3.3V)電源3V3(OUT)(物理36番ピン)
GND(- / G)グランドGND(物理38番ピン)
DATA(OUT / S / D)データ通信GP15(物理20番ピン)
注意:配線するときは、必ずUSBケーブルをPCから抜いて(電源が切れた状態にして)から行ってください。通電したまま配線するとPico Wやセンサーを壊すことがあります。
ブレイクアウトボードにPico Wを載せた状態

ブレイクアウトボードにPico Wを載せ、DHT11のDATAをGP15、VCCを3V3(OUT)、GNDをGNDへ順につないでいきます。

DHT11の3ピンをジャンパーワイヤーでPico Wに接続した状態

3本つなぎ終えたところ。色を「電源=赤」「GND=黒」で分けておくと、後から見返したときに間違いに気づきやすくなります。

配線が完了したPico WとDHT11の全体

配線完了。この状態でUSBケーブルをPCにつなぎ、次のステップで開発環境を用意します。


スポンサーリンク

開発環境の構築:ThonnyのインストールとMicroPythonの書き込み

ハードウェアができたら、次はPico Wにプログラムを書き込むためのPC環境を作ります。エディタには、Raspberry Pi財団が推奨している「Thonny」を使います。

すでにPico W環境がある方へ:ThonnyのインストールとPico WへのMicroPython書き込みは、姉妹記事「Pico Wで作る熱中症警戒アラート表示器」でも解説しています。すでに環境がある方はこのセクションを飛ばして「温度取得テスト」へ進んでください。

Step 1:開発ソフト「Thonny」のインストール

Thonny公式サイトのトップページ

ブラウザで Thonny公式サイト にアクセスします。

ThonnyのダウンロードメニューでWindows版を選ぶ

画面右上から、使用しているPCのOS(Windows / macOS)に合ったインストーラーを選びます。

ダウンロードしたThonnyのexeインストーラー

ダウンロードした exe ファイルを実行します。

Thonnyセットアップウィザードの開始画面

「Next」をクリックします。

使用許諾契約への同意画面

「I accept the agreement」にチェックを入れ、「Next」をクリックします。

インストール先フォルダの選択画面

インストール先はそのままで「Next」をクリックします。

スタートメニューフォルダの選択画面

「Next」をクリックします。

デスクトップアイコン作成のオプション画面

デスクトップにアイコンを作る場合は「Create desktop icon」にチェックを入れ、「Next」をクリックします。

インストール内容の確認画面

「Install」をクリックします。

Thonnyのインストール進行中の画面

インストールが進みます。しばらく待ちます。

Thonnyのインストール完了画面

「Finish」をクリックしてインストール完了です。

Step 2:Pico WをPCに接続する(USBで認識しない罠)

買ってきたばかりのPico Wには、まだプログラムを動かすためのOS(MicroPython)が入っていません。次の手順で「BOOTSELモード」にして接続します。

Pico W基板上のBOOTSELボタンの位置

① Pico W基板上の白い小さなボタン「BOOTSEL」を押し込みます。
② 押したまま、PCにつないだMicro USBケーブルをPico Wに挿します。
③ PC側でUSB認識音が鳴ったら、ボタンから指を離します。

認識されないときのチェックポイント:USBケーブルを挿してもエクスプローラーやデバイスマネージャーに何も変化がないときは、まず「充電専用ケーブル」を使っていないかを疑ってください。見た目が同じでも、100円ショップなどの安価なケーブルはデータ通信線がつながっておらず、電源しか流れません。データ通信対応ケーブルに変えるだけで一発で認識することがあります。

成功すると、PCのエクスプローラーに RPI-RP2 という名前のUSBメモリのようなドライブが現れます。

Step 3:MicroPython(OS)の書き込み

Thonny初回起動時の言語・モード選択画面

インストールしたThonnyを起動します。初回は「Initial settings」で「Standard」を選び、「Let’s go!」をクリックします。

Thonnyのツールメニューからオプションを開く

メニューの「ツール」>「オプション」を開きます。

Thonnyオプションのインタプリタタブ

「インタプリタ」タブを開きます。

インタプリタの種類でMicroPython (Raspberry Pi Pico)を選ぶ

一番上のプルダウンで「MicroPython (Raspberry Pi Pico)」を選択します。

Install or update MicroPythonボタンの位置

右下の「Install or update MicroPython」をクリックします。

MicroPythonのファミリーとバリアントの選択画面

インストール画面で以下を選びます。
・MicroPython family:RP2
・variant:Raspberry Pi Pico W / Pico WH(必ず「W」が付くもの)

MicroPythonインストールの開始

「インストール」をクリックします。

MicroPythonインストール完了(Done)の表示

進行ゲージが100%になり「Done」と表示されたら書き込み完了です。画面を閉じます。

ThonnyのShellにMicroPythonのバージョンが表示された状態

Thonny下部の「Shell」エリアに次のようなメッセージが出ていればセットアップ完了です。

MicroPython v1.28.0 on 2026-04-06; Raspberry Pi Pico W with RP2040
Type "help()" for more information.

スポンサーリンク

温度取得テスト:DHT11センサーを動かすMicroPythonコード

準備が整いました。センサーから室温を読み取れるか、テストプログラムを動かしてみます。

Thonnyのエディタにコードを貼り付けた状態

Thonny上半分の白いエリア(エディタ)に、下のコードを貼り付けます。貼り付けたら画面上部の緑色の「実行」ボタン(またはF5キー)を押し、保存先を聞かれたら「Raspberry Pi Pico」を選んで、ファイル名を Temp_get_test.py にして保存します。

# Temp_get_test.py
import machine
import dht
import time

# 20番ピン(GP15)にDHT11のDATAピンが繋がっていると指定
sensor = dht.DHT11(machine.Pin(15))

print("温湿度センサーの読み取りを開始します(Ctrl+Cで停止)")

while True:
    try:
        # センサーからデータを取得
        sensor.measure()
        
        # 温度と湿度を読み込み
        temp = sensor.temperature()
        humidity = sensor.humidity()
        
        # 画面に表示
        print(f"温度: {temp}°C, 湿度: {humidity}%")
        
    except OSError as e:
        # 読み取りエラー(タイミングのズレなど)が発生した場合
        print("センサーの読み取りに失敗しました。配線を確認してください。")
        
    # DHT11は連続で読み取ると負荷がかかるため、3秒待つ
    time.sleep(3)

コードのポイントはdht.DHT11(machine.Pin(15))15 です。これはGP15(物理20番ピン)を指しています。別のGPIOに配線した場合はこの数字を書き換えます。DHT11は連続で読み取ると値が乱れるため、time.sleep(3) で3秒あけています。

テスト結果

ThonnyのShellに温度と湿度が3秒おきに表示されている状態

画面下の「Shell」に、3秒おきに現在の温度と湿度が表示されれば成功です。

>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
温湿度センサーの読み取りを開始します(Ctrl+Cで停止)
温度: 27°C, 湿度: 58%
温度: 27°C, 湿度: 59%

センサーに息を吹きかけると数値がリアルタイムに上がっていくのが分かります。これで「部屋の温度を測る」という現実世界のデータを、Pico Wに取り込めるようになりました。


スポンサーリンク

第1回のまとめと次回(LINE Messaging API設定編)

第1回では、部品の準備、Pico WとDHT11の配線、Thonny+MicroPythonのセットアップ、そして温度取得テストまでを進めました。特に「充電専用USBケーブルではPico Wが認識されない」という点は、最初の関門なので覚えておいてください。

ただし、これだけでは外出先から室温を知ることはできません。次回は、このデータをスマホに届けるための「LINE Messaging API」の設定を行います。ネット上の古い記事どおりに進めると詰まりやすい、公式アカウント連携やWebhookまわりの最新手順を解説します。

次に読む記事

📲 次の記事・第2回 LINE Messaging APIの始め方|チャネル作成とアクセストークン・ユーザーIDの取得手順 Pico WからLINEへ通知を送るための、LINE側の設定をゼロから解説します。 🗺️ 総集編・全体像 ラズパイPico WとLINE Botで作る自作スマートリモコン|全5回ロードマップ 温湿度監視からエアコンの遠隔操作まで、シリーズ全体の完成像をまとめています。 🌡️ 関連・別の作例 Raspberry Pi Pico Wで作る熱中症警戒アラート表示器 同じPico W+DHT11に0.96インチOLEDを足して、暑さ指数を顔アイコンで表示する工作です。

スポンサーリンク

よくある質問(FAQ)

QRaspberry Pi PicoとPico Wの違いは何ですか?

APico WはWi-FiとBluetoothを内蔵したモデルです。本連載は温度データをLINEへ送るのにWi-Fiを使うため、必ず「W」が付いたPico W(またはピンヘッダ実装済みのPico WH)を選んでください。無印のPicoではネットワーク接続ができません。

QDHT11とDHT22(AM2302)はどちらを使えばよいですか?

ADHT11は測定範囲0〜50℃・湿度20〜80%・精度±2℃程度で、室温の見守り用途には十分です。より高精度・広範囲が必要ならDHT22(AM2302)を使います。コードはライブラリのdht.DHT11(...)dht.DHT22(...)に変えるだけで動きます。

Q「充電専用ケーブル」かどうかを見分ける方法はありますか?

A確実なのは、スマートフォンとPCをそのケーブルでつないでファイル転送(データ通信)ができるか試すことです。パッケージに「Data」「Sync」「データ転送対応」と書かれているものを選べば安心です。Pico Wを挿してもRPI-RP2ドライブが出ないときは、まずケーブルを疑ってください。

QOSErrorで「センサーの読み取りに失敗しました」が続きます。

A配線(特にDATAとGND)の緩み、GP15以外のピンに挿している、DHT11とDHT22を取り違えている、のいずれかが多いです。time.sleep(3)time.sleep(5)に延ばすと安定することもあります。

QThonnyのインタプリタ一覧に「MicroPython (Raspberry Pi Pico)」が出てきません。

AまだMicroPythonが書き込まれていない状態です。BOOTSELボタンを押しながらUSBを挿し直してRPI-RP2ドライブを表示させ、オプション画面の「Install or update MicroPython」からRP2・Pico Wを選んで書き込んでください。

Q表示される温度が実際より高く出ます。

APico Wやブレッドボードの発熱をDHT11が拾っている可能性があります。センサーを基板から少し離す、ジャンパー線で5cmほど浮かせる、といった対策で改善します。



ニンジン🥕アイコン

Follow me on X

本ブログの中の人「ニンジン🥕」はXやってます。新着記事はいち早くポストでお知らせしているので、見逃したくない方は @ninjin_py_vba をフォローしてみてください🥕

@ninjin_py_vba をフォロー

この記事が役に立ったら、シェアしてもらえると嬉しいです🥕

Xでポスト はてブ LINE Pocket

PROJECT LOG — SERIES INDEX
スポンサーリンク

シリーズ記事一覧

電子工作・自動化ツールの製作記録をシリーズごとにまとめています。気になるテーマからお読みください。


超音波距離センサーHC-SR04をRaspberry Pi Picoで使う|仕組み・配線・精度検証
.uds1-block { position: relative; overflow: hidden; border-radius: 12px; border: 1px solid #f0cba8; background: linear-g…
今週の注目ガジェット〜09/07週〜|電子工作・自作向け新製品まとめ(TickrCast/Radxa Linkr ほか)
ニンジンのガジェット通信 09/07週。ESP32-P4の自作気象モニター、極小IP-KVM「Radxa Linkr」、ESP32のDINレール型PLC、LTE開発キットなど、電子工作で使えそうな新製品5つを解説。
サーボモータの角度をタクトスイッチで可変|OLED(SSD1306)に現在角度をリアルタイム表示
Raspberry Pi Pico 2W×MG996RにタクトスイッチとOLED(SSD1306)を追加。ボタンで角度を可変しながら現在角度をリアルタイム表示するMicroPython実装を、framebufの文字拡大やサーボの遊び対策まで実機ベースで解説します。
MG996RサーボモーターをRaspberry Pi Pico 2Wで動かす:PWM制御とキャリブレーション実践
MG996RサーボモーターをRaspberry Pi Pico 2Wで動かす方法を解説。公称180度のはずが実測198度だった個体差の原因究明から、ホーンのズレ補正、タクトスイッチでの角度制御まで実機検証の様子を紹介します。
Tapo P110Mの消費電力をExcelレポート化する【年次集計・電気代試算・セキュリティ判断編】
FastAPI+openpyxlでTapo P110Mの消費電力をExcelレポート化。15秒間隔の生ログを日次集計する設計や、31円/kWhでの電気代試算、外部公開を見送った理由まで解説します。

コメント