これまで、Arduino、ESP-01、ESP-32などで、ちょっとした道具を作ってきたが、昔買った Raspberry Pi (今はEOLのRaspberry Pi Model-B)を、久々にタンスの奥から引っ張り出してきて、遊んでみることにした。ついでに、最近のRaspberry Pi Zero WH (WiFi/Bluetooth+Header付き)も、一つ購入したので比較しながら遊んでみる。
Raspberry Pi Model B |
Raspberry Pi Zero WH |
会社で、Raspberry Piの話題が時々出るのに、実はちゃんと触ってこなかったので、よくわからなかった。これはまずいということで、色々遊んでみたら、色々できるでは無いですか? ただ、やはり、ArduinoやESPとは毛色や目的が違うので、その辺りの比較も含めて、ポチポチ記事にしてみる事にする。
Raspberryの設定に関しては、い~っぱいネット上に記事があるので、それを参照しながら行った。
SDカードの準備:
やることは、以下の通り。
- Windowsに、Raspbianのイメージファイルを書き込むためのソフト(DD for Windows)をダウンロードしてインストール
- ミラーサイトから、raspbianのstretch-liteの圧縮ファイルをダウンロードして解凍 (2018-11-13-raspbian-stretch-lite.img) 。
- 完了後、念の為に SHA-256の数値が本家のサイトに記載してある値と一致しているか確認。ダウンロードしたファイルのSHA-256値は、”7-zip”という圧縮ソフトをインストールした時に一緒に入ったソフトで計算できる。
- DD for Windowsを管理者権限で起動して、SDカードを挿入。自動的に認識した。管理者権限で起動しないと認識しないので注意
- DD for Windowsで、書き込むイメージファイルを選択して、書き込み実行。待つ。何度も「本当に大丈夫か?」と念をおされるのが、ややうっとおしい。
- 不要かもしれないが、一旦SDカードを抜いて、挿し直し、Windows上に “boot”という名前のSDドライブがあることを確認。
- ドライブの直下に、”ssh”という名称で空ファイルを作成する。拡張子は無し、サイズはゼロ。このファイルの存在により、sshを使ったネットワーク接続が可能になる。
- 昔のPi Model Bにも USBのWiFiモジュールを挿しているので、Pi Zero同様、WiFi接続でつなぐため、WiFi設定のテキストファイルを、同じくドライブ直下に置いておく。環境に併せて、SSIDとパスワードに修正する。パスワードを暗号化すべきという記事も多いが、自宅のWiFi環境の中だけで、自分だけしか使わない(と思う)ので、まずはこのままとしておく。
- ファイル名 : ”wpa_supplicant.conf”
- ファイル内容:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JPnetwork={
ssid=”つなぎたいWiFiのSSID”
psk=”上記SSIDのパスワード”
}
- Windowsから SDカードを「正しく」外す。
Raspberry Piを起動する
- SDカードが出来たら、Raspberry Piに挿入した後、USBコネクターから電源を供給し、しばらく待つ。LEDがチカチカを終えて安定したら、一応ブートが終わっていると思われる。今回の環境ではモニターをつながないため、ネットワーク経由で接続するまで、Raspberryの立ち上がり状況は見えない事になるが、まぁ良しとする。
- RaspberryのIPアドレスが分からない(DHCPだから)と接続出来ないが、それを探すための方法は色々あるらしい。
- Macを持っていれば、Bonjourがインストールされているので、特にIPを知らなくても、pi@raspberrypi.local で接続できる(らしい)
- iTuneが入っていれば、Bonjourもインストールされているらしいので、同様にpi@raspberrypi.local で接続できる(らしい)。
- Bonjourだけを、Windows機にインストールする方法もある(らしい)
- Windows機からpingやarpコマンドを使って探す方法もある(らしい)
- 他にunix系のマシンが同一ネットワーク上にあれば、arp-scanコマンドで、Raspberry PI Foundationの繋がったIPアドレスを探すことができる。MACアドレスの範囲から推定しているのでは?と思うが定かでは無い。
- Windowsに、”Network Scanner”というソフトをインストールすれば、探せる。
- 自分の環境と好みで、上記のうち、Network Scannerソフトで実現することにする。 version 7からはシェアウエアのようだが、version 6ならフリーなので、ここからダウンロードしてインストールする。
- SSHで接続するための、ターミナルソフトをWindows上にインストールする。今回は、TeraTermを使う事にする。適当なサイトからTeraTermをダウンロードして、適当なフォルダに解凍すれば、ttermpro.exeが起動するべきプログラム。(と思う)
- Windows PCを同じローカルネットワーク上に接続して、このNetwork Scannerソフトを起動し、検索するIP範囲を指定(普通は 192.168.0.0から 192.168.0.255まで)して、「Start Scanning」を実行すると、同じネットワーク上にある、機器を検索し、IPアドレス、MACアドレス等の情報を表示してくれる。問題は、この中のどれが、Raspberry Piなのか?であるが、ある程度のヒントはあるが、最後は、「試してみる」しか無い。
- これかな?と思ったIPアドレスに対して、teratermからssh接続を試みて、繋がったIPがRaspberryである・・(なんと、ひどいやり方・・・)。もちろん、Bonjourが入っていれば、こんな模索はしなくてもいいはず。とはいえ、同一ネットワーク上にRaspberryが二台以上ある時には、pi@rasberrypi.local では特定出来ない気がするが・・・。
- teratermのSSHから、IPを指定して、接続を試みると、初めて接続した時には、SSH関連のワーニング画面が表示されるが、「自分はRaspberryにつないでいる」と理解できているので、OKして次に進むと、ようやく、usernameと、passwordを入力する画面になる。
- 初期設定では、user id = ‘pi’, password = ‘raspberry’が登録されているので、このIDを使って接続を試みると、めでたくログインできた。
- あとは、ネット上に豊富に存在する初期設定情報を用いて、自分の環境を整える。
- もし、ネットワーク上に他のLinux系(別のRaspberryとか)があれば、”sudo arp-scan –l “ コマンドにより、以下のように、Raspberryの繋がったIPアドレスを名前から見つけることもできる。
Raspbianの環境設定
初期の環境設定は、”Raspbian Stretch Lite on Raspberry Pi 3 初期設定メモ” を参考にさせていただいた。
- rootのパスワードを設定する (sudo passwd root)
- 自分の普段使い用のアカウントとpasswordを作る (sudo adduser myname)
- 自分のアカウントの所属グループを、”pi”ユーザーのグループと合わせる。
- (piのアカウントを消すか、パスワードを変更する)
- 各種の設定を行う (sudo raspi-conf)
- updateを実行しておく
- $ sudo apt-get update
- $ sudo apt-get upgrade
- $ sudo apt-get dist-upgrede
- 再起動する(sudo reboot) 。
- SSH接続は当然切れる。
- 30秒~1分程度待って、LEDにの点滅が安定したら、再度TeratermからSSH接続する。これ以降は、自分で作ったアカウントとパスワードを使って、Raspberryを使う。
とりあえず、ここまでで、基本的な初期設定は終わり。あとは、やりたいことに応じて、様々なパッケージをインストールしていく必要がある。