Raspberry Pi2で外部から水槽のLEDを点灯する その2
前回でひとまずさくらVPS上のPHPから自宅水槽のLED照明をONにできるようになったので肉付けしていく
subscribe(受信側)のシェルスクリプト
既に実行されてる場合はkillしてからもう一度起動する
vi /usr/local/bin/sango_subscribe #!/bin/sh #実行ファイルからpid取得 exec_file='sango_subscribe.rb' pid=`ps x | grep -v grep | grep "$exec_file" | awk '{ print $1 }'` #echo $pid #既に起動していた場合はkillする if [ -n "${pid}" ] then kill -9 $pid fi #バックグラウンドで実行 nohup `ruby /スクリプトの場所/$exec_file` > /ログの場所/sango.log 2> /ログの場所/sango.error.log < /dev/null &
起動時に実行するよう登録して再起動
sudo vi /etc/rc.local su - 実行ユーザー -c /usr/local/bin/sango_subscribe sudo reboot
再起動後、Sangoのダッシュボードとターミナルで確認
pgrep sango_subscribe 2568 ←pidが出る sango_subscribe ←再実行して確認 pgrep sango_subscribe 3062 ←前回と違うpidになっている事を確認
切断を検知して自動再接続がCOOLなんだけど面倒なので1時間に1回再起動する意識低いマン
crontab -e 3 * * * * /usr/local/bin/sango_subscribe > /dev/null 2>&1
次はLED点灯用のシェルスクリプト
点灯したら20秒後に消灯する ただしLEDが既に点灯していた場合は消灯しない
cronで叩いてる点灯用シェルをコピって作る
sudo cp /usr/local/bin/led-on /usr/local/bin/led-20sec sudo vi /usr/local/bin/led-20sec
この辺見ながら修正する
#!/usr/bin/python import RPi.GPIO as GPIO import time import sys GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(23, GPIO.OUT) if GPIO.input(23): sys.exit() else: GPIO.output(23,GPIO.HIGH) time.sleep(20) GPIO.cleanup()
if文の片方が要らない気もするけどpythonの構文がイマイチよく解ってないのでスルーする意識低いマン
点灯時、消灯時で叩いてみて確認
消灯時
sudo led-off sudo led-20sec
点灯時
sudo led-on sudo led-20sec
消えない!OK!!
これでパイ側はOKなので次回はWeb上からスイッチが押せるようにする予定
関連記事
-
Raspberry Pi2で水槽のLEDを自動点灯/消灯する
先日Raspberry Pi2を購入し、自宅からのストリーミング配信する為あれこ …
-
45cm水槽を修理してみた
大昔に使ってた45cm水槽が出てきたので洗って使おうと思ったんですが水漏れしてま …
-
Raspberry Pi2でPlanexのGW-450Dが動かなくなった
Raspberry Pi2上で何も考えずソフト類をアップグレードしたらカーネルの …
-
ウチの金魚たち
ウチに置いてある水槽の紹介 仕事場水槽 金魚水槽のページで配信している60cm水 …
-
福だるま購入しました
福だるま?玉サバ? ちょっと前、寝室に60cm水槽に立ち上げた水槽へ福だるまを4 …
-
45cm水槽を撤去しました
水槽を1個撤去 金魚水槽のページで配信していた45cm水槽を撤去しました。 仕事 …
-
プラ舟はじめました
プラ船買っちゃった 金魚にだだハマりなGW ついにプラ船買ってガレージに設置して …
-
プラ舟に水中ライトを設置
ライトが暗い! 配信中のプラ船ページですが、以前からライトが暗いので水中ライトを …
-
Raspberry Pi2で外部から水槽のLEDを点灯する
外部からネット越しに金魚水槽のLEDを点灯させたい WebIOPiというライブラ …
-
Sangoのメッセージ数について聞いてみた
メッセージ数が足りない! 金魚水槽のページやトップページからライトを点灯するのに …