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

*

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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

プラ舟はじめました

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

RaspberryPi2を使ったリモートのエサやりボタン復活しました

春がきた 春になり水温が上がってきたのでプラ舟ページのエサやりボタンを復活させま …

プラ舟に水中ライトを設置

ライトが暗い! 配信中のプラ船ページですが、以前からライトが暗いので水中ライトを …

Raspberry Pi ZEROをソーラーパネルで動かす

ソーラーパネルでラズパイ! 以前からソーラーパネルを使って電源の要らないRasp …

Raspberry Pi2でPlanexのGW-450Dが動かなくなった

Raspberry Pi2上で何も考えずソフト類をアップグレードしたらカーネルの …

RaspberryPi2で動画配信しながら写真も撮りたい

金魚デカくなった? 金魚にエサやってると4月の初頭から飼い始めた琉金が1周り大き …

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

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

寿恵廣錦を購入しました

また水槽が増えた 寝室に60cm水槽を1つ立ち上げたので何を入れようか考えていた …

プラ舟のカメラ復活しました

カメラの首振りができなくなっていた プラ船のカメラが横方向に動かなくなっていたの …

プラ舟に水中カメラ設置

水中カメラを設置したい プラ舟ページで配信しているカメラですが、 鳥やネコ避けの …