Edited at

ネットワーク対応小型LED警告灯「Crystal Signal PI」を動かしてみた

More than 1 year has passed since last update.

Crystal Signal PIが届いたので、早速組み立てて(↓完成形)動かしてみました。

image


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を使った取り組みについて販売元のブログに纏まっています。


組み立て

今回申し込んだ「プリント基板キット」は自分でハンダ付けと組み立てが必要です。(ハンダ付けが終わっている半完成品もあります)

ハンダ付けしたことある人であれば、難しいところは無いと思います。ただマニュアルにも記載されていますが、部品の向きと種類に注意が必要です。

炭素被膜抵抗の中に2つだけ他と違うカラーコードのものが含まれています。特にその内の一つは他のとカラーコードが非常に似ている(茶黒赤金と茶黒橙金)ので注意!!

あやうく間違えて取り付けるとこでした アブネ━━━━Σ(゚д゚;)━━━━!!

image


ソフトウェアインストール

組み立て終わったらマニュアルの通りソフトウェアをインストールします。


インストール

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の操作ができます。

image


APIによる制御

詳しい内容はマニュアルに丁寧に記載されているため省きますが、curlなどでAPIを叩くことでLEDをプログラムから簡単に制御することができます。


curlからLEDを点滅させる例

$ curl 'http://192.168.0.19/ctrl/?color=10,200,30&mode=1&repeat=0&period=500'


試しにシェルスクリプトでLEDの色を変化させてみました。

タイトルなし2.gif


color_change.sh

#!/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



さいごに

ネットワーク越しに簡単に制御が行えるので、さまざまな通知フローの中に組み込みやすいと思います。