
今回は前回と同様にMicroPython Terminalを用いて電源電圧やDIO1でA/D変換した温度センサの出力電圧及びRSSIを表示させる方法を解説します。
今回は前回記述したコードをmain.pyというファイルに保存し、XBeeが起動すると自動でプログラムを実行させる方法について解説します。
設定は前回の記事と同様にAPをMicro Python REPL[4]に設定し、BDを115200[7]に設定します。 まず初めに以下のコードをお好みのエディタにペーストし、ファイル名をmain.pyとして準備しておきます。4行目のCOORDINATOR_64BIT_ADDRはご自分のローカルXBeeのシリアルナンバーに変更します。
import xbee
import time
from machine import Pin, ADC
COORDINATOR_64BIT_ADDR = b'\x00\x13\xA2\x00\x42\x1B\xCC\x55'
# Initialize ADC for DIO1
adc_pin = Pin("D1", Pin.IN, Pin.PULL_UP)
adc = ADC(adc_pin)
print("Starting data transmission to coordinator...")
while True:
voltage_mv = xbee.atcmd('%V')
supply_voltage_v = voltage_mv / 1000.0
rssi_val = xbee.atcmd("DB")
rssi_dbm = -rssi_val
raw_adc_value = adc.read()
adc_voltage = (raw_adc_value / 4095.0) * 1.25
temperature_c = (adc_voltage * 1000 - 400) / 19.5
data_payload = "Voltage: {:.3f}V, RSSI: {:d}dBm, Temp: {:.3f}C".format( supply_voltage_v, rssi_dbm, temperature_c)
print("\n--- Sending Data ---")
print("Payload: {}".format(data_payload))
try:
xbee.transmit(COORDINATOR_64BIT_ADDR, data_payload.encode('utf8'))
print("Data sent successfully.")
except Exception as e:
print("Error sending data: {}".format(e))
time.sleep(10)
ここで、Toolsのメニューの中からFile System Managerを選択します。

先ほど作成したmain.pyのファイルが存在するディレクトリを左側のダイアログで設定して、右側のXBeeのメモリにドラッグ&リリースで書き込みます。書き込みが完了したらFile System Managerから抜けます。

Configurationの画面に戻り、PS MicroPython Auto StartをEnabled [1]に変更して書き込みます。この状態でリモートXBeeの電源をoffにして再起動するか、又はリセットボタンを押します。すると、自動でmain.pyが実行されローカルXBeeには10秒間隔でフレームが送信されます。

プログラムを中止する場合は、MicroPython TerminalでCtrl+Cで終了することができます。