LoginSignup
4
3

More than 3 years have passed since last update.

ラズパイで見守りシステム開発その1:ディスプレイとキーボード無しでRaspberryPiを初期設定する

Last updated at Posted at 2020-11-22

こんにちは。

「別の部屋で寝ている1歳半の子どもが夜起きたことを知りたい」という要件から、見守りシステムを作るべくRaspberryPiでの実装に挑戦することにしました。

私自身、RaspberryPiの導入は初めてでなおかつディスプレイもキーボードも無い状態でしたので「ディスプレイとキーボード無し、SSH経由でRaspberryPiを初期設定する手順」をまとめます。

ここでいう初期設定とはラズパイに接続ができて、VNCでデスクトップ環境を利用可能にするまで、とします。

2回目となる動体検知と通知機能の実装はこちらです。

環境

基盤:Raspberry Pi4 Model B
OS:Raspberry Pi OS(32bit)
インストーラー: Raspberry Pi Manager v1.4
クライアント: Windows10

(参考)今回購入した製品

Amazonで販売されているRaspberry Pi 4 Model B Starter Kit Proを購入しました。

image.png

  • RaspberryPi 本体
  • ケース
  • HDMIケーブル2本(今回は使わない)
  • 専用電源ケーブル
  • ヒートシンク&ファン
  • 32GB MicroSD(NOOBS書き込み済)
  • USB3.0 SDアダプタ

という、およそ初期設定に必要なものが全部入りになっています。

本体組立て

まずは本体を組み立てていきます。

こちらが梱包されている機器一式です。
P_20201117_230828 - コピー.jpg

RaspberryPi本体をケースにはめ込みます。
P_20201117_233932 - コピー.jpg

ヒートシンク&ファンを取り付けます。
P_20201117_234452 - コピー.jpg

ファンの電源は説明書を見て4,6番のピンにつなぐことにします。
P_20201119_234912 - コピー.jpg

赤いコード(プラス)を4番、黒いコード(マイナス)を6番につなぎます。
P_20201117_235552 - コピー.jpg

一旦ここまでです。

MicrosSDにOS書き込みとSSH有効化

ここからラズパイ上で動くOSの作成とSSHの設定を行います。

OSインストール

私が今回購入した付属のMicroSDには予めNOOBSというOSインストーラーが書き込まれていましたが、これはRaspberryPi上でOSをインストールするためのものなので、削除します。
2020-11-17_23h24_39.png

なおファイルシステムはFAT32となっており、これはそのままで良いため単純にMicroSD上のファイルを全削除しました。

MicroSDへのRaspberryPi OSの書き込みはRaspberryPi公式ツールであるRaspberryPi Image Managerで非常に簡単に行なえます。

RaspberryPi Image Managerをインストール、起動します。

2020-11-17_23h33_24.png

左端のCHOOSE OSをクリックしてインストールするOSを選択します。今回は一番上の「Raspberry Pi OS(32bit)」を選択します。
2020-11-17_23h33_35.png

続いて真ん中のCHOOSE SD CARDをクリックすると、現在パソコン上で認識しているSDカードの一覧が表示されるので、インストールするSDカードを選択します。
2020-11-17_23h34_02.png

あとは右端のWRITEをクリックするだけです。
2020-11-17_23h34_09.png

完了しました。
2020-11-17_23h57_05.png

SSH有効化

今回はディスプレイもキーボードもない状態のため、クライアントPCからRaspberryPiへSSHで接続して初期設定を行います。

RaspberryPi起動時からSSHデーモンを有効化するために、先程作成したMicroSDの直下にsshという名前のからファイルを作成します。
2020-11-18_00h07_11.png

これだけでRaspberryPi起動時にSSHデーモンが立ち上がります。素晴らしく簡単です。

RaspberryPi起動

MicroSDカードを最初に組み立てたRaspberryPi本体に差し込みます。
P_20201118_211843 - コピー.jpg

電源ケーブルとLANケーブルを差し込み起動します!!
P_20201118_212008 - コピー.jpg

SSH接続

Raspberry Pi OSではデフォルトでホスト名がraspberrypi.localとなっているため、クライアントPCが同じネットワークにつないであれば、ホスト名でSSH接続できます。

試しにpingしてみます。
2020-11-18_21h31_23.png

問題なさそうです。

それではSSH接続です。デフォルトではID/パスワードがpi/raspberrypiのユーザーが作成されているため、このユーザーでログインします。

見事に接続できました!!

WirelessLAN設定

初期設定がてら、WirelessLANも設定しておきます。

先程ログインしたコンソールにも表示されていたsudo raspi-configを実行します。

上から2番目のNetwork Optionsを選択してEnter。
2020-11-18_21h34_01.png

上から2番目のN2 Wireless LANを選択してEnter。
2020-11-18_21h34_25.png

地域設定で国を選択します。
2020-11-18_21h34_53.png

2020-11-18_21h35_01.png

SSIDとWi-Fiパスワードを入力します。
2020-11-18_21h35_28.png

2020-11-18_21h36_27.png

最初のメニューに戻りFinishをEnterすると再起動します。
2020-11-18_21h36_40.png

再起動後に再びSSH接続、ifconfig -aで確認すると有線LANとWirelessLANのIPアドレスが割り当てられています。
https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_183744_300a8b5a-4072-9618-3be2-c8ddc084e314~2.png

VNC設定

ラズパイ側(サーバー)

最後に、必須ではありませんがデスクトップが使えると何かと便利そうなのでVNCサーバーを導入します。

まずラズパイにVNCサーバーをインストールします。今回はTightVNCを使います。

sudo apt-get update
sudo apt-get install tightvncserver

一度tightvncserverでVNCサーバーを起動し、ログイン用のパスワードを設定します。

pi@raspberrypi:~ $ tightvncserver

You will require a password to access your desktops.

Password:
Warning: password truncated to the length of 8.
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Warning: password truncated to the length of 8.
Verify:
xauth:  file /home/pi/.Xauthority does not exist

New 'X' desktop is raspberrypi:1

Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log

クライアント側

これでラズベリーパイにVNC接続できるようになりました。

クライアント側のViewerはおそらくなんでもいいと思いますが、一応TightVNCのクライアントを使って確認します。

java -jar tightvnc-viewer.jar

Raspberry Piのホスト名(またはIPアドレス)を入力、先程設定したパスワードでログインできれば成功です!
2020-11-18_21h51_06.png

2020-11-18_21h51_16.png

2020-11-18_21h51_25.png

VNCデーモン設定

これはおまけですが、ラズパイを起動するたびにVNCサーバーを立ち上げるのは面倒なのでsystemdによる自動起動設定を行います。

/etc/systemd/system/tightvnc.serviceという名前でサービスファイルを作成します。

tightvnc.service
[Unit]
Description=tightvncserver
After=network.service

[Service]
Type=forking
Restart=on-success
ExecStart=/usr/bin/vncserver :1 -geometry 1024x768 -depth 24
ExecStop=/usr/bin/vncserver -kill :1
User=pi

[Install]
WantedBy=multi-user.target

サービスを有効化します。

sudo systemctl enable tightvncserver

今回はここまで。

思ったよりも簡単にできました。次回はカメラの接続と動体検知機能の実装(と言っても既存のソフトウェアを設定するだけ)します。

参考サイト

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3