M5Stackでデジタル重量計

Digital weight scale ・ 数字称重

5kgロードセルとI2Cインターフェースを使ったデジタルはかり。

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

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack Core2Controllergrove_i2c, grove_analog, grove_uart, mbusofficial page — $46.9
Unit Mini Scales5 kg load cellgrove_i2cofficial page — $6.95

配線

作り方

M5Stack Core2とUnit Mini Scalesで作る、かんたんなデジタルはかりです。5kgまでの重さを測ることができ、I2C接続でCore2が直接数値を読み取ります。キッチンや工作など、ちょっとした計量に便利です。

  1. 部品を用意する — 用意するもの:M5Stack Core2本体、Unit Mini Scales(5kgロードセル内蔵)、Groveケーブル1本(通常ユニットに付属)、Core2とパソコンをつなぐUSB-Cケーブル。
  2. Groveケーブルでつなぐ — Unit Mini ScalesはI2C(赤)接続です。Groveケーブルの一端をユニットのGroveポートに、もう一端をCore2の赤いPort.A(I2Cポート)に差し込みます。コネクタは一方向にしか入らないので、無理に押し込まないでください。
  3. パソコンにつないでMicroPythonを書き込む — USB-CケーブルでCore2をパソコンにつなぎます。UIFlowやThonnyなどのツールで、Core2にMicroPythonファームウェアが入っていることを確認し、下のコードをデバイスにコピーして実行します。
  4. 重さを表示する — コードを実行すると、Core2の画面に現在の重さ(グラム単位)が表示されます。何も載せていない状態で0gになることを確認してください。ずれがある場合は、コード内のオフセット調整を試してください。
  5. 計量をテストする — 既知の重さのもの(例えば100gのおもりや水の入ったペットボトル)を載せて、表示が正しいか確認します。誤差が大きい場合は、コード内のスケール係数を調整してください。

サンプルコード(micropython)

# M5Stack Core2 + Unit Mini Scales (digital scale)
# Wiring: Unit Mini Scales -> Core2 red Port.A (I2C)
import time
from machine import Pin, I2C
from m5stack import lcd

# I2C setup on Port.A (Core2: SDA=21, SCL=22)
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)

# Unit Mini Scales I2C address (default 0x64)
SCALE_ADDR = 0x64

# Commands for the scale (from datasheet)
CMD_GET_WEIGHT = b'\x01'  # request weight in grams (4 bytes float)

def read_weight():
    try:
        i2c.writeto(SCALE_ADDR, CMD_GET_WEIGHT)
        time.sleep_ms(50)
        data = i2c.readfrom(SCALE_ADDR, 4)
        # Convert 4 bytes to float (little-endian)
        import struct
        weight = struct.unpack('<f', data)[0]
        return weight
    except Exception as e:
        return None

lcd.clear()
lcd.print('Digital Scale', 10, 20)

while True:
    w = read_weight()
    if w is not None:
        lcd.clear()
        lcd.print('Weight: %.1f g' % w, 10, 60)
    else:
        lcd.clear()
        lcd.print('Error reading', 10, 60)
    time.sleep(0.5)

コツ・安全上の注意

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

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

エディタで開く →

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