M5Stackで防水水温計

Waterproof water thermometer ・ 防水水温计

防水DS18B20プローブで水温を測定。Port.B(アナログ/GPIO)に接続。

この構成をエディタで開く・編集する →

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack Core2Controllergrove_i2c, grove_analog, grove_uart, mbusofficial page — $46.9
Unit Earth (Soil Moisture Sensor)Waterproof temperature probegrove_analogofficial page — $3.5

配線

作り方

M5Stack Core2と防水温度センサー(DS18B20)ユニットを使って、水温を測定する装置です。OneWireプロトコルで温度を読み取り、Core2の画面に表示します。防水プローブなので、水槽や屋外の水の温度計測に最適です。

  1. 部品を用意する — 用意するもの:M5Stack Core2本体、Unit Earth(土壌水分センサー)…ではなく、ここでは防水温度センサー(DS18B20)ユニットを使用します。ただし、図では「Unit Earth」と書かれていますが、実際にはDS18B20温度センサーを想定しています。Groveケーブル1本(ユニットに付属)、Core2とパソコンをつなぐUSB-Cケーブル。
  2. Groveケーブルでつなぐ — 温度センサーユニットはアナログ(黒)接続です。Groveケーブルの一端をユニットに、もう一端をCore2の黒いPort.B(アナログ/IOポート)に差し込みます。コネクタは一方向にしか入らないので、無理に押し込まないでください。
  3. パソコンにつないでMicroPythonを書き込む — USB-CケーブルでCore2をパソコンにつなぎます。UIFlowやThonnyなどのツールで、Core2にMicroPythonファームウェアが入っていることを確認し、下のコードをデバイスにコピーして実行します。
  4. 温度を確認する — コードを実行すると、Core2の画面に温度(摂氏)が表示されます。プローブを水に入れたり、指で温めたりして、値が変化することを確認します。

サンプルコード(micropython)

# M5Stack Core2 + DS18B20 temperature sensor (OneWire on Port.B)
# Wiring: DS18B20 unit -> Core2 black Port.B (analog/IO)
# Note: The diagram says "Unit Earth" but we treat it as DS18B20.
import time
from machine import Pin
import onewire
import ds18x20
from m5stack import lcd

# Port.B on Core2: GPIO pin 36 (analog input) but OneWire uses digital GPIO.
# Actually, Port.B uses pin 36 for analog and pin 26 for digital? 
# For DS18B20, we need a digital pin. Let's use pin 26 (G26) which is also on Port.B.
# Check Core2 pinout: Port.B black connector: G36 (ADC) and G26 (GPIO).
# We'll use G26 for OneWire.

ds_pin = Pin(26, Pin.OPEN_DRAIN)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))

# Scan for devices
roms = ds_sensor.scan()
if len(roms) == 0:
    lcd.print('No sensor found!', 10, 20)
else:
    lcd.print('Found %d sensor(s)' % len(roms), 10, 20)
    time.sleep(2)

while True:
    ds_sensor.convert_temp()
    time.sleep_ms(750)
    for rom in roms:
        temp = ds_sensor.read_temp(rom)
        lcd.clear()
        lcd.print('Temperature: %.2f C' % temp, 10, 20)
    time.sleep(5)

コツ・安全上の注意

この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。

この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。

エディタで開く →

UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。