Sony PRO pixy ESPRITをBluetoothで復活させよう! 〜お掃除編〜

【目次】Sony PRO pixy ESPRITを復活させよう!シリーズ

1. プロローグ 2. お掃除編 3. Bluetoothレシーバー接続編

さて前回の続きです。今回は埃まみれのMHC-J970EX PRO pixy ESPRITをきれいに掃除します。掃除する箇所は主にエレクトロスタティックツイーターを覆っているパンチングメタルの中の埃です。あとは外装を雑巾できれいに磨きます。

まずはスピーカーのウーハー部分。埃まみれですがきれいに磨けば大丈夫そうです。コーン紙もしっかりしています。

問題はスピーカー上部のエレクトロスタティックツイーターを覆っているパンチングメタルの中です。買ってから一度も分解清掃なんてしてないので25年の埃が詰まっています。写真では分かりにくいですが、裏側はなんと埃の塊がエレクトロスタティックツイーターに乗っかっちゃってます。これじゃ膜も振動できず音なんて出ないはずです。

早速分解していきます。赤丸の8つのネジを外せばパンチングメタルは外せます。

意外にあっさり外れました。こんな簡単に外れるならマメに掃除しておけばよかった。

これが25年間の埃です。最初エアダスターで吹き飛ばそうとしましたが、固着していてダメです。雑巾でゴシゴシ拭き取ります。

ツイーター部分はエアダスターで埃を吹き飛ばしますが、正面から架けると膜が破けてしまう恐れがあるので、斜めからそうっと少しづつかけて慎重に行います。

コーン紙とスピーカーネットもエアダスターで埃を吹き飛ばします。残りの外装は雑巾でゴシゴシ拭き取ります。

同様にアンプやチューナーなどのコンポーネント機器類もきれいに埃を拭き取ります。

どうでしょうか。なかなかきれいになりました。かなり満足。

今回の目的は在宅勤務時の音楽環境整備なので、机を挟む形でスピーカーを配置しました。これで仕事中にバランス良く音楽が聞けます。また仕事以外でもChromebookでNetflixやYouTubeの視聴もこのスピーカーから音を出せば大迫力で見ることができます。

今回はここまで。次回はBluetoothレシーバーを繋いで、スマホとChromebookの音をMHC-J970EXから出せるように設定します。

Sony PRO pixy ESPRITをBluetoothで復活させよう! 〜プロローグ〜

【目次】Sony PRO pixy ESPRITを復活させよう!シリーズ

1. プロローグ 2. お掃除編 3. Bluetoothレシーバー接続編

さて皆様、外出自粛の中、如何お過ごしでしょうか。

私は2020年4月上旬より完全在宅勤務となり会社へは出社しなくなりました。会社で使用していたノートPCを自宅に持ち帰り、VPN経由で会社のリソースへアクセスしたり、クラウドサービスを使ってテレビ会議をしたりしながら今までと変わらず業務をこなしています。

これまで往々にして進まなかった働き方改革に代表されるテレワーク・・・。まさかこんな形で半ば強制的に始めたってうまくいくわけ・・・。

うまくいくじゃん!全く問題なくできるじゃん!!

やりゃできるじゃん!って感じです。ほんと今までの満員電車で通勤ってなんだったんでしょうか。今回の件でいろいろなものの価値が変わるんじゃないかと思います。通勤、出張、都心のオフィス、駅近物件。特に「場所」と「移動」に関するサービスや物の価値が変わっていくような気がしています。

そんなことをぼんやり考えながら2週間ほど経った頃でしょうか。何やら心身ともに不調が出てきました。

まず腰が痛い。自宅にある椅子は会社の物に比べて貧相なので7時間も座ってられません。次に運動不足。ほとんど出歩きませんので体がなまってしょうがない。同時に動かないので腹が減らない。そうなると食事をろくに取らなくなる。栄養偏りまくりです。そしてなんとなく寂しい・・・。1日一回はテレビ会議で誰かと会話しますが、やっぱり画面越しなのか物足りない・・・。そして仕事が終わってテレビをつけると暗いニュースばかり・・・。こりゃなんか健康に良くないぞ。

最初は意気揚々とテレワークで問題ないじゃん!とか思ってましたが、いざ長期化すると、会社に毎日行くって心身ともに健康を保つ上で結構重要だったんだなと改めて思ってみたり。実は通勤って運動不足解消にも役に立ってたんだなとか会社の机と椅子ってよく考えられてるんだな・・・。なんて今度は会社の有り難みを実感するという。なんて人間はわがままなんでしょうか。あはは。

じゃあ会社に行くかといっても外出自粛ですから不用意に出社するわけにも行きません。

じゃあこの状況をどう打開するかなと検討した結果、一時的に実家に帰ることにしました。実家に帰れば親の状況もわかるし、甥っ子と遊んで体も動かせます。テレワークも実家からできるので問題ありません。

テレワークで重要なものは音楽

前置きがクソ長くなりました。そんなわけで実家からテレワークを初めて数日。使っているパソコン、マウスも同じ物ですので快適にできるはずですが何かが足りません。そうです。音楽です。

ソニーのミニコンポ「PRO pixy ESPRIT」

皆さんミニコンポという言葉はご存知でしょうか?時は1990年代初頭。私が中学生のころです。ミニコンポの正確な定義はなかったと思いますが、当時音楽再生の主流であったCD、録音のためのカセットデッキ、アンプ、ラジオチューナー、そしてそこそこ大きめのスピーカーがセットになったものをミニコンポと呼んでいたと思います。

そして私が所有していたものがソニー製のミニコンポ、ピクシーシリーズの最高峰、MHC-J970EX。通称「PRO pixy ESPRIT」でした。

何が最高峰かっていうとウーハーは16 cmだけど特殊な回路が載っていて30cm相当の音が出るとかCDプレイヤーに特殊な回路が載っているとかピンケーブルで繋いで音質の低下を防いでいるとかいろいろありますが、何といっても最大の特徴はスピーカー上部についている四角い銀の板!これはエレクトロスタティックツイーターといって薄い膜を高電圧で振動させて主に高音域を響かせるスピーカーです。

当時の私はそんな機能の凄さは全く理解していなく単純に「このスピーカーの上に載っている四角い銀の板もスピーカーなの?!・・・。かっけぇー!!」と奇抜なデザインに一目惚れしたのでした。

発売は1993年。今でも覚えています。ヨドバシカメラの新宿西口大ガード店で親父に買ってもらいました。

現在のMHC-J970EX

久しぶりに実家に帰ってテレワークしていますが、音楽が足りない。作業に集中したい時は音楽は必須です。しかしスマホの小さいスピーカーでは物足りない。何か音が出せるものはないものかと実家を漁っていると・・・。

ほとんど忘れかけていたMHC-J970EXがありました。なつかしい・・・。

なかり埃をかぶっています。特にパンチングメタルの中は掃除した記憶がないので、26、7年間の埃が詰まっています。

とりあえずコンセントを繋いで鳴らしてみたところ、ちゃんと音が出ました!!25年以上前の電化製品が電源を繋ぐだけで復活するなんてやっぱり日本製品は素晴らしいですね。

肝心の音ですが、ウーハーからはちゃんと重低音が出ています。が、エレクトロスタティックツイーターからの高音域は出ていません。耳を当てるとかる~く鳴ってるような、鳴ってないような。そんな感じです。ツイーターは埃をかなり被っているので膜がちゃんと振動できていないのかもしれません。これはきれいに掃除をしたら音が出るようになるかも。というわけでMHC-J970EXを復活させることにしました。

まあ完全に復活しなくてもスマホのスピーカーよりは全然いい。何より学生時代に愛用していたミニコンポがまた使えるようになることに夢を感じます。

因みにスピーカー以外ではアンプ、CD、ラジオチューナーは問題なし。カセットデッキは動きませんでした。

今回はここまで。次回はきれいに掃除して、Bluetoothレシーバーを接続してスマホから音楽が聞けるようにしたいと思います。

Nature Remo API + Google Chartsでグラフを作ろう!

Nature Remo活用シリーズ

0.開封編 1.ダイキンのエアコン 2.ダイキンのエアコン、その2
3.アイリスオーヤマのサーキュレーター 4.温度計 5.温度計、その2
6.Google Chartsでグラフ作成    

こんな感じのグラフを作ります。

さて前回Nature Remo APIから部屋の気温と湿度を定期的に取得してブラウザで表示する温度計を作りました。今回はそのデータをグラフ化して部屋の温度と湿度を見える化してしまおうという計画です。

グラフ描写はGoogle Chartsを利用

データをグラフ化する手法は沢山ありますが、今回はGoogle Chartsを利用します。Google Chatsはグーグルが提供する無料のグラフ作成ツールで、JavaScriptによるライブラリの読み込みとデータの入力を行うだけで、円グラフや折れ線グラフなどいろいろなグラフを作成することができます。

グラフタイプはLine Chart

Chart Galleryから好みのグラフを選びます。今回は温度と湿度を時系列に並べるので折れ線グラフ(Line Chart)にします。

JavaScriptはサンプルコードをちょこっと改造

Google Chartsのページにグラフを描写するためのサンプルコード載っています。このままでも十分かっこいいグラフができますが、Configration Optionsを見ながら線の色やタイトル、凡例を設定することで更に見やすくカッコよくなります。

Nature Remo APIの温度グラフを描写するコード

コードはこのように書きました。

<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>remo chart</title>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script>
google.charts.load('current', {packages: ['corechart', 'line']});
google.charts.setOnLoadCallback(drawCrosshairs);

function drawCrosshairs() {
  var data = new google.visualization.DataTable();
  data.addColumn('string', '日時');
  data.addColumn('number', '室内の気温');
  data.addColumn('number', '室内の湿度');
  data.addRows([

  ]);

  var options = {
    height: '800',
    hAxis: {
      title: '1時間毎の気温と湿度'
    },
    series: {
      0: { color: '#000065' },
      1: { color: '#6565FF' },
      2: { color: '#CB3200' },
      3: { color: '#FFB299' }
    },
    curveType: 'function',
    crosshair: {
      trigger: 'both',
      focused: {
        color: 'green',
        orientation: 'vertical'
      },
      selected: {
        color: 'aqua',
        opacity: 0.3,
        orientation: 'horizontal'
      }
    },
    tooltip: {
      trigger: 'both'
    },
    focusTarget: 'category'
  };

  var chart = new google.visualization.LineChart(document.getElementById('chart_div'));

  chart.draw(data, options);
}
</script>
</head>
<body>
<div id="chart_div"></div>
</body>
</html>

data.addRows([

の後に温度と湿度の値を入れていくと勝手にグラフになってくれます。

ポイントは height: ‘800’, でグラフの縦を長くしているところです。湿度はわりと上下の変化があるのでいいのですが、室内の温度はそんなに変化がないと思います。デフォルトの縦幅だとあまり変化がないつまらないグラフになってしまうので縦を長くして変化を見えやすくしています。因みに800の単位はピクセルです。

このファイルをremo-chart.htmlとして保存します。

温度と湿度の値を自動で追記するプログラム

グラフのベースとなるHTMLとJavaScriptができましたので、Nature Remo APIから取得した温度と湿度の値を自動でどんどん追記していくプログラムを作ります。値は前回作った温度計プログラムの中間生成物である、tmp.jsonファイルから抽出します。実行環境は前回同様、さくらのレンタルサーバ、言語はPerlです。

#!/usr/bin/perl

$| = 1;

#モジュールを指定
use utf8;

#実行時刻の取得
($sec, $min, $hour, $mday, $mon, $year,$wday, $yday, $isdst) = localtime;
$yyyy = $year + 1900;
$month = $mon + 1;

#ファイル指定
$html = './remo-chart.html';
$tmphtml = './tmp.html';
$tmpjson = './tmp.json';

#コマンドと引数を指定
$jq = "/home/XXXX/bin/jq";

#センサー値の取り出し
$te = `$jq .[].newest_events.te.val $tmpjson`;
$hu = `$jq .[].newest_events.hu.val $tmpjson`;

chomp($te);
chomp($hu);

open(HTML, "<$html");
open(TMP, ">$tmphtml");
while ($line = <HTML>){
	chomp($line);
	if($line =~ /]\)\;/) {
		print(TMP "[\"$yyyy/$month/$mday $hour:$min:$sec\", $te, $hu,],\n");
		print(TMP "$line\n");
	} else {
		chomp($line);
		print(TMP "$line\n");
	}
}

close(TMP);
close(HTML);

rename "$tmphtml", "$html";

exit:

プログラム解説

要点を解説します。

#ファイル指定
$html = './remo-chart.html';
$tmphtml = './tmp.html';
$tmpjson = './tmp.json';

ファイルを変数に代入します。一つ目は上で作ったベースとなるHTML + JavaScriptファイル。二つ目は中間ファイル。三つ目はNature Remo APIから取得した値を保存してあるjsonファイルです。tmp.jsonファイルは前回の温度計プログラムの中間生成ファイルです。作り方は前回を参照してください。

#コマンドと引数を指定
$jq = "/home/XXXX/bin/jq";

#センサー値の取り出し
$te = `$jq .[].newest_events.te.val $tmpjson`;
$hu = `$jq .[].newest_events.hu.val $tmpjson`;

chomp($te);
chomp($hu);

jqコマンドを使ってjsonファイルから温度と湿度の値をそれぞれの変数に代入します。変数代入後、chompコマンドを使ってお尻の改行コードを叩き落とします。

open(HTML, "<$html");
open(TMP, ">$tmphtml");
while ($line = <HTML>){
	chomp($line);
	if($line =~ /]\)\;/) {
		print(TMP "[\"$yyyy/$month/$mday $hour:$min:$sec\", $te, $hu, $owtemp, $owhum],\n");
		print(TMP "$line\n");
	} else {
		chomp($line);
		print(TMP "$line\n");
	}
}

close(TMP);
close(HTML);

rename "$tmphtml", "$html";

exit:

open関数を使ってremo-chart.htmlを開きます。同時にtmp.htmlも開きます。続いてwhile関数を使ってremo-chart.htmlを一行づつ読み込みます。その際、 ” ]);  ” にマッチしたら、実行時間、温度、湿度をtmp.htmlに書き込みます。無ければ読み込んだ行をそのままtmp.htmlに書き込みます。

こうすることで

data.addRows([

以降にグラフデータとなる温度と湿度が実行されるたびに追記されていくという仕組みです。

最後に、tmp.htmlをremo-chart.htmlにリネームして終了です。

cronを使って一時間に一回実行

このプログラムをcronを使って1時間に1度実行します。

2 * * * * cd /home/XXXX/bin/remo-chart ; /usr/bin/perl /home/XXXX/bin/remo-chart/remo-chart.pl 1> /dev/null

crontabにこのように登録します。毎時2分に実行するように登録します。

さあ、アクセスしてみよう。remo-chart.html

cronからプログラムが実行されたらグラフが出来上がっているはず・・・。無事グラフが出来上がっています!サンプルはこちら!

remo-chart

1時間毎の温度と湿度が自動で追記されていっています。

これで部屋の温度と湿度の見える化ができるようになりました。

おわり