raspberry pi3 webiopiにて、LEDをオンオフする。

WEBの遠隔で100Vのコンセントをオンオフできるような仕組みを作る為の方法を残す。

本当は、iphoneからsiriを使うことを考えたが、インターネットから行う事が難しくWiFi環境しか対応してないようなのであきらめた。まだ、時期的にはちょっと早いのかもしれません。raspaiにhomebridgeなるソフトをインストールしてiphoneのアプリから検索することから挙動がおかしくまだまだを感じさせる。

ということで、今回はとにかくWEB上で、スマホから電源のONOFFをやれる仕組みを作った。基本的には、Webiopiを使ってちょっと手を加えただけだ。

webiopiをインストールするまでは、既に掲載したので割愛する。

今回は、/home/pi/joy/htmlをWEBのトップページする為に、/etc/webiopi/config をちょっと修正する。

myscript = /home/pi/joy/python/script.py
doc-root = /home/pi/joy/html

に#をコメントアウトしてスクリプトとHTMLの場所を指定してあげた。

script.pyの内容は下記(2chの場合を想定)
import webiopi
import datetime

GPIO = webiopi.GPIO

LIGHT = 17 # GPIO pin using BCM numbering
LIGHT = 18 # GPIO pin using BCM numbering

HOUR_ON = 8 # Turn Light ON at 08:00
HOUR_OFF = 18 # Turn Light OFF at 18:00

# setup function is automatically called at WebIOPi startup
def setup():
# set the GPIO used by the light to output
GPIO.setFunction(LIGHT, GPIO.OUT)
GPIO.setFunction(LIGHT2, GPIO.OUT)

# retrieve current datetime
now = datetime.datetime.now()

# test if we are between ON time and tun the light ON
if ((now.hour >= HOUR_ON) and (now.hour < HOUR_OFF)): GPIO.digitalWrite(LIGHT, GPIO.HIGH) GPIO.digitalWrite(LIGHT2, GPIO.HIGH) # loop function is repeatedly called by WebIOPi def loop(): # retrieve current datetime now = datetime.datetime.now() # toggle light ON all days at the correct time if ((now.hour == HOUR_ON) and (now.minute == 0) and (now.second == 0)): if (GPIO.digitalRead(LIGHT) == GPIO.LOW): GPIO.digitalWrite(LIGHT, GPIO.HIGH) 時間でオンオフ機能を使う場合は、パーツを追加する。今回はLightだけタイマー機能を使う事にしている。 # toggle light OFF if ((now.hour == HOUR_OFF) and (now.minute == 0) and (now.second == 0)): if (GPIO.digitalRead(LIGHT) == GPIO.HIGH): GPIO.digitalWrite(LIGHT, GPIO.LOW) # gives CPU some time before looping again webiopi.sleep(1) # destroy function is called at WebIOPi shutdown def destroy(): GPIO.digitalWrite(LIGHT, GPIO.LOW) GPIO.digitalWrite(LIGHT2, GPIO.LOW) index.htmlの内容。



WebIOPi | Light Control



起動させる。
sudo /etc/init.d/webiopi start
これで、http://決めたドメイン(IP):8000
で大きなボタンが2つ出現して、オンオフできるようになる。

自動起動させる為に、
sudo update-rc.d webiopi defaults

にて、リブートしても自動起動することになる。

コメントを残す

メールアドレスが公開されることはありません。

*

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