PythonとParamikoでRaspberry Piのリモートファイル取得とデータ分析を実践

はじめに

以前、Raspberry PiのデータをPCへ移動させたり、クラウド上のgoogleスプレッドシートで読み書きする方法を紹介しましたが、今回はpythonのParamikoモジュールを使って、Raspberry Piのローカルファイルからデータを取得し、分析する手法を紹介します。

Paramikoとは何か?

Paramikoはpython用のSSH2モジュールです。SSH (Secure Shell)は、ネットワーク上でセキュアな通信を実現するためのプロトコルで、Raspberry Piなどのリモートデバイスに接続してファイルの操作やコマンド実行が可能になります。

Paramikoの基本機能

  1. SSH接続の作成、認証
  2. リモートコマンドの実行
  3. SFTP (SSH File Transfer Protocol)によるファイル操作

Paramikoを使った流れ

  1. SSH接続を作成し、Raspberry PiとPCの接続を確立させます。
  2. SFTPを使用してファイルをRaspberry Piから取得します。
  3. 取得したデータをPCのpython内で解析します。

手順

STEP
Raspberry PiでSSHを有効化

Raspberry Piのデスクトップ画面で、左上の「Raspberry Piメニュー」 > 「設定」 > 「Raspberry Piの設定」をクリック。インターフェース」タブを選択し、「SSH」を「有効」に設定

STEP
Raspberry PiのIPアドレス、ユーザー名、パスワードを確認する

IPアドレスはTerminalに以下を入力するか、wifiマークにカーソルを当てると表示されます
ユーザー名は /home/ユーザー名 となっていますので忘れた方は確認ください。

ifconfg
STEP
取得したいRaspberry PiのCSVファイルのパスを確認する
"/home/pi/data.csv"
STEP
PCに必要なモジュールをインストールし、実行
pip install paramiko pandas

paramikoでRaspberry Pi上のデータを取得する

paramikoを使ってRaspberry PiのCSVファイルを取得し、pandasを使って分析するコードです。

import paramiko
import pandas as pd
from io import StringIO # 文字列データの対応

# Raspberry Piの設定
HOST = "raspberrypi.local"  # Raspberry PiのIPアドレス
USERNAME = "pi"             # Raspberry Piのユーザー名
PASSWORD = "raspberry"     # Raspberry Piのパスワード

# Paramikoを使ったSSH接続
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(HOST, username=USERNAME, password=PASSWORD)

# CSVファイルをRaspberry Piから取得
sftp = ssh.open_sftp()
remote_file_path = "/home/pi/data.csv" # ファイルのパス
with sftp.open(remote_file_path, "r") as file:
    csv_data = file.read()

# Paramiko接続を開放
sftp.close()
ssh.close()

# pandasでCSVを解析
# 文字列データの場合の対応
csv_buffer = StringIO(csv_data)
df = pd.read_csv(csv_buffer)

# データ分析
print("\n--- Dataframe ---")
print(df)
print("\n--- 値の合計 ---")
print(df["value"].sum())

まとめ

Raspberry PiのファイルをParamikoを使って取得し、Pythonでデータ分析する方法を解説しました。これはローカルに放置されたログファイルや実況データの分析に役立つ手順です。ぜひチャレンジしてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする