ARCHETYP

ARCHETYP的スマートオフィス

こんにちは、3児のパパエンジニアの笹垣です。

突然ですが、皆さんはスマートスピーカーをお持ちですか?

一口にスマートスピーカーといっても、Amazon Echo(アマゾン エコー)・Google Home(グーグルホーム)・Clova WAVE(クローバ ウェイブ)をはじめ、サードパーティ製の製品など色々なメーカーのものがあり、製品によって搭載されるAIも異なれば、利用できるサービスや機能も異なります。

今回はその中から、アーキタイプメンバーでもあるAmazon Echo Plus(第1世代)Google Home Miniについて、それぞれのアーキタイプ的使い方と、スマートスピーカーを使ったスマートオフィス化への取組みについてご紹介したいと思います。

メンバー紹介

Amazon Echo Plus(第1世代)

amazon_echo

アーキタイプでは、主にDJとして日々BGMの再生に勤しんでいます。「ソウルミュージックをかけて♪」と言うと高確率で”三代目 J Soul Brothers”の曲をかけるというちょっと抜けたところがあります。
また、Philips Hue(ヒュー)と連携し、オフィスの照明係としても従事しています。
(Echoもいますが、仕事は何もしてません…。)

Google Home Mini

google_home

発売されてから結構経っていますが、最近加入したメンバーで、まだこれという仕事はしておらず、エンジニアのおもちゃになっています… が、アーキタイプでは、働きやすい環境作り業務効率化の一貫として、少しずつではありますがスマートオフィス化に向けて日々開発を行っており、その中核を担うのがこのGoogle Home Miniになります!

スマートオフィス化計画

アーキタイプでは、現在以下の機能を検討しており、先程ご紹介したGoogle Home Miniと、巷で人気のRaspberry Pi(以下、ラズパイ)を使用して、実現に向けて鋭意開発を進めています。

Raspberry Piとは?

来客システム連携

オフィスのエントランスに設置されている来客システムと連携し、来客時にGoogle Home Miniに「来客です♪」と喋らせる。

各種リマインダー

朝礼・終礼、ブログ公開日などアーキタイプで日常的に行うものや各種案件のスケジュールをもとに、資料・デザインの提出日やテストアップに合わせて、決まった時間にリマインダーとしてGoogle Home Miniに喋らせる。
PM(プロジェクトマネージャー)的な動きを期待するため、名付けて「ARCHETYP PM BOT(仮称)」。

その他

  • トイレ空き状況チェック
  • 二酸化炭素濃度通知
  • 温度・湿度通知

上記はあくまでも一部で、上記以外にもメンバーの希望やエンジニアが作りたいものをどんどん作る予定です!
各機能の詳細については、それぞれ完成後に随時アーキタイプブログでご紹介するとして、今回は準備編としてラズパイの初期設定について備忘録も兼ねてご紹介します。

準備編 – ラズパイの初期設定

用意したもの

ラズパイ初心者ということもあり、今回は最低限必要なものがすべてセットになった「Raspberry Pi3 B+ コンプリートスターターキット」を使いました。

IMG_1034

  • Raspberry Pi3 B+ コンプリートスターターキット

    [内容物]

    • Raspberry Pi3 Model B+
    • AC電源アダプター
    • スイッチ付電源ケーブル
    • Raspbianプリインストールmicro SD カード
    • HDMIケーブル
    • LANケーブル
    • Raspberry Piケース
  • HDMIディスプレイ
  • USBマウス
  • USBキーボード

やったこと

スターターキットを開封し、各種ケーブル接続、SDカードを挿入するといよいよ起動です。スターターキットなので、つなぐだけでOSのインストールが終わって起動した状態になるので初心者にとっては非常に楽チンです!
その後、ソフトウェアのバージョンアップやキーボード、言語の設定を画面に表示される案内に沿って行うだけで最初の基本設定は完了です!

ただし、このままの状態ではどこからでもアクセスでき、ネットワークへの侵入口になるなどのセキュリティホールになってしまう恐れがあるため、以下の設定を行います。

1. ラズパイを最新版にする

まずは、ラズパイの「ファームウェア」を最新版にしておきます。

$ sudo rpi-update

完了したら再起動。

$ sudo reboot

2. SSHでリモート接続できるようにする

ラズパイ上で作業をしてもいいのですが、使い慣れているマシンで作業をしたほうが効率が良いので、SSHを有効にしリモートマシンからSSH接続できるようにします。

/boot 直下にsshフォルダを作成し、ラズパイを再起動します。

$ sudo mkdir /boot/ssh
$ sudo reboot

これだけでSSHが有効になります。

次にラズパイは初期状態では DHCP のため、動的にIPアドレスが割り振られます。毎回、直接ログインしてIPアドレスを確認するのは大変なので、ラズパイに固定IPアドレスを割り当てます。

$ sudo vi /etc/dhcpcd.conf

/etc/dhcpcd.conf ファイルの最下部に、以下を追記します。

# 有線でのIPアドレスを固定
interface eth0
static ip_address=10.0.1.201
static routers=10.0.1.10
static domain_name_servers=10.0.1.10

# Wi-FiでのIPアドレスを固定
interface wlan0
static ip_address=10.0.1.201
static routers=10.0.1.10
static domain_name_servers=10.0.1.10

※設定値は、ご自身の環境に合わせて変更してください。

ラズパイを再起動して、

$ sudo reboot

設定したIPアドレスとポートでリモートマシンからSSH接続できれば完了です。

$ ssh pi@10.0.1.201

3. デフォルトユーザー:piのパスワード・ユーザー名を変更する

初期状態のラズパイは、最初から「pi」ユーザーが設定されているのですが、ユーザー名もパスワードも公開されているためどちらも変更しておきます。

こちらのサイトを参考に設定を行います。
→ Raspbianでpiユーザ名とパスワードをうまいこと変更する

4. 公開鍵認証を設定する(パスワードでログインできなくする)

まずはラズパイに接続するリモートマシン上で鍵ペアファイルを作成します。

$ ssh-keygen -t rsa -b 4096

鍵ペアファイルのファイル名・保存先を任意で設定。パスフレーズはなしでOK。

続いて作成した公開鍵ファイルをラズパイに転送します。
転送した公開鍵ファイルはnewpiユーザーのホームディレクトリに置かれます。

$ scp ~/.ssh/id_rsa.pub newpi@10.0.1.201:

ここからは、ラズパイ上での作業になるので、ラズパイにSSH接続します。

$ ssh newpi@10.0.1.201

先程転送した公開鍵ファイルをSSH接続で使用できる状態にします。

$ mkdir ~/.ssh
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ rm ~/id_rsa.pub

これで公開鍵ファイルの処理は終わりです。続いて、sshの設定を変更します。
接続ポートの変更、rootログイン無効化、鍵ファイル認証方式の有効化、パスワード認証の無効化を行います。

$ sudo vim /etc/ssh/sshd_config

## 接続ポートの変更
# Port 22
Port 123456

## rootログイン無効化
PermitRootLogin no

## 鍵ファイル認証方式の有効化
RSAAuthentication    yes
PubkeyAuthentication yes
AuthorizedKeysFile   %h/.ssh/authorized_keys

## パスワード認証の無効化
PasswordAuthentication no

sshdを再起動します。

$ sudo service ssh restart

リモートマシンから作成した秘密鍵ファイルでログインできれば完了です。

$ ssh -i ~/.ssh/id_rsa newpi@10.0.1.201

ここまでで最低限のセキュリティ対策はできたと思うので、まずは”来客システム連携”を完成させるべく頑張って開発します!

それではまた!