
XBee STM Grove Development Boardに新たに搭載されたユーザーボタンは、開発やデバッグに非常に便利な「入力トリガ」として使える機能です。このユーザーボタンはXBee3 のGNDとDIO4(24番ピン)に220Ωの抵抗を介した接続されており、通常はプルアップされていて HIGHですが、ユーザーボタンが押されると DIO4(24番ピン)はGND に落ちてLOWとなります。また、ユーザーボタンが押されるとDevelopment BoardのLEDの一番上にあるUSER LEDが点灯します。

以下の図はユーザーボタンの配線図です。この図でSW3がユーザーボタンです。

ユーザーボタンの主な用途を以下に解説します。
(1)マニュアル入力トリガとして使用する
例えば「ボタンを押したら温度データを送信する」又は、「押すたびにLEDをトグル(点灯⇔消灯)」等のようにマニュアル入力として使用することが可能です。ここでは、押すたびにLEDをトグルさせる方法を解説します。LEDをDIO3(30番ピン)とGND(13番ピン)の間に接続します。
以下のMicroPythonサンプルコードをMicroPython Terminalでプロンプト>>>でCtrl+Fで1^^^の状態でペーストしてコンパイルして実行します。
from machine import Pin
import time
button = Pin("D4", Pin.IN, Pin.PULL_UP)
led = Pin("D3", Pin.OUT)
led_state = False
prev_button = 1
while True:
current_button = button.value()
if prev_button == 1 and current_button == 0: # 押した瞬間を検出
led_state = not led_state
led.value(led_state)
print("LED toggled:", led_state)
prev_button = current_button
time.sleep(0.05)
以下にMicroPython Terminalで実行し結果を示します。

これにより、XBee STM Grove Development Boardのユーザーボタンを押してトグルを確認することができます。
(2)ファームウェアの動作確認・デバッグ
MicroPythonスクリプトの中で「このボタンが押されていたら特別なモードで起動」といった処理が可能です。例えば「ボタンを押しながら起動すると〇〇モードになる」等の設定が可能です。
(3)センサデータ送信の手動トリガ
省電力なシステムでは、「ボタンを押したときだけ送信」も有効です。通常時はスリープしておき、PinWakeで割込みを使い起動させる設計が可能です。
以下にユーザーボタンを押した際にデータをコーディネータに送信する方法を解説します。ユーザーボタンを押した際にLEDを発光させるため、LEDをDIO3(30番ピン)とGND(13番ピン)の間に接続します。
以下のMicroPythonサンプルコードをMicroPython Terminalでプロンプト>>>でCtrl+Fで1^^^の状態でペーストしてコンパイルして実行します。8行目のコーディネータのアドレスはご自分の環境に合わせて書き換えてください。
from machine import Pin
import time
import xbee
# ボタンとLED
button = Pin("D4", Pin.IN, Pin.PULL_UP)
led = Pin("D3", Pin.OUT)
# 宛先アドレス
DEST_ADDR = b'\x00\x13\xA2\x00\x41\xAE\x36\x69'
while True:
if button.value() == 0: # ボタンが押されたら
print("Button pressed, wake up!")
led.value(1) # LED ON
# 例:センサ値を読む
sensor_value = 25.4 # ダミーデータ
# データ送信
msg = "Sensor value: {:.2f}".format(sensor_value)
xbee.transmit(DEST_ADDR, msg)
print("Sent:", msg)
# チャタリング対策 & 連続押し防止
while button.value() == 0:
time.sleep(0.1)
led.value(0) # LED OFF
# 短時間sleepで省電力
time.sleep(0.1)
上記のコードを実行したルータのMicroPyton Terminalの様子を以下に示します。

以下の図はコーディネータのコンソール画面です。ダミーデータが送信されていることを確認することができます。
