最終更新: 2022/12/19(Mon)21:22

自作と修理を愛するブログ。トイラジ、電子工作、ボルティー、NucleusCMS 、いろいろゴソゴソやってます
3Dプリンター / 3Dスキャナーも -kyu-

Home > Raspberry pi

Alexa (本物) 降臨

  • カテゴリ: Raspberry pi

2022年のブラックフライデーセール、みなさんはなにか買いましたか?
ブラックフライデーとはすなわちアメリカのサンクスギビングです。ちょっと古い話ですがアメリカでこんなこともありました。
近年は Amazon のおかげでブラックフライデーセールの認知度もだいぶ上がりました。今年もテレビCMガンガンかかってましたね。

で、ついつい乗せられて買ってしまいましたよ。Amazon Echo Dot 。お値段は2000円。
ホントは Amazon Echo Show 5 が欲しかった。でもこうたやめた音頭を踊っているうちに売り切れてましたトホホ。同じ値段ならプライムビデオが見られる画面付きのほうがよかったなぁ。

まあそれはそれとして、なぜ Amazon Echo というかアレクサ買ったのか。だいぶ前にラズパイでつくったじゃないかってね。
実のところラズパイアレクサ、そこそこ遊べていたのですが問題も多くてここのところ全く起動していなかったわけで。

問題というのは色々です。Amazon 純正のハードウェアではないので Amazon Music に対応していないとか、Radiko は最初の数秒しか再生できずにだんまりになってしまうとか。再インストールしようにもインストールスクリプトが完走できなかったりとかそんな感じです。インストールできないのは、うちのラズパイがかなり初期の 2B というモデルなのが関係しているっぽいです。

でまあ、禁煙で浮いた資金もあるし安いしってことで購入に踏み切ったわけですよ。

★Amazon Echo Dot
デジタル時計が埋め込まれたボールって風情。第4世代といわれてるモデルです。バッテリーが内蔵されてるわけでもないのに重量感あります。音はいいです。さすが自作機とは違う。

ラズパイで構築するのと違って、電源をいれてスマホのアプリから WiFi の設定をするだけで話が通じるようになりました。お手軽です素晴らしい。

さて、単に音楽とラジオの再生だけではつまらないので、以前ラズパイアレクサで構築した音声で部屋の照明を入り切りするのと音声でPCを起動するのは移植したいです。このエントリはそのあたりを備忘録化しておくのが目的。

まず、どうせやるなら Echo Dot 以外のハードウェアの追加無しで、すべてソフトウェアでやりたいと考えました。

照明を操作するハードウェアは ESP-WROOM-02 でつくったスイッチボットもどきを流用します。まあこれは仕方ない。
以前作ったブツをざっくり説明すると、WiFi 対応の Arduino で Web サーバーを立てて、他のデバイスから Arduino の IP アドレスを http で叩くとサーボモータが動いて壁スイッチを操作するというものでした。

他になにかやり方があるはずと調べたところ、fauxmoESP というライブラリの存在を知りました。ESP8266 や ESP32 を疑似的に Alexa 対応ホームデバイスにしてくれるありがたいライブラリです。解説記事をざっと見て一番わかりやすかったのがこちら。

fauxmoESP で スマートホームデバイス自作 - IoT - HomeMadeGarbage
https://homemadegarbage.com/espalexa04

書かれているとおりにやればいいはず。まあまあかんたんに移行できるでしょう。

問題はPCの起動。Wake On Lan を使うのはいいとして、Alexa のスキルにはありません。ということはスキルをつくらないとならない。結構時間をかけて調べたところ、Qiita のこちらの記事に行き着きました。

Amazon Echo (Alexa) でPCの電源を付ける
https://qiita.com/algi_nao/items/0ebb0863ecb3614b9295

ソースなどは github で公開されています。
ちょっと読んでみたのですが、まぁ敷居が高い。AWS Lambda 及び Python に関する知識が必要です。
手順は事細かに書かれているのでその通りに進めていけばやれなくもないと思われますが、引っかかったのが AWS 関連。アマゾンウェブサービスには無料利用枠ももちろんありますが、期限があったり上限があったりします。お遊び程度の利用なら問題なさそうですが、クレジットカードの登録必須だし何かあったら目の玉が飛び出るくらいの課金されそうで怖いです。なのでやめときます。

他に WOL を使わない方法としてスマートコンセントで PC の元電源を入り切りするという方法がたくさん見つかりましたが、いやいやそれはだめでしょと。PC 壊れちゃいますよたぶん。PC 側で対応していればできるのかもしれませんがうちのはダメですねハイ。

そんなわけで、Echo Dot 以外のハードウェアの追加無しで、すべてソフトウェアでやる方向は諦める方向に。そうなると簡単なのは、適当な中継用ハードウェアを常時起動しておいて、そちらの仕組みで他を動かすということになります。

ええ、Raspberry Pi 2B を常時起動しておいて、Node-RED を使うっていうのがベストな選択。今までとあまり変わらんのです。つまるところラズパイの中にいたアレクサを専用ハードウェアに移しただけなんですなわはは。

なお現行のラズパイ OS は Raspberry Pi Imager という仕組みをつかってかなーり簡単にインストールできるようになっていました。いきなり ssh で接続できるようになるのでラズパイにキーボードもモニターも繋がずにすみますすばらしい。
ちょっと前までは Raspbian という名前でしたが今は Raspberry Pi OS に変わっています。

ちょっとハマったのが WiFi の設定。RaspberryPi 2B には純正の USB 接続タイプの無線 LAN アダプタを取り付けていますが、こいつは 5GHz 帯に対応していません。2.4GHz のみ。同様に ESP-WROOM-02 も 2.4GHz しか使えません。春先にネットワーク周りをいじったのをすっかり忘れていて、全然つながらなくてかなりの時間を溶かしました。

あと、肝心の Node-RED が従来の手順ではインストール出来ませんでした。従来の手順っていうのは

sudo apt-get install nodered

でインストールするやり方ですが、なんどやってもインストールエラーになっちゃいました。っていうかこのコマンドでインストールできるって、どこで仕入れた情報なんだろ。全く覚えてません。
インストールスクリプトを使うこちらが正解ですね。

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

自動起動とかもろもろ設定し、前と同じ手順でプログラミング。同じスキル名で登録し直せば完了。

あ、そうそう。Python で書いたスイッチボットもどきに http アクセスする switch.py が動かなくなってました。Python3 系で urllib2 が使えなくなったのが原因。なので作り直し。

switch.py

import requests
url="http://192.168.0.213/switch"
r = requests.get(url)

なんだかずいぶん簡単になりましたw

もうひとつ。スイッチボットもどきがいまいち安定しません。起動に失敗することが多い感じ。
あらためて調べたところ、ESP-WROOM-02 は起動時に電力バカ食いするみたいです。こちらが詳しいです。

ESP-WROOM-02を使ってみる3 -そんな電源で大丈夫か-
http://nemuisan.blog.bai.ne.jp/?eid=216185

そんなわけで AC アダプタを 600mA から 2A 品に変更し、ついでに DC-DC コンバータを変えることにしました。


★ステップダウンコンバータ入れ替え
AMS1117 は最大 800mA 出力のレギュレータです。ちなみにこのステップダウンコンバータ、レビューみるとハズレも多そうだけど10個で600円弱は魅力ですわ。

今までの電圧可変式と比べると極小で、スペースは十分あったので問題なく換装。
AC アダプタを大きくしたおかげか、かなり安定して動作するようになりました。


以上紆余曲折ありましたが、快適な環境が戻ってきました。
他にもできることないかな。アイデア募集中ですww

コメント

この記事へのコメントはありません

コメントを投稿

( *は必須項目です )

%3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%22%20%76%61%6c%75%65%3d%22%62%32%61%35%64%35%65%37%32%31%38%30%35%36%38%31%61%32%30%62%65%65%32%64%37%63%31%30%37%34%36%63%22%3e %3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%5f%68%61%73%68%22%20%76%61%6c%75%65%3d%22%34%35%34%38%30%66%34%33%62%66%65%35%65%65%30%32%32%61%63%38%61%64%33%32%64%32%63%64%32%37%36%31%22%3e

サイト内検索

↑ページ先頭へ

2534266 [Mode]
Copyright © kyu-weblog All Rights Reserved. Powered by Nucleus CMS v3.71 管理