RaspberryPi
艦これ
GoogleHome
時報

アドベントカレンダー 9日目
投稿されないようなので、先ほど作成したも物をご紹介します。

何をするの?

ラズパイを使ってGoogle-Homeに、艦娘たちの声で時報を行なってもらいます。

どうやる?

ラズパイ上のcronを使って、Google-homeからMP3を再生。
前提条件として、Google-Home-Notifierのインストールと
ApacheなどのWebサーバが動いている事が条件となります。

環境

  • Raspberry Pi
    • Apache (Webサーバとして)
    • Node.js
    • Google-Home-Notifier
    • Node-Cron
    • PM2
    • FTP (MP3アップロードにあったほうがいい)
  • 艦娘たちのボイスMP3
    • 録音を頑張って。

ボイスMP3の準備

艦娘の時報MP3ファイルの名前規則を以下としました。

金剛 → kongo_00.mp3 , kongo_01.mp3 ...
名前をローマ字に、その後に時刻を24hで表記、これで起動の際に数字を指定します。

これらをWebサーバが参照できる場所にFTPなどで保存します。
スクリーンショット 2017-12-18 00.11.08.png

発信スクリプト

Cron用のスクリプトが以下です。

cron.js
require('date-utils');
const googlehome = require('./google-home-notifier');
const language = 'ja';
googlehome.device('Google-Home', language);

// 艦娘のリスト現在は4人だけ収集しました。
var kanmusu = [
'kongo_',
'fubuki_',
'akatsuki_',
'hiei_',
'iku_'];

let cron = require('node-cron');
cron.schedule('0 0 18-23,0,1 * * *', () => {

var dt = new Date();
var H_word = dt.toFormat("HH24"); //24時間表記で取得
var date_word = dt.toFormat("DD"); //いずれは日によって振り分けしたい。

time_word = H_word; 
date_word = "4"; //現在は伊19限定、0にすれば金剛、1にすれば吹雪となる。

//URLの組み立て。
sp_text='http://192.168.1.207/~pi/jiho/'+ kanmusu[date_word] + time_word + '.mp3'

//アクション
googlehome.play(sp_text, function(res) {
  console.log(res);
});


});

Cronの時間表記で喋らせたい時間も変更可能。
応用編として艦これだけでなく、定期連絡のアナウンスに使えるかも。

この後、PM2でスタートすればデーモン化して常駐する。
pm2 start cron.js

テストショット。
0時の伊19