#chiroruLab

趣味と日々の雑記録

【備忘録】Raspberry Pi 3 Model B+を買ったらダメ人間になった話。

f:id:chiroru_27:20190224155848j:plain

「Hey, Siri. 記事書いて!」
「すみません、よくわかりません。」
「・・・。」



働き方改革で給料激減、@chiroru_27 です。
f:id:chiroru_27:20190227170639j:plain
そんなこと言いながら、先日もNature Remoという学習リモコンを買ったんですが、これがまたすごい。
リモコンどこいった?とか、電池切れで動かないし、そもそも電池がない・・・。なんてもう怯えなくていいのです。

さて今回は、そんなNature Remoをより便利にするために、話題のRaspberry Pi を買ってみたお話です。

Raspberry Pi 3 Model B+

今回買ったのはABOX社のセット品。アマゾンで9k程でした。
もっと安いところも多々ありましたが、SanDiskMicroSD、銅製ヒートシンク、サポートで選びました。
私のような軽い使い方ならもっと安いものでも良かった説も出てきましたが、まぁ良しとしましょう。

今回の記事はセットアップの忘備録として残しておくものとします。

目次

まずはじめに

Raspberry Piを、というかネットワークに接続する機器を動かすときは、まず第一にセキュリティをしっかりと構築すること。
qiita.com
このサイトを参照して、最低限の初期設定をします。

次に、Raspberry PiIPアドレスを固定するために、MACアドレスを調べます。

$ ip a

今接続しているネットワーク(有線、無線)の部分を確認し、無線Lanならwlan0のlink/etherを探します。
Raspberry PiMACアドレスは、b8:27:eb〜なので、それに該当する部分をルーターIPアドレス設定で指定します。

ラズパイ単体でも固定できるらしいですが、他の端末もルーター側で固定しているので、私はこっちで設定しました。


UFW

次に外部からの侵入を防ぐためにファイヤーウォールを構築します。
chiroruはubuntuのときからUFWしか使ったことがないので、素直にこれをインストール。

$ sudo apt-get install ufw
$ sudo ufw enable
$ sudo ufw default DENY
$ sudo ufw status

Status: active と返ってきたら完了です。
以下のソフトをインストールしたら、その都度、必要なポートだけ許可します。


xrdp

次にリモートデスクトップ環境を構築して、Windowsから操作できるようにします。
クライアント側(WIndows)のマウス、カーソル、クリップボードが使えるようになるので、作業が数倍楽になります。

インストール

$ sudo apt-get update
$ sudo apt-get install xrdp

日本語キーボードに対応させるため、キーボード配列の設定を追加

$ cd /etc/xrdp/
$ sudo wget http://w.vmeta.jp/temp/km-0411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0210411.ini

ファイヤーウォールに許可登録

$ sudo ufw allow 3389

WIndowsでの操作

  1. スタートを押して、「リモート」と入力し、「リモートデスクトップ接続アプリ」を起動
  2. 情報を入力する
  3. 資格情報を常に確認する のチェックを外す
    • 毎度入力するのが面倒なので
  4. 接続


mozc

次に日本語入力をできるよう、Google日本語入力Linux版を入れます。

$ sudo apt-get update
$ sudo apt-get install fcitx-mozc


Homebridge

さて、IoTの大本命、Homebridgeちゃんの出番です。
書くと長くなるので、参照したサイトを。
chasuke.com
chasuke.com

ファイヤーウォールに許可登録

$ sudo ufw allow config.jsonで指定しているポート番号

インストールしているプラグイン

Raspberry Pi起動時にスタートアップさせる

サービスを作り、登録

$ sudo nano /etc/systemd/system/homebridge.service
[Unit]
Description=run homebridge
After=syslog.target network-online.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/homebridge
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

$ sudo systemctl daemon-reload
$ sudo systemctl enable homebridge
$ sudo systemctl start homebridge
$ sudo systemctl status homebridge

またはpm2を利用

sudo npm install pm2 -g
pm2 startup
pm2 start homebridge
pm2 save

Mesh Hub

meshprj.com
iFTTTで動作時間の範囲指定を出来るスグレモノ。Raspberry Piに入れることでMeshタグを持っていなくても動作する。

e.g.)

  • 7:00から14:00の間に外出した際に、ルンバで清掃する。
  • 18:00から2:00に帰宅した際に、リビングの電気をつけ、エアコンを入れる。


Bluetooth Audioレシーバー化

実際これに関しては、なぜ動いたのかよくわかってないけど、動いたからおk。
Pulseaudioを削除すると認識しなくなったので、とりあえずこれが入っていれば大丈夫っぽい。

qiita.com

まず内蔵のイヤホンジャックを有効化させます。

$ sudo raspi-config

  • 7 Advanced Option -> Enter
    • A4 Audio -> Enter
      • 1 Force 3.5mm ('headphone') jack -> Enter
  • Finish

次にBluetoothのパッケージを追加でインストール

$ sudo apt-get install bluez pulseaudio-module-bluetooth python-gobject python-gobject-2

ここからはBluetoohの設定をしていく

$ sudo bluetoothctl
show
// ここでUUID: Audio Sinkが表示されないので諦めてたけど、なぜか動いた。
exit


// A2DPが削除されたせいかファイルがないので新規作成
$ sudo nano /etc/bluetooth/audio.conf
[General]
Enable=Source,Sink,Media,Socket


// ノイズが出るらしいので対策
$ sudo nano /etc/pulse/daemon.conf
resample-method = trivial


// デフォルトだとペアリングできないクライアントがあるらしいので対策
$ sudo nano /etc/bluetooth/main.conf
Class = 0x240404


// クライアント側の表示名を"Raspberry_Pi"にする
$ sudo bluetoothctl
system-alias Raspberry_Pi

ペアリング

f:id:chiroru_27:20190227205137j:plain
メニューバー右上のBluetoothアイコンをクリックして、[Make Discoverable]を選択。
クライアント側で"Raspberry_Pi"と表示されたものとペアリング。

自動接続されない場合

$ sudo bluetoothctl
trust XX:XX:XX:XX:XX:XX MACアドレス

私の環境では自動接続されましたが、一応めも。

イコライザ

scribles.net
メインPCではサウンドカード積んでイコライザ弄ってるので、少しでも近づけるためにプラグインを追加
簡単な調整はこれでおk



Raspberry Piのポテンシャルの高さが半端ない

あれもこれも機械任せの時代が・・・と思ってたら、掃除もエアコンも、何なら照明まで。
人はどこまで自堕落になれるのだろう。以上、@chiroru_27 でした。