- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-07-20T02:40:06+00:00","ocha","ocha")
*Cherrypyで何ができる [#pcce6507]
#author("2018-07-20T03:26:48+00:00","ocha","ocha")
*CherrypyをRaspberrypiにインストールしてGPIOを使う [#jf437582]
RaspberryPiのGPIOをpythonから使うのは簡単。Lチカは簡単にできた。だとすると
次に、これをネットワーク越しに実現したいところ。できればhttpでコントロールできたら色々便利。
そこで、ネットワーク越しに別のマシンからGPIOを操る方法を探した。
Pythonでwebサーバを簡単に作れるフレームワークがあるらしいので、それを使って見た。
**Cherrypyで何ができる? [#rb2aa220]
- Pythonで書いたサーバが作れる。
- CGIとしても呼び出せるらしい。
**インストール方法 [#d6b28289]
- http://kzky.hatenablog.com/entry/2014/11/08/CherryPyまとめ
RaspberryPiにCherryPyをインストールする。Rasbianが動いていれば、以下のapt-getで簡単にインストールできる。
$ sudo apt-get install python-cherrypy3
**簡単なサンプル [#yd36e53b]
- https://ja.wikipedia.org/wiki/CherryPy
#!/usr/bin/env python
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
とても簡単。これを起動するとサーバとして動き出す。アドレスはデフォルトで、ローカルホストの8080。
同じマシンからcurlすると以下のようになる。
$ curl http://127.0.0.1:8080
Hello World!
他のマシンからも見られるようにするには、RaspberryPiに割り当てたアドレスを使って公開すればよい。デフォルトを変更するには、cherrypy.config.updateを使う。以下はアドレスが192.168.0.80の場合。
#!/usr/bin/env python
import cherrypy
cherrypy.config.update({'server.socket_host': '192.168.0.80',
'server.socket_port': 8080,
})
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
他のマシンからwebブラウザで見ると以下のようになる。
http://siio.jp/gyazo/4abd1abdfd32cca6141898fd51de66cd.png