かすたあどくりいむ定食

読書感想や開発など

ラズパイピコで水温計を作ってみた

やっほーやっほーこんにちわ ラズパイでLチカして遊んだので次は水温計を作りました。というか防水の温度センサーを繋げただけです。

前提

前回の記事でセットアップしたラズパイピコを使います。 hellhellmymy.hatenablog.com

chatGPTに必要なものをリストアップさせた

んで、下記を用意

  • DS18B20(防水温度センサ)
  • 抵抗4.7k(なかったので5k)
  • ブレッドボード
  • ラズパイピコ

センサに関しては1000円くらいで3つもついてきた。。。 こんなにはいらんな。。。。

chatGPTに接続方法を教えてもらう

事前にセンサの線を延長するべくはんだ付け

既存の状態だと3色の線が短すぎるので延長した方がいいです。 前回購入したラズパイスターターキットに入ってた線を勝手に切って半田付けしてしまいました。 過去にギターのシールドやエフェクター製作もやってたので半田等の工具も既にありました。

延長したらこうなる

配線の確認

  • DS18B20センサーの赤い線 → VCC (3.3Vピン)
  • DS18B20センサーの黒い線 → GND
  • DS18B20センサーの黄色い線 → GPIO4ピン(コードで指定したピン)
  • プルアップ抵抗(4.7kΩ) → 黄色い線と赤い線の間に接続(データラインを安定化するため必要)
DS18B20  (赤) ---------- 3.3V (Pico)
         (黒) ---------- GND (Pico)
         (黄) ---+------ GPIO4 (Pico)
                  |
                  +-- 4.7kΩ抵抗 -- 3.3V

こんな感じで取り付け。

thonnyで接続確認しコードを実行

thonnyを開いてラズパイ内に任意のpyファイルを作る。そんで、その中に下記コードを記入してThonnyの実行ボタンで実行すると測定開始した!!!

import machine
import onewire
import ds18x20
import time

# DS18B20のデータピンをGPIO4に接続
dat = machine.Pin(4)

# 1-Wireバスの初期化
ds_sensor = ds18x20.DS18X20(onewire.OneWire(dat))

# 接続されている全センサーのROMアドレスを取得
roms = ds_sensor.scan()
print("Found DS devices:", roms)

while True:
    # 温度を取得
    ds_sensor.convert_temp()
    time.sleep(1)  # 温度データの変換に時間がかかる

    for rom in roms:
        print("Temperature:", ds_sensor.read_temp(rom), "°C")
    time.sleep(2)

折角なので脇に挟んで体温を測ってみたが35℃くらいからは少量づつしか上昇しなかった。

ってことで水でも無事測れたのでよし。

次回へ続く。。。。。。