自宅のIot化でLED照明オンオフ(Xiaomi LED)や玄関鍵の開閉(セサミ スマートロック)、壁スイッチのオンオフ、部屋の空気の状態を表示させたりしていますが、不満点は専用のアプリでないと操作できないこと。それと同じメーカーでないと他のメーカーのIot製品は表示・操作できないことが歯がゆい。
Iotのなにか統一規格が出来て、どのIot機器もWebや自作などのアプリからでも操作・連携できるようにできたら良いのですが、まだそういったものはなくもうしばらく先みたいです。
セキュリティ的な面もあってカメラや環境センサーなどがWebから簡単にアクセスできてしまうのは問題なので専用アプリからしかアクセスできないのは分かりますが、できれば1つの画面で複数メーカーのIot製品の監視カメラの状況や空気質・玄関鍵の状態・電気の状態などを表示させたい。そんなことができるようになったらますます便利になりますね。
まだまだ融通が効かない状態で不便なので当面は自分でセンシングしたりIot製品をハックしてデータを持ってきたりして自作でグラフや操作ボタンを作るしかなさそう。
そんな自宅の環境センシングや自宅環境自動化、それと最近はまっている半自動水耕栽培の管理・操作をする母艦としてラズパイ(Raspberry Pi)を使っていきます。
なぜラズパイを使うかというと各種センサーを取り付けられてセンシングできることと、貧弱ですがLinux機なのでパソコンとしてもデータベースなどのサーバーとしても使えるし、ラズパイ1台あればほとんどのことがこなせてしまうんです。しかも電力も5Vで使えて低消費電力なのも魅力的。
イメージとしては以下のようにラズパイを中心として各種ボードのセンサーから数値を取得してラズパイにデータを送信して、グラフや操作を自動で行うようにしていきます。
ただ、こういった自作のセンサーやボードの組み合わせは使い始めるまでの設定やインストールがうまくいかず挫折する場合や、多少専門的な知識が必要になってくるために面倒で時間がかかる場合が多いです。
なので、なるべく手っ取り早く簡単に始められるように、あまり知識がなくて意味がわからなくても手順通り作業していけば完成できるように説明していきますね。(情報が古くなってくるとうまくインストール出来なくなる場合もありますのでご了承くださいませ。)
今回は基本的なことから、ラズパイにRaspbian OSのインストールから始めます。インストールも慣れれば簡単ですが最初にLinuxをインストールするのには手間取ると思いますので標準的なインストールの方法と、より簡単なインストール+初期設定もできちゃう方法2種を紹介します。
インストールはWindowsやMacなどのPCを使ってMicroSDカードにコピーやインストールしていきますのでWindows・MacのどちらかのPCが必要になります。(以下の説明ではWindowsで説明していきます。)
以下、ラズパイにRaspbianをインストールする手順3通りです。すでにラズパイを使用している方は必要ない情報かもしれません。ご了承ください。
Raspbianインストールは下のほうの「PiBakery」を使ってインストールするのが一番簡単で手っ取り早い方法になります。インストールを簡単に済ませたい場合はPiBakeryの項目を御覧ください。
Raspbianのインストールに必要なもの
今回はラズパイに標準的なRaspbian OSをインストールしていきます。Raspbianインストール・起動に必要なものは以下の3つ。
- ラズパイ本体
- 5V3AのUSBアダプタ + MicroUSBケーブル
- MicroSDカード
- Windows PCかMac(Windowsで説明します)
Raspberry Pi ラズパイ本体
自分はラズパイはいくつか持っていますが、母艦として使うのはBanggoodから来たRaspberry Pi 3B+、MicroSDカードは128GBを使っています。
ちなみにRaspberry Pi Zeroはスイッチサイエンスで買ったほうが安いです。最新のRaspberry Pi Zero WHは以下のページで1814円で買えて3000円以上で送料無料になります。Wifi・Bluetoothも最初から付いていて小さいのでLinux使ったことが無い方や、電子部品で遊んで見たい方には最適です。
アマゾンで買うと2600円ほどします。↓
MicroSDカード
MicroSDカードは後ほど母艦に使うラズパイをSSD化したので128GBを使いました。
【Fire, Fire HD 8, Fire HD 10対応】Samsung microSDカード128GB EVOPlus Class10 UHS-I対応 Nintendo Switch 動作確認済 海外リテール MB-MC128G
MicroSDカードは32GBでもいいかもしれません。
電源 USBアダプタ + MicroUSBケーブル
ラズパイに最適化された電源セットが出ています。USBアダプタ + MicroUSBケーブルでこのセットだと5V3Aの出力がでるようです。ラズパイは電源問題があって適当なMicroUSBケーブルで接続すると『Under-voltage detected!』と怒られてハングアップする可能性もあるのでまずは安定電力を供給してくれるケーブルをアダプタを選ぶと後々面倒が起こらないでよさそうです。
自分の場合はソーラー発電した12Vディープサイクルバッテリーから電源を引いて5Vに降圧してUSB接続しています。ケーブルは以下のを使ってますが今のところ電力が足りないと怒られていません。
Micro USBケーブル Syncwire UNBREAKcable 超高耐久 2.4A急速充電 高速データ転送 マイクロusbケーブル 【20cm ブラック】30,000回以上の曲折テスト Android microusb対応
Raspberry Pi にインストールできるOSの種類
以下のページからお好みのOSを選ぶことができます。
ラズパイのオフィシャルなOSはRaspbian
ラズパイといえばRaspbianをインストールする方がほとんどだと思います。
下画像右の「Raspbian」を押してダウンロードしても良いのですが、より簡単にWindows機からダウンロードしてコピーして、ラズパイを立ち上げてからOSを選んでインストールできるのがNOOBSです。
今回はNOOBSからRaspbianをインストールする方法を簡単に紹介します。
慣れている方はこちらのOSもどうぞ
Raspbianの他に以下のOSもラズパイのOSとして使えます。自分も以前はUbuntu MATE使っていましたが、ちょい面倒なところというかちゃんと動かないサービスもあったので最近はRaspbianにしました。
Raspbianに飽きた方は新たにMicroSDカードを買って新しいOSを入れて差し替えて遊ぶのにもいいですね。
NOOBSで標準的なインストール
こちらの方法は数多くのラズパイを解説したブログやサイトがありますので、いまさら説明する必要もないと思いますが、せっかくなので簡単に説明していきます。
こちらは、ラズパイにディスプレイ・キーボード・マウスを接続して行います。
Raspbian インストール手順
以下のように3段階の作業をします。1・2はWindowsパソコンで行っていきます。
- MicroSDカードのフォーマット(Windows PC)
- NOOBSをダウンロードしてMicroSDにコピー(Windows PC)
- ラズパイを起動してOSをインストール
MicroSDカードのフォーマット Windows用
下準備としてファイルシステムをexFAT(FAT32で大容量を扱える拡張版ファイルシステム)でフォーマットする必要があるので、以下のツールを使ってフォーマットします。
こちらの↓ページの一番下、「同意します」を押すとダウンロードが始まります。
インストールしたらスタートメニューのSD Association > SD Card Formatterにあります。
フォーマットするMicroSDカードのドライブ名を確認して、フォーマットボタンを押します。
フォーマットが正常に完了したら以下のような表示になります。
NOOBSをMicroSDカードにコピー
フォーマットが終わったら次にNOOBSをMicroSDカードにコピーします。この作業もWindowsで行います。
こちらの公式URLでNOOBSをダウンロードできます。NOOBSはラズパイにインストールするOSを選んぶことができるセットアップガイドです。
ZIPでダウンロードしたファイルを解凍すると以下のようにNOOBS_v3_0_0フォルダにファイルが生成されました。これらのファイルとフォルダをフォーマットしたMicroSDカードにコピーすればWindowsでの作業は完了。
ラズパイでRaspbianインストール
続いてラズパイにMicroSDカードを刺してラズパイを起動すると以下のような画面になります。
好きなOSをインストールすればOK。といってもデフォルトではRaspbianとlibreelecしかないのですが、Ubuntuとかも入れておけばインストールできそう。機会あればやってみます。
初期時は入れたいOSを選択してインストールを押すとインストールが始まる。(上画像はRaspbianインストール済)インストールは30分弱程度かかりますのでしばらく待ちましょう。
インストールが終わって再起動するとRaspbianが起動してデスクトップが表示されます。
RaspbianをインストールしたあとにNOOBSの画面を表示させるにはラズパイ起動時に[Shift]ボタンを押せばNOOBS画面に入れます。
Etcherを使って簡単インストール
EtcherはOSをMicroSDに書き込むためのツールです。RaspbianなどのOSをダウンロードしてそれを使ってMicroSDにインストールしてくれます。
Etcherを使ったOSのインストール方法は公式サイトでも推奨されています。
Raspbian インストール手順
MicroSDカードは特にフォーマットする必要はありませんでした。
- Raspbian OSをダウンロード
- Etcherのインストール・MicroSDにRaspbianをインストール
- MicroSDのbootパーティション内に設定
Raspbian ダウンロード
今回はRaspbianのZIPをダウンロードします。Raspbianは以下の3つのバージョンがあります。
「Raspbian Stretch with desktop and recommended software」はデスクトップを使う場合でさらにオススメのソフトが同梱されているバージョン、「Raspbian Stretch with desktop」のほうはデスクトップのバージョン、「Raspbian Stretch Lite」は最低限のRaspbianが入ったバージョンで主にSSH接続をする場合によさそうです。
好きなバージョンのZIPファイルをダウンロードしましょう。
EtcherでRaspbianを書き込む
Etcherダウンロード
続いてこちらのページからEtcherをダウンロードします。「Download for Windows x64」を押してダウンロードしてインストールします。
無事インストール完了するとスタートメニューの「B」の項目の中にbelenaEtcherが登録されますので起動します。
EtcherでRaspbianインストール
Etcherを起動すると以下のような画面になります。まずはOSイメージを選択する。
先ほどZipファイルでダウンロードしておいたRaspbianを選択。
SSH接続の場合のちょっとした設定
SSH接続の設定をする場合は右上の歯車アイコンをクリックして「Eject on success」のチェックを外しておくとOSの書き込みが終わってもMicroSDカードが取り出しされないので、そのまま設定に進むことができて便利です。
続いて書き込むMicroSDカードを選んで(MicroSDカードを刺すと自動的に選択されます。)、
ドライブ(MicroSD)を選択する
MicroSDは自動的に選択されるか、「Select drive」ボタンを押すと以下のようにマウントされているMicroSDカードが表示されますので該当するMicroSDを選んでContinueを押す。
Flash!ボタンを押す
「Flash!」ボタンを押すと書き込み開始されます。
途中で以下のようなWindowsフォーマットではないファイルシステムでのフォーマットしますので警告が出る場合がありますが問題ありません。「キャンセル」ボタンをおしてください。
書き込み途中の様子↓5~30分弱書き込み終わるまで待ちます。
書き込みが終わると以下のように表示されます。
デスクトップを選んだ場合はこの後のSSH設定などは必要ありません。出来上がったMicroSDカードをラズパイに刺して電源を入れたら起動します。
SSHを自動起動させる
SSH接続する場合はちょっとした設定が必要になります。こちらの公式ページにSSH接続について書いてあります。↓
WindowsでMicroSDカードのbootディスクに空の「ssh」ファイルを置く。
Wifiの設定
Wifiが付いているRaspberry Pi Zero WHやラズパイ3はWifi設定をしておけば楽です。wpa_supplicant.confを上のSSHファイルと同じようにbootディスクに保存します。
中身は以下のようにテキストエディタで書いてください。以下の3つの内容は使っているWifiルーターに合わせて変更します。
- ssid:Wifiネットワーク名
- psk:Wifiネットワークのパスワード
- key_mgmt:認証プログラム(WPA,WPA3,WPA-PSK,など)
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=JP network={ ssid="Xiaomi_wifi" psk="xxxxxxxxxx" key_mgmt=WPA-PSK }
SSH接続の場合IPアドレスがわからないのが困る
これでSSH接続のみのラズパイにもアクセスできるようになりますが、Hostnameが設定できないために、初回はIPアドレスを指定して接続する必要があります。
IPアドレスはWifiルーターの管理画面等で確認するか、他の方法でなんとか調べるしかなさそうです。
例としてXiaomi Wifiルーターのページにログインしてアクセスしている機器一覧からIPアドレスを探してみました。
最初にIPアドレスでログインできたら、/etc/hostsでHostnameを設定しておけば次回からはhostnameでSSHログインできます。
$ sudo vi /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 127.0.1.1 Raspi-zerowh #←こちらを追加か変更する
やはりSSH接続のみの場合は最初からHostnameが設定できる次に紹介するPiBakeryを使うと簡単です。
うまく反映されない場合は/etc/hostnameにもHostnameを書きます。
$ sudo vim /etc/hostname Raspi-zerowh #←こちらを追加
PiBakeryで好みの設定でインストール
さらにPiBakeryを使ったら簡単にインストール+設定できてすぐにラズパイを始められます。
GUIなしディスプレイ・マウス・キーボードを接続しないで、SSH接続のみで遠隔操作したい場合でも最初に設定してインストールすればラズパイにMicroSDカードを刺すだけでいきなりSSH接続できるのでかなり便利です♪
特にRaspberry Pi Zeroを使う場合は、ディスプレイはMiniHDMI接続だし、MicroUSBが一つしかないのでマウス・キーボードをつなげる場合はUSBハブがないといけないのでGUIなしでパソコンからSSH接続したほうが手っ取り早いです。
Raspberry Pi 4Bで試してみましたが、PiBakeryはうまく使えないようです。Raspberry Pi 3以下のラズパイでPiBakeryをお使いください。
Raspbian インストール手順
こちらはRaspbianをダウンロードすることなくPiBakeryがやってくれるのと設定もある程度完了した状態でラズパイを使い始められますのでLinuxに詳しくなくても簡単です。
- PiBakery ダウンロード・インストール
- PiBakeryで設定
- ラズパイ初回起動で自動設定、2回目から通常起動
PiBakery ダウンロード・インストール
こちらのサイトからソフトウェアをダウンロードします。
以下のページから今使っているOSを選ぶことができます。ソースもGitHubにおいてあってMac・WindowsのほかにLinuxでも使えます。
こちらから「download the installer」を押してダウンロードできます。
設定方法
以下画像のようにパズルを組み合わせるようにして好みの設定を追加していくので分かりやすい。
出来上がったMicroSDカードをラズパイに挿して起動すると初回のみPiBakeryが以下の設定をして終了します。次回からは設定済でRaspbianが立ち上がるという設定です。
- On First Boot(初回起動時に以下の設定をする)
- Setup Wifi(Wifi設定)
- Set Boot Option(デスクトップを使うかコンソールを使うか)
- Set user password(お好みのパスワードを設定)
- Set hostname(hostname設定、SSH接続をする場合は必須)
- SPI(GPIOでSPI通信を使う場合はEnableにする)
- I2C(GPIOでI2C通信を使う場合はEnableにする)
- Change SSH host keys(SSH Keyを変更する場合)
- Add public SH key for authentiction(SSH キーとユーザー、キーは適当な文字列でOK)
- Shutdown(設定完了したらPiBakeryを終了する)
SSH・SPI・I2C以外は必須な設定だと思います。ラズパイに直接ディスプレイ・キーボード・マウスを接続しないで他のPCやスマホから接続する場合はSSHも必須になります。
デスクトップを使うかコンソールを使うか
SSHでしか接続しない場合はColsoleで、ラズパイにディスプレイ・マウス・キーボードを接続してデスクトップを表示させてGUIを使う場合はDesktopを選択します。
SSH接続するときはhostnameを設定しておきましょう
「Set hostname to」に希望するホスト名(ラズパイの名前)を書いておくとIPアドレスがわからなくてもアクセスすることができます。
設定完了して、ラズパイを起動すると以下のように/etc/hostsに「Raspi-zerowh」と設定されています。
$ cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 127.0.1.1 Raspi-zerowh
補足です。上記の「$」は一般ユーザーの状態です、スーパーユーザーは「#」の表示になります。なのでコマンドを打つ時に「$」はつけずに「cat /etc/hosts」を入力してリターンキーを押すと結果が「127.0.0.1 localhost・・・」と表示されるという意味です。
PuTTYなどSSHソフトでログインするときはホスト名の欄↓に設定したhostnameで接続するとラズパイにアクセスできます。
Whiteボタンを押してMicroSDに書き込む
設定完了したら、Exportを押して設定内容を保存しておけば、他のMicroSDに書き込む時に使えます。
最後にWriteボタンを押せばMicroSDカードにRaspbianと設定が書き込まれます。
初回起動
ラズパイに出来上がったMicroSDカードを刺して起動します。初回はRaspbianが起動せずに設定を書き込む作業になります。ディスプレイを接続して見てみると↓このように表示されている。
しばらく経つとラズパイの緑LEDが消灯したら初回設定終了。ケーブルを抜き差しして再起動するとラズパイが起動します。
ホスト名でログイン
ラズパイを起動してもIPアドレスがわからないので、先ほど設定しておいたHostnameでログインします。(以下PuTTYの設定画面)
ログインできたらifconfigなどをやってIPアドレスを把握できる。次回からはIPアドレスを使ってもアクセス可能になります。(WifiルーターでDHCPを使っている場合はIPアドレスが変更になる場合があります。)
自分のラズパイでは↓「192.168.31.53」がIPアドレスになります。ちなみに192.168.xx.xxのIPアドレスはローカルIPアドレスといってLAN内・Wifiルーター内(自宅)だけで使うIPアドレスです。
$ ifconfig ・・・省略 wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.31.53 netmask 255.255.255.0 broadcast 192.168.31.255 inet6 fe80::5d07:9bd:1340:a637 prefixlen 64 scopeid 0x20<link> ether b8:27:eb:c8:ea:80 txqueuelen 1000 (イーサネット) RX packets 1029701 bytes 168217820 (160.4 MiB) RX errors 0 dropped 24 overruns 0 frame 0 TX packets 778966 bytes 337986923 (322.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ログインとパスワード変更
初期パスワード
ユーザー名は「pi」でパスワードがraspberryになっていますので次回からログインする時用に自分の好みのパスワードに変更しましょう。
(後ほど気が付きましたが、PiBakeryで「Set user password to」で設定しておけば最初からお好みのパスワードにすることができます。)
まずはこちらのパスワードでSSHかコンソールでログインします。
- ユーザー名:pi
- パスワード:raspberry(初期時)
パスワード変更
パスワード変更はpasswdコマンドかsudo raspi-configで変更することができますが、passwdコマンドを使うとパスワードの長さに制限があるようです。
以下のようにpasswdコマンドで変更しようとすると長い(文字数不明)パスワードが必要になって、2・3文字のパスワードだと変更完了しません。
$ passwd Changing password for pi. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: You must choose a longer password
こんどはraspi-configでパスワード変更してみます。(sudoはpiユーザーでスーパーユーザーの権限でコマンドを実行する時に使います。)
$ sudo raspi-config
「1 Change User Password」を選んで新しいパスワードを2回入力。2文字のパスワードでも変更可能。
これでパスワードも変更できたしWifiも接続完了済ですぐにラズパイを使い始めることができました。
OSをまるごとバックアップ
Raspbian OSが無事インストールできたらついでにバックアップもしておきましょう。
今回はRaspbian OSをまるごとバックアップする方法を紹介します。面倒ですがこれを定期的にやっておけばシステムが壊れて復旧出来なかったときも最初からインストール・設定せずに済むので便利です。
bootパーティションやRECOVERYパーティションはバックアップせずにRaspbian OSが入っているパーティションをまるごとコピーする方法です。でもMicroSDカードに復旧したらラズパイでそのまま起動します。
RaspbianをまるごとWindows10にimgファイルでバックアップ
まずはimgファイルを作成するツールをダウンロードしていきます。
Win32 Disk Imager
こちら↓のページの中程にあるWin32diskimager…install.exeをクリックするとしばらくしたらダウンロードが始まる。
インストーラファイルなのでインストールしておきます。
起動
インストールが終わったらスタートメニューのImage WriterにWin32diskimagerが入ってます。
起動すると以下のような画面になります。まずはカラのimgファイルを作っていきましょう。Image Fileのフォルダアイコンをクリックします。↓
空のimgファイルを作成
imgファイルを保存したいフォルダを選択して右クリック 新規作成 > テキスト文書 を選びます。この時ファイル名の右側にあるセレクト項目(下画像青枠)を「*.* (全てのファイルが表示される)」に変更します。
全てのファイルが見えるようにセレクト項目を変更すると、今作った空のテキスト文書が「新しいテキスト ドキュメント.txt」と表示されるので以下のように好きな名前に変更します。
そして拡張子をimgに変更して以下のようなファイルになります↓
拡張子が表示されない場合は、エクスプローラーの表示にある「ファイル名拡張子」にチェックを入れておきましょう。↓
コピー元のRaspbian(OS)の入ったパーティションの選択
コピー元のMicroSDにはパーティションが4つに区切られています。RECOVERYとboot(下画像緑枠)はWindowsで中身が見られるようにFAT32でフォーマットされています。
bootは最初にMicroSDにコピーしたNOOBSのファイル群がはいっています。RECOVERY(インストール方法によっては無い場合もあります。)はリカバリーするときに使うrecovery.imgなどが入っています。
今回のバックアップではRECOVERYとbootは関係ないので、残るはWindowsにマウントされていないD・IのUSBドライブになります。どっちだろう?多分Dでしょう。
ここでどちらかDドライブ・Iドライブどちらかわからない場合はWindowsのスタートボタンを右クリックして「ディスクの管理」を選びます。
ここでも正確にはわかりませんが、どちらかが32MBしか無いパーティションなので容量の大小で、それとbootディスクを挟んで後ろか前かで判断してみましょう。
Dドライブであってました。Iドライブだと32MBしかないのですぐに終わっていると思います。書き込みがすぐに終わります。
ということで、Dドライブを選択します。
imgファイルに書き込み
Readボタンを押すとDevice(MicroSD)からImage Fileに書き込みが行われます。Writeではなく、Readボタンなので間違えないように注意しましょう。ここで間違えると・・・Dドライブ(Raspbianのシステム)に書き込まれてしまいますのでご注意ください。
コピーには30分弱かかります。
ラズパイ復旧方法
バックアップが出来たので、ちゃんとバックアップできているか確認も含めて今作ったimgファイルを新しいMicroSDカードに復旧する作業もやってみましょう。
ラズパイの復旧(バックアップしておいたimgファイルをMicroSDに書き込む)には新たなMicroSDカードをフォーマットしてWin32diskimagerでimgファイルを書き込むだけ。
SDメモリカードフォーマッター Windows用
フォーマットは上のほうで説明してありますので省略します。コチラを押すと上の説明に移動します。
フォーマットが正常に完了したら以下のような表示になります。
imgファイルをコピー
先程作成したimgファイルをMicroSDカードに書き込んでラズパイが起動するかテストしてみます。
今度はWriteを押してまっさらなMicroSDカードに書き込みましょう。
コピーしたMicroSDカードをラズパイに入れて電源を入れたら無事起動しました!
状態もコピーしたときの状態と同じ状態でしたのでメインのMicroSDカードと同じ状態でRaspbianを使えるようになりました♪
おまけ SD Card Copierでラズパイ起動中にコピーできる
ラズパイを起動していてもアクセサリ > SD Card CopierでMicroSDカードをまるごとコピーできるようですが、自分の環境ではSD Card Copierが立ち上がらず落ちてしまって今のところ試せてません。
バックアップはこちらのほうが↑簡単そうなのでもしできれば試してみてください。
ラズパイで自宅センシング 準備完了
これでラズパイの準備はできました。次回からはセンシングしたデータを保存するデータベースやグラフ表示のインストール・設定、その後センサーや他のボードとやりとりして自宅環境のセンシングをしていきます。
コメント