CherrypyをRaspberrypiにインストールしてGPIOを使う

RaspberryPiのGPIOをpythonから使うのは簡単。Lチカは簡単にできた。だとすると 次に、これをネットワーク越しに実現したいところ。できればhttpでコントロールできたら色々便利。 そこで、ネットワーク越しに別のマシンからGPIOを操る方法を探した。 Pythonでwebサーバを簡単に作れるフレームワークがあるらしいので、それを使って見た。

Cherrypyで何ができる?

インストール方法

RaspberryPiCherryPyをインストールする。Rasbianが動いていれば、以下のapt-getで簡単にインストールできる。

$ sudo apt-get install python-cherrypy3

簡単なサンプル

#!/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


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS