新しいものづくりがわかるメディア

RSS


今さらきけない「ラズパイってなんですか?」

今さらきけない「ラズパイってなんですか?」 第9回 ラズパイでWindowsとやり取りするにはどうしたらいいですか

ラズパイとWindowsとの間でファイルをやりとりしたい、と思うケースは多いでしょう。ファイルをやりとりする目的は人によってさまざまです。筆者の場合は、Pythonで作成したプログラムの他に、ラズパイにカメラを取り付けて撮影した画像を取り出して活用する、といった目的が考えられます。ファイルのやりとりにはいろいろな手段がありますので、順を追ってご紹介しましょう。

WinSCPを利用する

WinSCPはFTPというファイル転送の仕組みを利用したソフトです。左右のペインにファイル共有したいマシンを表示させ、ドラッグ&ドロップでファイルをやりとりします。導入も簡単で、WinSCPのWebサイトからプログラムをダウンロードしてインストールし、ラズパイのホスト名かIPアドレスを指定してアクセスするだけです。

なおラズパイのホスト名ですが、デフォルトでは「raspberrypi」となっています。その場合は「raspberrypi.local」と変更するとアクセスできます。

WinSCPを起動すると、登録してあるホスト名の一覧が表示される。「新しいサイト」を選んでラズパイのホスト名もしくはIPアドレスとユーザー名、パスワードを入力する WinSCPを起動すると、登録してあるホスト名の一覧が表示される。「新しいサイト」を選んでラズパイのホスト名もしくはIPアドレスとユーザー名、パスワードを入力する
ラズパイとWindows側のファイルが表示される ラズパイとWindows側のファイルが表示される

ファイル共有を使う

もう1つの手段がSambaを利用したファイル共有です。SambaはLinux上でWindowsのネットワーク機能を実現するソフトのことを言います。

ラズパイを動かすRaspberry Pi OSもLinuxの1つですので、Sambaを導入することで、Windowsのファイルサーバーと同じ機能を持たせられます。このため、Windows上からラズパイのファイルにアクセスできるようになるのです。

まずはファイルを最新のものにしておきましょう。

$ sudo apt update && sudo apt full-upgrade

次に以下のコマンドでインストールします。

$ sudo apt install samba

Windowsと共有するためのフォルダを設定しましょう。ここでは「share」というディレクトリを作成し、そのフォルダのみにアクセスできるようにします。

$ mkdir /home/pi/share

続いてSambaの設定ファイルである「smb.conf」を変更します。次のコマンドで、nanoでsmb.confを開いて設定しましょう。

$ sudo nano /etc/samba/smb.conf

この最終行に以下の内容を記述します。

[share]
comment = Share
path = /home/pi/share
public = yes
read only = no
browsable = yes
force user = pi

記述したらSambaを再起動します。

$ sudo service smbd restart

Windowsのエクスプローラーから「¥¥raspberrypi.local」と入力してEnterキーを押しましょう。以下のように共有フォルダが表示されます。

共有フォルダが表示される。この場合は「share」 共有フォルダが表示される。この場合は「share」
shareフォルダに画像ファイルを入れてみた shareフォルダに画像ファイルを入れてみた
ラズパイ側で見るとファイルが転送されていることが分かる ラズパイ側で見るとファイルが転送されていることが分かる

ファイルに誰がアクセスしているのか調べるためには「smbstatus」を使います。その時に利用するオプションは以下の通りです。

-b:簡単な情報を表示する
-d:詳細な情報を表示する
-u username:特定のユーザー(username)の情報を表示する
-S:接続の一覧を表示する

以下のようにコマンドを入力すると、値が返ってきます。

$ sudo smbstatus -b

Samba version 4.13.13-Debian
PID     Username     Group        Machine                                   Protocol Version  Encryption           Signing
----------------------------------------------------------------------------------------------------------------------------------------
2925    nobody       nogroup      
240d:1a:8d4:8500:8437:93a8:cf70:d6bc (ipv6:240d:1a:8d4:8500:8437:93a8:cf70:d6bc:53933) SMB3_11           
-                    -

特に指定していなかったのですが、筆者の環境ではIPv6でのアクセスになっているようでした。

パスワードを利用する

ここまで紹介した方法では、まだパスワードが設定されていないため、誰でもアクセスできる状態となっています。ラズパイへのアクセスにパスワードをかけてみましょう。

まずはラズパイ側で、Sambaの利用ユーザーのパスワードを導入します。ラズパイへのアクセスとは別にパスワードを設定する必要があります。以下のコマンドを入力しましょう。ここではpiユーザーにパスワードを設定しています。

$ sudo smbpasswd -a pi

New SMB password:(パスワードを入力)
Retype new SMB password:(再度パスワードを入力)
Added user pi.

これでpiユーザーのパスワードが設定できました。

ではWindowsに戻ってアクセスしてみましょう。共有フォルダをダブルクリックすると以下の画面が表示されます。

ユーザー名とパスワードを求められる ユーザー名とパスワードを求められる

ここでは、ユーザー名を「pi」、パスワードは先ほどsmbpasswdで設定したものを入力します。するとフォルダにアクセスできるようになります。

フォルダにアクセスできた フォルダにアクセスできた

Sambaは意外と使い勝手がよく、大容量のファイルサーバーとしても活用できます。共有フォルダを増やし、ユーザーごとに管理することも可能です。このあたりの活用法については、また別途ご紹介したいと思います。

ニュース

編集部のおすすめ

連載・シリーズ

注目のキーワード

もっと見る