先日から挑戦していたのですが、ようやくデータが取得できるようになりました。

さすがにちょうどいい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()                             #プログラム終了

 

 

取得したデータはこちら。

 

 

思ったよりノイズが乗っていますね。。

もっとノイズが軽減できるよう、調整していきたいと思います。