2017年12月10日日曜日

ラズパイZero WにGoogle-Home-Notifierを導入(手順メモ)

いろいろできるGoogle Home(うちのはminiですが)ですが、現状「聞き手」専門であり、何かを能動的に発信してくれる機能はありません。例えば「Gmailが届いたら音声で教えてくれる」みたいなこともできません。できて欲しいところですよね。

それを解決するための一手段がGoogle-Home-Notifier。Node.js用のモジュールで、仕組みはよくわかりませんが、好きなメッセージをPOSTして自分ちのGoogle Homeに喋らせることができます。

この辺のやり方は検索すればいくつも出てきますので、ここでは自分用に今回の手順をメモとして残しておきたいと思います。

ラズパイZero Wはこんなに小さい!

僕は自宅サーバーを運用したりはしてませんでしたので、今回満を持してRaspberry Pi(通常ラズパイ)のZero Wを購入しました。ラズパイZeroは昨年発売された5ドルPC。それに無線LAN機能が付いたのがZero Wです。価格は10ドル。安い!安いけど、やろうと思えばこれだけでデスクトップ環境も使えますし、PC代わりにインターネットもできたりします。とは言え廉価版であるZeroシリーズは処理性能が低いので、主な用途としてはやはり組み込みか簡易サーバー的な使い方になるのでしょう。

ラズパイ Zero Wのセットアップ


家にUSBキーボードがないので、MacからのSSH接続をするべく、OSインストール後、無線LAN設定とSSH有効化をあらかじめ施した状態のSDカードを用意しました。

※母艦PC/MacとUSB接続してセットアップする方法等、他にもいろいろありますが、Zero Wの場合は画面なしでOSインストール&無線LAN有効化まで簡単にたどり着けるので、おそらくこの方法が一番簡単かと。

・SDカードのフォーマット(8GBのMicroSD)
・公式サイトよりRASPBIAN STRECH LITEをZipでダウンロード
・「Etcher」を使ってZipからSDカードにOSイメージを展開

参考にしたのはこちら
第2回: micro SDカードにRaspbianをインストールする – Blue-black.ink

※通常はNOOBSというインストーラー的なのを使うみたいですが、Etcher使うとものすごく簡単ではないかと思いました。

・boot直下にsshファイルを作成(これでSSH有効化されるとのこと)
・boot直下にwpa_supplicant.confを作成(無線ランのSSIDとパスフレーズを設定)

参考にしたのはこちら
RaspberryPi Zero Wのワイヤレスセットアップ - Qiita
Raspberry Piの無線LANをmicroSDで設定する - Qiita

※うちは母艦がMacなのでIPアドレス調べなくても「ssh pi@raspberrypi.local」でつながりました。

・SSHでログイン
・apt-get update
・ログインパスワード変更、ロケーション変更等の初期設定(sudo raspi-config)

参考にしたのはこちら
RaspberryPi Zero Wのワイヤレスセットアップ - Qiita

Node.jsとGoogle-Home-Notifierのインストール


最初Node.jsの最新V9.xをインストールしたのですがGoogle-Home-Notifierのインストールが上手く行かず、結果的にV8.9.3(LTS版ってことみたい)を入れ直しました。

sudo apt-get install git
sudo apt-get install libavahi-compat-libdnssd-dev

sudo apt-get install -y nodejs npm
sudo npm cache clean
sudo npm install npm n -g
sudo n lts

参考にしたのはこちら
Raspberry PiにNode.jsとnpmの最新版をインストールする - Qiita
Raspberry Pi に google-home-notifier を入れた時に躓いたメモ - PC・通信メモ

最後にGoogle-Home-Notifierをインストール。最初ここでつまづきましたが、Node.jsのバージョンを落としたらうまくいきました。(あまり確信はありません…)

インストールに成功後は、Example.jsを編集。Google HomeのIPはiPhoneのGoogle Homeアプリで調べられます。詳しくはググりましょう(^_^;)。

git clone https://github.com/noelportugal/google-home-notifier
cd google-home-notifier
npm install

参考にしたのはこちら
GoogleHomeスピーカーに外部からプッシュして自発的に話してもらいます - Qiita

node Example.jsの起動に成功すれば、家庭内LANからはもちろん、ngrokというトンネリングサービスがデフォで起動していて使えるので、すぐに外のインターネットからリクエストを送ることができます。ブラウザーから「https://ほげほげほげー/google-home-notifier?text=私、しゃべれるようになりました」とか入れれば結構すぐに家のGoogle Home miniが「トゥルン!」と鳴って「ワタシ、シャベレルヨウニナリマシタ」と喋ってくれました(^_^;)。

さて、後はこれをどのように生活に役立てていくかが腕の見せどころですね(^_^;)。

以上、自分のための手順メモでした。誰かの参考になれば幸いです。ではまた。

Google Home miniを壁掛けしてみた

半額セールにつられてGoogle Home miniを購入したミーハーな皆様、こんばんは(^_^;)。3,000円で買えるのなら、買って試してみたくなりますよね。

Google Home miniですが小さいからどこにでも置けそうに見えて、電源ケーブルが必要なこともあり意外と場所を選びます。そこで今回、壁掛けにトライ。ネットで検索すると3Dプリンターで作った専用壁掛け具みたいなのがヒットしますが、そこまでせずとも針金があれば最低限どうにかできそうです。

こちらが出来上がり↓

Google Home miniにはキッチンが似合うような気がします

壁掛けにあたり、背面に両面テープを使う案をまずは思いついたのですが、それは不可能でした。なぜなら底面のゴムが若干特殊なのかなんなのかテープというテープが全くくっつかないのです!機体にコレといった引っかかりもないですし、壁掛けは意外と難しそう。

仕方ないので極めてシンプル・原始的に、針金で輪っかを作ってはめ込む作戦でいくことに。


円周にそって針金をまいて一箇所でギュっと締めただけ(^_^;)。機体の布部分とプラスチック部分の境目にちょっとしたくぼみでもあればよかったのですが、ありません。しっかりと固定するためには、境目にこだわらず、布部分でギュッと締めるのが良さそうです。


締めるのはペンチを使った方がいいでしょう。やってみるとわかりますが、意外と難しい(^_^;)。すぐスポッととれてしまいます。ペンチでキツめに締めましょう。ボリューム等のタッチ操作には、今のところ影響出てないので、たぶん大丈夫です。

あとはどうにかして(^_^;)、壁につけて完成。吊るすのが一番簡単かと思いますが、ケーブルがブラブラしないよう、今回僕はこちらを利用して下部を固定しました。見た目イマイチなので今後替えるかも知れませんが…。1番目の写真をご参照ください。


てな感じです。いちアイディアとしてご参考になれば幸いです。

Google Home mini、意外と楽しいですね。


買うときは否定的な眼差しを向けていたハーマイオニーさん(奥様=魔女)も、今のところ楽しんで使っています。主には息子と一緒に「OK, Google! ○○を英語で」ばっかりですが。キッチンタイマー代わりにも使えますし(「OK, Google! 3分タイマー」とか)、音楽かけたりニュース聞いたりすることもできます。

あと差し当たりIFTTT連携で「OK, Google! ダンナに連絡」とかも使えるようにしてみたので(まだ教えてない)、その辺使ってみていただければ幸いです(^_^;)。

息子は当初「OK, Google!」がなかなか言えずどうしても「OK, ぐるぐる!」になっていたのですが、最近はだいぶ「ぐーぐる」と言えるようになってきました。とは言え、なかなかGoogle Homeさん拾ってくれないですけどね。息子の場合、問いかけでも何でもない日常会話を交わすことがおおいです。「OK, Google! トイレ行ってきます!」とか(^_^;)。それでGoogleさんが「我慢はよくないですよ」とか返してくれたり(^_^;)。

あとGoogle Home用にRaspberry Piでサーバー立ててみたりと色々面白い使い方を探求しようとしていますので、その辺もいつか。ではまた!

2017年12月4日月曜日

雑談トピ・100均DIY・Watson・GoogleHome

先日久しぶりに仕事で徹夜しましたよ。木曜日に会社の飲み会があったのですが、二次会中に障害の連絡が!急遽、職場(お客様先)に戻り対応することに。「こりゃ今日はタクシー帰りだな」と思っていたのに、気づけば朝の5時。「始発動いてもうたやん!」と思ったのも束の間、結局そのまま夕方18:00まで働いてました。

その日は昼ごはんを食べるヒマも無く、途中職場の皆さんが食べ物と飲み物を差し入れてくださったので飢えることはありませんでしたが(^_^)、それにしてもまさかの仮眠なし!意外と持つものです。さすがに疲れましたが、金曜夜は帰って普通に晩御飯食べて夜に寝たので生活リズムが崩れることはありませんでした。土曜日は朝からヤマハ音楽教室行きましたし、日曜日は朝7:45クラス(!)のスイミングにもちゃんと連れていきましたよ。

やりたいことが多すぎて時間が足りない今日このごろ


IT関連、DIY関連(^_^;)、いろいろあって全然時間が足りません。DIY関連(なんちゃってですが)では、こないだたまたま「100均木箱で作るインテリア」みたいな記事を見て触発されてしまい、テーブルにニスを塗ったり、おもちゃ片付け用の棚を作ったり、妻と子供が寝た後の深夜にコツコツやってしまいました。

今日もこの後、テーブルに紙やすりかけてもう一度ニスを上塗りします。ニス塗りのコツがわからなかったので今回は大失敗しましたが、この経験で次はキレイにできるはず(^_^;)。

ドライブヘッド格納基地をダイソーのMDF材を使って作成。切って木工用ボンドでくっつけただけですが強度は十分。ダイソーの水性ニス(ウォルナット色)を塗ってます。

ドライブヘッド格納基地

いちどハーマイオニーさん(奥様=魔女)が熱い鍋を置いて変色してしまったキッズテーブルにも水性ニスを塗ってイメチェン。ただし1回目に塗る際、ヘタに塗り重ね等してしまったため大失敗(^_^;)。

これが元の色
色味はいいんですけど、筆跡や塗ミスが目立ちます…

我が家のなんちゃってDIYだと以前作ったプラレール置き場が唯一我ながら良い出来です。

カモノハシ通信3: プラレール収納棚を自作してみました

その他としてはアルファロメオ・ミトのサイドミラーのカバーを取り替え、という作業もやりたいと思いつつ手を付けられていませんな。

IT関連でやりたいこと


まずはAI関連。IBMのWatsonが無料でかなり使えるので、情報収集をしています。これからのITでAIは避けては通れない技術となるはず。まずは自分でいろいろ好き勝手試してみたいです。

Watsonでも何でもいいのですが、当面の目標はこのブログの全記事をAIに学習させて、ユーザーからの対話形式の質問(例えば「赤ちゃんグッズで人気の記事はどれ?」的な)に適切に答える仕組みを作ること。機械学習や対話プログラムなど、AIのエッセンスが掴めそうだと思うのですがいかがでしょうか?ブログ記事の学習の方はWatsonの無料プランだけでは難しいみたいなので、どうしようか考え中です。文章読ませて性格分析!みたいなのや会話プログラムは無料で使えるようですが。

この本に触発されています。

それから半額セールに乗せられてGoogle Home miniを買ったので、これでいろいろ組み立ててみたい。普通は音楽をかけたり、調べ物をしたりなど決められた使い方をする人が多いと思うのですが、実はWEBの技術でさまざまなサービスと組み合わせることで無限の可能性が広がっているのがGoogle Homeなのです。

さしあたりやってみたいと思って準備しているのが、外からのキックでGoogle Homeに喋らせること。 facebookのmessangerで「今会社でたよ」とか送ったら、それを拾って家のGoogle Homeに喋らせたり。逆にGoogle Homeに話しかけることでメッセージを送ったり(IFTTT使えばそっちは簡単)、などなど。

Google Homeに喋らせるためにはネットワーク内でnode.jsを動かせば簡単なのだそうです。それ用にRaspberry Piをこっそり買っちゃいました。前からラズパイで何か作ってみたいと思っていたので楽しみです。node.jsもこれまで触れたことないし。

今までやったことのない色々なこと=大げさに言えば「未来」が、身近に感じられる現代のITには夢が溢れていると思います。お金もほとんどかからないためハードルも低いですからね。

仕事関係ないと特に楽しい\(^o^)/

Google Homeについては色々書いてみたいと思いつつ書けるかどうか(^_^;)。いま現在、我が家では「○○を英語で言って」というのが流行しています。4歳の息子でも使えるので、これは良い英語の勉強になるかもです。ちゃんとネイティブ発音で返してくれますし。息子が「トーマスを英語で言って」というとちゃんと「Thomas」と返してくれます(^_^;)当たり前ですが。

ただ息子は「OK, Google」がなかなかちゃんと言えず、どうしても「OK, グルグル!」になってしまいます(^_^;)。僕がゆっくり「ぐーーぐる」と言っても「ぐーーるぐる」になってしまうと言う(^_^;)。今だけの可愛さかもですね。

その他いろいろ


ピアノとギターとバイオリンはもっと練習したいと常々思っているのですが、最近はほとんど弾けていません。息子がけっこう歌を歌えるようになってきたので、僕が伴奏して歌を歌わせてYouTubeにアップして一稼ぎしたいところなのですが(^_^;)。息子が今一番得意な歌は「ペガサス・ファンタジー」です。聖闘士星矢の(^_^;)。あと「残酷な天使のテーゼ」もいけます。4歳児が歌う動画をアップしたら、けっこうヒットすると思いません(^_^;;;)?

YouTube動画ももっとアップしたい。特にせっかくここまで集めたドライブ・ヘッドなので、いっぱつユーチューバー気取りで「全機体を紹介してみた!」とかやりたい。そして月1万円くらい稼ぎたい(^_^;)。

そうそう、こないだまで息子の寝返り動画(ホテルのベッドで最後転げ落ちるやつ)がプチヒットしてまして、その動画だけでこの1年間で数万円稼ぐことができました。オモチャ代は実は自分で稼いでいるうちの息子です。(最近勢いが落ちてきたので、その意味でも新しいヒットを作りたい)

寝返りしてベッドから転げ落ちる赤ちゃん。 - YouTube

グランツーリスモSPORTも面白すぎて、もっとやりたい!こんなブログ書いているヒマがあったらコースを練習してオンラインレースに挑みたい!と結構まじで思ってしまいます。そのくらい本気で面白いです。

先日リバリーエディタでドライブヘッドそっくりのデザインの車を作ってみました(^_^;)。この作業も軽く1時間以上かかってますからね。時間がいくらあっても足りません(^_^;)。

文字を貼るのが意外と大変。いい方法誰か知ってます?

こちらがブレイブ・バックドラフトのバイパー(^_^;

そんな感じですが、たまには落ち着いてブログを書くことも大事ですね。ではまた。