1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

アレクサとLametricTimeでいい雰囲気にしたかった

Posted at

はじめに

こんにちは!エンジニアのまるさんかくです。
LaMetricTimeというデジタル時計を買ったので、何かできないかと考えていました。
LaMetricTimeはwebAPIを通して任意のテキストやアイコンを表示・通知することができ、同時に音楽も流すことができます。
良い感じの音楽を流して良い感じのテキストを表示したら部屋内を良い感じの雰囲気にできるんじゃないかと思ったのがきっかけです。

やりたいこと

LaMetricTimeを使っていい雰囲気を演出したい!

実施内容

アレクサから指示を出すと下記3つを行う
・部屋を暗くする
・いい感じな音楽を流す
・口説き文句を表示する

機器構成

  • アレクサ対応デバイス(役割:指示送信)
  • ラズパイ(役割:アレクサから指示を受信&LametricTimeのwebAPI実行)
  • LametricTime(役割:いい感じな音楽を流す&口説き文句を表示する)
  • SwtitchBots(役割:電気を消す)
  • FireTVStick(付いているTVを消す)

全体構成

アレクサの定型アクションを使用して、RaspberryPi、SwitchBots、FireStickに指示
全体構成.png

準備

apacheのインストール

LaMetricTimeはhttp経由で音声ファイルを取得しないと音楽を流すことができない。
そこで、apacheをラズパイにインストールし、任意の音声ファイルをurlで参照できるようにする。

  • apacheのインストール
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install apache2
  • apacheの動作確認
    ウェブ上で書きリンクにアクセスし、apacheのページが表示されることを確認する
    http://<ラズパイのIPアドレス>
  • apacheルートフォルダにファイルを保存
    ラズパイの下記フォルダに音声ファイルを保存
    /var/www/html

今回は下記サイトのフリー音源を使用

  • 音声ファイルへのアクセス確認
    ウェブ上で下記リンクにアクセスし、音声ファイルが再生されることを確認する。
    http://<ラズパイのIPアドレス>/<音声ファイルのファイル名>

apache_音声ファイル再生確認.png

プロジェクト作成

  • アレクサからRaspberryPiに指示を飛ばすためのNode-REDプロジェクト
  • RaspberryPiからLaMetricTimeのWebAPIを実行するためのシェルスクリプト
  • アレクサの定型アクション

NodeREDプロジェクト作成

アレクサから指示を受けて、シェルスクリプトを実行するNodeREDプロジェクトを作成する
Node-RED_プロジェクト.png

アレクサ経由でラズパイのシェルスクリプトを実行する方法については下記参照

シェルスクリプト作成

NodeREDから実行するシェルスクリプトを作成する

  • 内容
    LaMetricTimeのWebAPIを実行し、音楽再生とテキスト表示をLaMetricTimeに指示する
  • メインスクリプト
first.sh
#!/bin/bash

# SwtchBotsが電気を消すまで待つ
sleep 5

# JSONファイルのパス
json_file="/home/shun/my_project/GoodMoodMaker/data/sound_template.json"

# APIエンドポイント
api_endpoint="http://<LaMetricTimeのIPアドレス>:8080/api/v2/device/notifications"

# 認証情報
username="dev"
password="71174526036821fa22658ff0cbbc586d910e262a56ea24c2400058a35f901835"

# curlコマンドを実行
curl -X POST -u "$username:$password" -H "Content-Type: application/json" -d "@$json_file" $api_endpoint

  • メインスクリプトで読み込むデータファイル

準備した音声ファイルのURLを"sound""url"に記載

sound_template.json
{
    "priority": "warning",
    "icon_type": "info",
    "model": {
        "cycles": 1,
        "frames": [
            {
                "icon": "i30960",
                "text": "I LOVE YOU!"
            }
        ],
        "sound": {
            "url":"http://<ラズパイのIPアドレス>/background-epic-piano-music-for-short-video-vlog-advertising-23-sec-189905.mp3",
            "fallback": {
                "category": "notifications",
                "id": "cat"
            }
        }
    }
}

LaMetricTimeに通知を送信する方法についての詳細は下記参照

アレクサ定型アクション作成

アレクサから各機器に指示を送信するための定型アクションを作成する

作成物

最後に

LaMetricTimeとラズパイを使用して、部屋をいい雰囲気にするシステムを作ってみました。
いい雰囲気というより若干引かれそうな感じですが、面白いものが作れたんじゃないかと思います。
LaMetricTimeは他にも色々な使い方ができると思うので、皆さんも作成してみてはいかがでしょうか。

リンク

  • apacheによるhtml経由の音声ファイル参照

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?