「alexa」タグアーカイブ

次期モデル Mini Pupper 2 に Raspberry Pi Compute Module 4 を搭載

すき 0
0

これまでは次期モデル Mini Pupper 2 をESP32のみで楽しんでまいりました。
前回はより製品版に近いとされる基板の動作を確認しました。

次期モデル Mini Pupper 2 新規基板を味見

 

Mini Pupper 2 の基板にはRaspberry Pi Compute Module 4 (CM4) も搭載可能です。

 

この度、CM4を提供いただきました。MangDang社様本当にいつもありがとうございます!!

ここからはCM4とESP32によるミニぷぱ動作を検証します。

ここで使用している基板は製品版と異なる場合があります。何卒ご了承ください。

 

CM4設定

提供いただいたCM4モジュールはeMMCのないモデルでした。
小さくてビックリ!!

 

早速搭載。

 

Mini Pupper 2基板にはSDカードスロットとmicro-HDMIコネクタが搭載されています。

 

Raspi OS(32bit)を書き込んだSDカードを入れて起動を試みたのですが、すぐにリセットしてしまう謎の症状に苦しみました。。

調査したところ以下でも同様の症状が報告されており、解決策として書き込みのあった
config.txt を修正 ( “dtoverlay=vc4-kms-v3d” -> “dtoverlay=vc4-fkms-v3d”) する方法で改善し無事に起動できました。

https://forums.raspberrypi.com/viewtopic.php?t=323920

CM4 – ESP32間通信確立

CM4の起動が無事できたので更にVNCとNode-REDの設定も実施し、ここではESP32-S3との通信を目指します。

基板上ではESP32-S3のUART1とCM4のUART3が接続されていましたので、以下を参考にCM4のUART3を有効化しました。
https://toki-blog.com/pi-serial/#UART3UART4UART5

無事にシリアル通信が可能になりました。

ミニぷぱ動作

CM4とESP32-S3 間の通信ができるようになったので、CM4から文字を送ってESP32に仕込んだ動作を起動してみました。

CM4上のNode-REDから文字をシリアル送信してESP32で文字に対応した動作でサーボを制御しています。

 

Alexa連携

ミニぷぱがラズパイOS (Node-RED) で使えるようになりましたのでAlexaとの連携も容易となります。

以下と同じ方法で連携してみました。

ラズパイで気圧測定

 

Node-RED Alexa Home Skill Bridgeでミニぷぱ動作用のデバイスを用意してAlexaアプリの定型アクションで起動発話を設定します。

 

Node-REDで動作用デバイスとモーションコマンドを連結させます。

動作

簡単にミニぷぱとAlexaを連携できました♪

おわりに

ここでは提供いただいたCM4モジュールをミニぷぱ基板に搭載してESP32との連動やAlexa連携を楽しみました。

これまでにCM4なしでESP32のみでミニぷぱ動作を実現していましたので、ここではCM4はESP32に組み込まれた動作を指定するのみの仕事しかしておりません。
しかしESP32で制御用のブラウザページを作りこむのはかなり大変だったので、ラズパイ(CM4)でかなり楽になりそうです。

ミニぷぱ動作においてCM4とESP32の役割の振り分けにはいろいろな方法が考えられそうです。
思いついたモノを上げると

  1. ESP32で各動作を組み込んでおいてCM4で起動 (今回の手法)
  2. CM4から足の座標をESP32に指定
  3. CM4から各サーボの角度をESP32に指定

ESP32のプログラム書き込みが面倒なので上の手法の2か3が良いのかなと現時点では思っています。
製品版の手法もウォッチしつつ検討すすめます。

 

次回はディスプレイやスピーカの動作確認を実施したいです。

次の記事

次期モデル Mini Pupper 2 に Raspberry Pi Compute Module 4 を搭載

ATOM Echo おしゃべりティラノくんをAlexaと連動

0
0

前回はATOM Echo を用いて、我が家を見守るコンシェルジュ おしゃべりティラノくんを製作しました。

AquesTalk と Node-RED と ラズパイで おしゃべりティラノくん作製

定期的に自発発話してくれるティラノくんを
今回はスマートスピーカAmazon Echo Dotと連携させて
こちらからAmazon Echoに気圧を問いかけて発話させます。

 

 
 

Alexa連動

Node-RED Alexa Home Skill Bridge というNode-REDモジュール用いて、仮想のAlexaデバイスを作成して発話応答をNode-REDへ返してティラノくんに気圧を発話させました。

構成

 

 

Node-RED Alexa Home Skill Bridgeの設定

Node-RED Alexa Home Skill Bridge用のアカウントを作成して気圧センサを起動するための仮想のAlexaデバイスを作成します。
 

アカウント登録

以下にアクセスして、Resisterをクリックします。
 https://alexa-node-red.bm.hardill.me.uk/

ユーザ名とメアド、パスワードを登録します。

 

デバイス登録

登録後、Devicesタグを選択してAdd Deviceをクリックします。

 
気圧センサを起動するためのAlexa用デバイス”Barometric pressure”を作成しました。

Name: デバイス名 ” Barometric pressure” 入力
Description: デバイスの簡単な説明記載
Actions: デバイスの動作種類を選択。ここではOnを選択。
     Onで気圧センサ値読み取りのトリガとします。

 

 

Alexaスキル  Node-RED有効化

スマホのAlexaアプリでNode-REDスキルを有効にしてAlexaサービスとNode-RED Alexa Home Skill Bridgeを紐づけます。

 
スキルを有効にするとNode-RED Alexa Home Skill Bridgeのアカウント入力画面に切り替わるので、登録したユーザ名とパスワードを入力します。

 
問題なければデバイス検出画面に移行します。

 
端末の検出をクリックで作成したデバイスが見つかります。

 

定型アクションを編集

作成したデバイスの起動するための発話をカスタマイズするために、 Alexaスマホアプリで定型アクションを編集します。

Node-RED設定

node-red-contrib-alexa-home-skillをインストールします。

設定でパレットのインストールでnode-red-contrib-alexa-home-skillを検索して”install”クリックでノードが追加されます。

 

作成した仮想Alexaデバイス”Barometric pressure”を前回の定時発話Node-REDフローに追加します。

 

① alexa-homeノード

ノードを配置してまずはNode-RED Alexa Home Skill Bridgeで登録したユーザ名とパスワードを入力します。

 
デバイスを選択します。

 

② functionノード

前段のAlexa起動を受けて、定時発話のように
まず「気圧ですね」と発話させてから気圧を報告させます。

 

 

動作

 

Alexaに問いかけるとリアルタイムに気圧を報告してくれるようになりました!

2019年 スマスピ活用術

0
0

スマートスピーカー Advent Calendar 2019 |6日目

Amazon Echo Dotを購入して早1年半ほど。もはや我が家にはなくてはならない必需品となっております。

天気を訪ねたりタイマーをかけたりなどのオーソドックスな利用はもちろんのこと、自分たちのライフスタイルに合わせるべくカスタマイズも色々楽しみましたのでご報告させてください。

 

 

家電制御

WiFi搭載マイコンESP8266とAlexaを連携して、家電のボイスコントロールを実現させて家族にも大変好評を得ております。TVや電気スタンドやリビングの電気を制御しています。

 

alexa-wemo-emulatorというライブラリをこれまで使用してきたのですが、急に使えなくなってしまい生活が成り立たなくなったため fauxmoESP というライブラリへの移行を実施いたしました。

ESP-WROOM-02 と Blynk でLEDコントロール

無事に復旧して一安心です。いかにスマートスピーカが生活に浸透しているかを実感した次第です。

スマート家電リモコン

以下のスマート家電リモコンがキャンペーンで774円となっておりましたので購入しました。

専用アプリで赤外線リモコンの学習やAlexa等のスマートスピーカとの連携が可能です。

赤外線リモコンで動くトリケラトプスも連携できましたwww

これで自作のESP8266テレビコントローラは晴れて卒業となりました。
 

気圧センサと連携

気圧センサとAlexaを連携させて我が家のおしゃべりコンシェルジュのティラノくん に気圧報告してもらうようにしました。

日々の気圧を把握することで家族の健康に何かしら相関があるのではと思い導入致しました。

AquesTalk と Node-RED と ラズパイで おしゃべりティラノくん作製

 
使用した気圧センサは以下です。

 

Alexaスキルの開発

自分たちでもスキルを作ってみたく、カラーコードを発話するとディスプレイにその色を表示するスキルを作りました。

画面付きのAlexaデバイス用のスキルです。Fire TVでも動作します。

Alexaスキル:AudioPlayer で音楽配信スキル作成から公開まで

まぁこのスキルの有用性についてはあまり考えないようにしております。

 

2019年 おうちハック事情

0
0

おうちハック Advent Calendar 2019 |4日目

今年も家族に対してゴミばかり作っているわけではないことを証明するべく、生活に役立つものを目指して色々と作りました。

実際に役に立っているかの検証は一生しないつもりですので、まずは今年やったことをご紹介したく宜しくお願い致します。

 

 

 

気圧センサの導入

今年も大変な災害の多い年でしたね。
台風の季節にはセンサで気圧をプロットしている方が数多くみられました。

我が家も気圧センサを導入してみました。気圧を知ることによって天気のみならず体調との相関もあるのではと期待したのであります。

ラズパイZeroで動いている我が家のおしゃべりコンシェルジュ ティラノくん に気圧計を仕込んで気圧の発話ができるようにしました。

AquesTalk と Node-RED と ラズパイで おしゃべりティラノくん作製

 

使用したのは以下の気圧センサです。めちゃくちゃ安かったです。

 

更に気圧センシングを堪能するためにプロット機能も追加し、Alexa連携でティラノくんにいつでも気圧報告してもらえるようにもしました。

気圧センサの Alexa 連動とグラフプロット

お母ちゃん曰く、気圧そのもではなく気圧変化が体調に影響しそうとのことなので、今後は気圧変化の勾配などでアラート出すなどしてみたいです。

 

金魚水槽管理システム

今年の我が家の大きな出来事として、金魚が家族に加わったことが挙げられます。

夏のお祭りで2匹タダでゲットしてきたのです。

意外だったのがお母ちゃんがすっかり金魚を可愛がり溺愛しだしたことです。
毎日金魚水槽を眺めて話しかけ入念にお世話をしています。

そんなお母ちゃんから以下のリクエストを頂戴しました。

  • 水槽の温度やpHを計りたい
  • 水草の成長促進のためにLED照射したい
  • 遠隔でも金魚を監視したい
  • 寝ている金魚の動画をとりたい

特に寝ている金魚の観察は近づくとすぐに起きてしまうために難しいとのことでした。

そこで以下のようなシステムの構築を目指して現在、実験・勉強中です。

カメラで金魚の動きを認識して、LED、温度センサ、pHセンサを制御を目指します。
コントローラにはMaixduinoを採用しエッジAIによって金魚を認識して金魚が寝てるか起きているかを判別して動画撮影します。ESP32を搭載していますのでWiFiで映像ストリーミングや水質データの受け取りを考えています。

まだまだ道半ばですが現状報告させていただきます。

金魚認識

頑張って金魚の学習用画像を用意して金魚認識オリジナルモデルを作成いたしました。ほぼリアルタイムに判別できていますので金魚の就寝を判別することは可能であると考えています。

 

オリジナル金魚認識モデルの生成 ーエッジAI活用への道 3ー

認識した座標の変動から金魚の就寝を判別したり、動画ストリーミングなど今後検証いたします。

LED・センサ接続

テープLED Neopixelを水槽に接続しました。

Sipeed Maixduino で Neopixel を堪能 ーエッジAI活用への道 5ー

 

温度センサとpHセンサを接続し、測定値をUDPで送信まで実現しております。

温度センサ で 水温計 作製

pHセンサを味見 ーエッジAI活用への道 7ー

 

課題としましてはMaixduinoにてUDP送信は出来たのですがUDP受信が実現できておらずLEDの遠隔操作ができておりません。

フューチャーワークとさせてください。

 

エコロジーLED表示器

さてクリスマスシーズン街はイルミネーションで色めきだっております。
我が家もイルミネーションでクリスマスマインドを高めたいのですが、やはり電気代が気になります。

そこで我が家のベランダ太陽光発電システムで日中発電して夜LED点灯するシステムを構築しました。

E32-SolarCharger の PWM制御 ーベランダ太陽光発電所への道4ー

 
LED表示器への給電はワイヤレスチャージモジュールを使用して窓越しに行います。これで冬でも安心です。

スマホアプリのBlynkを使用してLEDに表示する文字や色を指定できます。

 

北海道の家屋は二重窓ですので内窓にLED表示器を配置するとインフィニティミラーのような効果を得ることができ、更なるクリスマスマインドの向上効果を得ることができます♪

 

 

fauxmoESP で スマートホームデバイス自作

0
0

ずいぶん長いことAmazon Echoを愛用させていただき、esp8266-alexa-wemo-emulator ライブラリで自作のAlexa連携デバイスも使用してきました。

ご覧のようにテレビリビング照明電気スタンドを声でコントロールして家族みんなで便利に使ってきておりました。

しかし急に機能しなくなったのです。。。alexa-wemo-emulatorライブラリはもう何年も更新されておらず、使用できないとの噂もチラホラ入ってきており遂に来たか。。という感じでございました。

もうすでにAmazon Echoによるテレビや電気のコントロールは生活に浸透しており、無いと成り立たない状況です。

そこで以下の記事を参考にさせていただき、fauxmoESPというライブラリへの移行を実施いたしました。

 

 

fauxmoESPライブラリ

今回採用するfauxmoESPはalexa-wemo-emulatorライブラリと同様にWiFi搭載マイコンのESP8266やESP32を疑似的にAlexa対応ホームデバイスにしてくれるライブラリです。本当にありがたいライブラリでございます。感謝

Arduino用ライブラリは以下よりダウンロードできます。
 https://bitbucket.org/xoseperez/fauxmoesp/src/master/

ダウンロードしたzipファイルを所定のArduinoライブラリフォルダに展開します。
2019/9/10現在の最新のライブラリバージョンは3.1.0でした。

今回はESP8266を使用しますので以下のライブラリも追加します。
 https://github.com/me-no-dev/ESPAsyncTCP

壁スイッチ ON/OFF

まずはリビングの照明をON/OFFするスイッチをfauxmoESPに変更します。

構成

Amazon EchoでデバイスをON/OFFしてサーボモータを動かして壁スイッチを押します。安物のESP8266ボードを使用しています。

部品

  • サーボモータ SG90

  • WiFi搭載マイコン HiLetgo ESP8266

Arduinoコード

サンプルコード fauxmoESP_Basic.ino を参考にコード作成しました。

ESP8266のArduino用パッケージはESP8266 Community ver. 2.5.2を使用しています。安物ESP8266ボードの設定は以下のとおりです。

 

デバイス名を”リビング”としAmazon Echoで「リビングつけて」、「リビング消して」と発話してonSetState()コールバックでstateとして状態変化を検出します。

onSetState()コールバックではGPIOピンのHigh/Low設定などの簡単なことしかできないので、ここではstateの変化を変数flagで検出してloop()内でサーボを動かしています。

ちなみに「リビングを30にて」などと数字と共に発話するとonSetState()コールバックのvalueで受信されます。

発話の数字:0~100 [%] → Value:8bit値 0~255 に変換されます。
照明やLEDの調光に使えそうですね。

Alexaアプリ設定

スマホのAlexaアプリで”リビング”デバイスをホームデバイスとして追加します。

  • アプリの”デバイス”をクリック
  • ⊕をクリック
  • “デバイス追加”をクリック
  • “その他”をクリック
  • “デバイスを検出”をクリック

しばらく待つと

 
“リビング”がホームデバイスとして検出されます。

 

動作

よし!なおった!

 

おわりに

テレビと電気スタンドも同様にfauxmoESPライブラリに移行しました。

ESP-WROOM-02 と Blynk でLEDコントロール

Amazon Echo と ESP8266 で スマートホーム ―電気スタンド制御―

 

無事にAmazon Echoによる家電制御生活に戻れてよかったです 🙂 

テレビ制御コード (2019/10/29 追記)

リクエストありましたのでテレビ制御コードも記載いたします。赤外線コードは我が家のテレビの場合ですので適宜 赤外線解析して差し替えてください。

 

TV電源ON/OFF、音量大小、各チャンネル、入力切替、地デジ、BSなどをコントロールできるようにしました。

esp8266-alexa-wemo-emulator の時と同様に音量大小、各チャンネル、入力切替、地デジ、BSの制御にはAlexaアプリの定型アクションを使用しております。

コード修正 (2021/6/24 追記)

2021/6/20ころからリビングのスイッチをON/OFFするデバイスが動かなくなった。

コード修正で解決。
念のためFauxmoESPのバージョンも更新しておいた (3.1.0 -> 3.4.0)。

 

Alexa 画面付きデバイス向けスキル公開 「カラーデコード」

0
0

去年の2018年後半から画面付きのAmazon Echoが続々発売されて、Fire TVもAlexa対応になりましたね。

 

んで この度、画面表示向けのAlexaスキルを作ってみたいと思い立ったのです。SpotもShowまだもってないんだけどね 🙄 。
 

スキル概要

今回つくったスキル「カラーデコード」は、16進数 6桁のカラーコードを言うと、画面にその色を表示するといういたってシンプルなスキルです。

でもふと口にしたカラーコードが色として目の前に現れるって素敵なことですよね。ファンタジーです。これまではカラーコードを言っても何も起きなかったのですから。

Alexa SDK for Node.js Ver2をつかってコーディングしてます。スキル作成の基本設定などは以下のブログの通りです。ご参照ください。

Alexaスキル公開 「夏休みの友」

Alexa Developer Console

スキルの呼び出し名を設定

スキル名を「カラーデコード」としました。

インテントを追加

カラーコードが発話されると呼び出されるColorCodeインテントを作成します。

6桁のカラーコードを識別するために、{first} ~ {sixth}という6個のスロットを作りました。スロットタイプは以下のLIST_OF_NUMを作成して6つのスロットすべてに適用しました。

0~Fの16進数を検出します。

参考

6桁のカラーコード発話の認識として以下が大変参考になりました!

https://dev.classmethod.jp/cloud/4-digit-number-custom-slot/

Lambda Management Console

index.js

 

起動時のインテント、エラーやキャンセル、ヘルプのインテント発動時の動作をそれぞれ記載しています。

supportsDisplay()でスキルが画面付きデバイスで動作しているかを判断しています。
ColorCodeインテントでカラーコードを識別して、phpで動的に1ドットの対応する色のpng画像を生成して、画面付きデバイスであれば画面に表示させます。

スロットタイプLIST_OF_NUMでスロットIDを追加しておいたのでカラーコードの文字列生成を容易にできました。

スキル停止時に画面表示を明確に切らないとダメですよと申請時にリジェクトされました。全然修正がわからなくてググりにググって以下を見つけました。
 画面表示付きのskillを作成したが、対話が終了しても画面が消えない

こちらを参考にindex.jsの101行に .withShouldEndSession(true) を追加で、スキル停止時に画面表示も止まるようになりました。

index.php

1ドットの色画像を生成するphpコードです。

参考

スキル動作検証

スキルの動作検証はAlexa DeveloperコンソールのAlexaシミュレータや

 
Fire TVで行いました。

micro:Maqueen 発話でラジコン! ー Alexa + Node-RED + micro:bit ー

0
0

ものすごく便利なNode-REDモジュールを見つけてしまいました。

Node-RED Alexa Home Skill Bridge というもので、仮想のAlexaデバイスを作成して発話応答をNode-REDへ返してくれます。まさにブリッジとなってAmazon Echoへの発話とNode-REDの各種パレットをつないでくれます。

これなんでもできるようになるんじゃ。。。可能性ひろがるぅ 😳 

ここではAmazon Echoでコントロールするラジコンカーを作ってみました。

構成

Amazon Echoへの発話応答をNode-RED Alexa Home Skill Bridgeを介して ラズパイZero W上のNode-REDに返して、BLEでmicro:bitに信号を送ります。micro:bitは拡張ミニロボットカーMaqueenに載せて信号を受けて動かします。

部品

  • Amazon Echo Dot

     
  • Raspberry Pi Zero W

     
  • micro:bit

     
  • micro: Maqueen

Maqueen詳細については以下参照ください。

micro:Maqueen を使ってみた

Node-RED Alexa Home Skill Bridgeの設定

Node-RED Alexa Home Skill Bridge用のアカウントを作成してロボットカーを制御するための仮想のAlexaデバイスを作成します。

アカウント登録

以下にアクセスして、Resisterをクリックします。
 https://alexa-node-red.bm.hardill.me.uk/

ユーザ名とメアド、パスワードを登録します。

デバイス登録

登録後、Devicesタグを選択してAdd Deviceをクリックします。

 
ロボットカーのモータを回して前進、後進させるためのAlexa用デバイス”回転”を作成しました。

Name: デバイス名 ” 回転” 入力
Description: デバイスの簡単な説明記載
Actions: デバイスの動作種類を選択。ここではOnとOffを選択。
     Onで前進、 Offで後進させます。

同様にロボットカーを左右に向かせる”ターン”と、停止させる”ストップ”という2つのデバイスを追加で作成しました。

Alexaスキル  Node-RED有効化

スマホのAlexaアプリでNode-REDスキルを有効にしてAlexaサービスとNode-RED Alexa Home Skill Bridgeを紐づけます。

 
スキルを有効にするとNode-RED Alexa Home Skill Bridgeのアカウント入力画面に切り替わるので、登録したユーザ名とパスワードを入力します。

 
問題なければデバイス検出画面に移行します。

 
端末の検出をクリックで作成したデバイスが見つかります。

定型アクションを編集

作成したデバイスの起動するための発話をカスタマイズするために、 Alexaスマホアプリで定型アクションを編集します。

以下のように設定しました。

「アレクサ、前に進め」:デバイス “回転” On
「アレクサ、バックして」:デバイス “回転” Off
「アレクサ、右向け右」:デバイス “ターン” On
「アレクサ、左向け左」:デバイス “ターン” Off
「アレクサ、止まれ」:デバイス “ストップ” On

参考

 

Node-RED設定

Node-REDにAlexa Home Skill Bridge用のノードをインストールして、発話を受けてBLEでmicro:bitに文字列を送信できるようにします。ここではRaspberry Pi Zero WのNode-REDを使用しました。

我が家ではRaspberry Pi Zero Wを自宅内サーバとして使っていて、コンシェルジュのティラノくんが宿題やったか?とか朝だよーとか言ってくれるのです。

AquesTalk と Node-RED と ラズパイで おしゃべりティラノくん作製

ノードのインストール

node-red-contrib-alexa-home-skillをインストールします。

設定でパレットのインストールでnode-red-contrib-alexa-home-skillを検索して”install”クリックでノードが追加されます。

更にBLEを使用するために以下も同様にインストールします。
 node-red-contrib-generic-ble

Node-REDフロー

Alexa-homeノード

作成した仮想Alexaデバイス”回転”、”ターン”、”ストップ”の3つを配置します。

ノードを配置してまずはNode-RED Alexa Home Skill Bridgeで登録したユーザ名とパスワードを入力します。

 
デバイスを選択します。ここでは”回転”を選択。

同様に”ターン”とストップ”用のノードも配置します。
 

true/false分岐 ファンクションノード

“回転”と”ターン”デバイスは発話によってtrueとfalseを返すので、ファンクションノードで分岐させます。

 

BLE送信用文字列 ファンクションノード

“回転”と”ターン”のOn/Offと”ストップ”のOnの発話応用に対応するBLE送信用の文字列を生成するファンクションノードを配置します。

前進(”回転”デバイス On)では文字列 “1:”を送信しています。
micro:bit BLEの書き込み用UUIDと16進数文字列を指定します。

それぞれ以下の文字列を送信します。
 前進(”回転”デバイス On): “1:”
 後進(”回転”デバイス Off): “2:”
 右向(”ターン”デバイス On): “3:”
 左向(”ターン”デバイス Off): “4:”
 ストップ(”ストップ”デバイス On): “5:”
 

Generic BLE 出力ノード

Generic BLE outノードを配置して、鉛筆マークをクリックします。

 
Select from scan resultにチェックを入れ、BBC micro:bit を選択します。

 

MakeCode

Node-REDからの文字列をBLE介してmicro:bitで受けて、ミニロボットカーを制御します。

ここではMakeCodeでブロックコーディングしてmicro:bitに書き込みます。

 https://makecode.microbit.org/

機能拡張

設定アイコン -> 拡張機能をクリックでMaqueen用とbluetooth用のブロックを追加します。

 

Maqueenブロック追加

以下のライブラリリンクを入力して検索をクリック

maqueenをクリックでMaqueenのブロックが追加されます。

 

bluetoothブロック追加

拡張機能でbluetoothを選択。無線ブロックと共存ができないので、無線ブロック削除メッセージが出ます。削除しちゃってください。

 
bluetooth用ブロックが追加されます。

 

micro:bitのBLEペアリング設定を変更します。設定アイコン -> プロジェクトの設定をクリックで一番上の”No Paring Required”を選択します。これでペアリング無しで通信が可能となります。

 

参考

MakeCode ブロック

以下がMaqueen制御用のMakeCodeブロックです。


 

① 初期設定

変数stateを初期化して、BluetoothがNode-RED(Raspberry Pi Zero W)と接続されるとニコニコマークをmicro:bitのLEDマトリクスに表示します。


 

② 文字列受信

Node-REDからの文字列を受信してコロン”:”前の文字を変数stateに代入します。


 

③ 前後進制御

文字列”1:”受信で前進、”2:”受信で後進させます。LEDマトリクス表示もそれぞれ変えます。


 

④ 右向き制御

文字列”3:”受信で右に90°ターンします。LEDマトリクスにはターン方向の矢印を表示させて Maqueen前方についている赤LEDインジケータ右側をウィンカーのように点滅させてます。ターン後、全て停止します。


 

⑤ 左向き制御

文字列”4:”受信で左に90°ターンします。LEDマトリクスにはターン方向の矢印を表示させて Maqueen前方についている赤LEDインジケータ左側をウィンカーのように点滅させてます。ターン後、全て停止します。


 

⑥ モータ停止

文字列”5:”受信でモータ停止し、LEDマトリクスの表示を消します。

 

MakeCode JavaScript

全体のJavaScriptコードを以下に記載します。

 

 

動作まとめ

ゴチャついてきたので、動作を一覧にまとめます。


 

動作

音声でロボットカーを制御できております!

ちょっと初期設定が大変かもだけど、ブロック組み合わせるだけで実にフィジカルなVUIアプリを作成できました!

ゴミ箱とか音声で近くに移動してくれたりとかいいかも 🙄 

とにかくNode-RED Alexa Home Skill Bridge が神がかって便利なので今後もいろいろ活用考えたいです!

Alexaスキル:AudioPlayer で音楽配信スキル作成から公開まで

0
0

Alexaスキルで、音楽配信スキルを作成しました!

スキル作成経験者であるお父ちゃんに教えてもらいながら無事公開へ至りました。

お父ちゃん作成スキル「夏休みの友」

Alexaスキル公開 「夏休みの友」

準備:Alexa道場でお勉強

作成するにあたって基本的な知識は動画で配信されているAlexa道場を見る事をおすすめされました。

オンラインセミナー「Alexa道場」 | Amazon Alexa | アレクサ

その中でも抜粋してもらった3つの動画を視聴しました。

1. 第9回Alexa道場:ASK SDK for Node.js Version 2

Alexa道場 第3回と4回に作り方が説明されているのですが、SDKのVersionが 1 のものなので、まずは Version2 の仕様説明を見る事をおすすめされました。

正直詳しいところはよくわかっていませんが、わからなかったらあとで見直そうと思いざっくり視聴しました。

2. 第3回Alexa道場:音声インターフェイスをデザインしよう

3. 第4回Alexa道場:Node jsを使ってAlexaスキルを作ろう

コーヒーショップを作りながら基本的な作成の流れがつかめました!

スキルの設計

基本的な機能や作成方法を学んで、スキルの設計をしました。
最初から難しいものは厳しいのでまずは必要最小限の機能にしました。

機能は「アレクサ、ウェルカム脳の音楽を開いて」と言ったら音楽がシャッフル再生される、というシンプルなものです。(再生は常にシャッフル)

リピート再生や一時停止には対応していません。一時停止・停止した所からの再生に対応するにはセッションをAmazon DynamoDB に保存する必要がありますが、今回は DynamoDB へは保存せず、常にランダムな再生としています。

参考にさせて頂いた記事など

Alexa スキルで音楽再生するには「AudioPlayer」が必要とのことで、こちらの記事は色々読ませて頂き大変勉強になりました。
Alexa-SDK Ver2(その8) AudioPlayer | DevelopersIO

また、音楽を連続再生するにあたってはこちらのソースコードを参考にさせて頂きました
skill-sample-nodejs-audio-player/multiple-streams/lambda/src at mainline · alexa/skill-sample-nodejs-audio-player · GitHub
 

Alexa Developer Console

 AudioPlayerを有効化

まずは Alexa-SDK Ver2(その8) AudioPlayer の通り AudioPlayerを有効化
=> AMAZON.PauseIntent と AMAZON.ResumeIntent が追加される

スキルの呼び出し名を設定

ビルトインライブラリの追加

「次へ」を実装したいので、「Alexaのビルトインライブラリから既存のインテントを使用」から「next」を検索し「AMAZON.NextIntent」を追加

カスタムインデントの追加

カスタムインテントで「PlayIntent」を作成

※ PlayIntent はビルトインライブラリにもあるのですがスキルには最低1つ以上のカスタムスキルが必要なので、PlayIntentをカスタムで作成しました。

スキルビルダーのチェックリスト

これで2までチェックがつきました。

Lambda Management Console

関数を作成

ダッシュボード > 関数の作成

AWS Serverless Application Repository > alexa-skills-kit-nodejs-factskill をクリック

名前を入力しDeploy をクリック

デプロイ完了後(完了するまで少し時間がかかる)「alexaskillskitnodejsfactskill」をクリック

エンドポイントの設定

上記で開いた画面上部にある「ARN」をコピーする

上記を Alexa Developer Console の エンドポイント > AWS LambdaのARN > デフォルトの地域 にペースト > エンドポイントを保存
「スキルのマニフェストは正常の保存されました」と表示される

カスタム > スキル ビルダーのチェックリスト 
「エンドポイント」にチェックが入る

ビルド

「モデルをビルド」をクリック

「正常にビルドされました」と表示されすべてにチェックが入る

Lambda Management Console

最終的に公開に至ったソースコード

index.js

constants.js

skill-sample-nodejs-audio-player を参考に、曲リストは別ファイルに作成しました。

音楽ファイルはこのブログの XSERVER にアップしましたが、skill-sample-nodejs-audio-player ではsoundcloudのフィードから取得しているようですね。
(そんなことできるんだ。それだとサーバも必要なく音楽配信スキル作成できちゃいますね。)

テスト

Alexa Developer Console の「テスト」を有効にし、テキスト(チャット形式)でテストできる

AudioPlayer のテストは出来ない

Alexa Developer Console の「テスト」はオーディオ再生に対応していないので、実際の音楽再生は実機で試していく必要がありました。

その他補足

AudioPlayer ではヘルプは機能しない

再生中に「アレクサ、ヘルプ」と言うと、アレクサのヘルプが返って来てしまいます。どうしたものかと思いましたが、アレクサの音楽再生でも同様だったのでひとまずヘルプは搭載しないままにしておきました。
審査でも大丈夫でした。
 

公開

公開タブをクリックし、情報を入力していく。

特に利用者の情報を収集するものでもないのでプライバシーポリシーは空欄で、また利用規約も設定なしにしました。

プライバシーとコンプライアンス

「テストの手順」には簡単な機能の内容を記載しました。

※公開後のフィードバック時にも、ここに修正内容を記載していく形になります。

公開範囲

設定

上記をすべて保存すると「設定」タブの検証画面へ進みます。

実行し、問題なければ「機能テスト」も同様に実行します。
両方クリアすると申請が可能になります。

申請

動作確認をして、申請。

ちょっと心配だったのは下記の点でした。

  • DynamoDB には保存していないので、一時停止 > 再開 のときも「シャッフル再生します」と開始させていること
    => 機能説明にも、「すべてシャッフル再生」であることを明記
  • ループ再生や最初からもう一度といった機能は対応していない
    => 「ループ再生」など言われたら「その機能はありません、ごめんね」と返している

フィードバック1

金曜夜に申請したのですが、週明け月曜日の午前中にフィードバックが来ました。早い!

内容は「知的財産権」の確認でした。

知的財産権の権利者からの確認状または適用されるライセンスの写し

が必要とのことだったので、自作曲の場合はどのような書類が必要なのかお問い合わせフォームから質問させて頂きました。

すると翌日に、自作曲の場合は Youtube や Website のリンク等をスキルの詳細な説明またはテストの手順に明記で大丈夫とのお返事を頂きました。
修正して早速再申請。

フィードバック2

再申請した夕方には第二のフィードバックを頂きました。(やっぱり早い)

1 キャンセルで音楽が止まらない

キャンセルで音楽が止まらないとのことで、ソースを確認したところストップさせるところ(.addAudioPlayerStopDirective())が何故か間違ってコメントアウトされていたので元に戻し、申請チェックリスト でテストして問題ないことを確認してから、2回目の最新性を行いました。

.addAudioPlayerStopDirective() 

2 ホームカードの表記について

こちらは補足として頂いたご指摘でしたが、ホームカードが英語で表記されており、ユーザーエクスペリエンス向上のため日本語表記を検討くださいとのことでした。

ホームカードはテストで実装していたものだったので、一旦すべてコメントアウトしました。

というのも、キューに入れて連続再生している中でホームカードの表示させかたがわからなかったからです。「次へ」「再生」ではインテントをきっかけにホームカードを送れるのですが、リクエストだとAlexaにアクションさせられません。
やり方がわかったら実装したいです。

上記修正して2度めの再申請。

公開

翌日の夕方に「Alexaスキル welcome脳の音楽 が公開されました!」とのメールが!🙌
10/20 に申請して、週末をはさみ 10/24に公開となりました。

お父ちゃんに教えて貰ったので早く出来たし必要最低限の機能ではありますが、alexaスキルは思っていたより作成しやすく面白かったです。

 「新しい音楽配信ツールとして」Alexaスキルの可能性も感じます。

今後も随時曲を追加したり、機能をアップデートしたりもしていきたいと思います。

Amazon Echo と 安物 ESP8266 で スマートホーム ―壁スイッチ ON/OFF―

0
0

これまでガラクタを作っては壊してきたお父ちゃん

しかし唯一ほぼ毎日使って家族にも喜ばれているものがあります。
それはAmazon Echoでの家電制御システムです。

ESP-WROOM-02 と Blynk でLEDコントロール

Amazon Echo と ESP8266 で スマートホーム ―電気スタンド制御―

テレビと電気スタンドを音声でコントロールできるようにしたのです。みんな便利だと喜んで使っています。

そうなるとどんどん欲がでるのが世の摂理。今回はリビングの照明の壁スイッチ制御に挑戦しました。
 

こちらのようにスマホやスマートスピーカでコントロールできる指ロボットも売ってるのですが。。
 

自作してる方がいました!そうだよね。
家にあるものでつくろう!

構成

Amazon Echoでマイコンを介してサーボモータを制御してスイッチを押します。WiFi搭載マイコンESP8266をesp8266-alexa-wemo-emulator というライブラリでAlexaのスマートホームデバイスとして認識させます。

部品

  • サーボモータ SG90

     
  • WiFi搭載マイコン HiLetgo ESP8266

テレビと電気スタンド用にスイッチサイエンスのESPr Developer使い切っちゃたので手元にある安物 ESP8266を使いました。詳細は以下の通りです。

ESP-WROOM-02 と Blynk でLEDコントロール

ただもう売ってないみたいですね。。。残念。まぁESPr Developerもさほど高くないですし、時代はもうESP32ですよね。
 

組み立て

サーボとESP8266を配線し、固定用にアクリル板に接着固定します。アクリサンデーを使用しました。

壁スイッチのそばに本棚を置いているので本棚にネジ止めしました。

マイコンも両面テープで固定し、電源もうまいこと引き回して完成!

Arduinoコード

これまで同様にESP8266-Alexa連携ライブラリには esp8266-alexa-wemo-emulator を使用しました。
 https://github.com/witnessmenow/esp8266-alexa-wemo-emulator

インストールしたライブラリの以下のexampleコードを参考にプログラミングしました。
 Arduinoメニュー[ファイル]→[スケッチ例]→[Esp8266AlexaWemoEmulator]→SingleSwitch.ino

ESP8266のArduino用パッケージはESP8266 Community ver. 2.4.2を使用しています。設定は以下のとおりです。

“リビング”というスイッチをつくってオンコールバックとオフコールバックでサーボを制御します。この安物ESP8266はデジタルピン番号指定の際に”D”の記載も必要です。D8とかD2とか。

Amazon Echo連携

ESP8266で生成したスイッチデバイスをEchoに連携します。連携にはスマホアプリAmazon Alexaを使用します。アプリが更新されて少し様子が変わったようです。

アプリのスマートホームをクリックします。

デバイスの種類として”プラグ”を選択します (おそらく何でもいいと思います)。

なんか色々なサービスが表示されるようになりましたが”その他”を選択。

ESP8266を起動した状態で”デバイスを検出”をクリックすると数十秒でESP8266で生成した”リビング”が検出されます。

この状態で
「アレクサ、リビングつけて」、「アレクサ、リビングオン」

「アレクサ、リビングして」、「アレクサ、リビングオフ」
でそれぞれONコールバックとOFFコールバックが実行され、以下のようにサーボモータが動作します。


 

動作

やったー!できた!これも家族みんなに喜んで使ってもらえるといいなぁ 🙄 

 

家が少し未来っぽくて嬉しいね!(散らかってるけど。。。)
What an IoT!!

追記

2019/9/10

alexa-wemo-emulator が動かなくなってしまったので fauxmoESP に変更しました。

Amazon Echo と ESP8266 で スマートホーム ―電気スタンド制御―

Alexaスキル公開 「夏休みの友」

0
0

せっかくAmazon Echo Dot を手に入れたのでスキル作成に挑戦してみました。

 

作成したAlexaスキル「夏休みの友」は夏休みや冬休みなどの長期休業中の宿題集の進捗を管理してくれます。
報告した宿題ページと始業式の日程は記憶され、おすすめの宿題の進め方も提案します。

 

スキル作成で勉強したこと

以下の資料で勉強しながらスキル制作を進めました。

Alexa道場

非常にわかりやすかったです。順を追って観ることをおすすめします。

「夏休みの友」は Alexa Skills Kit SDK for Node.js Version 2 を使用して作成しました。SDK Version 2については第9回で説明されています。

公開の流れは第7回が参考になります。

Alexa SDK for Node.js Ver2入門

SDK Version 2について詳しく説明されています。非常に参考になりました。

セッション間での変数共有などはその4のSession attributesの節で説明されています。
 

スキル公開までの道のり

公開までに2回申請がリジェクトされました。夜に申請すると翌日午前中には修正内容とともに回答がありスピードに驚きました。しかも細かくチェックして修正案や読むべきドキュメントも教えてくれて非常に親切でした。

1度目の申請リジェクト内容

  1. セッション管理
    スキルがタスクを完了した後、ユーザーへのプロンプトが提示されていないにもかかわらずセッションが開いたままになっていると指摘。

    ユーザー「アレクサ、夏休みの友を開いて。 」
    スキル 「宿題はすでに終了しています。頑張りましたね。おめでとう。」
          →ユーザのリセットやストップを待つ
    これがユーザーに何も問いかけていないのでだめとのこと。

    「宿題はすでに終了しています。頑張りましたね。おめでとう。始業式の日にちと宿題ページ数を修正したい場合はリセットと言ってください。」
    に修正した。
     

  2. ページ回答のエラー対応
    ページの回答でエラー値が介された際に対応できずスキル終了してしまっていた。。。

    エラー値のときにもう一度ページ数を聞く仕様に修正した。
     

  3. サポートされていない起動フレーズ
    スキル説明のページでサポートされていない起動フレーズの記載があると指摘された。

    「アレクサ、夏休みの友を起動」

これを「アレクサ、夏休みの友をスタートして 」に修正した。

2度目の申請リジェクト内容

  1. サンプル発話の不足
    宿題ページの問いかけに対してページ数の回答や「してない」などのゼロ回答はケアしていたのですが、「宿題は終わった」には対応しておらず発話対応が不十分であると指摘されました。

    「宿題は終わった」、「宿題はもうない」などに対応するインテントと発話を追加して対応しました。
     

  2. 発話対応に不自然な点
    宿題の残り枚数を聞いた際に「ゼロページ」などのゼロ回答のときに「もう一度、宿題の残り枚数を教えてください」と再度聞く仕様にしていたのですが、対応が不自然であると指摘されました。

    宿題の残りページ問いかけの際にゼロ回答で「宿題はもうないのですね?」と確認する仕様に変更しました。
     

  3. 日にちのエラー対応
    始業式の日にちの回答の際に「十三月三十五日」などとエラーのある回答に対応していなかった。

    正常でない日付や○月○日以外のスロット値が帰ってくる回答の際にもう一度、日にちを聞くように仕様変更した。

    日付のスロット(AMAZON.DATE)に関する詳細は以下の通り
     https://developer.amazon.com/ja/docs/custom-skills/slot-type-reference.html#date

 
以上を対応して3回目で無事公開されました。

 

すんごく勉強になりました 🙂 。
またなんか作りたいなぁ。

Amazon Echo と ESP8266 で スマートホーム ―電気スタンド制御―

0
0

Amazon Echoを購入してから、いろいろ活用しているこの頃の我が家。Amazon Music で音楽を楽しんだり、料理時のタイマーや起床時のアラーム、ジョイサウンドのスキルでお家カラオケごっこなど大活躍です。長女ちゃんは算数の宿題(習いたての割り算)の答えを聞いたり。。。

以前、ESP8266と赤外線LEDを使ってテレビをEchoでコントロールできるようにしました。

Amazon Echo と ESP8266 で スマートホーム ―テレビ制御―

今回は電気スタンドを制御できるようにしました。就寝前とか一々立ち上がって消すの面倒だし。。。。
かといってスマート電球は高いし。。。うん!作るしかない!

構成

電源間にリレーを挿入してESP8266で制御します。

部品

  • ESPr® Developer(ESP-WROOM-02開発ボード)
  • リレーモジュール

     
  • ダイソーのスイッチ付き電源タップ

組み立て


まずは電源タップの筐体をひらいて

スイッチをとってリレーを挿入!

筐体を戻してESP8266とリレーを接続して完成。

ESP8266はUSB電源アダプタで電源供給して、電気スタンドの電源コードは改造して作ったスマートホーム電源につなげます。
 

Arduinoコード

テレビ制御の時と同様に以下のESP8266-Alexa連携ライブラリをありがたく使用させていただきESP8266をスマートホームデバイスにしてAmazon Echoと繋ぎます。
 https://github.com/witnessmenow/esp8266-alexa-wemo-emulator

ZipをダウンロードしてArduinoのメニュー[スケッチ]→[ライブラリのインクルード]→[.zip形式ライブラリをインストール…]でダウンロードしたファイルを指定してインストールします。

インストールしたライブラリの以下のexampleコードを参考にプログラミングしました。
 Arduinoメニュー[ファイル]→[スケッチ例]→[Esp8266AlexaWemoEmulator]→SingleSwitch.ino

“電気”というスイッチをつくってオンコールバックとオフコールバックでIO2ピンのHigh/Lowでリレーを制御します。

Amazon Echo連携

ESP8266で生成したスイッチデバイスをEchoに連携します。連携にはスマホアプリAmazon Alexaを使用します。

アプリのスマートホームをクリックします。

ESP8266を起動した状態で”デバイスを追加”をクリックすると数十秒でESP8266で生成した電気スイッチが検出されます。

この状態で
「アレクサ、電気つけて」、「アレクサ、電気オン」

「アレクサ、電気消して」、「アレクサ、電気オフ」
でそれぞれONコールバックとOFFコールバックが実行されリレーがON/OFFされて電気スタンドを制御できます。

動作

よっしゃ!これで寝ながらにして照明消せるぜ!

こうなってくると蛍光灯とかも制御したくなるなぁ。。。。 🙄 

 

追記

2019/9/10

alexa-wemo-emulator が動かなくなってしまったので fauxmoESP に変更しました。

fauxmoESP で スマートホームデバイス自作

Amazon Echo と ESP8266 で スマートホーム ―テレビ制御―

0
0

以前ラズパイでスマートスピーカAmazon Echoを自作したのだけど、ウェブカメラのマイクで感度が低かったりAmazon Musicと連携ができないなどで。。。

ESP-WROOM-02 と Blynk でLEDコントロール

本物ほしいなぁなんて思っていたら。。。。先日のプライムデーでなんとEcho dotが¥2,980(¥3,000 OFF)だったのでやっと買いました。

着後、早速子どもたちは喜んで遊んでます。

そして憧れるのが音声認識による家電制御。そう!スマートホーム!
以下みたいのに憧れていました。

早速、参考にしてESP8266に赤外線LEDを接続してEchoでコントロールするテレビリモコンを作ってみました。我が家はリモコンがどっかになくなったり、子どもが〇〇観たいとか忙しいときに言ってきたりするので、声でTVコントロールできたらかなり便利。まさに#完全にNEXT!

Arduinoライブラリ準備

マイコンESP8266をArduinoでプログラミングして赤外線を使用できるようにします。かつAmazon Echoと連携させます。

Arduino用ESP8266ライブラリ

バージョンアップ(現在2.4.1)があり、以下を参考に導入しました。

ESP8266 赤外線通信ライブラリ

以下のIRremoteESP8266ライブラリを使用してESP8266で赤外線信号の解析や信号出力しました。
 https://github.com/markszabo/IRremoteESP8266

ZipをダウンロードしてArduinoのメニュー[スケッチ]→[ライブラリのインクルード]→[.zip形式ライブラリをインストール…]でダウンロードしたファイルを指定してインストールします。

ESP8266-Alexa連携ライブラリ

以下のライブラリを使用してESP8266をスマートホームデバイスにしてAmazon Echoと繋ぎます。
 https://github.com/witnessmenow/esp8266-alexa-wemo-emulator

IRremoteESP8266ライブラリと同様にZipをダウンロードしてArduinoにインストールします。

テレビリモコン赤外線信号解析

まずは自宅のテレビリモコンの赤外線信号の解析を行います。

構成

部品

Arduinoコード

インストールしたIRremoteESP8266ライブラリのexampleコードを使用します。
 Arduinoメニュー[ファイル]→[スケッチ例]→[IRremoteESP8266]→IRrecvDumpV2.ino

解析

上記コードを実行しリモコン受信モジュールに向けてテレビリモコンのボタンを押します。

うまく赤外線が受信できるとシリアルモニタに信号解析結果が表示されます。

我が家のテレビリモコンの通信フォーマットはNECフォーマットでした。各リモコンのボタンを解析してCodeをメモしておきます(上図では1C6F00F)。ここでは電源ボタン、音量ボタン、各チャンネルボタン(ch1〜ch8)の解析を実施しました。

赤外線送信

赤外線LEDをESP8266に接続してリモコン信号を出力します。

構成

部品

Arduinoコード

IRremoteESP8266ライブラリとesp8266-alexa-wemo-emulatorライブラリを使用します。

それぞれのスケッチ例
IRsendDemo.ino
MultiSwitch.ino
を参考にプログラムしています。

70〜75行でAmazon Echo用のスマートホームデバイスを6個生成しています。ポート番号はそれぞれ違う値を使用します(ここでは80〜85)。

スイッチデバイスをエミュレートしているのでONコールバックとOFFコールバックの2個の動作が実行できます。

デバイスtvでは名前を”テレビ”としてコールバックtvOn()、tvOff()を実行します。それぞれのコールバックでテレビリモコンの電源ボタンの赤外線信号を出力します(91行、96行)。信号は解析した赤外線フォーマットとcodeを指定します。

その他のデバイスで音量とチャンネル切り替えを実施しています。詳細は後ほど。
 

Amazon Echo連携

ESP8266で生成したスイッチデバイスをEchoに連携して音声でテレビ操作できるようにします。

スイッチデバイス検出

連携にはスマホアプリAmazon Alexaを使用します。

アプリのスマートホームをクリックします。

 

ESP8266を起動した状態で”デバイスを追加”をクリックすると数十秒でESP8266で生成したスイッチが検出されます。

この状態で
「アレクサ、デバイス名(テレビなど)つけて」、「アレクサ、デバイス名(テレビなど)オン」

「アレクサ、デバイス名(テレビなど)消して」、「アレクサ、デバイス名(テレビなど)オフ」
でそれぞれONコールバックとOFFコールバックが実行されます。
簡単!!

定型アクション指定

デフォルトでスマートホームデバイスは「つけて(もしくはONして)」とか「消して(もしくはOFFして)」で動作します。

しかし、音声をコントロールしたい時やチャンネルを変える時に、「ONして」や「消して」は不自然なので実行発話をカスタマイズします。

音量調整

Amazon Alexaアプリの定型アクションをクリックして、”+”をクリック。

“実行条件を設定”をクリック

「音を大きくして」と入力して保存。
“アクションを追加”をクリック

“スマートホーム”を選択

デバイス”sound”を選択

オン状態で”次へ”→”追加”→”作成”をクリック

これで音量大きくするアクションができました。

続いて音声小さくするアクションも同様に作成します。「アレクサ、音小さくして」でsoundデバイスのOFFコールバックを実行するようにします。

soundデバイスのONコールバックとOFFコールバックではそれぞれテレビリモコンの音量大小ボタンの赤外線code出力が実行されます(上記の赤外線送信プログラムの101行、106行)。

チャンネル切り替え

デバイスchA〜Dでチャンネルボタンを実行します。

chAデバイスのONコールバックではTBSに切り替わるようにしました。

chAデバイスのOFFコールバックでは教育テレビに切り替わるようにしました。実行条件を「アレクサ、Eテレ」にしたかったのですがAlexa側の問題なのかE テレと言語認識できませんでした。しかたなく教育テレビにしました。

同様にchB〜chDのONコールバックとOFFコールバックを利用して各チャンネルに切り替えるようにしました。

動作

ヤッター!

便利!これで子供抱っこしたままでもテレビ消したりチャンネル変えたりできるよ。

便利な世の中になりましたね。

参考

追記

2019/9/10

alexa-wemo-emulator が動かなくなってしまったので fauxmoESP に変更しました。

Amazon Echo と ESP8266 で スマートホーム ―電気スタンド制御―