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

*

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

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

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

  関連記事

Raspberry Pi2で外部から水槽のLEDを点灯する

外部からネット越しに金魚水槽のLEDを点灯させたい WebIOPiというライブラ …

プラ船 復活しました

先日ネコに襲撃され破られた金網ですが、1枚ものの塩ビ板でフタをすることにしました …

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

Raspberry Pi2に水温計と温度計を取り付け、10分ごとに室温と水温を計 …

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

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

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

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

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

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

Sangoのメッセージ数について聞いてみた

メッセージ数が足りない! 金魚水槽のページやトップページからライトを点灯するのに …

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

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

Raspberry Pi2で外部から水槽のLEDを点灯する その3

前回で自宅のラズパイ側の準備が整ったので今回はWeb上から電灯のON/OFFをす …

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

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