Raspberry Pi Zero WHを WiFi経由、ヘッドレス(HDMIモニター接続無し)で接続する。

これまで、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

image

image

会社で、Raspberry Piの話題が時々出るのに、実はちゃんと触ってこなかったので、よくわからなかった。これはまずいということで、色々遊んでみたら、色々できるでは無いですか? ただ、やはり、ArduinoやESPとは毛色や目的が違うので、その辺りの比較も含めて、ポチポチ記事にしてみる事にする。

Raspberryの設定に関しては、い~っぱいネット上に記事があるので、それを参照しながら行った。


SDカードの準備:

やることは、以下の通り。

  1. Windowsに、Raspbianのイメージファイルを書き込むためのソフト(DD for Windows)をダウンロードしてインストール
  2. ミラーサイトから、raspbianのstretch-liteの圧縮ファイルをダウンロードして解凍 (2018-11-13-raspbian-stretch-lite.img) 。
  3. 完了後、念の為に SHA-256の数値が本家のサイトに記載してある値と一致しているか確認。ダウンロードしたファイルのSHA-256値は、”7-zip”という圧縮ソフトをインストールした時に一緒に入ったソフトで計算できる。
  4. DD for Windowsを管理者権限で起動して、SDカードを挿入。自動的に認識した。管理者権限で起動しないと認識しないので注意
  5. DD for Windowsで、書き込むイメージファイルを選択して、書き込み実行。待つ。何度も「本当に大丈夫か?」と念をおされるのが、ややうっとおしい。
  6. 不要かもしれないが、一旦SDカードを抜いて、挿し直し、Windows上に “boot”という名前のSDドライブがあることを確認。
  7. ドライブの直下に、”ssh”という名称で空ファイルを作成する。拡張子は無し、サイズはゼロ。このファイルの存在により、sshを使ったネットワーク接続が可能になる。
  8. 昔のPi Model Bにも USBのWiFiモジュールを挿しているので、Pi Zero同様、WiFi接続でつなぐため、WiFi設定のテキストファイルを、同じくドライブ直下に置いておく。環境に併せて、SSIDとパスワードに修正する。パスワードを暗号化すべきという記事も多いが、自宅のWiFi環境の中だけで、自分だけしか使わない(と思う)ので、まずはこのままとしておく。
    1. ファイル名 : ”wpa_supplicant.conf”
    2. ファイル内容:
      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
      update_config=1
      country=JP

      network={
      ssid=”つなぎたいWiFiのSSID”
      psk=”上記SSIDのパスワード”
      }

  9. Windowsから SDカードを「正しく」外す。

Raspberry Piを起動する

  1. SDカードが出来たら、Raspberry Piに挿入した後、USBコネクターから電源を供給し、しばらく待つ。LEDがチカチカを終えて安定したら、一応ブートが終わっていると思われる。今回の環境ではモニターをつながないため、ネットワーク経由で接続するまで、Raspberryの立ち上がり状況は見えない事になるが、まぁ良しとする。
  2. RaspberryのIPアドレスが分からない(DHCPだから)と接続出来ないが、それを探すための方法は色々あるらしい。
    1. Macを持っていれば、Bonjourがインストールされているので、特にIPを知らなくても、pi@raspberrypi.local で接続できる(らしい)
    2. iTuneが入っていれば、Bonjourもインストールされているらしいので、同様にpi@raspberrypi.local で接続できる(らしい)。
    3. Bonjourだけを、Windows機にインストールする方法もある(らしい)
    4. Windows機からpingやarpコマンドを使って探す方法もある(らしい)
    5. 他にunix系のマシンが同一ネットワーク上にあれば、arp-scanコマンドで、Raspberry PI Foundationの繋がったIPアドレスを探すことができる。MACアドレスの範囲から推定しているのでは?と思うが定かでは無い。
      • image
    6. Windowsに、”Network Scanner”というソフトをインストールすれば、探せる。
  3. 自分の環境と好みで、上記のうち、Network Scannerソフトで実現することにする。 version 7からはシェアウエアのようだが、version 6ならフリーなので、ここからダウンロードしてインストールする。
    • image
  4. SSHで接続するための、ターミナルソフトをWindows上にインストールする。今回は、TeraTermを使う事にする。適当なサイトからTeraTermをダウンロードして、適当なフォルダに解凍すれば、ttermpro.exeが起動するべきプログラム。(と思う)
  5. Windows PCを同じローカルネットワーク上に接続して、このNetwork Scannerソフトを起動し、検索するIP範囲を指定(普通は 192.168.0.0から 192.168.0.255まで)して、「Start Scanning」を実行すると、同じネットワーク上にある、機器を検索し、IPアドレス、MACアドレス等の情報を表示してくれる。問題は、この中のどれが、Raspberry Piなのか?であるが、ある程度のヒントはあるが、最後は、「試してみる」しか無い。
    • ヒント1:名前が表示されているIPは、Raspberryでは無い
    • ヒント2:Raspberry Pi WHは、Raspberryに割り当てられたMACアドレスが表示されているはず。(b8:27:ebから始まるアドレスがあれば、それ。)
    • Model Bには、普通のWiFiアダプターがついているので、RaspberryのMACとは違い、これはヒント無し。
    • image
  6. これかな?と思ったIPアドレスに対して、teratermからssh接続を試みて、繋がったIPがRaspberryである・・(なんと、ひどいやり方・・・)。もちろん、Bonjourが入っていれば、こんな模索はしなくてもいいはず。とはいえ、同一ネットワーク上にRaspberryが二台以上ある時には、pi@rasberrypi.local では特定出来ない気がするが・・・。
  7. teratermのSSHから、IPを指定して、接続を試みると、初めて接続した時には、SSH関連のワーニング画面が表示されるが、「自分はRaspberryにつないでいる」と理解できているので、OKして次に進むと、ようやく、usernameと、passwordを入力する画面になる。
    • image
    • image
  8. 初期設定では、user id = ‘pi’, password = ‘raspberry’が登録されているので、このIDを使って接続を試みると、めでたくログインできた。
  9. あとは、ネット上に豊富に存在する初期設定情報を用いて、自分の環境を整える。
  10. もし、ネットワーク上に他のLinux系(別のRaspberryとか)があれば、”sudo arp-scan –l “ コマンドにより、以下のように、Raspberryの繋がったIPアドレスを名前から見つけることもできる。

Raspbianの環境設定

初期の環境設定は、”Raspbian Stretch Lite on Raspberry Pi 3 初期設定メモ” を参考にさせていただいた。

  1. rootのパスワードを設定する (sudo passwd root)
  2. 自分の普段使い用のアカウントとpasswordを作る (sudo adduser myname)
  3. 自分のアカウントの所属グループを、”pi”ユーザーのグループと合わせる。
  4. (piのアカウントを消すか、パスワードを変更する)
  5. 各種の設定を行う (sudo raspi-conf)
    1. ホスト名の設定
    2. Bootオプションの設定
    3. 言語、地域、タイムゾーン、WiFiの国設定
    4. SDカードの全容量を使えるようにFileSystem設定
    5. GPUに割り当てるメモリ量の設定
    6. 最新にUpdate
    7. Finishで終了
    8. image
  6. updateを実行しておく
    • $ sudo apt-get update
    • $ sudo apt-get upgrade
    • $ sudo apt-get dist-upgrede
  7. 再起動する(sudo reboot) 。
    1. SSH接続は当然切れる。
    2. 30秒~1分程度待って、LEDにの点滅が安定したら、再度TeratermからSSH接続する。これ以降は、自分で作ったアカウントとパスワードを使って、Raspberryを使う。

とりあえず、ここまでで、基本的な初期設定は終わり。あとは、やりたいことに応じて、様々なパッケージをインストールしていく必要がある。

次は、Python3でGPIO制御してみる。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする