Raspberry Pi Connectの設定と接続の手続き

## 1.はじめに
　Raspberry Pi OSにはVNC(Virtual Network Computing）サーバー機能を選択することによって、Raspberry Piに対してPCからリモートデスクトップ接続が可能です。PC側では、Real VNCやTiger VNCのViewerが使用できます。（※ウィンドシステムがWaylandに切り替わってから、Real VNC Viewerは使用できませんでしたが、正確な時期は不明ですが７月頃から使用できるようになりました。）VNCはIPアドレスのセグメント[1]が一致しているLAN内での接続が一般的で、インターネットを介した接続にはポートやセキュリティなどの設定と専門的な知識が必要です。一般論になりますが、セキュリティ対策が不十分な場合、IoTデバイスが第三者に悪用される可能性が報告されています[2]。
　2024年5月に発表されたRaspberry Pi Connectは、<b>インターネット経由で</b>Raspberry Piを遠隔操作・管理するための公式ツールです。自宅や外出先から、職場や学校のRaspberry Piに簡単に接続できて、デスクトップまたはシェルセッションでのリモート操作が可能です。IoT化されたエアコン、給湯器、そして窓シャッターなどもスマートフォンで遠隔から操作できる昨今、Raspberry Piを使って同様のことができる可能性があります。また、Raspberry Pi ConnectはRaspberry Pi財団の公式サービスなので安心感があり、しかも無料なのが嬉しいですね。
　Raspberry Pi Connectは、Bookworm(64-bit) Release 5.3に標準搭載されています。ただし、本ツールはまだベータ版として提供されており、対応デバイスはRaspberry Pi 5、Raspberry Pi 4B、Raspberry Pi 400に限られています。本稿では、アカウントの作成、Raspberry Pi の登録、リモートデスクトップ接続の順に主な手続きを説明します。Raspberry Pi Connectの技術的な詳細や仕組みについては、参考文献[3]〜[5]を参照してください。参考文献[5]は日本語ですが、閲覧には会員登録が必要です。

#### 1.1 使用したもの
* Raspberry Pi 5 4GB
* OS：Bookworm(64-bit) Release 5.3 July 2024
* PC、ディスプレイ、キーボード、マウス
* Wi-Fi環境

## 2.Raspberry Pi IDの作成
　Raspberry Pi ConnectなどのRaspberry Piサービスを利用するには、Raspberry Pi IDが必要です。まず、Raspberry Pi Connectを有効にし、その後Raspberry Pi IDを作成します。
* Raspberry Pi Connectを有効にする
[Menu]⇒[設定]⇒[Raspberry Piの設定]を開き、「インターフェイス」タブをクリックして、「Raspberry Pi Connect」のスイッチをオンにします。既にRaspberry Pi IDを取得している場合は、スイッチをオンにした時点で本章はスキップしてください。

図１　インターフェイスのタブ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/64bed78a-dadb-c31a-aaba-8eb9198b9dcf.png">

* デスクトップ画面右上に表示されたRaspberry Pi Connectのアイコンをクリックし、表示されたメニューから「Sign in」を選択します。この操作により、Raspberry Pi IDのログイン画面が表示されるので、既にアカウントを持っている場合はログインを行い、まだ作成していない場合は新規にRaspberry Pi IDを作成します。

図2　Connectのアイコンより「Sign in」をクリック
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/6b99dd09-5265-d22b-d6c4-03e54b3b97bf.png">

* 新規にIDを作成する場合、表示されたWebページの「create one for free」のリンクをクリックします。

図3　「Sign in with your Raspberry Pi ID」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/05515142-563a-0be3-3090-0a1b097128bd.png">

* 電子メールアドレス、パスワード、氏名（ニックネームなど）を入力し、「I agree to the Terms and Conditons」にチェックを入れてください。図の該当箇所は、プライバシー保護のため、ぼかし処理を施しています。
 
図4　「Create your Raspberry Pi ID」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/448e3a99-3f73-5447-973f-093cf1fef247.png">

* 「私は人間です」にチェックを入れると、画像認証が表示されます。指示された画像を選択するなどの質問に回答し、「Continue」をクリックしてください。

図5　画像認証
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/dea287b9-d280-1750-f7d7-d75ce60a2236.png">

* 登録した電子メールアドレスに確認用のメールが送信され、確認を求めるメッセージが表示されます。メールの受信ボックスを確認してください。

図6　「Verify your email」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/b62de936-faeb-7f71-c3eb-4ec8602a483b.png">

* PCやスマートフォンで、<foo>id</foo>@raspberrypi.comから送信された確認メールを開き、「Verify email」をクリックします。

図7　PC側で開いた電子メール
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/d6ae7485-62f1-2959-a6f1-0baf682be218.png">

* 表示されたサインインの画面で、登録した子メールアドレスとパスワードを入力し、「Sign in」をクリックします。

図8　PC側に表示された「Sign in with your Raspberry Pi ID」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/96c0038b-42f8-ad87-4c9f-8d796aeec1d3.png">

* サインインに成功すれば、IDの作成は完了です。サインイン後、登録したメールアドレスに確認の連絡が届きます。右側の人のアイコンをクリックすることで、メニューから「Sign out」を選択してログアウトすることが可能です。

図9　PC側に表示された「Email successfully verifiked」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/f4a13103-89b2-ae2e-091a-d7576046547e.png">

## 3.Rapsberry Pi本体の登録
* Raspberry Piに戻り、デスクトップ画面右上に表示されたRaspberry Pi Connectのアイコンをクリックして、表示されたメニューから「Sign in」を選択します。

図10　Connectのアイコンより「Sign in」をクリック
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/6b99dd09-5265-d22b-d6c4-03e54b3b97bf.png">

* サインインのWebページが表示されたら、中央にある「Sign in as　名前、電子メールアドレス」のボタンをクリックします。

図11　「Sign in with your Raspberry Pi ID」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/967cd04d-5da6-1c54-18fe-2189c269a263.png">

* Raspberry Piを識別するために、本体の名前を付けます。ここでは「HomePi5-01」とし、次に「Create device and sign in」をクリックします。

図12　「Name your new device」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/ceed3e53-a1da-be28-6408-e9cbfb4a32db.png">

* 「Device sign in successful」と表示されたら、設定は成功です。もし、時間が経過して無効と表示された場合は、サインインからやり直してください。

図13　「Device sign in successful」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/9ba18b9a-e9db-4c03-1bf1-bca4ecab1550.png">

## 4.PCからRaspberry Piにリモート接続をする
* リモート側のPCで、次のURLをWebブラウザで開きます。
https://www.raspberrypi.com/software/connect/
「Sign in」をクリックします。

図14 Raspberry Pi Connectサービスの公式Webページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/4e9caa54-aca5-0fd8-3adb-3df5deaa1de5.png">

* 「Sign in with Raspberry Pi ID」をクリックします（図15(a)）。なお、サインインが継続している場合は、図15(b)が表示されますので、中央の「Sign in as・・・」をクリックします。すると、図17が表示されます。

図15(a) 「Sign in with Raspberry Pi ID」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/8ff29e32-1b44-f436-bbbf-b407ec51064a.png">
図15(b)　「Sign in as・・・」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/2b6c763a-1f32-7e8e-32db-9fa6df938ed8.png">

* 登録した電子メールアドレスとパスワードを入力して、「Sign in」をクリックします。なお、Raspberry Piのサービスからサインアウトしていると、プロファイル画面（Hi 名前）が表示されます。もう一度、同じURLを開いて、「Sign in」をクリックします。
https://www.raspberrypi.com/software/connect/

図16　「Sign in with your Raspberry Pi ID」のWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/8d63cffb-a134-dece-c355-f1d24e3c0dd5.png">

* ページの左側に登録したRaspberry Piのデバイス名(HomePi5-01) が表示されます。右側の「Connect via」ボタンをクリックします。

図17　「Devices」リストのWebページ
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/9e843c8e-d4cf-cc23-a867-4c69b214383c.png">

* 「Screen sharing」と「Remote shell」のメニューが表示されます。以下のようにそれぞれを選択できます：
・Screen sharing: Raspberry Piのデスクトップ画面をリモートで表示し操作するためのオプションです。
・Remote shell: コマンドラインからRaspberry Piを操作するためのオプションです。

図18　Connect viaのメニュー
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/a4e446d6-85f2-9f27-a524-54b710fa64bb.png">

* 「Screen sharing」をクリックして、Raspberry Pi (HomePi5-01) と通信接続が完了すると、デスクトップ画面が表示されます。接続を終了する際は、左側の「Disconnect」をクリックします。
なお、以下の点に留意してください：
・マウス操作: VNCとは異なり、マウスを利用してソースコードなどの文字情報のコピー・アンド・ペーストはできません。代わりに、上部右側の「Copy from remote」と「Paste to remote」機能を使用します。
・文字コード: 日本語の場合、PCの文字コードがシフトJISで、Linux側がUTF-8であるため、文字化けが発生することがあります。その場合は、文字コードの変換を行う必要があります。
・画面左下に[Ctr],[Menuアイコン],[Alt],[Esc],[Tab]などの特殊キーやアイコンが表示されます。VNCでは特殊キーを使用できますが、Pi Connectではリモート側のWindowsが反応します。そのため、アイコンで用意しています。使い方の一例として、図21のようにPiカメラのプレビューとターミナルの２つのウィンドウを使用している場合、[Alt]を先にクリックして、[Tab]をクリックすると、両者のウィンドウをトップへ切り替えることができます。

図19　「Screen sharing」によるリモートデスクトップ接続
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/d3405df3-6031-11bf-da3d-930858b418a8.png">


* 「Remote shell」をクリックすると、シェルセッションが開始されます。終了する際は、exit コマンドを実行してセッションを終了します。

図20　「Remote shell」によるシェルセッションの接続
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/2ed8375e-405d-4d49-b647-a5ba51da0a8c.png">

* スマートフォン(Android)でもデスクトップ画面を表示できます。リモート側のHomePi5-01にPiカメラ3を接続して撮影している内容を確認することができます。スマートフォンのディスプレイが小さいため、キーボードとマウスを接続して作業するよりも、監視用として利用するのが適しています。
　 遅延はありますが、1台のリモート側のHomePi5-01に対して、同時に３台のデバイス（PC、タブレット、スマートフォン）から接続することも確認しました。HomePi5-01はヘッドレス状態で動作しています。

図21　スマートフォンからのリモートデスクトップ接続
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631966/d1d524a8-eb21-4ebc-4f2d-31d802e1daa4.png">


## 5.おわりに
　職場や教室などの同じLAN内で、Raspberry Piをヘッドレスで使用する場合、VNCの方がデスクトップ画面をディスプレイにフィットさせたり、マウスでのコピー・アンド・ペーストが可能なため、プログラム開発などの細かい作業に適しています。
 　一方、Raspberry Pi Connectは、インターネットを介した接続に大きなアドバンテージがあります。スマートフォンでも利用できるため、機器の監視やデータのモニタリングなど、アディア次第で用途は広がることでしょう。  
　ただし、Raspberry Pi Connectを利用するにはRaspberry Pi IDの取得が必要です。これにより、集合教育などでは電子メールアドレスやアカウント、パスワードの管理が指導者側の負担となる可能性があります。
　Raspberry Pi Connectは現在まだβ版です。今後の改良や便利な機能の追加が期待されるため、さらに使いやすくなることが楽しみです。


## Reference
[1] セグメント, "https://e-words.jp/w/セグメント.html"
[2] NHKスペシャル取材班, IoTクライシス―サイバー攻撃があなたの暮らしを破壊する,NHK出版 (2018/July/25)
[3] Gordon Hollingworth, News Raspberry Pi Connect ,"https://www.raspberrypi.com/news/raspberry-pi-connect/" (2024/May/07)
[4] Raspberry Pi Connect (Beta), "https://www.raspberrypi.com/documentation/services/connect.html"
[5] 羽田野太巳, 新サービス「Raspberry Pi Connect」を試してみた、Webブラウザーでリモート接続,"https://xtech.nikkei.com/atcl/nxt/column/18/01109/052200056/" (2024/May/24)