
今回はMicroPython Terminalを用いて電源電圧やDIO1でA/D変換した温度センサの出力電圧及びRSSIを表示させる方法を解説します。
設定は前回の記事と同様にAPをMicro Python REPL[4]に設定し、BDを115200[7]に設定します。
まず初めはMicroPython Terminalを用いて電源電圧を表示させる方法を解説します。 以下のコードをコピーしてプロンプトに張り付けます。貼り付けの際にCtrl+Vは機能しないため、マウスで右クリックしてPasteを使用して貼り付けます。
import xbee
voltage_mv = xbee.atcmd('%V')
voltage_v = voltage_mv / 1000.0
print("Supply Voltage: {:.3f} V".format(voltage_v))
(コードの説明)
import xbee # XBeeモジュールをインポートし、XBeeデバイスと通信可能にします。
voltage_mv = xbee.atcmd(‘%V’) # ‘%V’ ATコマンドを実行して、XBeeモジュールの供給電圧をミリボルト単位で取得します。
voltage_v = voltage_mv / 1000.0 # ミリボルトをボルトに変換します (1V = 1000mV)。
print(“Supply Voltage: {:.3f} V”.format(voltage_v)) # 算出した供給電圧を小数点以下3桁まで表示します。
以下のように電源電圧の値を確認することができました。

次にDIO1でA/D変換した温度センサの出力電圧と温度を表示させてみます。 以下のコードをコピーしてプロンプトに張り付けます。
import xbee
from machine import Pin, ADC
adc_pin = Pin("D1", Pin.IN, Pin.PULL_UP)
adc = ADC(adc_pin)
raw_adc_value = adc.read()
voltage = (raw_adc_value / 4095.0) * 1.25
temp = (voltage*1000-400)/19.5
print("DIO1 ADC Raw Value: {:4d}, Voltage: {:.3f} V".format(raw_adc_value , voltage))
print("Temperature: {:.3f} C".format(temp))
(コードの説明)
import xbee # XBeeモジュールをインポートします。
from machine import Pin, ADC # マイクロコントローラボードのGPIOピンとアナログ-デジタル変換器 (ADC) を制御するためのPinおよびADCクラスをインポートします。
adc_pin = Pin(“D1”, Pin.IN, Pin.PULL_UP) # DIO1ピンをADC入力として設定します。”D1″はXBeeボード上のDIO1ピンに対応する一般的な表記です。Pin.INはピンを入力モードに設定することを意味します。Pin.PULL_UPは内部プルアップ抵抗を有効にし、ピンがオープン状態のときに不定な状態になるのを防ぎます。
adc = ADC(adc_pin) # 指定されたADCピンを使用してADCオブジェクトを作成します。
raw_adc_value = adc.read() # ADCから生のデジタル値を読み取ります。
voltage = (raw_adc_value / 4095.0) * 1.25 # 生のADC値を電圧に変換します。XBeeのADCは12ビット分解能 (0-4095) を持ち、内部参照電圧は1.25Vです。従って、(raw_adc_value / 4095.0) * 1.25 は、読み取られたアナログ電圧をボルト単位で計算します。
temp = (voltage * 1000 – 400) / 19.5 # 電圧から温度を算出します。電圧をmVに変換し、オフセットを引いて感度で割っています。
print(“DIO1 ADC Raw Value: {:4d}, Voltage: {:.3f} V”.format(raw_adc_value, voltage))
# DIO1 ADCの生の値と計算された電圧を表示します。{:4d} は整数を4桁の幅で表示し、スペースで埋めることを意味します。{:.3f} は浮動小数点数を小数点以下3桁で表示することを意味します。 print(“Temperature: {:.3f} C”.format(temp)) # 計算された温度を摂氏で表示します。

次にMicroPython Terminalを用いてRSSIを表示させる方法を解説します。
以下のコードをコピーしてプロンプトに張り付けます。
import xbee
rssi_val = xbee.atcmd("DB")
print("RSSI: {:.3d} dBm".format(-rssi_val))
(コードの説明)
import xbee # XBeeモジュールをインポートします。
rssi_val = xbee.atcmd(“DB”) # “DB” ATコマンドを実行して、現在の受信信号強度インジケータ (RSSI) 値を取得します。この値は通常、減衰度を表すため、正の値として返されます。 print(“RSSI: {:.3d} dBm”.format(-rssi_val)) # RSSI値は一般的に負のdBm値で表されるため、取得した値に負号を付けて表示します。{:.3d} は、整数を最低3桁の幅で表示し、必要に応じてスペースで埋めることを意味します。
