大阪近郊で活動するフリーランスエンジニアのブログです 技術情報とか趣味など

*

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のダッシュボードとターミナルで確認

san

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

k1
ついた&消えた!!!

点灯時

sudo led-on
sudo led-20sec

k2

消えない!OK!!

これでパイ側はOKなので次回はWeb上からスイッチが押せるようにする予定

 - Linux, Raspberry Pi, 金魚 , , , ,

  • このエントリーをはてなブックマークに追加
  • にほんブログ村 観賞魚ブログ 金魚へ

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

エサやりボタン復活しました

遠隔エサやりボタン 春になってきたので冬の間ストップしていたエサやりボタンを復活 …

福だるま購入しました

福だるま?玉サバ? ちょっと前、寝室に60cm水槽に立ち上げた水槽へ福だるまを4 …

Raspberry Pi2を使ってリモートで餌やりをする

ブログからガレージの金魚にエサをやる 以前からやろうやろうと先延ばしにしてたエサ …

プラ舟はじめました

プラ船買っちゃった 金魚にだだハマりなGW ついにプラ船買ってガレージに設置して …

45cm水槽を撤去しました

水槽を1個撤去 金魚水槽のページで配信していた45cm水槽を撤去しました。 仕事 …

Raspberry Pi ZEROでGW-450D2(無線LANドングル)を使う

ZERO買っちゃった Pimoroniで入荷しているのを見たのでRaspberr …

Raspberry Pi2でリモコンを使って水槽の照明をつける

リモコン操作で照明をつける Web上からRaspberry Pi2で水槽の照明を …

Raspberry Pi2で室温、水温を計測してグラフ表示する その2

前回でRaspberry PiからさくらVPSへ計測したデータを飛ばして登録でき …

45cm水槽を修理してみた

大昔に使ってた45cm水槽が出てきたので洗って使おうと思ったんですが水漏れしてま …

金魚水槽の照明をパワーアップさせたい

金魚水槽のページでON/OFFできるようにしている照明ですが、 やっぱ1Wパワー …