RPI Connectはどのモデルでも使えるのか？

# 概要
[巷で話題](https://japan.zdnet.com/article/35218834/#:~:text=Raspberry%20Pi%20Connect%E3%81%AF%E3%80%81Raspberry,%E3%81%8B%E3%82%89%E7%9B%B4%E6%8E%A5%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%99%E3%82%8B%E3%80%82)のドメインやルータ設定等への追加設定不要で、外部からリモート接続可能な『 Raspberry Pi Connect Beta (以下、RPI Connect) 』を利用し、Raspberry Piにリモート接続できるかを確認する。

先日、全てのRaspberry Piのモデルに対応したとのことなので、どこまで対応しているかを確認する。

今回は、手元にあった一番古いRaspberry Piである『 Raspberry Pi Zero (v1.3)』を利用する。
当該のRaspberry Pi Zeroは、無線LANやBluetooth等はないモデルのため、後付けで、USBのWiFiを追加している。

- RPI Connect全機種対応 : https://fabcross.jp/news/2024/20240722_raspberrypi_connect_update12.html

**私は、RPI Connectで結構ハマったので、とりあえず、最短で利用できるところまでのインストール方法をお伝えしたい。**

# ベースライン(環境前提)
以下の環境にて、RPI Connectをインストールする。
## Raspberry PiのSDカード作成時のオプション
- Raspberry Pi Imager App : Raspberry Pi Imager v1.8.5
- Raspberry Pi Device : Raspberry Pi Zero (Models Zero, Zero W, Zero WH)
- Operating System : Raspberry Pi OS (32bit)
- その他 : ホスト名設定済み(今回の例は、piw1)、ユーザ名/パスワード設定済み(今回の例は、nttdata)、無線LAN設定済み。
## Raspberry Pi Zero環境
- モデル名 : Raspberry Pi Zero (v1.3)
- OS : Raspberry Pi OS (32-bit)(Released 2024-07-04)
- CPUコア数 : 1
- MEM : 512MB
- DISK(SD card) : 32GB
- 後付けUSB-WiFi(無線LAN) : TP-Link TL-WN725N
- Installed : vim screen
## RPI Connectの状態
- ID登録が完了しており、デバイス一覧画面までログイン可能な状態となっていること。

# RPI Connectのインストール方法
RPI Connect(rpi-connect)のインストールを実施する。

## rpi-connectインストール
```shell
## SSH等で接続をして、以下のコマンドを実行すること。

sudo apt update -y
sudo apt full-upgrade -y  
## Raspberry Pi Zeroで実施したところ、1時間くらいを要したので、
## 必要によって、『 screen 』等を活用し、実施すること。

sudo apt install -y rpi-connect  
## イメージによっては既にインストールされている場合があるかもしれません。
## 今回のイメージでは既にインストール済みでした。

sudo reboot
```


## rpi-connectの設定
リモートコントロール時にログインしたいユーザでログインを行う。(rootは不可なので、root以外のユーザでログインすること)
```shell
## SSH等で接続をして、以下のコマンドを実行すること。

## RPI Connectへデバイスを登録するためのURLを取得する。
rpi-connect signin

## 『(例) https://connect.raspberrypi.com/verify/XXXX-XXXX 』
## のようなURLが取得されるので、インターネットに接続可能なブラウザから、
## 接続したいRPI Connectのアカウントでログインして、登録を実施する。
```



### ① 取得したURLにアクセスする
上記で取得した『(例) https://connect.raspberrypi.com/verify/XXXX-XXXX 』形式のURLをWebブラウザに入力する。

紐づけたいRPI Connectアカウントでサインインする。
![RPI_Connect_Login.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3455334/43665fd0-6c27-f9a8-36e5-ed278b52220a.jpeg)



### ② ホスト名を設定する
RPI Connectの一覧等で表示されるホスト名を設定し、『 Create device and sign in 』をクリックする。

![RPI_Connect_Hostname.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3455334/43ca5901-2f93-4fb7-318c-34fd783d44e2.jpeg)
![RPI_Connect_Successful.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3455334/c227b58d-fda1-a20e-677b-0540315044dc.jpeg)


# 利用方法
インストール後は、今後接続する際は、以下のURLから、ログインして、操作可能となる。

### ① RPI ConnectのURLにアクセスする。
『 https://connect.raspberrypi.com/devices 』にアクセスし、サインインする。

![RPI_Connect_Devices_view.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3455334/d9bb7baf-ad66-79e5-ad02-2c98e031426f.jpeg)


### ① 『 Connect 』をクリックする。
『 Connect 』をクリックすると、『 Remote shell 』として、ログインできる。

※ Screen Sharingも利用可能な場合は、どちらに接続するかを選べるので、『 Connect 』をクリック後、『 Remote shell 』をクリックすること。

![RPI_Connect_Remote1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3455334/d9010e6a-a643-bcfd-949f-c15c128b3b66.png)
![RPI_Connect_Remote2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3455334/a5e4fbdd-7656-b0f9-b03c-81cb2d3bcb65.png)




# 仕様の確認
RPI Connectは、VNCのような『 Screen sharing 』も提供している。
だが、色々試してはみたが、『 Raspberry Pi Zero 』では利用することができなかった。
RPI Connectのドキュメンテーションを確認したところ、以下の記載を見つけた。

```
Screen sharing requires the Wayland window server. By default,
Raspberry Pi OS only uses Wayland for 64-bit distributions of 
Raspberry Pi OS Bookworm on Raspberry Pi 5, 4, or 400. Screen 
sharing is not compatible with Raspberry Pi OS Lite or systems 
that use the X window server.
```

![RPI_Connect_Documentation_Screen_sharing.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3455334/3ae0d25d-22cd-ccc8-dc68-02d63919bd26.png)


- RPI Connect インストール手順 : https://www.raspberrypi.com/documentation/services/connect.html#screen-sharing

記載の通り、『 Raspberry Pi 5, 4, 400の64-bit』でしか利用できない仕様のため、『 Screen sharing 』を利用することはできないことが分かった。

だが、『 Remote shell 』でのリモートアクセスは可能なため、今回は、『 Remote shell 』の最短でのセットアップを提示した。

# さいごに
RPI Connect(Raspberry Pi Connect Beta)は、少し遅いですが、Raspberry PiのIPを調べたりする機構を作ったり、DDNSに登録したり、DHCPでIPを固定したりすることが必須ではなくなり、より簡単にRaspberry Piを利用することができるようになるかと思います。

『 Raspberry Pi Zero 』でも制約はありますが、『 RPI Connect(Raspberry Pi Connect Beta) 』の『 Remote shell 』でのインターネット等からの外部接続が可能なことを確認しました。他のRaspberry Piの機種でも利用可能かと思います。

『 RPI Connect(Raspberry Pi Connect Beta) 』を使えば、色々なシーンで利用ができるかと思います。また、簡単にセットアップできるので、皆様も新旧問わず、色んなRaspberry Piで楽しんでみてください。