ラズベリーパイを使ったスマートロックをつくる工作の2話目。
今回はラズベリーパイを初期設定し、外部の端末(WindowsとかMacとか)からリモートで使えるようにする。
その他日本語入力できるようにとかWi-Fi接続とかの設定もやっておく。
ラズビアンインストール
まずは下記公式サイトへ飛び自分のパソコンに応じたインストールアプリケーションをダウンロードし、ダウンロードの後にインストールする。
Raspberry Pi OS – Raspberry Pi
参考サイト
Raspberry Piに公式のイメージ書き込みツール「Raspberry Pi Imager」がリリースされてセットアップが超便利に #RaspberryPi | DevelopersIO
ただし上記参考サイトに書いてはいないが1点テクニックがある。それはなにかというと、▼この初期画面でCTRL+SHIFT+Xをキーボードで押すのだ。
そうすると▼こういうウィンドウが現れるので予め決められることを決めてしまうのだ。
- ホストネーム
- SSHを有効にしておく
- ユーザーのパスワード
特になにも決めないでインストールするとパスワードはラズパイをいじる人なら誰でも知ってるraspberryとなってしまうのでここで任意のパスワードを決めてしまったほうが世話ないというわけ。
そして一つ前の画面に戻ったら[CHOOSE OS]というボタンで一番上のラズビアンを選択し、その右のボタン[CHOOSE STRAGE]からMicroSDを入れているドライブを選ぶ。するとその右の[WRITE]ボタンが有効になるのでクリックすればOK。
あとは途中でエラーメッセージっぽいものも出るかもしれないが自分はちゃんと書き込みできている。
ラズベリーパイ用にフォーマットされているのでWindowsからは見えなくなっているかもしれないので自分はドライブを外す手続きをしないでエイっと抜いてしまっているが問題なかった。
ラズベリーパイの起動
起動するにはさきほど書き込みしたMicroSDをラズベリーパイに挿入する。そして最初はHDMIケーブルでディスプレイとつなぐ。それとキーボードとマウスもつなげよう。あと大事なのは最初はLANケーブルもつなげよう。
マウスは最初は有線タイプをつなげたほうが良いが、あとからBluetooth接続するタイプに変えることができる。
LANケーブルをつなげておけばインターネットに繋げられる。
リモートアクセスできるように設定
起動したら左上のラズベリーパイアイコンメニューからPreference→Raspberry Pi Configurationを選ぶ。最初は日本語になっていないが少々我慢。
Interfaceタブを選びその中の項目でSSHとVNCをEnableにする。OKボタンをクリックするとウィンドウが閉じるが少し待っていると画面右上にVNCという文字がデザインされたアイコンが現れる。
表記がまだ英語だがちょっとの辛抱
あとWi-Fiが未接続なら画面右上にあるネットワークっぽいアイコンをクリックしてWi-Fi接続先を選ぶ。そしてIPアドレスを控えておく。
IPアドレスはWi-Fi接続されたのち画面右上のアンテナのアイコン上にマウスカーソルをホバーすると浮き出てくるのでそれを控える。
ここまでやったら次はパソコンでの操作である。
▼ここからVCNビューワーのアプリをダウンロードしてインストールする
Download VNC Viewer | VNC® Connect
▼インストール後に起動するとこういう画面になるので控えておいたラズベリーパイのIPアドレスを入れてエンターする。
▼そうするとこういう画面になるのでUsernameにはデフォルトのpi、Passwordには最初のラズビアンディスク作成のときに決めたパスワードを入れる。あれをやっていなければデフォルトのパスワードはraspberryだ。
▼それでOKするとラズベリーパイの画面を開くことができる。ちなみにこれは端末操作ではなくリモートアクセスしている状態なのでラズベリーパイに直接HDMI接続しているディスプレイで見ると同じ動きをする。
次はWindowsからコマンドライン命令を送るようにするSSHクライアントアプリのインストールだ。
▼ここからダウンロードしてPCにインストールする。
Tera Term (テラターム) プロジェクト日本語トップページ – OSDN
VNC接続だけでほとんど済んでしまうのでSSHクライアントはなくてもなんとかなってしまうから面倒ならやらなくてもいいかなと思っている。
デフォルトを日本語にする
左上のラズベリーパイアイコンメニュー→Preference→Raspberry Pi Configurationと選んでLocalisationタブを選択すると下の画像のようになるのでSet Localeをクリックする。あとは自分の好きな言語やら国やらキャラクターを選ぶ。
言語と国は日本は当然としてもキャラクターセットはなぜかUTF-8を選んでるけど良いのかなあ・・・多分いいんだと思うんだよね。
最後にOKをクリックすると再起動するか聞いてくるのでいちいち再起動がうざかったらまとめていろいろ設定してからでもいいかも。
キーボード設定と日本語入力
キーボード設定
リモート主体で操作する場合は不要?とも思うが、一応直接操作するときを考えてやり方だけメモしておく。
左上のラズベリーパイアイコンメニュー→設定→キーボードとマウスを選び、キーボードタブでキーボード配列というボタンを押すと下の画像のものがでるので自分にあった配列を選ぶ。
自分のキーボードがなにに該当するのかは自分で調べること。
日本語設定
Raspberry Piで日本語入力する方法(iBus+Mozc) – Indoor Corgi
上記リンクを見てもらえればなにも補足することはないんだけど万一リンクが切れたときのために下記に手順を書いておく。
1.アクセサリからLXTerminalを開く
2.以下のコードを入力する
sudo apt update
sudo apt install ibus-mozc
途中でY/N聞いてくるのでYで答える
処理が終わったら再起動して次に開かれた画面で右上に日本語変換アイコンがあれば設定してみて入力できればOK
IPアドレスの固定
仮に固定でなくともVNCでは端末名.localで開けるが、今後直接IPアドレスを指定して操作したいときがあるかもしれないので固定にしておくのは一定の意味がある。
参考サイト
ラズベリーパイで固定IPアドレスを設定する – ムギークのブログ
以下のコードをターミナルのウィンドウで打っていく
ifconfig
でてきた情報から今のラズベリーパイのIPアドレスとデフォルトゲートウェイとDNSサーバのIPアドレスを控えておく。デフォルトゲートウェイとDNSサーバのIPアドレスはだいたい一緒のことが多いはず。
このあと設定ファイルを編集するが参考サイトでは以下のようにコマンドを打っていた。
sudo nano /etc/dhcpcd.conf
だが、自分は素人だから素人向けのエディタで編集する。それが以下だ。
sudo mousepad /etc/dhcpcd.conf
ここでデフォルトゲートウェイ&DNSサーバのアドレスが192.168.1.1でラズベリーパイのIPアドレスが192.168.1.20とかだった場合を想定してラズベリーパイのIPアドレスを例えばパイで81に設定しよう。
ファイルを開いたら一番下までスクロールし、以下を付け足す。
interface wlan0
static ip_address=192.168.1.81/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
2行目がラズベリーパイの固定IPアドレス(/24)の意味はサブネットマスクらしいが意味を説明しきれないのでググってほしい。
3行目と4行目にそれぞれ控えておいたデフォルトゲートウェイとDNSサーバのアドレスを入力する。
控えておいたラズベリーパイのアドレスはどこで使うかって?使わん。
ここまで入れてテキストを上書き保存し終えたら再起動(リブート)する。リブートはそのままターミナルウィンドウで
reboot
と入れてエンターすればよい。本当はGUI画面でもできるらしいが、勉強のためには多少コマンドラインでやておいたほうが良いと思う。参考サイトを見たらGUIでの設定方法も載っているので興味があれば見てみてください。
もし再起動が始まらなかったら
sudo reboot
と打ち直してみれば再起動されるはず。
Wi-Fi設定をファイル化
これをやっておけば何度ラズベリーパイOS(ラズビアンなど)MicroSDを初期化しても素早くWi-Fi接続設定を復旧できるようになる。
参考サイト(Raspberry PiでWifiを設定する方法 – そうなんでげす)では以下のようにターミナルで打つというふうに書いてあるがviというコマンドは伝統的なテキストエディタで40年あるいはもっと前からあるもので伝統的ゆえ使いにくい。
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
よってここでは素人向けに以下のように読み替えてコマンドを打つ。
sudo mousepad /etc/wpa_supplicant/wpa_supplicant.conf
ファイルを開いたら次のように入れていく
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="1つ目のSSID"
scan_ssid=1
psk="1つ目のSSIDのパスワード"
key_mgmt=WPA-PSK
}
network={
ssid="2つ目のSSID"
psk="2つ目のSSIDのパスワード"
key_mgmt=WPA-PSK
disabled=1
}
network={
ssid="3つ目のSSID"
key_mgmt=NONE
wep_key0="3つ目のSSIDのパスワード"
disabled=1
}
ファイル転送プロトコルsamba入れる
これはやらなくても特に困らなかったので必ずしもやる必要はないと思っている。
参考サイト↓
RaspberryPiのセットアップ ② – SSH,VNC(遠隔操作)の設定とファイルサーバーの設定
アプリインストール
ターミナルでまずは↓コマンドを打つ。
sudo apt-get install samba -y
そうすると▼こういうメッセージがでるかもしれないがこれって固定IPアドレスを設定しているときは「いいえ」を選ぶんじゃないかと思う。
設定ファイルの書き換え
次に以下のコマンドをターミナルで打ってテキストエディタを起動する。
sudo mousepad /etc/samba/smb.conf
ファイルを開いたら以下の2箇所加筆修正する
- 上の方にある[global]という部分のすぐ下の行につづけて
unix charset = UTF-8
dos charset = CP932
と入れる。意味はわからん。
- ====Share Definitions====という項の内容を変える
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
read only = yes <----------これをnoに変える
その下のこれ。
# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0700 <----------この数値をを0664に変える
さらに下のこれ。
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700 <----------この数値を0775に変える
というように変えて保存してエディタを終了する。
ユーザー登録と有効化
ターミナルで以下を打つ。パスワードの登録だ。ユーザー名はpiなわけだ。
sudo smbpasswd -a pi
パスワードを入れるよう促されるので任意のパスワードを同じように2回入れる。
そして以下のコマンドをターミナルで入れればサンバサーバーを再起動(すでに起動してあったっけ?)してpiユーザーが有効化される。
sudo service smbd restart
▼では接続してみる。まずエクスプローラーのウィンドウで下記のような手順でクリックしていく。
▼そうするとネットワークドライブを割り当てるウィンドウが現れるので任意のドライブレターを選び、フォルダとして\\raspberrypi\piと入れて完了をクリックする。
▼そうするとラズベリーパイに接続しにいくのでユーザー名とワスワードを入れる。
ユーザー名はpi、パスワードはさきほどターミナルで入れたものを入れてOKボタン。
▼そうすれば接続されるはずなので任意に設定したドライブを見てみよう。こんなふうにラズベリーパイのホームフォルダ内の一覧が表示されれば成功だ。
あとはファイルの読み込みや書き込みができるはず。
起動時に動くようにする
参考サイト
Raspberry Piでプログラムを自動起動する5種類の方法を比較・解説 – Qiita
起動時に動かすにはいくつかやりかたあるらしいが一番簡単なやり方を選ぶ。以下のようにファイルをエディタ(mousepad)で開き編集して起動できるようにする。
sudo mousepad /etc/rc.local
exit 0と記述されている手前に挿入するのが正しいらしい。
service smb start
exit 0
こうしておけば次回電源投入時からsambサーバーも起動されるはず。ちなみに/etc/rc.localファイル内のコマンドはルート権限で実行されるのでsudoを最初に入れる必要はないっぽい。
ほかの起動時実行方法に興味があれば参考サイトを熟読ください。
まとめ
今回はまだスマートロックの手前の初期設定だけの話だったが、自分個人がわからないことだらけで何度も同じ設定をいちいち調べながらやるのがだるいから一応一通り必要なものを自分のブログ記事にしておいた。
次回あたらしいラズベリーパイのMicroSDを作るときにはこの手順にそってやればよいのでかんたんに進められる。
次回はいよいよサーボを回すところの説明をできると思う。
前回の記事
I-O DATA Raspberry Pi メインボード Bluetooth(R) Wi-Fi対応モデル Raspberry Pi 3 model B 安心の1年間ハードウェア保証 UD-RP3
¥5,778(2021/11/03 22:03時点の価格)
平均評価点:
>>楽天市場で探す
>>Yahoo!ショッピングで探す
デジタル・マイクロサーボ SG90 (1個)
¥440(2021/11/03 22:05時点の価格)
平均評価点:
>>楽天市場で探す
>>Yahoo!ショッピングで探す