やっほーやっほーこんにちわ ラズパイで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℃くらいからは少量づつしか上昇しなかった。
ってことで水でも無事測れたのでよし。
次回へ続く。。。。。。