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

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

VNCserverでリモートディスクトップ環境

CentOS7を遠隔でコントロールしたい。更にGUIでっていうことで、定番のVNCサーバーをインストール。

CentOS7のGNOMEの中に、Softwareっていうツールがあるので、そこからVNCserverで検索かけると、tigervnc-serverってのが検索された。それをインストールした。

あとは、ターミナルから、

# vncpasswd
Password: [password入力]
Verify: [password再入力]

でパスワードの設定して、起動させればOK

# vncserver :1

遠隔する側のクライアントの方は、Windows版のVNCserverが入っているので何もすることはない。

起動させて、192.168.1.91:1 ※:1を忘れると接続できないので注意。

見事にリモートディスクトップ画面が出現しました。

※ファイヤーウォールの解除は忘れずにすること。:1の場合は、5901ポートになる。

もし、GNOMEからじゃなく、ターミナルのインストールは、
# yum install tigervnc-server
# rpm -qa | grep vnc-server
tigervnc-server-minimal-1.2.80-0.30.20130314svn5065.el7.x86_64
tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64

のようです。私みたいなGUI派にとっては、コマンドで作業するのは苦手です。