先日から挑戦していたのですが、ようやくデータが取得できるようになりました。
さすがにちょうどいいNode-REDのノードが無かったので、Pythonを使いました。
通信は、SPI通信を使っています。
参考にさせて頂いたのはこちらの記事です。
参考元の記事をベースに、24bit用のデータ取得に書き換え。
あとはcxvデータを保存できるようにしました。
参考元から追記・編集した箇所は赤色の文字にしています。
電圧値を取得できるようにしましたが、変化量を見たかったため、ざっくりとした値で計算しています。
#必要なモジュールをインポート
import spidev #SPI通信用のモジュールをインポート
import time #時間制御用のモジュールをインポート
import sys #sysモジュールをインポート
import datetime
#SPI通信を行うための準備
spi = spidev.SpiDev() #インスタンスを生成
spi.open(0, 0) #CE0(24番ピン)を指定
spi.max_speed_hz = 1000000 #転送速度 1MHz
def write_csv(s):
dt_now = datetime.datetime.now()
with open('LTC2411.csv','a')as f:
f.write(dt_now.strftime('%Y/%m/%d %H:%M:%S')+","+str(s)+"\n")
#連続して値を読み込む
while True:
try:
resp = spi.xfer2([0x68, 0x00, 0x00, 0x00]) #SPI通信で値を読み込む
# volume = ((resp[0] << 8) + resp[1]) & 0x3FF #読み込んだ値を10ビットの数値に変換
volume = ((resp[0] << 19 ) + (resp[1] << 11 ) + (resp[2] << 3 ) + (resp[3] >> 5 )) #読み込んだ値を24ビットの数値に変換
volume = (volume-11034000)/(22628000-11034000)*5
print(volume) #変換した値を表示
write_csv(volume)
time.sleep(1) #1秒間待つ
except KeyboardInterrupt:
#Ctrl+Cキーが押された
spi.close() #SPI通信を終了
sys.exit() #プログラム終了
取得したデータはこちら。
思ったよりノイズが乗っていますね。。
もっとノイズが軽減できるよう、調整していきたいと思います。