【PR】この記事には広告が含まれています。
自宅のラズパイに接続したカメラ映像の確認や、センサーのデータをリアルタイムでチェックしたいと思ったことはありませんか? Raspberry Pi Connectを使えば、世界中どこからでも安全にラズパイへアクセスできます。
従来のVNCは基本的にLAN内での接続が前提でしたが、Raspberry Pi Connectは外部からアクセス可能。IoTシステムの遠隔監視や離れた場所からラズパイを操作することができます。
本記事ではRaspberry Pi Connectの導入手順や設定方法を詳しく解説します。
待望のRaspberry Pi Connect
Raspberry Pi Connectは、2024年5月に公式から発表されたリモートアクセスツールです。これにより、インターネット経由でRaspberry Piを遠隔操作・管理することが可能になりました。特別なネットワーク設定やファイアウォールのポート開放なしで使用できるよう設計されています。外出先から自宅のRaspberry Piに簡単に接続し、デスクトップやシェルを使ってリモート操作できます。
現在はベータ版として提供されており、一部の機能は今後改善される可能性があります。
Raspberry Pi Connectの対応デバイスと必要な環境
Raspberry Pi Connectには、リモートデスクトップ機能 と リモートシェル機能 の2種類があります。リモートデスクトップ機能は、Raspberry Pi OS Bookwormが動作するモデルに限定されています。一方、リモートシェル機能は、Raspberry Pi Picoを除くすべてのRaspberry Piで動作します。
Raspberry Pi Connectを利用するためには、Raspberry Pi本体と操作する端末の両方がインターネットに接続されている必要があります。
Raspberry Pi Connectの仕組み
Raspberry Pi ConnectはWebRTCを利用してピアツーピア(P2P)接続を確立し、ブラウザとRaspberry Piの間で直接データをやり取りします。これはZoomやSlackなどのリアルタイム通信ツールと同様で、安全かつ低遅延な接続を実現します。(参考:Raspberry Pi公式ブログ)
基本的にP2P接続が優先される設計ですが、ネットワーク環境によっては確立できない場合があります。その際は、Raspberry Pi ConnectのTURNサーバーを経由したリレー接続が行われます。この通信はDTLSで暗号化されますが、現在TURNサーバーはイギリスに1つしかないため、遅延が発生する可能性があります。
Raspberry Pi Connectの設定
Raspberry Pi Connectを利用するには、まずRaspberry Piのデスクトップ画面で設定を行います。ここでは、有効化の手順やデバイスの登録方法を説明します。
今回はRaspberry Pi OS Bookworm(64-bit)を使用しました。
Raspberry Pi Connectを有効にする
デフォルトでは、Raspberry Pi Connectはインストール済みですが無効化されています。有効にするには、以下の手順を実行します。
メニューバーから「Raspberry Pi Connect」のアイコンをクリックします。
「Turn On Raspberry Pi Connect」をクリックすると、Raspberry Pi Connectの機能が有効になります。
初めて利用する場合は、ブラウザが開いてRaspberry Pi ConnectのWebページが表示されます。
Raspberry Pi IDを作成する
Raspberry Pi Connectを利用するには、Raspberry Pi IDが必要です。「create one for free」(無料でアカウントを作成)をクリックし、新規アカウントを作成します。
必要な情報を入力します。
Continueボタンをクリックすると、登録したメールアドレスに確認メールが届きます。
メールアドレスを認証する
PCまたはスマートフォンで、「id@raspberrypi.com」から届いた確認メールを開き、「Verify email」をクリックします。
「Sign in」をクリックします。
先ほど設定したメールアドレスとパスワードを入力します。
以下の画面が出れば、サインイン完了です。
デバイスを登録する
Raspberry Pi Connectに自分のRaspberry Piを紐づけて、リモートアクセスできるようにします。
Raspberry Piの「Raspberry Pi Connect」アイコンをクリック後、「Sign In」をクリックします。
「Sign in as 〇〇」をクリックします。
デバイス登録画面が表示されたら、デバイス名を入力し(例:「MyPi」など)、「Create device and sign in」ボタンをクリックします。複数のラズパイを使用している場合は、「Pi5-8GB」などの名前を付けると識別しやすくなります。
「Device sign in successful」の画面が出たら設定は完了です。
「view your dashboard」 をクリックして、登録されたデバイスが正しく表示されているか確認してみます。
チェックポイント
デバイス名は、各デバイスごとに割り当てる必要があります。試しに同じmicroSDを別のラズパイに挿してRaspberry Pi Connectを使おうとしましたが、新たにデバイス名を設定しなければなりませんでした。
PCからリモート操作する
PCのブラウザで Raspberry Pi Connect にアクセスします。サインインすると、以下の画面が出ます。「Connect via」 ボタンをクリックします。
「Screen sharing」または「Remote shell」 を選択します。
「Screen sharing」はRaspberry Pi のデスクトップ画面をブラウザ上で操作できます。マウスやキーボードを使ってGUIアプリを操作したり、デスクトップ環境の設定を変更したりするときに便利です。
「Remote shell」Raspberry Pi のターミナル(CLI)に接続されます。コマンドを直接入力してシステムの設定変更や再起動を行ったり、PythonやBashのスクリプトを実行したりする際に役立ちます。
Screen sharingを使った操作感
「Screen sharing」を選択すると、以下のようにデスクトップ画面が表示されます。接続までにかかった時間は15秒でした。VNC接続と比べると、やや時間がかかる印象です。
VNC接続をしている場合は画面が表示されませんでした。「Raspberry Pi Connect」とVNCは同時に使用できないようです。
キーボードやマウスを使って快適に操作できます。遠隔地からでも自在に扱えるのは、とても便利です。
スマートフォンからリモート操作する
PCの場合と同様に、ブラウザで Raspberry Pi Connect にアクセスします。以下はiPhoneからアクセスした際の画面です。
サインインすると、デバイス管理画面が表示されます。
「Screen sharing」(画面共有)を押すと、以下のようにデスクトップ画面が表示されます。画面の拡大縮小はできないようです。
PCから接続しているかどうかで、スマホに表示される画面サイズが変わります。PCで先に接続すると、その解像度が適用され、後からスマホで接続すると表示が変わるようです。これは、Raspberry Pi Connectが最初に接続したデバイスの解像度を基準にセッションを設定し、後から接続するデバイスはその解像度を引き継ぐためと思われます。
スマートフォン仕様の画面だと一部の領域しか表示できませんが、ボタンの操作は可能です。
逆にPCを先に接続した場合の画面では、全画面表示されますが、ボタンが小さすぎて操作はかなり困難です。Raspberry Pi Connectは現在ベータ版のため、今後のスマートフォンでの操作性の向上が期待されます。
スマートフォンからの文字入力
「Screen sharing」(画面共有)モードでは、画面上のキーボード(オンスクリーンキーボード)が表示されないので文字入力は不可能です。ただし、「Remote shell」モードではオンスクリーンキーボードが使用できるため、コマンドを入力できます。
Raspberry PiのCPU温度を取得するコマンドを実行してみました。以下のコマンドを使用します。
vcgencmd measure_temp
スマートフォンからの操作で、CPU温度を取得できました。
カメラ映像を表示する
カメラモジュールV3で撮影した映像をスマートフォンに表示してみます。
以下のコマンドはカメラのプレビュー画面を表示するためのものです。
libcamera-hello --timeout 0
Raspberry Pi Connectに接続すると、以下のように表示されます。
スマートフォンだと、全画面表示はできないようです。横向きにしても画像サイズはあまり大きくなりませんでした。このあたりの操作性も、今後の改善を期待したいと思います。