Crystal Signal PIが届いたので、早速組み立てて(↓完成形)動かしてみました。
Crystal Signal PIとは?
小型コンピュータRaspberry PiにLED警告灯機能を追加する拡張モジュールです。Raspberry Piに> ソフトウェアを追加することで、さまざまな通知・監視に利用できます。既存の警告灯に比べ、低コストでプログラマーフレンドリー。光で監視するこの仕組みは、さまざまな活用方法が考えられます。
・プロジェクトページより引用
よく使われているパトライト(PATLITE)社のネットワーク対応の製品だと、安くても4~5万円はするので個人ではちょっと手が出ません。→こんなの:PATLITE LAN接続表示灯タイプ
Crystal Signal PIは一番安いプリント基板キットであれば、5千円の支援で手に入るためRaspberryPiと合わせても1万円程度で導入できます。またAPIが用意されているので簡単に発光パターンを制御できます。
クラウドファンディングとして募集されていましたが、残念ながら初回ロットは終了しています(2016/12/19現在)。公式ホームページにある登録フォームからメールアドレスを登録しておくと次回ロットの生産が決まった時に知らせてくれるようです。
Crystal Signal PIを使った取り組みについて販売元のブログに纏まっています。
- あらゆるイベントを可視化する! RaspberryPiで作るLED警告灯ソリューション
- CIの見える化でここまで効率が変わった ~Raspberry Piを使ったLEDソリューション製作記~
- クリスタルシグナルPiとZabbixでネットワークトラフィックを可視化する方法
- さくらのIoT PlatformとクリスタルシグナルPiで作るお手軽監視ソリューション
- クリスタルシグナルPiで作るゴミ出しリマインダーシステム
組み立て
今回申し込んだ「プリント基板キット」は自分でハンダ付けと組み立てが必要です。(ハンダ付けが終わっている半完成品もあります)
ハンダ付けしたことある人であれば、難しいところは無いと思います。ただマニュアルにも記載されていますが、部品の向きと種類に注意が必要です。
炭素被膜抵抗の中に2つだけ他と違うカラーコードのものが含まれています。特にその内の一つは他のとカラーコードが非常に似ている(茶黒赤金と茶黒橙金)ので注意!!
あやうく間違えて取り付けるとこでした アブネ━━━━Σ(゚д゚;)━━━━!!
ソフトウェアインストール
組み立て終わったらマニュアルの通りソフトウェアをインストールします。
pi@raspberrypi:~ $ curl -O https://raw.githubusercontent.com/infiniteloop-inc/crystal-signal/master/install.sh
pi@raspberrypi:~ $ sudo bash install.sh
インストールが終わると、pythonのサーバが起動しています。
pi@raspberrypi:~ $ systemctl list-units | grep LED
LEDController.service loaded active running LED Controller
pi@raspberrypi:~ $ ps -ef | grep LED
root 479 1 2 Dec15 ? 00:15:41 /usr/bin/python /usr/local/bin/LEDController.py
Webブラウザから操作
ソフトウェアのインストールが終わったら、Webブラウザで http://(Raspberry PiのIPアドレス)/ にアクセスするとWebUIが表示され、ここでLEDの操作ができます。
APIによる制御
詳しい内容はマニュアルに丁寧に記載されているため省きますが、curlなどでAPIを叩くことでLEDをプログラムから簡単に制御することができます。
$ curl 'http://192.168.0.19/ctrl/?color=10,200,30&mode=1&repeat=0&period=500'
試しにシェルスクリプトでLEDの色を変化させてみました。
#!/bin/bash
IPADDR=127.0.0.1
color_change() {
curl -s "http://$IPADDR/ctrl/?color=$1&mode=0&json=1"
}
asc="0 63 127 191 255"
desc="255 191 127 63 0"
while :
do
for i in ${desc}; do
color_change 0,$i,255
done
for i in ${asc}; do
color_change $i,0,255
done
for i in ${desc}; do
color_change 255,0,$i
done
for i in ${asc}; do
color_change 255,$i,0
done
for i in ${desc}; do
color_change $i,255,0
done
for i in ${asc}; do
color_change 0,255,$i
done
done
さいごに
ネットワーク越しに簡単に制御が行えるので、さまざまな通知フローの中に組み込みやすいと思います。