WiringPi2 for Python + CGIHTTPServer でLチカ
注意:電子工作素人の記事です
Raspberry Pi Model B+のGPIOをブラウザから操作できるようにするという目的のための関連記事一覧
- Raspberry PiにWiringPiをインストール
- Raspberry PiにWiringPi2 for Pythonをインストール
- WiringPi2 for Python でピンの指定
- WiringPi2 for Python でLチカ (with sudo)
- WiringPi2 for Python でLチカ (without sudo)
- 今回 > WiringPi2 for Python + CGIHTTPServer でLチカ
- WiringPi2 for Python + PWM + non-root
- WiringPi + CGIHTTPServer + PWM
注意
- WiringPi2 for Pythonがインストールされていること。
- python3では動きません。
作業内容
- 使用するGPIOの準備(GPIO18を出力にする)
- 動作確認用のpythonスクリプトを準備
- CGIHTTPServerを起動し、ブラウザから動作確認
- Lチカのpythonスクリプトを準備
- CGIHTTPServerを起動し、ブラウザからLチカ制御
$
$ sudo ./set_gpio_pins.sh
$
$ mkdir cgi-bin
$ nano ./cgi-bin/test.py
$ chmod 755 ./cgi-bin/test.py
$
$ python --version
Python 2.7.3
$
$ ifconfig
ここでIPを確認してください
$
$ python -m CGIHTTPServer
ブラウザからアクセス(IPが192.168.1.18の場合)
http://192.168.1.18:8000/cgi-bin/test.py
Hello Worldと表示されれば確認OK
Ctrl+C
CGIHTTPServerを終了
$
$ nano ./cgi-bin/blinkLED.py
$ chmod 755 ./cgi-bin/blinkLED.py
$
$ python -m CGIHTTPServer
ブラウザからアクセス(IPが192.168.1.18の場合)
http://192.168.1.18:8000/cgi-bin/blinkLED.py
Lチカを確認
GPIOの事前準備
set_gpio_pins.sh
記事『WiringPi2 for Python でLチカ (without sudo)』を参照
動作確認用スクリプト
./cgi-bin/test.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
print "Content-type: text/html"
print
print "<html><body>"
print "Hello World"
print "</body></html>"
Lチカスクリプト
./cgi-bin/blinkLED.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import cgi
import time
import wiringpi2 as pi
from multiprocessing import Process
def f(gpioNo, status):
pi.digitalWrite(gpioNo,status)
form = cgi.FieldStorage()
if form.has_key("gpio18"):
status = 0
if form["gpio18"].value == "on":
status = 1
pi.wiringPiSetupSys()
Process(target=f, args=(18,status)).start()
print "Content-type: text/html"
print
print "<html><body>"
print "<a href='?gpio18=on'>ON</a> |"
print " <a href='?gpio18=off'>OFF</a>"
print "</body></html>"
Written on February 1, 2015